|
 |
|
|
|
|
|
Eiffel ist eine universelle, rein objektorientierte Programmiersprache und wurde seit 1985 von dem französischen Informatiker Bertrand Meyer und seiner Firma Interactive Software Engineering Inc. (Goleta, Kalifornien) 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 sowie leicht wart- und testbaren Modulen zu konstruieren.
Dazu werden potentiell riskante Möglichkeiten des Programmieres (manuelle Speicherverwaltung, globale Variablen, undisziplinierte Typumwandlungen, direkte Zeigermanipulation, "GOTOs", usw.) weitgehend ausgeschlossen, Optimierungen (speziell die Ausführungsgeschwindigkeit betreffend, etwa Inline-Ersetzung) an den Compiler delegiert.
Der konsequent objektorientierte Ansatz für das "Design im Großen" wird ergänzt durch (eher strikte) Anwendung der strukturierten Programmierung "im Detail" (auf der Ebene der einzelnen Routine).
Die Syntax ist beeinflusst von Ada und der ALGOL-Sprachfamilie. Sie soll vor allem "einfach" (leicht lesbar) sein.
Die Sprachdefinition von Eiffel ist Public Domain und steht unter der Kontrolle von Nonprofit International Consortium for Eiffel (NICE), welche das Recht hat, jedes Entwicklungswerkzeug bezüglich der Konformität zum Standard zu validieren, bevor es den Namen "Eiffel" tragen darf.
Der Anspruch, mit Eiffel eine Programmiersprache geschaffen zu haben, mit der Softwareentwicklung gemäß den Standards des Ingenieurwesens ermöglicht wird und welche die Erkenntnisse des Software Engineering konsequent umsetzt, wird insbesondere durch den Namen dokumentiert, eine Reverenz an Gustave Eiffel, Erbauer des Eiffelturms und einen der großen Ingenieure des 19. Jahrhunderts.
Als Anwendungsgebiete,
für die sich Eiffel besonders anbietet, werden genannt:
- sicherheitskritische Anwendungen
- Entwurf- und Spezifikationssprache
- Ausbildung in objektorientierter Programmierung
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).
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. Die Effizienz
sowohl bezüglich der Geschwindigkeit als auch bezüglich
des Speicherbedarfs ist bei Native Code in etwa mit
der von C++ vergleichbar.
Eigenschaften
- statische Typprüfung
- automatische Speicherverwaltung (Garbage collection)
- Mehrfachvererbung; entstehende Namenskonflikte können
durch Umbennenung (Renaming) aufgelöst werden
- Abstrakte Klassen ("deferred classes")
- Generische Klassen (Templates in C++)
- Polymorphie
- standardmäßig dynamische Bindung; wo
möglich, soll der Compiler in effizientere statische
Bindung optimieren
- Ausnahmebehandlung
- Operator overloading
- Schnittstelle zu anderen Programmiersprachen, insbesondere
C
- nur ein universeller Schleifentyp (entspricht etwa
while-Schleife)
- Standardbibliothek (im Umfang der von C++ vergleichbar)
Eine Spezialität von Eiffel ist die Unterstützung
des Design by Contract-Prinzips bei der Entwicklung.
Dazu werden durch die Sprache differenzierte Mittel
bereitgestellt, um Klassen, ihre einzelnen Funktionen
sowie ganze Klassenhierarchien auf systematische Weise
mit (abschaltbaren) Zusicherungen (Assertions) auf Korrektheit
der Abläufe und Zustände während der
Laufzeit zu überwachen. |
|
|
|
|
|
Person(en): Zeitraum: Firma: |
kein Eintrag vorhanden - - kein Eintrag vorhanden |
|
Es gibt 87 weiterführende Erklärungen oder Definitionen:
Abschnitt, ALGOL, Alternative, Anwendung, Archie, ASIC, Ausnahmebehandlung, BASIC, Bauer, Bibliothek, Byte, Bytecode, Code, Compiler, Design, Dokument, Domain, Dynamisch, Ebene, Engine, Ersetzen, Familie, Format, Funktion, Garbage, garbage collection, Generisch, Global, GoTo, Hint, Inform, Informatik, Informatiker, Inline, ISSE, Java, Kant, Konflikt, Laufzeit, Licht, LIFO, Line, Link, LOAD, Mach, Maschine, Maschinencode, Microsoft, Misc, Modul, Nativ, NDIS, Objekt, Open Source, Opera, Operator, Programm, Programmiersprache, Programmierung, Public Domain, Quelltext, Rach, Rage, RISC, Routine, Satz, Schleife, Schnitt, Schnittstelle, Sicherung, SMART, Software, Source, Speicher, Sprache, Standard, Sun, Syntax, System, SYSTEMS, Template, Tera, Text, Variable, WAND, while, Zeiger
|
|
Veröffentlicht am: Zuletzt bearbeitet am: Referenz: |
14.05.2004 von Wilhelm Janssen (7094) Beiträge 27.08.2004 von Wilhelm Janssen Wikipedia |
| ..... Dieser Artikel aus Wikipedia wird durch die GNU FDL lizenziert. ..... |
|
|
|
 |
|
|
|
|
|
|
|
|
|
|

Bei WinTotal finden Sie Programme und Tools für Microsoft Windows
|
|
| Werbung |
|
| | | | |
|

Bei Validome können Sie Ihre Website auf barrierefreies HTML testen
|
|
|