Prospero Fortran Version 2.1 GEM

TEIL 1: Eine Programmierumgebung mit GEM-Anschluß

Für das Arbeiten mit Fortran auf dem Atari ST war der in der ST 3/87 bereits getestete Fortran-Compiler von Prospero eine gute Wahl. Hier ist der volle Fortran-77-Standard implementiert, die Arbeitsschritte entsprechen der von Großrechnern her bekannten Arbeitsweise.Ständige Programmpflege führte hier inzwischen schon zur Version 1.16. Dieser bewährte Compiler wurde nun so gründlich überarbeitet, daß man mit Recht von einem Quantensprung sprechen kann. Die neue Ausgabe heißt “Prospero Fortran for GEM”, getestet haben wir die “Version mmg 2.1 for Atari ST Computers”. Wie der Untertitel schon andeutet, gibt es diesen Compiler auch für andere Computer, nämlich für die PCs von IBM und kompatible. Damit werden nunmehr nicht nur Fortran-Programme, sondern auch Fortran-Programme mit GEM-Anwendungen portierbar.

Den Testbericht aus der ST 3/87 wollen wir hier natürlich nicht wiederholen, dennoch sind einige kurze Bemerkungen zum Arbeiten mit Fortran angebracht. Beim Programmieren in Fortran verwendet man üblicherweise einen Compiler, es wird also zunächst mit einem Editor ein Quellprogramm (auf dem Atari in eine Datei mit dem Dateityp “ .FOR ”) eingegeben; dies wird dann vom Fortran-Compiler in ein Maschinenprogramm übersetzt, das in einer weiteren Datei abgelegt wird. Auf dem Atari bekommt diese den gleichen Namen wie die Quelldatei, aber den Typ “.BIN”. Sämtliche für ein Programm benötigten Maschinenprogramme, sowie alle aufgerufenen Programmelemente aus eigenen und den Standard-Bibliotheken werden dann von einem weiteren Dienstprogramm, dem Binder (engl.: Linker) zu einem lauffähigen Programm zusammengebunden und in einer weiteren Datei abgelegt. Diese bekommt den Namen derjenigen Datei, die das Hauptprogramm enthielt, und den Typ “,PRG”. Erst diese Datei kann vom Betriebssystem geladen und ausgeführt werden.

Diese Basisdienste, also Übersetzen, Binden und auch das Zusammenfassen übersetzter Programme zu Bibliotheken, wurden bereits von der alten Version von Prospero-Fortran geboten. Die neue GEM-Version geht jedoch weit darüber hinaus. Die wichtigsten Erweiterungen sind in Stichworten:

Was wird geliefert?

Der Lieferumfang umfaßt nunmehr zwei einseitig beschriebene Disketten sowie einen Schuber mit drei Handbüchern. Die Disketten enthalten das eigentliche Fortran System, die unvermeidliche Datei README und eine umfangreiche Sammlung von Beispielprogrammen. Besonders lobend hervorzuheben ist das Programm FCHECK, mit dessen Hilfe sämtliche Dateien auf Fehlerfreiheit überprüft werden können. Hieran sollten sich einige andere Software-Anbieter einmal ein Beispiel nehmen!

Die Handbücher des Formats DIN A 5 haben nunmehr eine Ringheftung, wie man sie auch andernorts immer häufiger antrifft. Dies ist eine sicher durch die Verdreifachung des Umfangs diktierte Verschlechterung gegenüber dem stabilen Ringbuch der Vorgängerversion, wo man bei Bedarf auch selbst noch Blätter ein-legen konnte. Jedes Handbuch hat etwa 250 Seiten Umfang, die Titel lauten “Prospero Fortran for GEM”, “Prospero Fortran AES Bindings” und “Prosper Fortran VDI Bindings”.

Zunächst wird man sich dem “Prospero Fortran for GEM” widmen, das den Untertitel “Version mmg 2.1 for Atari ST Computers” trägt. Nach einer kurzen Übersicht ist hierin die Installation für verschiedene Massenspeicher- Konfigurationen (Festplatte, Disketten, RAM-Disk ausführlich beschrieben. Der Rest des Handbuchs beschreibt die Anwendung der verschiedenen Dienstprogramme,

Details der Implementierung sowie den Fortran-Sprachumfang. Im Anhang findet man eine exakte Syntax-Definition sowie die beim Übersetzen und zur Laufzeit möglichen Fehlermeldungen. Dieses Handbuch enthält alle Informationen, die man zum Arbeiten in Fortran benötigt.

Die höheren Weihen der GEM-Programmierung verspricht das Studium der beiden anderen Handbücher, die offensichtlich auch für die Implementierung auf MS-DOS-Rechnern gelten. Hier fehlen dann leider auch alle speziellen Hinweise für den ST; es wird ganz präzise nur die Schnittstelle zwischen Prospero Fortran und GEM beschrieben, indem die hierzu bereitgestellten Unterprogramme in vorbildlicher Weise übersichtlich, vollständig und durch Beispiele erläutert werden. Hier wird gleich einmal vorgeführt, wie ein Fortran-Programmierer seine eigenen Programme dokumentieren sollte.

Die Werkbank

Als erstes fällt dem Benutzer das Programm F-BENCH.PRG, nebst zugehöriger RSC-Datei auf, welches die sogenannte “Work-bench” zur Verfügung stellt. Diese Werkbank entpuppt sich als ein Programm im vertrauten GEM-Gewand mit vielen

Rollmenüs und macht ihrem Namen alle Ehre: Zunächst einmal ist hier ein Editor integriert, der bis zu vier Texte gleichzeitig bearbeiten kann. Bisher konnte die Programmentwicklung in Fortran recht langweilig werden: Der gesamte Zyklus Editieren-Übersetzen-Binden ist auch bei der kleinsten Programmänderung stets neu zu durchlaufen. Hierfür gibt es natürlich auch schon verschiedene Hilfsmittel, auf dem Atari etwa MS-DOS- oder Unix-ähnli-che Befehlsinterpreter mit der Möglichkeit von Befehlsdateien. Was das neue Pro-spero-Fortran hier bietet, ist allerdings noch bequemer: Ohne die Werkbank zu verlassen, kann das Programm in dem gerade aktiven Textfenster durch jeweils eine einzige Tastenkombination übersetzt, gebunden und ausgeführt werden! Aber das ist noch lange nicht alles: Mit Hilfe der Rollmenüs sind nun viele Dinge möglich, von denen man bisher allenfalls zu träumen wagte: Querverweislisten erstellen, einen Debugger aktivieren, zwischendurch mal andere Programme starten. Nach allen Tätigkeiten findet man sich, wenn keine Bomben zu sehen waren, an der Werkbank mit dem zuletzt bearbeiteten Text wieder. Die Werkbank ist somit eine in sich geschlossene, sehr leistungsfähige Entwicklungsumgebung, die ein Fortran-Programmierer im Laufe seiner Arbeit im Grunde nie verlassen muß.

Aber nun mal der Reihe nach: Nach dem Starten der Werkbank bekommt man, wie in Bild 2 zu erkennen ist, acht Menüs. “Desk” bietet das übliche; Accessories bleiben also auch auf der Werkbank verfügbar. “File” stellt die gewohnten Dateioperationen eines Editors zur Verfü-gung, man kann auch den Inhalt des Blockpuffers in eine Datei schreiben und umgekehrt, ebenso kann in diesem Menü die Werkbank verlassen werden. Im Menü “Block” sind die von Wordstar her bekannten Blockoperationen möglich. “Find” bietet genau das, was man vermutet, und daneben noch die Funktion “Goto line number”. Mit “Compile” kann man den gerade bearbeiteten Text übersetzen oder, und das geht wirklich viel schneller, mal eben nur die Syntax prüfen. Hier lassen sich aber auch andere Dateien übersetzen und die Compiler-Optionen einstellen. Mit der Funktion “Cross reference” kann zu einer beliebigen Quell datei eine Querverweisliste erstellt werden. Diese enthält, gesondert für jede Programmeinheit, für alle verwendeten Namen und Anweisungsnummern eine Liste der Zeilennummern, in denen diese Vorkommen. Die Ausgabe erfolgt wahlweise auf den Drucker, eine Datei (mit Typ “.XRF”) oder in ein noch freies Fenster des Editors.

Was man im Menü “Link” erreicht, ist klar, wahlweise kann hier ein reines TOS-Programm erzeugt oder die GEM-Umgebung hinzu-gebunden werden. Die Verwendung eigener Link-Dateien. in denen weitere benötigte Dateien und Bibliotheken aufgeführt sind (Beschreibung siehe ST 3/ 87), ist ebenfalls möglich. Im Menü “Run” werden das gerade erzeugte oder beliebige andere Programme aufgerufen; man kann eine Parameterzeile an das aufgerufene Programm übergeben und angeben, ob das Programm nur unter TOS oder mit GEM läuft. Bei einem TOS-Programm wird vor dem Programmstart der Bildschirm gelöscht und nach Ende des Programms ein Tastendruck abgewartet, bevor die Werkbank sich wieder mit ihrem Bildschirminhalt meldet. Dieses Anhalten ist nun mehr eine Eigenschaft der Werkbank und nicht mehr, wie bei der Vorgänger-Version, des Programms selbst. Eine ganz interessante Funktion dieses Menüs ist “Debug program”, wohinter sich der symbolische Debugger PROBE verbirgt. Auf dieses leistungsfähige Hilfsmittel werden wir in der nächsten Folge noch genauer eingehen.

Ein übersichtliches Fortran-Programm auf der Werkbank

Programmierbare Funktionstasten

Im letzten Menü, “Options”, können die gewählten Einstellungen gespeichert werden. Dazu gehören neben den bisher erwähnten Parametern auch die Tabulatorweite sowie die Möglichkeit, für die verschiedenen Dateiarten unterschiedliche Pfadnamen anzugeben. Arbeitet man mit einer Festplatte, so erhöht dies die Übersicht; bei einer Ramdisk und einer Diskettenstation kann man sich so ein vernünftige Arbeitsumgebung zurechtbasteln. Gespeichert wird aber auch die Belegung der Funktionstasten, diese lassen sich nämlich frei mit beliebigen Tastenkombinationen belegen. Bis zu 32 Zeichen je Funktionstaste sind möglich; Kombinationen mit der Control-Taste sind erlaubt, nicht je-doch die Sondertasten (Tab, Return, Pfeile usw.), leider auch keine Kombinationen mit der Alternate-Taste Mehrfachbelegung, etwa mit Shift und Alternate als Umschalter, sind ebenfalls nicht vor-gesehen.

Der Editor: Nostalgie

Das mitgelieferte Textverarbeitungsprogramm wird vielen gestandenen CP/M-Anwendern wie ein alter Bekannter im GEM-Gewand Vorkommen. Obwohl, wie unter GEM so Sitte, alle Funktionen über Rollmenüs auswählbar sind und Maus und Editiertasten wie erwartet funktionieren, sind auch fast alle vom Wordstar noch bestens bekannten Kombinationen mit der Control-Taste implementiert. Für geübte Tipper ist dies nach wie vor noch die schnellste Möglichkeit, den Zeiger zu bewegen, und einfache Operationen durchzuführern. Ergonomischer sind die Word-star-Sequenzen allemal. Hier ist eine beispielhafte Synthese aus bewährten, althergebrachten Arbeitsweisen und neuer Technik gelungen. Bei purer Nachahmung hat man es indes nicht belassen: Mit Hilfe der Alternate-Taste läßt sich bei vielen Befehlsfolgen der Vorsatz ‹Control,K› einsparen. Der Editor ist recht klein - die gesamte Werkbank umfaßt einschließlich RSC-Datei gerade 86592 Byte - und schnell. Dafür hat man sich allerdings bei den Funktionen auf das Wesentliche beschränkt: Es handelt sich um einen reinen ASCII-Editor. Eine Druckeranpassung ist ebensowenig implementiert wie Textattribute, also Unterstreichen, Schrägstellen und ähnliches. Die reine Funktion ist aber im Hinblick auf den geplanten Einsatz sinnvoll und legitim.

Menüs oder Tasten

Viele andere Funktionen, wie etwa Übersetzen, Binden und Ausführen, können nicht nur über Rollmenüs, sondern wahlweise auch durch eine Tastenkombination mit der Alternate-Taste ausgelöst werden. Die Werkbank wird dadurch wirklich sehr bequem. Die Alternate-Sequenzen sind übrigens denen des Macintosh nachgebildet, auch hier scheint sich also ein Standard abzuzeichnen. Bis zu vier Texte können, in ebenso vielen Fenstern, gleichzeitig bearbeitet werden; dabei kann man Blöcke in einen gemeinsamen Pufferspeicher übernehmen und zwischen den Fenstern austauschen. Das Markieren von Blöcken mit der Maus ist hier übrigens besser implementiert als sonst üblich: Ein so markierter Block kann inmitten einer Zeile beginnen, über mehrere Zeilen gehen und dann auch noch mitten in einer Zeile enden. Viel Liebe steckt auch hier noch im Detail, die Funktion “Save” etwa prüft, ob seit dem letzten Speichern am Text überhaupt etwas verändert wurde und arbeitet nur dann, wenn dies auch der Fall ist.

Nobody is perfect

Einige kleine Mängel sind uns dabei aber auch aufgefallen. Zunächst einmal gibt es Fehlfunktionen, die darauf zurückzuführen sind, daß die getestete Version nicht an die deutsche Tastatur angepaßt ist. Umlaute und das ß werden nicht akzeptiert. Ebenso wird die Funktion “Check syntax” nicht auch durch ‹Alternate,Y›, wie in der Anleitung beschrieben, aufgerufen, sondern mit ‹Alternate,Z›. Das Löschen mit ‹Control,Y› funktioniert dagegen wie erwartet. Hier wird offensichtlich der ASCII-Code geprüft, bei Kombinationen mit dem Umschalter Alternate dagegen der Scan-Code der gedrückten Taste. Die vorgewählte Größe der Textfenster nutzt nicht den gesamten auf dem Bild-schirm verfügbaren Raum aus, dies könnte im Hinblick auf die in Fortran bestehende Einschränkung der Quellzeilen auf 72 Spalten ja sehr sinnvoll sein. Völlig unverständlich ist es jedoch, daß die Fenster in der Voreinstellung gerade 71 Spalten breit sind. Auch hier sollte man noch ein wenig nachbessern. Alles in allem hinterläßt der Editor aber einen so guten Eindruck, daß man ihn bald auch für andere kleine Arbeiten, unabhängig von Fortran, einsetzt. Solange eben keine Umlaute gebraucht werden!

Erweiterter Sprachum-fang

Wie schon die Vorgängerversionen l.xx, beherrscht auch die Version 2 des Compilers den vollen Sprachumfang von Fortran 77. Dies ist für Compiler auf PCs keineswegs selbstverständlich! Zusätzlich gibt es schon kleine Erweiterungen, die dem sich immer fester abzeichnenden neuen Standard Fortran 8X entnommen sind: Namen dürfen jetzt bis zu 31 Zeichen lang sein und den Unterstrich enthalten, Kleinbuchstaben in Namen sind offiziell erlaubt und werden von Großbuchstaben nicht unterschieden. Weiter gibt es, ähnlich wie in Assembler-Programmen, die Möglichkeit von Inline-Kommentaren: Alles, was in einer Befehlszeile auf ein Ausrufezeichen (!) folgt, wird als Kommentar verstanden und ignoriert. Das Ausrufezeichen selbst natürlich auch, und das alles auch nur dann, wenn das Ausrufezeichen nicht Teil einer Textkonstanten ist. Fortran-Programme können damit ganz schön übersichtlich werden.

Empfehlung

Zusammenfassend kann man sagen, daß Fortran auf dem Atari nun noch attraktiver geworden ist. Gerade durch seine, verglichen mit Großrechnern, hohe Benutzerfreundlichkeit empfiehlt sich der Atari dadurch einmal mehr als geeignetes Werkzeug zur Programmentwicklung. Einige Ecken und Kanten der Implementierung sollten noch abgeschliffen werden, dies wird die Aufgabe zukünftiger Updates sein und von Prospero wohl mit gewohnter Zuverlässigkeit gelöst werden. Wer auf dem Atari in Fortran programmieren möchte, ist mit diesem Compiler in der Tat gut bedient. Nach diesem allgemeinen Überblick werden wir dem Compiler im zweiten Teil etwas genauer auf den Zahn fühlen: Einige Benchmarks sind angesagt, der Debugger darf zeigen, was er kann und mit den GEM-Routinen wird ein wenig gefensterlt. Freuen Sie sich also jetzt schon ein wenig darauf, vielleicht können beim nächsten Mal ja schon einige Fortranisten die Beispiele auf ihrem Atari nachvollziehen.

Hardware-Voraussetzungen: Atari ST mit

Sinnvolle Ergänzung:

Dr. Volker Kunz



Aus: ST-Computer 02 / 1988, Seite 144

Links

Copyright-Bestimmungen: siehe Über diese Seite