Gratis Programmierpaket: Vollwertiges Modula-2-System fast zum Nulltarif

Die Modula-Welle rollt, wie die Vielzahl der Modula-Systeme beweist. Der Sprachschöpfer, Professor Wirth von der Eidgenössischen Technischen Hochschule (ETH) in Zürich, scheint sich nicht im elfenbeinernen Turm der Wissenschaft einzuschließen, sondern er beweist immer wieder sein Gespür für die Bedürfnisse der Programmierer.

Modula deckt von der Manipulation eines einzelnen Bits im Speicher bis zu komplexesten Problemlösungen fast die ganze Bandbreite der denkbaren Anwendungen ab. Bei dem hier vorgestellten Modula-2-System handelt es sich um das Original des Compilers der ETH. Dieser wurde am Lehrstuhl für Prozeßrechner der Technischen Universität München auf den Atari ST übertragen. Hier entstand auch »Altex«, ein spezieller Modula-2-Editor.

Vollständiges Programmiersystem

Das komplette Paket, bestehend aus Loader, Shell, Editor, Compiler, Debugger, Linker und Bibliotheken findet Platz auf einer doppelseitigen Diskette. Lediglich 54 KByte sind nicht belegt. Die »READ.ME«-Datei ist etwa zehn DIN-A4-Seiten groß. Man muß aber einiges Wissen über den ST und die Sprache Modula mitbringen, um mit ihr auszukommen.

Beim Arbeiten mit Compilern ist es ratsam, häufig benötigte Dateien in einer RAM-Disk zu halten, um die Übersetzungszeiten zu verkürzen. Deshalb richtet das Programm beim Booten gleich eine entsprechende Arbeitsumgebung ein.

Das Modula-System starten Sie über das Programm »M2LOADER.PRG«. Dieses lädt die Shell nach. Sicher fragen Sie sich nun, warum man die Shell nicht direkt startet. Für die Antwort müssen wir etwas ausholen. Herkömmliche Compilersysteme arbeiten nach dem klassischen Ablauf Editieren — Compilieren — Linken. Prinzipbedingt benötigt diese Methode viel Speicher und Zeit. Die Modula-Schöpfer haben eine bestechend einfache Lösung dieses Problems gefunden: Der Loader übernimmt die Verwaltung aller im System verwendeten Teilmodule. Er hält sie bei Bedarf resident im Speicher und stellt sie allen Programmen zur Verfügung. Das Linken fällt also weg, da der Loader die entsprechenden Module beim Laden automatisch einbindet. So verbraucht der Compiler wenig Speicher und erreicht sehr gute Turnaround-Zeiten.

Der Linker kommt nur dann zum Einsatz, wenn Sie eine Stand-alone-Version eines Programms erzeugen. Das »Loadtime-Linking-Konzept« — so heißt das beschriebene Verfahren — funktioniert aber nur, solange die Programme innerhalb des Modula-Systems laufen.

Der Debugger besitzt fünf Fenster. Darin zeigt er

Eine tolle Sache ist die Anzeige strukturierter Daten oder verketteter Listen. Sie klicken nur das gewünschte Element an, um es genauer zu inspizieren. Bei verketteten Strukturen hangeln Sie sich über die Vor- und Rückzeiger durch die ganze Liste. Genial einfach!

Wo viel Licht ist, gibt es auch Schatten: Der Aufbau der Fenster geht quälend langsam vonstatten und prinzipbedingt fehlt echtes Tracing. Außerdem finden sich noch ein paar dicke Fehler im Debugger. Setzt man beispielsweise einen HALT-Befehl innerhalb eines »WITH Record DO ... END«-Konstruk-tes, so bringt der Debugger spätestens nach dem zweiten Aufruf das gesamte System derart durcheinander, daß nur noch ein harter Reset hilft.

Nun erzeugen wir eine Stand-alone-Version eines Programmes. Also dann: Linker aufrufen, Programm starten. Leider geht es nicht ganz so einfach. Da innerhalb des Modula-Systems verschiedene Funktionen wie Textausgabe oder Exceptionbehandlung zur Verfügung stehen, die sonst das Anwenderprogramm selbst erledigt, ergeben sich nach dem Lauf des Linkers teilweise unerwartete Reaktionen. Auch bei der Verwendung der Basepage oder des Heaps ist auf diese Besonderheiten Rücksicht zu nehmen.

Während also der Linker keine Probleme bereitet, ist das Ergebnis, das er liefert, nicht ganz so zufriedenstellend. Da außerhalb des Modula-Systems nicht einmal das für einfache Text- und Datenausgabe verwendete Terminal-Fenster nachgebildet wird, dürfte es dem unerfahrenen Anwender Probleme bereiten, für seine Programme eine Stand-alone-Version zu erzeugen. Abschließend läßt sich feststellen, daß der Linker eine deutliche Schwachstelle des Systems darstellt.

»Fensterln« mit Modula-2: Wirth’s Standard-Module sind nur teilweise implementiert.
Die Arbeitsoberfläche bietet auf fünf Fenstern übersichtliches Arbeiten

Die beste Programmiersprache nutzt nicht viel, wenn man jede Einzelheit erst mühsam selbst schreiben muß. Daher ist es sehr wichtig, welche Module das System dem Programmierer zur Verfügung stellt. Das Pseudo-Modul »SYSTEM«, das bei einem Modula-System immer fest im Compiler verankert sein muß, ist vollständig vorhanden. Die Schnittstelle zum Betriebssystem ist bis auf wenige dramatische Ausnahmen implementiert.

Es fehlen LINE-A — die soll man laut Atari sowieso nicht verwenden — und VDI-Escapes — da sind nur die wichtigsten vorhanden. Die von Professor Wirth vorgeschlagenen Standard-Module sind leider nur teilweise implementiert.

Das Modul »Application« stellt Prozeduren zur Verfügung, die das An- und Abmelden eines Programmes beim System, sowie das Laden einer Ressourcedatei erheblich erleichtern. Erwähnenswert unter den Bibliotheken ist noch »WindowBase«, die den Umgang mit den GEM-Fenstern stark vereinfacht. Erfreulicherweise ist dieses Modul gut dokumentiert, so daß man hier doch einiges über das »Fensterin« lernen kann. Fazit: Von dem, was diese Public-Domain-Diskette alles bietet, könnte sich so manches kommerzielle Programm eine gewaltige Scheibe abschneiden. Bevor jedoch die totale Euphorie ausbricht, noch eine deutliche Warnung: Das System ist nicht 100prozentig fehlerfrei und reagiert teilweise empfindlich auf falsche Benutzereingaben. Wer nicht bereits entsprechendes Wissen über die Programmierung des ST mitbringt, der läuft Gefahr, auf die Nase zu fallen. Die beiliegende Dokumentation ist dürftig und reicht keinesfalls aus, um sich von Grund auf einzuarbeiten. Wer mit diesen Einschränkungen leben kann, der investiert seine 10 bis 20 Mark sicher richtig, (uh)

Wertung

Name: Modula-2 Version 1.4
Preis: 10 bis 20 Mark je nach PD-Anbieter
Entwickler: ETH Zürich
Portierung: TU München

Stärken:

□ unkomplizierte Shell □ zuverlässiger Compiler □ komfortabler und schneller Editor □ konkurrenzlos günstiger Preis

Schwächen:

□ System nicht fehlerfrei □ unzureichende Dokumentation □ größere Programmfehler im Debugger □ problematischer Linker

Fazit:

Absolut billigster Weg, um an ein derart umfangreiches und leistungsfähiges Programmiersystem zu gelangen

Altex Textsysteme, Dekan-Simburger-Str. 13, 8300 Ergolding, Tel. 0871/78496


Georg Altmann
Aus: ST-Magazin 11 / 1989, Seite 36

Links

Copyright-Bestimmungen: siehe Über diese Seite