Fraunhofer-Gesellschaft

Publica

Hier finden Sie wissenschaftliche Publikationen aus den Fraunhofer-Instituten.

Entwurf und Implementierung effizienter Objektsysteme für funktionale und imperative Programmiersprachen am Beispiel von Lisp

 
: Bretthauer, H.

:
urn:nbn:de:0011-b-730830 (4.8 MByte PDF)
MD5 Fingerprint: ae3ec4f9a243603812c323f1bc733adf
Created on: 31.07.2002


Sankt Augustin: GMD Forschungszentrum Informationstechnik, 1999, 353 pp.
Zugl.: Saarbrücken, Univ., Diss., 1999
GMD research series, 1999,4
ISBN: 3-88457-353-5
German
Dissertation, Electronic Publication
Fraunhofer AIS ( IAIS) ()
Objektsystem; Konzept; objektorientierte Programmierung; Spezialisierung; Generalisierung; Metaobjektprotokoll; Programmiersprache; Performanz; Quellcodeinterpretation; Laufzeit; object system; concept; object oriented programming; Specialization; generalization; metaobject protocol; functional programming language; procedural programming language; performance; interpreter; incremental compiler

Abstract
Bisherige Objektsysteme funktionaler und imperativer Programmiersprachen weisen eine Lücke auf. Aus der funktionalen Tradition wurde das ausdrucksstärkste Objektsystem CLOS entwickelt, das insbesondere durch sein Metaobjektprotokoll hervorsticht, dessen Performanz aber zu wünschen übrig läßt. Auf der anderen Seite zeichnet sich C++ als besonders effizient aus, unterstützt aber zentrale Konzepte objektorientierter Programmierung wie Spezialisieren und Generalisieren von Objektklassen nur unzureichend, was abgeschwächt auch für Java gilt. In dieser Arbeit wird am Beispiel von Lisp gezeigt, wie man effiziente Objektsysteme unter Berücksichtigung des Verursacherprinzips so entwirft und implementiert, daß einfache Konstrukte keinen Overhead durch die Präsenz aufwendiger Konzepte, wie des Metaobjektprotokolls oder des Redefinierens von Klassen, mittragen müssen. Entgegen bisherigen Annahmen wird hier erstmals nachgewiesen, daß diese Konzepte auch ohne Quellcodeinterpretation bzw. -kompilation zur Laufzeit realisiert und somit auch in traditionellen, compiler-orientierten Programmiersprachen, wie Ada, Pascal, Eiffel, C++ und natürlich Java , unterstützt werden können.

 

Up to now a gap is evident in object systems of functional and procedural programming languages. The most expressive object system developed in the family of functional languages is CLOS with its outstanding metaobject protocol. Its performance, however, does not meet the users' needs. In the family of procedural languages the most efficient object system developed is C++. But its support of central concepts of object-oriented program- ming, such as specialization and generalization of object classes, is not sufficient. This also applies in some degree for Java . Using Lisp as an example this thesis shows how efficient object systems can be designed and implemented so that simple constructs have no overhead because of the presence of complex concepts such as the metaobject protocol or the redefinition of classes. In contrast to former assumptions, this thesis proofs for the first time that the above mentioned concepts can be realized without embedding an interpreter or an incremental compiler in the run-time environment. Therefore, they can also be supported in traditional compiler- oriented programming languages such as Ada, Pascal, Eiffel, C++ , and Java.

: http://publica.fraunhofer.de/documents/B-73083.html