Interactive
Software Engineering
Eiffel in ISE EiffelBench

[ISE Home] Home ] Release Notes ] Technology Papers ] Installation Notes ] About Eiffel ]


Differences between ETL 2nd edition and ISE implementation

 

Added keywords:

  • Precursor
  • Tilde operator: new symbol used by the Agent mechanism.
  • create: Instead of using the famous exclamation mark to create an instance of a class, you can use the keyword `create'. Below you will find a correspondence table between the old and the new syntax. The old syntax is still valid, but at some points ISE will remove it from its implementation:
    Old syntaxNew syntax
    !! acreate a
    !! a.makecreate a.make
    !B! acreate {B} a
    !B! a.makecreate {B} a.make

 

Added semantics:

  • generic creation
  • expression creation: you can now create an object within an expression. For example, you want to create an object and pass it as an argument to a function. Before you had to create a local variables, to create the object and pass it to the function. Now, you simply need to pass to the function the creation expression. Here a small example:

    Old methodNew method
    local
    	a: STRING
    do
    	!! a.make (10)
    	f (a)
    end
    do
    	f (create {STRING}.make (10))
    end
    This is also very useful since it can also improve the power of assertions.
  • mutually recursive constraints: one can now write class A [H, G->H] or class B [H -> C, G -> ARRAY [H]]. As a result, the declaration A [D, E] is valid only if E is a descendant of D. In the same maner, the declaration B [E, ARRAY [D]] is not valid, if E is a descendant of D.
  • Tuples
  • Agents

 

Added external support

Look at the page for C and C++ with the introduction of `struct' and C++ externals encapsulation.