1 / 13

EIFFEL

EIFFEL. SWE 6743 MOHAMED HASSAN Language Research Project. Brief History. 1985: Bertrand Meyer and Jean Marc Nerson Development of Eiffel Language. 1986: First Eiffel compiler. Publication of “Eiffel The Language” by Bertrand Meyer.

Download Presentation

EIFFEL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EIFFEL SWE 6743 MOHAMED HASSAN Language Research Project

  2. Brief History • 1985: Bertrand Meyer and Jean Marc Nerson Development of Eiffel Language. • 1986: First Eiffel compiler. • Publication of “Eiffel The Language” by Bertrand Meyer. • 1997: Publication of Object-Oriented Software Construction (OOSPLA).

  3. Inheritance • Combination and specialization of existing classes rather than from scratch. • Multiples / Repeated inheritance • Example: class C inherit    A rename x as x1, y as y1 end     B rename x as x2, y as y2 end

  4. Reusability • Class or component reuse through Genericity = Parametric classes • Ex: LIST [G] • G is formal generic parameter • Actual generic parameter • acc:LIST[int] or LIST[Account] • Deferred classes –implemented in other classes.

  5. Polymorphism • Allows class to redefine features of an inherited class • Example • class RECTANGLE inherit     POLYGON redefine perimeter end feature -- Specific features of rectangles, such as:     side1: REAL; side2: REAL     perimeter: REAL is             -- Rectangle-specific version do Result := 2 * (side1 + side2) end

  6. Design By Contract • Uses of assertions within methods by • Method Preconditions / Post conditions are compilibles. Example: class ACCOUNT create withdraw (sum: INTEGER) is             -- Withdraw sum from the account. require             sum >= 0             sum <= balance - minimum_balance do             add (-sum) ensure             balance = old balance - sum end

  7. Information hiding • Selective Export (inheritance) • Component reuse, clients only need to know the interface but not how it is implemented.

  8. Message binding • Uses dynamic binding at run-time • Ex:  p: POLYGON; r: RECTANGLE         ... create p; create r; ...         if c then             p := r         end         print (p . perimeter)

  9. Database Support • Support of Matisse db through EiffelMatisse interface • EiffelMysql driver • Eiffel Versant driver

  10. Usability, IDE • Eiffel Studio, SmartEiffel( open source): very intuitive, GUI based IDE. • Libraries: EiffelBase ->data structures • EiffelEnvison: plug-in from VStudio .net • EiffelVision2-> GUI libraries • EiffelNet -> used with .NET platform • EiffelJava -> Java Interface libraries

  11. Cost • Eiffel studio • Windows + .NET: 5,999 $ upgrade( 2,499$) • Linux (fedora): 5,999 $ • Solaris 0n Sparc: 8,999$ • SGI: 8,999$ • Mac OS: 5,999$ • Free evaluation version • Dual licensing: Support purchasing commercial licenses or releasing their application under an Open Source license

  12. Web development • Supported through Eiffel for ASP.NET • With .Net Framework, CGI scripts • Pros: • Reuse, Extensible, Design by contract, pure OO language, robust software design. • Cons: • Expensive IDE for commercial use • Limited resources and tutorials available • Limited support except from Eiffel group

More Related