Institut für Computersprachen
Programmiersprachen und Übersetzer

Detailinformation

( Fenster schließen )


Diplomarbeit
Titel Verwendung von C++-Bibliotheken in Eiffel
Autor Piskernig, Martin
Erscheinungsjahr 2006
Klasse Sonstiges
Erscheinungsort Wien
Inventarnummer Dipl
Bestelldatum
Inventardatum
Abstract Eiffel ist eine rein objektorientierte Programmiersprache mit mächtigen Features, die vor allem für die Entwicklung umfangreicher Softwareprojekte geeignet sind. Sie hat - im Vergleich zu C++ oder auch neueren Sprachen wie Java oder C# - trotzdem nie große Popularität erlangt. Als einer der Gründe für dieses Faktum ist die Tatsache zu nennen, dass es nicht sehr viele einsatzbereite Klassenbibliotheken für Eiffel gibt. Anstatt sämtliche benötigte Bibliotheken neu zu entwickeln, ist es ökonomisch sinnvoller, auf vorhandene Code, aufgrund langjähriger Entwicklung meist gut gereift aufzubauen. In dieser Arbeit wird untersucht, ob und wie sich Klassenbibliothekn der Programmiersprache C++ aus Eiffel heraus nutzen lassen. Die Wahl fällt deswegen auf C++, weil es die am weitesten verbreitete objektorientierte Programmiersprache ist. Es stellt sich heraus, dass eine Interaktion der beiden Sprachen möglich ist. Dazu wird jede Komponente von C++ auf eine Komponente in Eiffel abgebildet; alle Eiffel -Komponenten zusammen ergeben den Wrapper der Bibliothek. Neben den grundlegenden Komponenten von C++ (Klassen, Funktionen, Aufzählungen, etc.) werden auch die fortgeschritteneren Sprachfeatures, darunter vor allem Vererbung und Templates, nach Eiffel übersetzt. Es wird eine Methode entwickelt, mit der Polymorphismus sprachübergreifend möglich ist, um die Klassenhierarchie von C++ in Eiffel zu erweitern. Für notwendige Adaptierungen (Behebung von Namenskonflikten etc.) an der Schnittstelle der Bibliothek wird ein eigener Mechanismus eingeführt. Er wird auch dazu benutzt, eiffelspezifisches Features (vor allem Design by Contract)in den Wrapper zu integrieren. Die Applikation "Eukalyptus" (http://piskernig.at/eukalyptus), die die Erzeugung des Wrappers automatisch durchführt, wird implementiert und an einer für C++ typischen Bibliothek getestet.
Status Verfügbar

( Fenster schließen )