← ST-Computer 07 / 1994

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

Software

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:

  • gute Analyse von Programmen
  • umfangreicher PrĂ€prozessor
  • nĂŒtzliche Shell
  • Hilfe-ACC
  • hohe Geschwindigkeit

Negativ:

  • Listing-Funktion (aus ergo! 1.5) fehlt
David Reitter