Endlich hat GEMDOS PASCAL Konkurrenz bekommen. Den PASCAL Compiler von Metacomco. Dieser Test soll zeigen, wo die Stärken und Schwächen des neuen Compiler liegen. Deshalb wird nicht nur auf den Compiler von Metacomco eingegangen, sondern auch auf das Konkurrenzprodukt von CCD.
Der PASCAL Compiler von Metacomco wird in Form von 2 single sided Disketten und einem fast 200 Seiten umfassenden Handbuch geliefert.
Auf den Disketten sind Editor, Compiler, Linker und jede Menge Includefiles enthalten, nicht zu vergessen der Assemblerquelltext der einzelnen Gembibliotheksfunktionen und natürlich die Bibliotheken selbst.
Das Handbuch ist in Englisch geschrieben und sehr übersichtlich gegliedert. Es werden alle PASCAL Sprachelemente erklärt und Beispiele für die Anwendung gezeigt. Es ist also für den Anfänger genauso geeignet wie als Nachschlagewerk für den fortgeschrittenen Programmierer. Der Editor von Metacomco ist ein einfacher Bildschirm-Editor mit den Standardfunktionen "Suchen", "Suchen und Ersetzen", "move Block", "copy Block", "delete Block" usw.
Der Editor kennt nur den Einfügemodus, was beim Ändern von Texten stört. Außerdem fehlt die automatische Einrückung wie sie bei dem Editor von CCD-PASCAL realisiert ist. Dafür kann der Metacomco Editor auch Zellen mit einer Länge von mehr als 80 Zeichen editieren, und er kann alle Zeichen, die über die Tastatur erreichbar sind, darstellen.
Es stehen zwei Arten von Kommandos zur Verfügung. Die Immediate Commands werden durch Funktionstasten bzw. Controlsequenzen aufgerufen. Die Extended Commands müssen nach Drucken von ESC in der letzten Bildschirmzelle direkt eingegeben werden.
Zum Compiler selbst ist zunächst zu sagen, daß er dem ISO Standard entspricht und auf Wunsch Erweiterungen zuläßt. Leider gehört der Datentyp STRING nicht zu den Erweiterungen. Es stehen lediglich RESET, REWRITE, INCLUDE und EXTERNAL zur Verfügung. In dieser Hinsicht ist er also dem CCD Compiler mit seinen umfangreichen Erweiterungen wie Stringhandling, Grafikbefehle usw. unterlegen. Ein erhebliches Manko des MCC Compilers ist die Genauigkeit, mit der Zahlen vom Typ REAL dargestellt werden. Der Softwareentwickler muß sich hier mit 7 (in Worten: sieben) Stellen zufrieden geben, während er bei CCD 11 Stellen ausnutzen kann.
Richtige Probleme tauchen aber erst dann auf, wenn man versucht, bei TOS Anwendungen die Bildschirmsteuerzeichen des VT 52 zu benutzen. Der Befehl WRITE(CHR(27),'E'); bewirkt bei Programmen, die mit dem CCD Compiler übersetzt wurden, ein clear screen. Compiliert man den gleichen Text mit dem MCC Compiler, bewirkt dies nur die Ausgabe eines großen E an der aktuellen Cursorposition.
Trotz aller Kritik hat das Produkt von MCC natürlich auch seine guten Seiten. Aktiviert man die Compileroption LIST, erhält man ein sehr übersichtliches Compilerlisting, in dem weder die Zellennummer des Quelltextes noch die Schachtelungstiefe fehlen. Als Zugabe werden sogar noch die Namen aller Symbole und deren Speicherbedarf ausgegeben (Siehe Bild 1).
Macht man in seinem Programmtext einen Fehler (und wer macht das nicht ... ), kann man sicher sein, daß dieser korrekt und ausführlich gemeldet wird. Bild 2 zeigt, wie detailliert eine Fehlermeldung aussehen kann. Bei CCD hat man sich weniger Arbeit gemacht (Siehe Bild 3).
Ein weiteres Plus für den MCC Compiler ist die Möglichkeit, wahlweise Objektcode im GST-Format oder im CP/M-68K- Format zu erstellen. Dies erweist sich als sinnvoll, wenn man PASCAL Routinen in andere Sprachen einbinden will, ohne sich in eine gewisse Firmenabhängigkeit zu begeben. Die benötigten Bibliotheken, um PASCAL Programme auch mit dem Linker aus dem ATARI Entwicklungspaket zu linken, werden mitgeliefert.
Was die Geschwindigkeit beim Übersetzen angeht, so macht der MCC Compiler einiges an Boden gut. Dies liegt daran, daß der CCD Compiler auf die Diskette zugreift, um den Kopierschutz zu prüfen. Dieser lästige Umstand entfällt bei dem MCC Compiler, der nicht kopiergeschützt ist. Alles läuft schnell und leise in der Ramdisk ab. Einzige Ausnahme: die Fehlermeldungen, sie werden immer von der Disk geladen.
Außerdem ist es sehr beruhigend, wenn man Sicherheitskopien erstellen kann und sich keine Gedanken machen muß, was passiert, wenn die Originaldiskette kaputtgeht.
Den Geschwindigkeitsverlust, der durch den Diskettenzugriff entsteht, kann auch der superschnelle Linker 'Fastlink' von CCD nicht ausgleichen. Der von Metacomco mitgelieferte GST Linker ist zwar langsamer, bietet dafür aber auch wesentlich mehr Komfort. Er liefert eine Linkliste (Optional auch eine Crossreferenzliste), die einem Vergleich mit professionellen Entwicklungssystem durchaus standhält.
Hier die (handgestoppten) Zeiten, die beide Systeme benötigt haben, um den Quelltext aus Bild 1 zu compilieren und zu linken (jeweils ohne eine Liste zu erzeugen).
MCC: 13,1 Sekunden
CCD: 15,9 Sekunden
Die genannten Zeiten wurden unter Verwendung einer Ramdisk erzielt. Die Geschwindigkeit der dabei erzeugten Programme mit und ohne Bildschirmausgabe:
mcc | CCD |
9,7 Sekunden | 13,3 Sekunden |
79 3 Sekunden | 91,9 Sekunden |
Schließlich noch die Länge der beiden Programme:
MCC 24 473 Byte CCD 11 424 Byte
Ein wahrer Segen für jeden, der mit GEM arbeitet, sind die Includefiles, die Metacomco mitliefert. Sie ersparen die Typdefinitionen und Prozedurdeklarationen, die für Gemaufrufe nötig sind. Ein Beispielprogramm für Gemaufrufe wird mitgeliefert.
Insgesamt gesehen wird für 340 DM viel geboten. Alle Teile des Pakets liefen im Test ausgezeichnet, und es gab keine Bomben zu sehen. Leider wird das ausgezeichnete Handbuch nicht in die deutsche Sprache übersetzt. Dafür besteht die Hoffnung, daß die hier aufgeführten Schwächen beseitigt werden. Die Update- Versionen werden dann über den Händler an den Endbenutzer weitergeleitet. Dies soll laut Distributor automatisch geschehen, wenn ein Update kommt.