Pro-Fortran und Pro-Pascal: New Look aus dem GEM-Atelier

Pro-Fortran und Pro-Pascal, zwei bewährte Programmiersprachen mit neuer Benutzeroberfläche

Scharfer Verweis: die Crossreferenz-Liste enthält alle Variablen- und Prozedurnamen mit den Zeilennummern ihres Auftretens

An keiner Stelle entzündet sich der Generationenkonflikt unter den Programmierern heftiger, als an der Programmierumgebung und der Benutzerführung ihrer jeweils heißgeliebten Programmiersprache. Für den kernigen Bitbeißer-Veteranen mit seinen handgestanzten Lochkarten bestand die Benutzerführung allenfalls aus den Wegweisern zum Raum mit den Kartenlesegeräten. Was sollte ein solches »Urviech« (wohlwollend gemeinter bayerischer Ausdruck) denn auch mit dem modernen Grafik-Schnick-Schnack von GEM und Konsorten beim Programmieren anfangen! Aus Überzeugung scheut er Fenster, Icons und Pull-Down-Menüs wie der Teufel das Weihwasser.

Zum Leidwesen dieser aussterbenden Programmierer-Rasse haben sich die Hersteller von Programmiersprachen nach und nach vom Weg der reinen Tugend abbringen lassen und versorgen die »Turnschuh-Bubis« der verzärtelten Jungprogrammierer-Garde mit Computersprachen, deren komfortable Grafik-Shells die besorgniserregende Verweichlichung immer rascher vorantreiben. In jüngster Zeit fielen nun auch noch zwei der letzten Bastionen ehrwürdiger Programmierertradition: Die Neuauflagen des Pro-Pascal- und des Pro-Fortran 77-Compilers aus dem englischen Softwarehause Prospero sind in eine grafische Benutzeroberfläche eingebunden. Leidet aber deshalb ihre Leistung?

Unter der Versionsnummer 2.1 werden diese beiden Software-Pakete (Preis: je 328 Mark) jeweils in einem Ordner mit drei Handbüchern ausgeliefert. Das erste Handbuch beschäftigt sich mit den System-Programmen, der Programmiersprache und dem Betriebssystem, die beiden anderen enthalten eine ausführliche Dokumentation der vollständigen AES- und VDI-Bibliotheken.

Auf den ersten Seiten führen die System-Handbücher kursartig in die Arbeit mit dem jeweiligen Compiler ein, gefolgt von einer detaillierten Beschreibung aller System-Komponenten.

Der nächste Teil behandelt einige Atari-spezifische Themen wie Prozessor, Dateiformat, Speicheraufbau und das Einbinden von Assembler-Unterprogrammen. Der dritte Abschnitt der Anleitung stellt eine vollständige Beschreibung von Sprachumfang und Syntax dar. Im letzten Teil stehen das ST-Betriebssystem und der Aufruf von BIOS-, XBIOS- und GEM-DOS-Routinen im Mittelpunkt. Die Systemhandbücher gehen selbstverständlich auf die spezifischen Erfordernisse der jeweilige Computersprache ein.

Nahezu identisch dagegen sind die Handbücher für AES (Application Environment Services, also Dienstroutinen für Benutzeroberflächen) und VDI (Virtual Device Interface, also hardwareunabhängiges Grafik-Interface). Nach einer kurzen Einführung über die Programmierung des AES beziehungsweise VDI werden alle Routinen sehr detailliert erläutert, in vielen Fällen noch ergänzt durch ausführliche Programmbeispiele. Bis auf die fehlende Dokumentation der verschiedenen GEM-Dateiformate (.GEM, .IMG und .FNT) findet der erfahrene Programmierer fast alle Informationen, die er zur Entwicklung von professionellen GEM-Programmen benötigt.

Die System-Software der beiden Computersprachen-Pakete füllt zwei einseitig formatierte Disketten. Ein Blick in die Inhaltsverzeichnisse zeigt den Lieferumfang: die GEM-getriebene Grafik-Benutzeroberfläche (Shell), Compiler, Linker, Debugger, andere Hilfsprogramme. Einen Texteditor findet man zunächst nicht.

Das Geheimnis lüftet sich allerdings unmittelbar nach dem Laden der Shell. Der Editor, der Programmtexte in vier Fenstern gleichzeitig verwaltet, ist in die Fortran-Bench beziehungsweise Pascal-Bench genannte Benutzeroberfläche eingebunden.

Er hinterließ einen positiven Eindruck. Das Scrolling der Texte durch die Fenster arbeitet flüssig und Standardfunktionen wie »Suchen & Ersetzen« oder Anspringen bestimmter Zeilen lassen, sich rasch erledigen.

Zur Markierung eines Blockes braucht man sich keine Tastaturkombinationen zu merken oder in Pull-Down-Menüs herumzusuchen, obwohl beides im Editor vorgesehen ist. Man muß nur wie bei »1st Word Plus« mit gedrückter Maustaste über den zu markierenden Text fahren. Dies funktioniert sogar noch über den Fensterbereich hinaus. Verläßt man nämlich während des Markierens das Fenster nach oben oder unten, wird der Text iii die jeweilige Richtung gescrollt und markiert.

Alle Editor-Funktionen lassen sich auch über die Tastatur erreichen, was dem geübten Anwender viel Zeitersparnis bringt. Die Aufrufe sind weitgehend Wordstar-kompatibel gehalten.

Nach der Fertigstellung kann man den Quelltext aus dem Editor heraus compilieren, zu einem lauffähigen Programm linken und anschließend das fertige Programm austesten. Ebenso einfach lassen sich die Optionen der einzelnen System-Module einstellen. Der Quelltext bleibt im Speicher erhalten und steht beim Auftreten eines Fehlers ohne Nachladen zum Verbessern bereit.

In einem Zug: compilieren und linken direkt aus dem Editor

Zur Erleichterung der Fehlersuche liegen den beiden Paketen diverse Tools bei. Der Crossreferenz-Generator erzeugt eine Liste, die alle Variablen- und Prozedurnamen in Quelltext und Include-Dateien den Zeilennummern ihres Auftretens zuordnet. Noch wertvoller bei der Korrektur ist der Debugger »Probe«. Auf Quelltext-Ebene »entwanzt« man damit die übersetzten Programme. Probe ist jedoch auf bestimmte Compiler-Einstellungen, wie zum Beispiel auf die Einfügung der Zeilennummern des Quelltextes in das lauffähige Programm angewiesen.

Der Debugger erlaubt es dem Benutzer, den Programmablauf Zeile für Zeile zu verfolgen und zu beeinflussen. Variablen lassen sich während des Programmablaufs abfragen oder ändern. Auf bestimmte Ereignisse hin wird das Programm unterbrochen. Die Zeile

	go i=100

stoppt beispielsweise das Programm, wenn die Variable »i« den Wert 100 angenommen hat.

Leider fehlen dem Debugger Probe Funktionen zum Zugriff auf die Maschinensprache-Ebene. Disassembler- und Hexdump-Routinen sind nicht enthalten. Allerdings dürften derartige Funktionen für reine Hochsprachen-Programmierer entbehrlich sein.

Es bedarf eines gut durchdachten Systemaufbaues, wenn zwei vom Konzept und von der Anwendung her so unterschiedliche Programmiersprachen wie Pro-Pascal und Pro-Fortran miteinander harmonieren sollen. In dieser Hinsicht war der Firma Prospero mit den neuen GEM-Versionen ihrer bekannten Produkte viel Erfolg beschieden. Die Gemeinsamkeiten liegen jedoch nicht nur in der Benutzeroberfläche, sondern auch in den Modulbibliotheken, die beide Sprachen gemeinsam benutzen können. Die wesentlichen Unterschiede liegen naturgemäß in den Compilern.

Der Pro-Fortran 77-Compiler stand bereits in den Vorläuferversionen als Programmiersprache für den Atari ST praktisch konkurrenzlos da. In letzter Zeit sind zwar weitere Fortran-Compiler auf den Markt gebracht worden, den Erfolg der Prospero-Version konnten sie allerdings kaum schmälern.

Die beiden Prospero-Programmiersprachen im neuen GEM-Look: nichts mehr für Urviecher

Mit erweitertem 77-Standard

Im Prospero 2-Pass-Compiler ist der volle Fortran-77-Standard implementiert. Sinnvolle Erweiterungen, wie Hexadezimalzahlen oder der Include-Befehl, sind ebenfalls vorhanden. Pro-Fortran stellt die Datentypen Ein-, Zwei- und Vier-Byte-Integer, Real, Doubleprecision, Complex, Logical und Character zur Verfügung. Die Ablaufgeschwindigkeit der fertigen Programme ist sehr hoch. Eine ähnlich gute Beurteilung kann man der Rechengenauigkeit zusprechen.

So benötigt Pro-Fortran für das Programm »Sieve« (Sieb des Eratosthenes) bei zehn Durchgängen 4 Sekunden und damit genausowenig wie der Mega-max-C-Compiler. Zwar benutzt dieser Registervariablen und arbeitet damit erheblich schneller, es wird jedoch deutlich, daß der Fortran-Compiler über eine sehr gute Integerarithmetik verfügt.

Seine wahre Stärke zeigt Pro-Fortran im Umgang mit Fließkommazahlen. Kaum einem anderen Compiler (oder Interpreter) gelingt es, einen solch schnellen und genauen Programmcode zu erzeugen. So wurden bei einem Geschwindigkeitstest für Fließkommazahlen in einer Schleife verschiedene Funktionen (TAN, SQRT, LOG) und deren inverse Funktionen (ATAN, SQR, EXP) aufgerufen. Der Test ergab nach einer Rechenzeit von 104 Sekunden eine Abweichung von weniger als 1 x 10-6.

Zum Vergleich: Pascal Plus hatte nach 157 Sekunden das Ergebnis mit einer Abweichung von 0,5 berechnet. Megamax-C benötigt bei gleicher Genauigkeit wie Pro-Fortran über 700 Sekunden!

Gegenüber den älteren Versionen muß die Runtime-Bibliothek »PRL« nicht mehr resident im Rechnerspeicher vorhanden sein, sondern wird in voller Länge beim Linken in jedes Fortran-Programm integriert. Allerdings befrachtet Pro-Fortran jedes noch so kleine Programm mit mindestens 18 KByte Runtime-Bibliothek. Dies wirkt sich besonders bei kurzen Programmen als störend aus.

Eher enttäuschend verliefen die Tests bezüglich der Arbeitsgeschwindigkeit von Compiler und Linker. Gegenüber der ersten Version scheinen sie sogar noch etwas langsamer geworden zu sein. So braucht der Compiler für das Programm Sieve auf einer halbvollen Festplatten-Partition 16 Sekunden, der Linker gar 24 Sekunden. Auch die Arbeit auf einer RAM-Disk brachte keine entscheidende Verbesserung.

Über die Stärken im mathematischen Bereich hinaus bietet Pro-Fortran eine Vielzahl an Funktionen an. Es existieren Funktionen, die andere Programme laden und starten und ihnen sogar Parameter in einer Kommandozeile übergeben. Wer gerne im Speicher herummogelt, kann auf verschiedene PEEK- und POKE-Befehle zurückgreifen.

Betriebssystem-Zugriffe erfolgen über die Routinen BIOS, XBIOS und SYS. Leider haben die Programmierer bei der Umsetzung des Betriebssystem-Zugangs keine besonders glückliche Hand bewiesen. Bei den meisten anderen Compilern lassen sich die Systemroutinen als Funktionen mit den entsprechenden Parametern aufrufen. Bei Pro-Fortran dagegen übergibt man den Funktionen nur den Namen eines Integer-Feldes, das die Parameter enthält. Der Aufbau eines solchen Feldes nimmt jedoch viel Arbeitszeit und Speicherplatz in Anspruch.

Großen Wert legt Prospero offensichtlich auf eine Optimierung der GEM-Routinen (offiziell heißt das Programm auch »Prospero Fortran for GEM«). Pro-Fortran kann stolz auf eine wirklich vollständige Bibliothek der AES- und VDI-Aufrufe verweisen. Da Pro-Fortran in der gleichen Version auch für das MS-DOS-Betriebssystem implementiert ist, hat man bei Prospero wohl nicht lange gefackelt und alle Erweiterungen der GEM-Version 2.2 (auf MS-DOS seit längerem vorhanden) auf den ST übertragen. Leider unterstützt das originale ST-GEM die vielen schönen Befehle nicht, wohl aber die ST-Implementierung der neuen GEM-Version 2.2 der Firma ABC in Holland.

Doch auch im ST-GEM bietet Prospero mehrere Unterprogramme für den Umgang mit AES. So kann man zum Beispiel mit nur einem Aufruf auf Editstrings innerhalb von Dialogboxen zugreifen. Ohne dieses sinnvolle Unterprogramm muß größerer Aufwand betrieben werden, um alle Strukturen und Zeiger zu initialisieren, die zum Auslesen oder Ändern des Strings erforderlich sind.

Im Gegensatz zum Fortran-Compiler konnte sich Pro-Pascal auf dem deutschen Markt nie richtig durchsetzen. Dies liegt einerseits sicherlich an der hochklassigen Konkurrenz, andererseits aber schreckten einige Eigenheiten der älteren Versionen, beispielsweise die separate Runtime-Bibliothek, viele Pascal-Freaks ab.

Wie schon Pro-Fortran bindet auch Pro-Pascal die Routinen dieser »Prospero Runtime Library« (PRL) direkt in die Programme ein. Auch die Arbeitsgeschwindigkeit der compilierten Programme entspricht etwa dem Tempo entsprechender Fortran-Programme, die Rechengenauigkeit ist fast identisch.

Deutliche Unterschiede bestehen bei Funktionen, die man in die Rubrik »Sonstiges« einordnen könnte, wie das Testen, Löschen, Setzen und Invertieren einzelner Bits. Ein spezieller »Blockmove«-Befehl dient dem Verschieben ganzer Speicherbereiche, wie zum Beispiel Felder oder den Bildschirmspeicher. PEEK und POKE funktionieren leider nur Byte-weise, dafür ist jedoch auch der geschützte Speicherbereich verfügbar.

Die Parameter der BIOS- und XBIOS-Aufrufe müssen leider genauso umständlich wie beim Fortran-Compilerln einem Integerfeld übergeben werden. Lediglich bei den GEMDOS-Auf-rufen hat man sich bei Prospero eine Vereinfachung einfallen lassen. Die speziellen Aufrufe »SYS0« - »SYS9« stellen alle Parameterkombinationen für GEMDOS-Routinen bereit. Das System-Handbuch enthält die Syntax der Aufrufe in einem gesonderten Abschnitt. Man fragt sich unwillkürlich, warum nicht wie bei anderen Compilern In-clude-Dateien existieren, in denen die nötigen Vereinbarungen verzeichnet sind, um namentliche Systemaufrufe zuzulassen.

Wesentlich komfortabler sind dagegen die AES- und VDI-Routinen zu handhaben. Alle GEM-Routinen, inklusive der neuen GEM 2.2-Aufrufe und der Prospero-eigenen Erweiterungen, sind sehr gut dokumentiert.

Unterprogramme, die in Pascal oder in Fortran geschrieben sind, lassen sich ohne weiteres in Programme der jeweils anderen Sprache einbinden. Mit Hilfe einiger in Fortran geschriebener Unterprogramme profitieren auch Pascal-Programme von den hohen Rechenleistungen der Computersprache Fortran.

Die beiden Programmiersprachen Pro-Fortran 77 und Pro-Pascal haben sich in unserem Test als komfortabel zu bedienende, professionelle Entwicklungssysteme mit hervorragender und umfassender Dokumentation erwiesen. Dank der neuen grafischen Benutzeroberfläche wird es auch dem Einsteiger nicht schwerfallen, sich in eines dieser beiden Systeme einzuarbeiten. Beide Compiler gehören ohne jeden Zweifel zu den guten Vertretern ihres Faches. Der Pro-Fortran-Compiler steht weiterhin fast konkurrenzlos da. Pro-Pascal dürfte es allerdings angesichts sehr leistungsstarker Mitbewerber wesentlich schwerer haben, sich auf dem ST-Softwaremarkt durchzusetzen.

(Michael Bernards/Wolfgang Fastenrath/Ulrich Hofner)

Vertrieb: Philgerma, Barer 32,8000 München 20

Steckbrief

Programmname: Pro-Fortran/Pro-Pascal
Preis: je 328 Mark
Hersteller: Prospero Software UK

Stärken:
GEM-Oberfläche mit integriertem Editor ■ sehr schneller Code ■ komplette und erweiterte GEM-Library ■ Source level Debugger ■ Fortran 8x Erweiterungen (nur Fortran) ■ gute Handbücher

Schwächen:
Programmcode zu lang ■ Compiler und Linker langsam ■ Systemaufrufe umständlich



Aus: ST-Magazin 04 / 1988, Seite 41

Links

Copyright-Bestimmungen: siehe Über diese Seite