GFA-BASIC mit ergo!pro: Aus Hausschuh mach’ Rennrad

GFA-BASIC erfreut sich euch im neunten Jahr seines Bestehens ungebrochener Beliebtheit. Geschwindigkeit und Funktionsumfang haben ihm einen großen Anhängerkreis gesichert. Gleichwohl lassen die bekannten Mängel (wie z.B. die fehlende Online-Hilfe oder die spartanische Compiler-Shell) manchen GFA-Programmierer bisweilen neidisch zu anderen Systemen schielen.

Hiermit ist dank ergo!pro - so verheißt es die Werbung - endlich Schluß, denn ergo!pro stellt nicht nur die genannten Mängel ab, sondern bietet darüber hinaus eine Fülle weiterer Funktionen, die den Programmieralltag erheblich erleichtern sollen. Wie sich diese Versprechungen in der Praxis bewähren, soll dieser Test zeigen.

Tatsächlich wartet das Programm mit einem beeindruckenden Leistungsumfang auf: Von der Shell mit Projektverwaltung und dem kontextsensitiven GFA-Handbuch über einen Präprozessor bis hin zur Sourcecode-Analyse mit Fehlerdiagnose wird alles geboten, was das Programmiererherz begehrt.

ergo!pro - die Shell

Zunächst einmal kann man von ergo!pro aus alle benötigten Programme wie GFA-Interpreter, Compiler, Linker, Resource-Construction-Set, Assembler und C-System erreichen. Außerdem kann ergo!pro weitere frei definierbare Programme starten. Per Tastendruck gelangt man so schnell von einem Programm zum anderen.

Ein sehr praktisches Element ist die Projektverwaltung: Die meisten Programmierer arbeiten gleichzeitig an mehreren Programmen, so daß es naheliegt, für diese verschiedenen Projekte unterschiedliche Einstellungen vorrätig zu halten. In der Regel gehören zu einem Projekt mehrere Dateien, wie z.B. eine Resource-Datei, eine Anleitungsdatei, eine Dokumentation, evtl. Bilder und weitere Daten. Mit ergo!pro kann man nun mehrere Dateien zu jedem Projekt angeben. Zusätzlich lassen sich verschiedene „projektabhängige“ Programme definieren, die aufgerufen werden können. All diese Daten werden im Projektfenster angezeigt (siehe Titelbild).

Ruft man nun z.B. per Taste „R“ das Resource-Construction-Set auf, werden automatisch alle RSC-Dateien geladen, die Sie im aktuellen Projekt definiert haben. Natürlich geht das Spiel auch umgekehrt: Haben Sie z.B. Ihren Lieblingseditor angemeldet und dazu noch die Endungen „TXT“ und „DOC“ angegeben, genügt ein Klick auf eine TXT- oder DOC-Datei, und schon wird der Editor gestartet und ihm die entsprechende Datei übergeben, um die Datei automatisch einzuladen.

Sehr nützlich ist auch die Unterscheidung zwischen globalen und projektabhängigen Programmen. So können Sie manche Programme definieren, die sich von Projekt zu Projekt ändern (etwa ein Programm, das einen Shareware-Registrierungsschlüssel generiert), und andere, die Sie in mehreren Projekten benötigen (wie einen Editor).

Oberfläche

Ergoipro ist ein sauberes GEM-Program-m, das mit MultiTOS und ähnlichen Erweiterungen keine Probleme hat (lediglich der GFA-Interpreter stellt unter MagiX! ein Hindernis dar, da er nur im Single-Modus gestartet werden kann). Neben dem Projektfenster wird ein weiteres Fenster geöffnet, in dem alle Ausgaben erscheinen (zumeist die Analyse-Informationen und Log-Dateien des Präprozessoroder Compiler-Laufes).

Vor dem Compilieren...

... ist der Einsatz eines Präprozessors sinn-voll. Was sich bei anderen Programmiersprachen wie C bewährt hat, kann für GFA-BASIC nur recht und billig sein. Mit dem ergo!pro-Präprozessor lassen sich automatisch eine ganze Reihe von Funktionen ausführen. Dazu gehört z.B. das Löschen von Zeilen, die per Kommentarzeile gesondert markiert wurden. Da man die Markierungen selbst bestimmen kann, lassen sich auf diese Weise aus ein und demselben Quellcode verschiedene Programmversionen erzeugen: eine eingeschränkte Demo-Version, eine normale Version und eine Professional-Version. Zusätzlich kann man Programmteile (wie z.B. leidige "RESERVE“-Befehle) markieren, die in compilierten Programmen nicht Vorkommen sollen. Außerdem kann der Präprozessor automatisch alle überflüssigen Programmteile, die gar nicht benutzt werden, entfernen, was das erzeugte Programm manchmal erheblich verkürzt und u.U. beschleunigt. Auch das Ersetzen sogenannter symbolischer Variablen ist möglich: Man belegt eine Reihe von Variablen fest mit Werten und verwendet nun im Programm diese Variablen anstatt ihrer Werte, um so zu einem besser zu lesenden und zu wartenden Quelltext zu kommen. Überall, wo eine solche Variable vorkommt, setzt der Präprozessor nun den ihr zugewiesenen Wert ein. Der Vorteil liegt auf der Hand: Man erhält ein schnelleres und kürzeres Programm.

Derartige Änderungen werden übrigens grundsätzlich nicht in die Original-GFA-Datei geschrieben, damit in keinem Falle etwas verlorengeht.

Hier arbeitet die Crossreferenz-Analyse.

Analyse...

... wird von ergo!pro großgeschrieben. Jeder Programmierer kennt das Problem: mit zunehmender Programmgröße wird es immer schwieriger, Ordnung und Übersicht zu bewahren. Kleine Fehler (und seien es nur Tippfehler) bei Variablen und Prozeduren haben dann oft große Wirkungen. Die Fehlersuche ist meist ein mühsames und zeitraubendes Unterfangen.

Da hilft die Crossreference-Analyse von ergo!pro weiter. Frei konfigurierbar lassen sich Listen der verwendeten Variablen erzeugen (mit Angabe, in welcher Prozedur sie verwendet wurden und ob als lokale, als Übergabe- oder als globale Variable). Hier können auch verschiedene Filter vorgeschaltet werden, so daß nur bestimmte Variablentypen (z.B. nur Integer- und Float-Variablen), bestimmte Namen oder z.B. nur globale Variablen ausgegeben werden. Besonders trickreich und nützlich ist hierbei die automatische Fehlerdiagnose. Ergo!pro zeigt hierbei alle Stellen auf, an denen Variablen falsch oder zweifelhaft eingesetzt werden.

In vielen dieser Fälle liegt ein Programmierfehler vor. Wenn z.B. eine Variable nur einmal im ganzen Programm vorkommt, hat sich der Programmierer vertippt. Auch andere Fehler können aufgedeckt werden, z.B. fehlende „Local“-Deklarationen: Dann ist es überflüssig, eine Variable global im Speicher zu halten, da sie nur von einer einzelnen Prozedur benutzt wird.

Diese Listen kann man natürlich auch ausdrucken, und - was noch viel besser ist - Sie haben innerhalb des GFA-Interpreters Zugriff auf diese Listen. Dazu gibt es ein Accessory, von dem Sie später noch mehr hören werden. Es kann vom Interpreter aus aufgerufen werden, und von dort aus hat man in einem GEM-Fenster Zugriff auf alle von ergo!pro ermittelten Daten. Sind Sie nun fleißig am Programmieren und überlegen sich, ob Sie nicht eine Variable in ihrer Bedeutung verändern möchten, können Sie einfach schnell mal nachsehen, von welchen Prozeduren die Variable benutzt wird. So sieht man schnell, worauf man achten muß und welche Aktionen völlig ungefährlich für die Funktion des Programmes sind.

Statistiken über die verwendeten Variablen, Prozeduren und Funktionen kann ergo!pro ebenfalls ausgeben.

Bäume...

... sind bei ergo!pro eher klar strukturiert als grün und durchwachsen und geben einen grafischen Überblick über einen Quelltext. Welche Prozedur wird von wo aus aufgerufen? Welche Prozeduren werden für eine bestimmte Routine benötigt? All diese Auskünfte kann eine Baumstrukturanalyse durch ergo!pro geben. Diese läßt man sich am besten zu Papier bringen und kann so am effektivsten die Übersicht bewahren. Damit dieses Diagramm bei umfangreicheren Programmen nicht zu "unhandlich" wird, erzeugt ergo!pro auf Wunsch eine optimierte Darstellung, die durch Verwendung von Querverweisen den Platzbedarf drastisch reduziert.

Auswahl der auszugebenden Daten

Immer gut informiert

Mit der „Informer“-Funktion kann man an den Anfang jeder Prozedur und Funktion eine Übersicht der verwendeten Variablen und Aufrufe einfügen lassen. So sind die Informationen, 'vor Ort' verfügbar, was bei der Programmierung von Vorteil ist („Was? z_anz% wird von dieser Prozedur benutzt? Das darf ja wohl nicht sein ...“). Diese eingefügten Zeilen können ebenso schnell aktualisiert wie wieder entfernt werden.

Funktionell

Weitere Funktionen zur Bearbeitung des Quelltextes können hier nur kurz angerissen werden: Ergo!pro kann Variablennamen automatisch verändern. Neben der Wandlung von Punkten und Unterstrichen ist die Codierung der Namen möglich (dies ist praktisch, wenn man den Quelltext eines Programms weitergeben muß, aber vor unbefugten Blicken schützen möchte). Natürlich fehlt auch das Löschen von Kommentarzeilen nicht, und zu guter Letzt ist das automatische Abspeichern bzw. Einladen aller INLINE-Bereiche eines Programms möglich. All diese Operationen werden mit hoher Geschwindigkeit ausgeführt.

Hilfe!

Die Information des Benutzers wurde von den Programmierern von ergo!pro sehr wichtig genommen: Neben allgemeinen Hilfen (vom Menü aus erreichbar) kann man in allen Dialogen detaillierte Informationen zu jedem Text, Schalter oder Button erhalten. Ein Mausklick mit gedrückter Shift-Taste reicht aus, so daß der Blick in das mitgelieferte Handbuch nur noch selten nötig ist.

Das Handbuch-ACC

Zu ergo!pro wird ein Accessory mitgeliefert, das es in sich hat: Auch vom GFA-Interpreter aus aufrufbar, kann man fast jede beim Programmieren benötigte Information abrufen: Jeder GFA-BASIC-Befehl ist beschrieben, zusätzlich sind Listen von Fehlermeldungen und viele nützliche Tabellen enthalten. Zudem wurden alle Systemaufrufe beschrieben. Leider sind diese aber nach Systemgruppen zusammengefaßt, so daß man z.B. die GEMDOS-Funktionen nur zusammen auf einer Seite aufrufen kann. Nützlich sind die an vielen Stellen eingestreuten Querverweise, die per Mausklick zu verwandten Themen führen. Da der Umfang der Erläuterungen über das Originalhandbuch hinausgeht, kann der „schwarze Ordner“ ab sofort von Tisch verbannt werden.

Ergebnis der Crossreferenz-Analyse

Wird das Accessory vom Interpreter aus aufgerufen, so erkennt es, ob der Cursor auf einem GFA-Befehl steht und springt selbstständig zu der passenden Hilfsseite. Auch umgekehrt gibt es eine „Zusammenarbeit“: Beliebige Teile der Hilfstexte können auf Knopfdruck in den Interpreter „eingespielt“ werden. So lassen sich die Syntaxbeispiele oder Parameterlisten ohne lästige Tipperei in das Programm einfügen. Vom Accessory aus hat man übrigens vollen Zugriff auf Cross-Referenz-Analysen, was sogar variablen weise (Suche mit Wildcards möglich!) geschehen kann. Auch hier funktioniert die Kommunikation mit dem Interpreter: Es wird automatisch die Analyse zu der Variablen unter dem Cursor ausgegeben.

Das Accessory benötigt nur sehr wenig Speicherplatz, da die Hilfstexte je nach Bedarf geladen werden. Es ist mit einem mitgelieferten Extraprogramm umfangreich konfigurierbar.

Aufstieg in den Hyperraum

Im Vergleich zum früheren ergo! 1.5 erhält der Anwender ein in allen Gesichtspunkten verbessertes Programm: Aus ergo!pro ist ein sauberes GEM-Programm geworden. Zur Analyse werden nun die GFA-Sourcecode-Dateien verwendet, wodurch das bisherige Abspeichern und Einladen der Source als LST-Datei entfällt. Dies allein bewirkt einen Geschwindigkeitsvorteil von ca. Faktor 15!

Durch die Aufteilung des Programmes in eine Shell und einen sog. Token-Prozessor. der alle Arbeiten am Quelltext erledigt, ist ergo!pro noch speichereffizienter geworden.

Leider mußte die Dokumentationsfunktion bei derNeuprogrammierung von ergo! „dran glauben“, was sicherlich den ein oder anderen Anwender schmerzen wird.

Das Hilfe-Accessory

Alltag

Im täglichen Einsatz bewährt sich ergo!pro ständig und immer wieder. Besonders die Shell und das Hilfe-Accessory werden ständig benötigt. Bei regelmäßigen Überprüfungen hilft eine Analyse weiter, und bevor man sein Programm veröffentlicht, tut der Präprozessor seine Dienste und „staucht“ das Programm nochmal gehörig zusammen - ein Tastendruck genügt, um automatisch den Präprozessor, den Compiler und den Linker ausführen zu lassen.

Fazit

Der Einsatz von ergo!pro bestätigt, daß der GFA-Programmierer für den Preis von 148,- DM ein ausgereiftes Produkt erhält, das sich im täglichen Einsatz schnell bezahlt macht. Die zahlreichen, für die Praxis durchdachten Funktionen erleichtern das Programmieren in jeder Hinsicht und unterstützen die Erzeugung von sauberen, optimierten Programmen. Aus dem „nackten“ GFA-BASIC wird ein komfortables System, das nunmehr geeignet ist, die neidischen Blicke der anderen Programmierer auf sich zu ziehen.

Bezugsquelle:

COLUMBUSSOFT Kinzigweg 1 64297 Darmstadt

Preis: 148- DM, Upgrade: 89,— DM
Demo-Version mit eingeschränktem Funktionsumfang: 10- DM

ergo!pro

Positiv:

Negativ:


David Reitter
Aus: ST-Computer 07 / 1994, Seite 22

Links

Copyright-Bestimmungen: siehe Über diese Seite