Open Source im professionellen Einsatz
Linux-Magazin 09/2006
© photocase.com

© photocase.com

Workshop: Eiffel programmieren mit Eiffelstudio

Ingenieurskunst

Viele Experten halten Eiffel für die beste Programmiersprache, um wirklich zuverlässige Software zu entwickeln. Mit dem neuerdings freien Eiffelstudio stellen Sie diese Theorie auf den Prüfstand.

641

Große Projekte setzen auf Eiffel, etwa ein rund zwei Millionen Codezeilen umfassendes System von AXA Rosenberg fürs Investment Management. Xontech, ein Boeing-Zulieferer, modelliert mit Eiffel, wie Satelliten und Radar ankommende ballistische Raketen erkennen können. Viele Universitäten lehren Eiffel als Programmiersprache in ihren Vorlesungen. Eiffel-Erfinder Bertrand Meyer [1] ist selbst Professor für Software Engineering an der ETH Zürich.

Neu: Freie Eiffel-IDE

Den ersten kommerziellen Compiler veröffentlichte Bertrand Meyers Firma Interactive Software Engineering bereits 1986. Am 21. Juni 2005 verabschiedete die European Computer Manufacturers Association (ECMA) den Standard ECMA-367 (Eiffel Analysis, Design and Implementation Language, [2]), der die aktuell gültige Spezifikation der Programmiersprache definiert. Seit Anfang April 2006 ist Eiffel auch für freie Entwickler interessant: Alternativ zur kommerziellen Lizenz gibt es die plattformübergreifende Entwicklungsumgebung Eiffelstudio nun auch in einer GPL-Version [3].

In diesem Artikel lernen Sie die Programmiersprache Eiffel und die Entwicklung von Applikationen mit Eiffelstudio näher kennen. Mehr Informationen zum Open-Source-Projekt von Eiffelstudio liefert das Wiki [4]. Neben Eiffelstudio bestehen weitere freie Compiler und Entwicklungsumgebungen, siehe Kasten "Alternativen".

Alternativen

Von den freien Eiffel-Compilern unterstützt neben dem von Eiffel Software nur der Gobo Eiffel Compiler den ECMA-Standard:

  • Der Gobo Eiffel Compiler [5] befindet sich allerdings noch in
    einem sehr frühen Entwicklungsstadium.
  • Das Entwicklungsteam von Smart Eiffel [6] akzeptiert den
    ECMA-Standard nicht und entwickelt eine eigene Eiffel-Version.
  • Visual Eiffel [7] wurde Anfang 2005 unter der GPL freigegeben,
    entwickelt sich aber seither kaum weiter.

Neben der Entwicklungsumgebung von Eiffelstudio gibt es auch andere Möglichkeiten, Eiffel-Programme zu schreiben: die EDT (Eclipse Eiffel Development Tools) [8] und GNU Emacs oder XEmacs mit dem Eiffel-Modus [9]. Außerdem heben viele Editoren wie Vi oder Jedit die Eiffel-Syntax farbig hervor.

Weder die Eclipse-EDT noch Emacs bringen jedoch einen eigenen Eiffel-Compiler mit. Deshalb kommt man nicht umhin, den Compiler von Eiffel Software oder einen der oben genannten Compiler zu installieren.

Weil das freie Eiffelstudio noch nicht für den produktiven Einsatz geeignet ist, verwenden Sie am besten die aktuelle stabile Eiffelstudio Free Edition 5.6, mit der Sie nur nicht-kommerzielle Anwendungen erstellen dürfen. Eiffelstudio benötigt GTK+ ab Version 2.4.0. Um mit der Bibliothek Eiffelvision GUI-Applikationen zu entwickeln, müssen Sie die Entwicklungspakete von GTK+ und Libxst installieren.

Die IDE können Sie von [3] oder einem der Mirrors herunterladen. Sie entpacken dann das Archiv in ein geeignetes Verzeichnis und definieren einige Umgebungsvariablen:

export ISE_EIFFEL=/opt/Eiffel56
export ISE_PLATFORM=linux-x86
export PATH=$PATH:$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin


»ISE_EIFFEL« muss auf das Eiffelstudio-Verzeichnis zeigen, »ISE_PLATFORM« auf die benutzte Version, also entweder »linux-x86« für 32 Bit, »linux-x86-64« für 64 Bit oder »linux-ppc« für PPC.

Mit dem Skript »/make_install« kompilieren Sie schließlich die Bibliothek Eiffelbase. Das spart später beim Übersetzen von Programmen Zeit - jedes mit Eiffelstudio erstellte Programm verwendet Eiffelbase. Wer mit Eiffelstudio auch GUIs programmieren will, sollte auch die Frage des Installers nach dem Vorkompilieren von Eiffelvision mit Ja beantworten.

Turmbau zu Paris

Bevor es richtig losgeht, sollen die folgenden Absätze in einige Eigenheiten von Eiffel einführen. Grundeinheit jedes Eiffel-Programms ist eine Klasse, die in einer Datei mit der Endung ».e« gespeichert ist. Eine Klasse repräsentiert einen abstrakten Datentyp, jedes Objekt ist eine Instanz einer Klasse. Das Erstellen des Objekts übernimmt die so genannte Creation-Prozedur, ähnlich wie der Konstruktor in Java oder C++.

Eine Klasse ist durch eine Menge von Features (Operationen) charakterisiert, die entweder Attribute oder Routinen sein können. Diese Klassifizierung von Features beruht auf ihrer Funktion: Routinen führen eine Berechnung aus, Attribute speichern einen Wert. Eiffel unterscheidet zudem zwischen Routinen mit Rückgabewert (Funktionen) und solchen ohne (Prozeduren).

Es gibt auch eine Klassifizierung nach Aufgaben: Features sind entweder Commands (ohne Rückgabewert) oder Queries (mit Rückgabewert). Queries sind entweder Funktionen oder Attribute (wenn sich der Wert im Speicher befindet). Abbildung 1 stellt diese Kategorisierung von Features dar.

Abbildung 1: Kategorisierung von Features nach Aufgabe und Implementation.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Grenzen überwinden

    Plattformübergreifendes Programmieren ist eine Kunst: Um die großen Unterschieden von Linux, Windows und Mac zu überwinden, müssen Cross-Plattform-Toolkits viel leisten. Dieser Artikel stellt WX-Windows vor, eine GUI-Bibliothek, die seit über zehn Jahren Entwicklern diese Aufgabe erleichtert.

  • ABC-Schütze

    C zählt trotz bekannter Probleme zu den populärsten Programmiersprachen. Eine der jüngeren Bewerberinnen um die Nachfolge ist D: Objektorientiert, inklusive Garbage Collection und Unit-Test-Funktionalität schleppt diese Sprache weit weniger Ballast mit sich herum als etwa C++.

  • Erkenne die Zeichen

    Häufig müssen Programme strukturierte Eingabedateien verarbeiten und verstehen. Komplizierte Dateiformate erfordern dabei hohen Programmieraufwand - oder den Einsatz eines Parsergenerators. JavaCC deckt die wichtigsten Aspekte der Parsergenerierung für Java-Programme ab.

  • Wir können auch anders

    Bisher vorgestellte Programme waren in funktionaler Weise implementiert. Schemes Stärken liegen zwar hauptsächlich in diesem Bereich, jedoch gibt es auch die Möglichkeit, objektorientiert vorzugehen.

  • System-config-firewall: Python Pickle intrinsisch unsicher
comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.