Not logged in.

Contribution Details

Type Dissertation
Scope Discipline-based scholarship
Title Design und Implementierungsaspekte einer objektorientierten Programmiersprache
Organization Unit
Authors
  • Bruno Schäffer
Supervisors
  • Kurt Bauknecht
  • Lutz H. Richter
Language
  • German
Institution University of Zurich
Faculty Faculty of Economics, Business Administration and Information Technology
Number of Pages 220
Date 1990
Zusammenfassung Die Produktivität eines Softwareingenieurs hat sich, ungeachtet aller Fortschritte im Hard- und Softwarebereich, in den letzten 20 Jahren nicht entscheidend verbessert. Der Begriff "Softwarekrise" ist nicht nur ein Schlagwort, sondern charakterisiert die Realität der Softwareherstellung in vielen Bereichen immer noch allzu gut. Die erzielten Fortschritte wurden von den gestiegenen Anforderungen immer wieder neutralisiert. Die Softwareentwickler bekamen zwar immer bessere Betriebssysteme, Programmiersprachen und Entwicklungsumgebungen zur Verfügung gestellt, grundsätzliche Probleme blieben jedoch bislang ungelöst. So ist es nicht gelungen, Spezifikations- und Designmethoden soweit zu entwickeln, daß diese vom Softwareingenieur akzeptiert und mit starker Werkzeugunterstützung auch im großen Maßstab angewendet werden können. In dieser Hinsicht scheint sich auch in naher Zukunft keine allgemeine Lösung abzuzeichnen. Die Kreativität des Softwareingenieurs bleibt hier das zentrale Moment. Ein grundsätzliches Problem ist das der Wiederverwendbarkeit von Software. In Ingenieurwissenschaften sind Halbfabrikate und Bausteine ein unverzichtbarer Bestandteil des Problemlösungsprozesses, in der Informatik wurden sie bis anhin kaum eingesetzt. Die objektorientierte Programmierung bietet nun zumindest einige Konzepte zur Lösung des Problems der Wiederverwendbarkeit von Software an. Eingeleitet wurde diese Entwicklung vom Smalltalk System. Basierend auf Ideen und Konzepten der Sprachen Lisp und Simula entstand dieses System anfangs der 70er Jahre und erlebte während eines Jahrzehnts eine evolutionäre Entwicklung. In seiner heutigen Form umfaßt es unter anderem eine Programmiersprache, ein Betriebssystem, eine grafische Benutzerschnittstelle und eine große Menge von leicht wiederverwendbaren Softwarebausteinen. Smalltalk hat immer noch einen maßgeblichen Einfluß auf die Welt der objektorientierten Programmierung. Konzepte und Begriffswelt wurden in diesem Bereich entscheidend von Smalltalk geprägt. Smalltalk hat auch die weitere Entwicklung von objektorientierten Programmiersprachen stark beeinflußt. Weitverbreitete Sprachen wie C oder Pascal wurden mit für die objektorientierte Programmierung ausgestattet. Der Vorteil dieser Vorgangsweise liegt vor allem in der Aufwärtskompatibilität mit den zugrundeliegenden Sprachen. Gemeinsam ist diesen Sprachen aber auch, daß sie einige inhärente Nachteile aufweisen. Eine dritte Generation von objektorientierten Sprachen versucht nun, die Vorteile von Programmiersprachen mit statischer Typenprüfung mit denen von Smalltalk zu verbinden und auch neuere Konzepte der objektorientierten Programmierung einzubinden. Im Rahmen dieser Arbeit wurde die Sprache Chiron entwickelt. Als Vertreterin dieser dritten Generation basiert sie in weiten Teilen auf der Sprache Modula-2, verzichtet aber auf eine Aufwärtskompatibilität, da die Konzepte von Modula-2 in gewisser Hinsicht in eine Sackgasse geführt haben. Von Modula-2 wurden als wesentliche Teile die Trennung von Schnittstelle und Implementierung eines Moduls, die strenge statische Typenprüfung und vom äußeren Erscheinungsbild her die Syntax übernommen. Smalltalk hat Chiron in folgenden Bereichen beeinflußt: Einfachheit der Syntax, Polymorphismus, eine durchgängige Klassenbibliothek und umfassende Metainformation zur Laufzeit. Weitere Merkmale von Chiron sind Generizität sowie Konstruktoren und Destruktoren. Darüber hinaus wurde eine virtuelle Maschine definiert. Sie beschreibt das Laufzeitsystem von Chiron und stellt die Basis für eine Implementierung dar. Ein wichtiger Aspekt beim Design von Sprache und Laufzeitsystem war die Konzentration auf das Wesentliche. Aus diesem Grunde wurden Elemente wie Ausnahmebedingungen oder Assertionen außer Betracht gelassen. Eine Fragestellung im Rahmen dieser Arbeit war auch, wie sich Chiron auf typischen Vertretern gängiger Rechnerarchitekturen implementieren läßt und welche Anforderungen an diese Architekturen gestellt werden. Die Erfahrung mit anderen objektorientierten Programmiersprachen hat gezeigt, daß der objektorientierte Programmierstil in einigen Punkten vom prozeduralen Stil markant abweicht. Damit verschieben sich aber auch die Gewichte in den Anforderungen an Rechnerarchitekturen für Hochsprachen.
PDF File Download
Export BibTeX
EP3 XML (ZORA)