Zum Inhalt springen

Eiffel (Programmiersprache)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 3. Juni 2003 um 23:03 Uhr durch Tesuji (Diskussion | Beiträge) (Rechtschreibung). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Eiffel ist eine universelle, rein objektorientierte Programmiersprache und wurde seit 1985 von Bertrand Meyer und seiner Firma Interactive Software Engeneering Inc. als Alternative zu C++ entworfen, wobei zunächst nur an den Gebrauch durch die eigene Firma gedacht war. Es handelt sich im Unterschied zu C++ um einen vollständig neuen Entwurf, der auf keiner älteren Sprache aufbaut. Erklärtes Ziel der Entwicklung ist es, mit Eiffel ein Werkzeug zu schaffen, um damit umfangreiche Software aus zuverlässigen, wiederverwendbaren und leicht wartbaren Modulen zu konstruieren. Dazu werden potentiell riskante Möglichkeiten des Programmieres (manuelle Speicherverwaltung, globale Variablen, undisziplinierte Typumwandlungen, direkte Zeigermanipulation, usw.) weitgehend ausgeschlossen, Optimierungen (speziell die Ausführungsgeschwindigkeit betreffend, etwa Inline-Expansion) an den Compiler delegiert.

Die Syntax ist beeinflußt von Ada und der ALGOL-Sprachfamilie. Sie soll vor allem "einfach" (leicht lesbar) sein.

Der Anspruch, mit Eiffel eine Programmiersprache geschaffen zu haben, mit der Softwarentwicklung gemäß den Standards des Ingenieurwesens ermöglicht wird und welche die Erkenntnisse des Software Engineering konsequent umsetzt, wird insbesondere durch den Namen dokumentiert, eine Referenz an den Erbauer des Eiffel-Turms und einen der großen Ingenieure des 19. Jahrhunderts.

Es gibt einige wenige kommerzielle Eiffel-Entwicklungsumgebungen und mit SmartEiffel (ehemals SmallEiffel, siehe Abschnitt Weblinks) mindestens einen Open Source-Compiler, die Sprache konnte bis heute (2003) allerdings nicht die Verbreitung von C++ oder Java erlangen. Es steht auch keine der großen Software- oder IT-Firmen hinter Eiffel (wie Sun Microsystems hinter Java oder Microsoft hinter C# bzw. BASIC).

Als Anwendungsgebiete, für die sich Eiffel besonders anbietet, werden genannt:

  • sicherheitskritische Anwendungen
  • Entwurf- und Spezifikationssprache
  • Ausbildung in objektorienter Programmierung

Der Quelltext wird gewöhnlich in den Maschinencode der Zielmaschine compiliert (manchmal auch über den Umweg der Umwandlung der Eiffel-Sourcen in C-Code), es gibt aber auch Ansätze, diesen in Bytecode für die Java-Virtual-Machine zu übersetzen.

Eigenschaften

Eine Spezialität von Eiffel ist die Unterstützung des Programming-by-Contract-Prinzips bei der Entwicklung. Dazu werden durch die Sprache differenzierte Mittel bereitgestellt, um Klassen, ihre einzelnen Funktionen so wie ganze Klassenhierarchien auf systematische Weise mit (abschaltbaren) Zusicherungen (Assertions) auf Korrekheit der Abläufe und Zustände während der Laufzeit zu überwachen.

Zu Eiffel gehört eine Standardbibliothek, deren Umfang ungefähr der von C++ entspricht.

Literatur

  • Jean-Marc Jezequel: Object-Oriented Software Engineering with Eiffel, Addison Wesley Professional, 1996
  • Bertrand Meyer: Object-oriented Software Construction, 2nd ed. Prentice Hall, 1997
  • Bertrand Meyer: Eiffel: The Language Prentice Hall, 1992
  • Richard Wiener: Software Development Using Eiffel - There Can Be Life After C++ Prentice Hall, 1995