"Mit Elan kinderleicht programmieren lernen"

13.05.1977

Mit Dr. Peter Heyderhoff, GMD, und Stefan Jähnichen, Forschungsgruppe "Softwaretechnik" TU-Berlin, sprach Dieter Eckbauer

Dr. Peter Heyderhoff (41) ist Direktor des Instituts "Informatik-Kolleg" der Gesellschaft für Mathematik und Datenverarbeitung mbH" St. Augustin. Der Diplom-Physiker (Studium an der Uni Bonn) steckt seit 1963 in der Informatik-Forschung - zuerst beim Institut für instrumentelle Mathematik in Bonn und seit 1969 bei der GMD.

Stefan Jähnichen (29) ist wissenschaftlicher Assistent am Fachbereich Informatik im Institut für angewandte Informatik der Technischen Universität Berlin. Der Elektrotechnik-Ingenieur beschäftigt sich in der Forschungsgruppe "Softwaretechnik" mit der Entwicklung von Sprachen und Compilern sowie Problemen des Software-Engineering.

* Der GMD-Stand in Hannover war ein Geheimtip unter Software-Insidern: Dort wurde die neue Schulsprache Elan demonstriert. Wer hatte den Elan, Elan zu entwickeln und welche Ziele wurden damit verfolgt?

Heyderhoff: Der Sachverständigenkreis "Datenverarbeitung im Bildungswesen" hat sich im Jahre 1974 mit der Frage beschäftigt, welche Programmiersprache für den Einsatz in der Ausbildung (ganz generell im allgemeinbildenden Bereich), im Berufsschulbereich, im universitären Bereich geeignet ist. Er setzte einen "Arbeitskreis Schulsprache" (ASS) an, der 1975 dieses Problem untersuchte.

* Mit welchem Ergebnis?

Heyderhoff: Ein Ergebnis ist, daß die Programmiersprache Basic für Ausbildungszwecke ungeeignet ist. Dann empfahl ASS zwei Sprachen für die Ausbildung: Die universelle Programmiersprache Pascal, in der eingeschränkten Version Educational Subset, und Elan. Pascal gibt es seit Jahren, während Elan (Educational Language) parallel zur Arbeit des Arbeitskreises entwickelt wurde.

* Wodurch unterscheidet sich Elan von anderen universellen Programmiersprachen - etwa Basic?

Heyderhoff. Vom Sachverständigenkreis wurde festgestellt, daß es mit Basic nicht möglich ist, einen nahtlosen Übergang von einer verbalen zu einer formalen Problemlösung durchzuführen. Eine Strukturierung, wie sie bei komplexen Problemlösungen durch Aufgliederung in überschaubare Einheiten vorgenommen wird, ist wegen des fehlenden Prozedurkonzepts nicht formulierbar. Zudem läßt sich durch die eingeschränkten Bezeichnungsmöglichkeiten der Objekte eine Problemverbalisierung nicht beibehalten.

* Welche Anforderungen wurden an die neue schulorientierte Programmiersprache gestellt?

Heyderhoff: Die universelle Programmiersprache Elan soll das algorithmische Denken fördern; sie soll das strukturierte Programmieren unterstützen; sie soll aber auch das modulare Programmieren nach dem Baukastenprinzip unterstützen. Sie soll darüber hinaus eine sehr einfache Sprachstruktur haben und schließlich auf kleinen Anlagen einfach realisierbar sein.

* Ist das nicht ein bißchen viel auf einmal? Wurden Prioritäten gesetzt?

Jähnichen: Der zunächst wichtigste Punkt ist wohl der, daß die Sprache Ausdrucksmöglichkeiten für die Strukturierung von Problemlösungen enthalten soll, wodurch sich die schrittweise Verfeinerung vom Problem zur konkreten Lösung in der Sprache dokumentieren läßt.

* Welches Strukturkonzept liegt dieser Sprache zugrunde?

Jähnichen: Elan unterstützt die Methode der strukturierten Programmierung durch das Sprachelement "Refinement". Ein Refinement ist Ausdrucksmittel innerhalb von Prozeduren zur schrittweisen Verfeinerung. Verfeinerungen innerhalb einer Prozedur werden benannt und später definiert. Verfeinerungen oder Refinements sind somit Bestandteile einer Prozedur und dienen nur einem Anwendungszweck. Dies unterscheidet sie stark von Prozeduren, die parameterisierbar sind und in Elan auch nicht geschachtelt benutzt werden dürfen.

* Das hört sich ja furchtbar kompliziert an.

Heyderhoff: Das Refinement-Konzept ist ein Konzept, das von Lehrern besonders begrüßt wird. Dieses Konzept ist in seiner syntaktischen Schlichtheit nicht mehr zu überbieten.

* Nachgefragt: Was wird von den Elan-Benutzern als Vereinfachung begrüßt?

Jähnichen: Die Methode der schrittweisen Verfeinerung wurde bisher immer - unter Benutzung eines Hilfsmittels - in Zwischenschritten vollzogen. Solche Hilfsmittel waren Flußdiagramme oder auch Struktogramme. Das Refinement-Konzept in Elan erlaubt es, die Problemlösung direkt in einer natürlichen Programmiersprache zu schreiben, und zwar in einer dem Programmierer verständlichen Art

und Weise.

* Welche Methoden des Software Engineering wurden bei der Entwicklung von Elan berücksichtigt?

Heyderhoff: Dem Software-Engineering liegen drei anerkannte Grundprinzipien zugrunde, die bewußt oder unbewußt jeder erfahrene Anwendungsprogrammierer oder Systemprogrammierer beherrscht, nämlich 1. Das Prinzip, daß man bei der Erstellung von Programmen sich auf einen minimalen Vorrat von Kontrollstrukturen beschränkt; knapp gesagt: "Goto-Freiheit"; 2. Das Prinzip der "Softwaremaschine", daß man bei der Entwicklung von Programmen schichtenweise vorgeht und baukastenartig größere Programmsysteme zusammensetzt. 3. Das Prinzip der Datenabstraktion, daß man nämlich bei der Entwicklung von Programmen nicht nur die Programme abstrakt zusammensetzt, sondern auch kompliziertere, dem Problem angemessene Datentypen schafft und durch geeignete Zugriffs-Prozeduren unterstützt. Das Besondere der Sprache Elan ist es, daß alle drei Prinzipien unterstützt werden.

* Darin ist eine versteckte Kritik an anderen problem-orientierten Programmiersprachen enthalten, die SP lediglich durch ein Prozedurkonzept unterstützen.

Jähnichen: Der Nachteil, Prozeduren zur schrittweisen Verfeinerung zu verwenden, liegt darin, daß die Definition dieser Verfeinerung vor ihrer Applikation geschieht. Das Refinement-Konzept in Elan läßt die Definition der Verfeinerung nur nach ihrer Applikation zu.

* Ein ganz anderer Punkt: Läßt sich in Elan auch sicher programmieren?

Jähnichen: Ja, durch das Paketkonzept und durch die Notwendigkeit der Festlegung von Schnittstellen zwischen Paketen ergibt sich die Möglichkeit, sehr sicher zu programmieren. Der Programmierer hat nicht mehr die Möglichkeit, auf die Feinstruktur seiner Datenobjekte direkt zuzugreifen. Dies ist eine wesentliche Forderung des Software-Engineering.

* Für welche Anlagen welcher Hersteller ist der Elan-Compiler verfügbar?

Jähnichen: Der Elan-Compiler ist zur Zeit für die Rechenanlagen Siemens 4004 und IBM 360/370 verfügbar. Geplant in diesem Jahr sind Implementierungen für TR 440 und eventuell für Rechner der DEC-PDP-11-Größenordnung.

* Können Sie etwas über die Compilierzeiten sagen? Die sind - zumindest für kommerzielle Sprachen - ein Wert, an dem man die Sprachen miteinander vergleicht.

Heyderhoff: Wir benutzen den Elan-Compiler im Siemens-Betriebssystem BS 2000 seit etwa einem Jahr. Es hat sich dabei herausgestellt, daß er effizienter läuft als die Übersetzer höherer Programmiersprachen wie etwa Fortran und Cobol und auch effizienteren Code erzeugt. Exakte Messungen hierzu wurden von uns allerdings nicht durchgeführt. Ausbildung in Informatik heißt, systematisches Programmieren zu vermitteln. Systematisches Programmieren wiederum bedeutet die Anwendung der schrittweisen Verfeinerung und die Anwendung der Technik der modularen Programmierung.

* Sie haben eine Reihe von Vorteilen aufgezählt, die Elan haben soll: Leicht erlernbar, leicht verständlich, zwingt zu systematischem Programmieren, erzwingt strukturierte Programmierung, unterstützt die modulare Programmierung - eigentlich die ideale Programmiersprache, auf die sich ein breiterer Kreis als die mit der Ausbildung Befaßten stürzen müßte. Sehen Sie eine Entwicklung dahin, daß Elan über den Ausbildungsbereich hinaus größere Bedeutung gewinnen kann?

Heyderhoff: Elan kann nicht nur eine reine Ausbildungssprache sein. Sie wird im Informatikkolleg der GMD nicht nur für Ausbildungszwecke, sondern bereits von Anfang an als System-Implementierungssprache eingesetzt.

* Ist Elan überhaupt zur Formulierung anderer als schulischer Problemstellungen geeignet?

Jähnichen: Das Modulkonzept in Elan erlaubt es nicht nur, kleine Programme zu schreiben, die in der Schule wahrscheinlich das Hauptanwendungsgebiet sein werden, sondern auch große Software-Systeme mit größtmöglicher Sicherheit zu erstellen. Deswegen müßte unseres Erachtens Elan besonders für Anwender interessant sein, die (wie Softwarehäuser) an der Implementierung größerer Anwendungs-Software interessiert sind.

* Soll Elan im Ausbildungsbereich zum Standard erhoben werden?

Heyderhoff: Die Verantwortung für die Sprachdefinition liegt bei der Forschungsgruppe in Berlin, die - unterstützt durch die Deutsche Forschungsgemeinschaft - diese Sprache entwickelt und definiert hat. Dadurch, daß eine einzige Stelle für die Sprachdefinition verantwortlich ist, hoffen wir, daß die Entwicklung nicht auseinanderläuft.

* Wo liegen die Grenzen dieser Sprache?

Heyderhoff: Elan ist keine Sprache für Echtzeitverarbeitung, dafür gibt es ja die Neuentwicklung Pearl. Andererseits ist Elan sicher für den gesamten Umfang, für den die universellen Sprachen Fortran und Cobol gedacht sind, voll einsetzbar. Elan enthält allerdings auch keine Elemente zur Parallelverarbeitung. Andererseits besteht aber die Möglichkeit der Erweiterung durch Pakete, die in anderen Sprachen geschrieben sind. Es ist durchaus denkbar, daß man unter Ausnutzung des Paketkonzepts von Elan ein komfortables Datenbanksystem in dieser Sprache entwickelt, daß man also Pakete schreibt, die Datenbank- funktionen realisieren.