Wednesday, June 2, 2010

Eiffel Overview

 

This post is for the sake of remembering and learning the basics of Eiffel.......................

You can create classes like any other oo language, in Eiffel.

Before anything here's famous "Hello World"

class Hello
create 
     make
feature
    make is
         print("Hello world")
    end -- end make
end    -- end class

create = constructor
feature = instance var, methods
is = definition of feature
(is - end) = a block - { code goes here}

Compared with java, similar to  instance variables, and methods Eiffel has "Features"
Features are divided into 3 sections
Procedures : change state of a attribute
Functions : return answer to a query of a state of a object, do not change state
Attribute :  the states of the object considered are declared there

routines : Procedures+ (computational) Functions

simple declarations
    size : INTEGER
    name : STRING
    myList : ARRAY[TYPE]

simple procedure
       set_size(s: like size) is do size := s end
simple function
       get_size : INTEGER is do Result := size end
       Note: here Result is always the return value for a function

create an instance from another class
      create make_duck(size)

additional to these simple facts,
keywords such as require and ensure enable to have pre and post conditions for a specific function or     procedure, this restring the false conditions that might occur when passing arguments.

Tested with EiffelStudio 6.6

[Reference: http://eiffelzone.com/doc/into-eiffel.html
                  Eiffel: The Essentials by Meyer]