EiffelStudio 1 Environment: the tw o offerings EiffelStudio - - PowerPoint PPT Presentation

eiffelstudio
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

1

  • 2 -

EiffelStudio

slide-2
SLIDE 2

2

Environment: the tw o offerings

EiffelStudio (“Classic Eiffel”) Windows, Unix, Linux, VMS, .NET ... ENViSioN! for Visual Studio .NET Projects are compatible

slide-3
SLIDE 3

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...

slide-4
SLIDE 4

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

  • bjects
  • bjects

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

  • Brow sing, fast com piling

( Melting I ce™) , debugging, diagram s, m etrics...

slide-5
SLIDE 5

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.

slide-6
SLIDE 6

6

Melting Ice Technology

MELTED FROZEN

YOUR SYSTEM

EIFFELSTUDIO

Execution, browsing, debugging, documentation ...

MELTING FREEZING Machine code (from C code)

slide-7
SLIDE 7

7

Compilation modes

“Workbench” mode: Melt Freeze (requested, or automatic in case of new externals) Finalized mode

slide-8
SLIDE 8

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.

slide-9
SLIDE 9

9

Performance

“Finalization” mode of compilation applies extensive

  • ptimizations:

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

slide-10
SLIDE 10

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

slide-11
SLIDE 11

11

EiffelEnvision

Fully integrated with Visual Studio .NET Class view (more complete than other languages) Multi-language debugging Designers

slide-12
SLIDE 12

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.

slide-13
SLIDE 13

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

slide-14
SLIDE 14

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”.

slide-15
SLIDE 15

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

slide-16
SLIDE 16

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

slide-17
SLIDE 17

17

EiffelVision layers

EiffelVision EiffelVision WEL GEL etc.

slide-18
SLIDE 18

18

Eiffel2Java

Eiffel/ Eiffel/ .NET .NET

JNI JNI Java VM Java VM

Uses Java Native Interface