1
- 2 -
EiffelStudio 1 Environment: the tw o offerings EiffelStudio - - PowerPoint PPT Presentation
- 2 - EiffelStudio 1 Environment: the tw o offerings EiffelStudio (Classic Eiffel) Windows, Unix, Linux, VMS, .NET ... ENViSioN! for Visual Studio .NET Projects are compatible 2 Eiffel for .NET One of the first languages to be
1
2
Environment: the tw o offerings
EiffelStudio (“Classic Eiffel”) Windows, Unix, Linux, VMS, .NET ... ENViSioN! for Visual Studio .NET Projects are compatible
3
Eiffel for .NET
One of the first languages to be available for .NET — right from the time of first announcement Result of close cooperation with Microsoft. Key role in ECMA standardization of .NET (CLI), now an ISO standard Full language, with multiple inheritance, Design by Contract, genericity etc. Full player: interoperability, consumer, producer, extender, verifiable, CLS-compliant...
4
EiffelStudio
Serialization EiffelStore
EiffelStudio EiffelStudio
Ansi Ansi C Executable Executable system system IL IL EiffelBase EiffelBase WEL WEL EiffelVision EiffelVision EiffelNet EiffelNet EiffelWeb EiffelWeb EiffelMath EiffelMath EiffelCOM EiffelCOM Persistent Persistent
Eiffel Eiffel Run Runtime ime
Databases (Rel, OO)
C com pilation Jitter Eiffel com pilation User classes General library W in3 2 GUI W eb scripting Advanced num erics Netw orking
Exte Extern rnal al C/C++/Java Java .NET .NET Assemblies Assemblies EiffelBuild EiffelBuild
GUI builder Multiplatform GUI library
( Melting I ce™) , debugging, diagram s, m etrics...
5
EiffelStudio: Melting Ice™ Technology
Fast recompilation: time depends on size of change, not size of program Full type checking “Freeze” once in a while Optimized compilation: finalize.
6
Melting Ice Technology
MELTED FROZEN
YOUR SYSTEM
EIFFELSTUDIO
Execution, browsing, debugging, documentation ...
MELTING FREEZING Machine code (from C code)
7
Compilation modes
“Workbench” mode: Melt Freeze (requested, or automatic in case of new externals) Finalized mode
8
Garbage collection
Unreachable objects are automatically reclaimed by GC: On by default Incremental Intended to be both consistent and complete Compacts memory: moves objects You can control some parameters: class MEMORY Use full_collect from MEMORY to trigger full GC cycle Redefine dispose from MEMORY to ensure that external resources are freed on collection. Must not affect Eiffel objects.
9
Performance
“Finalization” mode of compilation applies extensive
Inlining Dead code removal Contract removal ... Optimizations are compiler-applied and automatic; no need for manual hacking Garbage collection takes care of memory issues Intended to match the most exacting demands of industry applications
10
EiffelStudio brow sing and debugging
You are dealing with “development objects”: Classes Features Run-time objects (for debugging) To work on an object, “pick-and-drop” it into an appropriate tool
11
EiffelEnvision
Fully integrated with Visual Studio .NET Class view (more complete than other languages) Multi-language debugging Designers
12
Openness
Eiffel can be used as “component combinator” to package elements from different sources: Mechanisms for integrating elements in C, C++, Java, IL (.NET) Interfaces and libraries: SQL, XML, UML (XMI), CORBA, COM, others Particularly sophisticated mechanisms for C/C++ interfacing Outside of .NET, compiles down to ANSI C code, facilitates support for C and C++ easier. On .NET, seamless integration with C#, VB .NET etc.
13
Special syntax for C/C++ support
class class RECT_STRUCT RECT_STRUCT feature feature – – Access Access x x ( (a_struct a_struct: : POINTER POINTER): ): INTEGER INTEGER is is external external " "C C struct struct RECT RECT access access x x use use < <windows.h windows.h> >" " end end feature feature – – Element change Element change set_x set_x ( (a_struct a_struct: : POINTER POINTER; ; a_x a_x: : INTEGER INTEGER) ) is is external external " "C C struct struct RECT RECT access access x type x type int int use use < <windows.h windows.h> >" " end end end end
14
C/C++ support
Functions, macros, include files, setters, getters, constructors, destructors etc. Inline C! From the outside into Eiffel: CECIL (C-Eiffel Common Interface Library); see “Supplements”.
15
Portability
Source-code portability across: Windows NT, 2000, XP Windows 98, Me Solaris, other commercial Unix variants Linux Mac OS X BSD (Berkeley System Distribution) VMS
16
Portable graphics
EiffelVision 2 library: Simple programming model (containers) Produce quality GUI simply and quickly Easy to learn Completely portable across supported platforms Rich set of controls, matches users’ most demanding needs Adapts automatically to native look & feel
17
EiffelVision layers
18
Eiffel2Java
Uses Java Native Interface