Schneller Neuling - bewährter Klassiker: Pure Pascal und ST-Pascal im Test

ST-Pascal war eines der ersten Entwicklungspakete für den ST. Seit dem Erscheinen hat sich eine breite Anwenderschaft gebildet. Mit Pure Pascal bringt Application Systems Heidelberg nun einen vielversprechenden Neuling auf den Markt, dessen Auslieferung gerade begonnen hat. Wir zeigen Ihnen die Stärken und Schwächen der beiden Entwicklungspakete.

Alles in einem: Editor, Compiler und Debugger von Pure Pascal

ST-Pascal 2.10 wird gepackt auf einer doppelseitigen Diskette ausgeliefert. Das etwa 700 Seiten starke Handbuch im Ringordner bezieht sich noch auf die Version 2.08 und wird durch eine 4700 Zeilen lange Textdatei auf der Diskette ergänzt. Während sich das eigentliche Handbuch gut liest, wären Ergänzungsseiten für den Ringordner deutlich besser lesbar gewesen als eine derart umfangreiche Dokumentation auf Diskette.

Als Editor mit schon fast sprichwörtlicher Geschwindigkeit ist Tempus 1.11 im Lieferumfang enthalten; ein Update auf Version 2.12 ist möglich. Das Handbuch zu Tempus ist leider nur als Teil der erwähnten Datei auf der Diskette vorhanden.

Nach dem Auspacken belegt ST-Pascal ca. 1 MByte auf der Festplatte. Die Arbeit mit nur einem Diskettenlaufwerk ist naturgemäß langsamer, aber auch möglich. Wer mehr Speicher hat, kann die Arbeit durch eine mitgelieferte RAM-Disk beschleunigen. CCD unterstützt Anwender ohne Festplatte zusätzlich durch die Option, sowohl Compiler als auch Editor (zusammen ca. 300 KByte) im Speicher resident zu halten. Dadurch reduzieren sich die Turn-Around-Zeiten für den Wechsel zwischen Editor und Compiler deutlich. Da es sich bei Editor, Compiler und Linker um eigenständige Programme handelt, obliegt es dem Anwender, mit der enthaltenen GEM-Shell oder einer Tastaturoberfläche zu arbeiten.

Die Änderungen zur Vorgänger-Version beziehen sich hauptsächlich auf die stark erweiterte GEM-Bibliothek und den neuen Manager, der als »Schaltzentrale« den Wechsel von Editor, Compiler und Linker koordiniert. Der Compiler wird auch in Zukunft mit Sicherheit nicht mehr geändert.

Die vorgenommene Optimierung der Bibliotheken hat ihr Ziel nicht ganz erreicht. In einigen Fällen sind die erzeugten Programme kleiner im Vergleich zu Vorgänger-Versionen; oft tritt aber auch das Gegenteil ein. Die GEM-Bibliothek enthält nun auch sehr mächtige Routinen, die beispielsweise fast die gesamte Fensterverwaltung übernehmen. Neu bei Version 2.10 ist außerdem eine Bibliothek, die den mathematischen Coprozessor unterstützt.

Ebenfalls zum Lieferumfang gehören einige sehr aufschlußreiche Beispielprogramme, die die Benutzung der GEM-Bibliothek verdeutlichen. Die Beispiele verwenden jedoch teilweise die verpönten Line-A-Funktionen, die nur als abschreckendes Beispiel für nichtportable Programmierung dienen können.

# Benchmarks
Name ST+2.10 Pure ST+ 2.10 Pure Pascal
Größe1 Größe1 Laufzeit2 Laufzeit2
Dhrystone 14145 14609 792 1682
GEM Programm 8402 8164 - -
Kontrollstrukturen 14417 13790 32 24
Disk-IO 3862 5155 16 17
Faxtreiber 39230 28858 - -

1 Angaben in Byte. 2 Angaben in Sekunden

Tabelle 1. Alle Zeiten wurden auf einem 8-MHz-ST gemessen. Alle Fehlerüberprüfungen der Compiler waren ausgeschaltet.

Pure Pascal hat eine integrierte Entwicklungs-Umgebung, die vom eigenen Desktop über einen integrierten Editor, Compiler mit Linker und Quelltext-Debugger alles enthält, was nötig ist. Eine Standalone-Version des Compilers ist ebenfalls dabei. Fertig installiert beschlagnahmt Pure Pascal etwa 1,7 MByte Speicher Ihrer Festplatte. Trotz des Umfangs bleibt der Diskettenbetrieb erträglich. Diskettenwechsel finden nur bei Verwendung der Online-Hilfe statt.

Die Benutzeroberfläche ist komplett in Englisch gehalten, während Handbuch und Online-Hilfe auf Deutsch sind. Man hat hier offenbar schon den internationalen Markt im Auge. Das Handbuch zu Pure Pascal ist sehr locker geschrieben und liest sich recht angenehm; allerdings ist aus den Kapitelüberschriften im Inhaltsverzeichnis oft nicht zu erkennen, worum es geht. Man muß also das Handbuch entweder von vorne bis hinten lesen (durchaus lohnend) oder sich mit dem Index behelfen. Gerade wer die Turbo Pascal-kompatiblen Bibliotheken benutzen möchte, muß auf die Online-Hilfe zurückgreifen. (Das Handbuch erhebt gar nicht erst den Anspruch auf Vollständigkeit, sondern verweist gleich auf die Online-Hilfe.) Die Beispiele aus der Online-Hilfe kann man übrigens mit Cut/Paste in eigene Programme übernehmen und erspart sich auf diesem Weg Tippfehler.

Über die normalen Funktionen des GEM-Desktops hinaus, sind in Pure Pascal etliche Verbesserungen enthalten: Gelöschte Dateien holen Sie Macintosh-like aus dem Papierkorb oder arbeiten sich in vollen Fenstern durch die Eingabe des Anfangsbuchstaben zur gewünschten Datei vor.

Optional beherrschen die Fenster auch das sogenannte »Live Scrolling«, bei dem sich der Fensterinhalt beim Verschieben des Sliders sofort bewegt. Praktisch, wenn man nur mal schnell irgendwo kurz hinschauen möchte und den Slider dann, ohne ihn loszulassen, wieder an der alten Stelle positioniert. Alle Dialoge lassen sich frei auf dem Bildschirm positionieren und, wie fast alle anderen Funktionen auch, mit der Tastatur bedienen.

Bis zu 100 offene Fenster

Um wirklich in den Genuß der vielen Fenster zu kommen, muß man allerdings schon einen Großbildschirm sein eigen nennen. Auf einem SM124 erscheint der Desktop leicht überfrachtet. Ob man es letztlich für gut hält, daß jedes Programm einen eigenen Desktop mit Icons installiert, obwohl es nicht unbedingt nötig ist, ist sicher eine Geschmacksfrage.

Da die Entwicklungsumgebung von Pure Pascal direkt den Debugger enthält (der ja auch GEM-Programme bearbeiten kann), wurde sie zwangsläufig ein wenig »am GEM vorbei« programmiert. Um auf Accessories zugreifen zu können, muß man auf einen alternativen Desktop umschalten.

Auch wird man bei neuen GEM-Versionen (z.B. MultiTOS) damit rechnen müssen, daß ein Update nötig wird. Allerdings kommen Sie dadurch auch in den Genuß von bis zu 100 offenen Fenstern. Diese Tatsache macht sich Pure Pascal natürlich auch zu Nutze.

Im Gegensatz zum Vorbild Turbo Pascal compiliert Pure Pascal immer den kompletten Quelltext und nicht nur bis zum ersten Fehler. Die Fehlermeldungen erscheinen in einem speziellen Fenster. Über einen Doppelklick auf die Fehlerzeile gelangen Sie an die entsprechende Stelle im Programm.

ST-Pascal Plus generiert auch 68010-Code

Hilfreich sind die Warnungen über nicht initialisierte oder nicht benutzte Variablen o.ä. Manchmal wünscht sich der erfahrene Programmierer allerdings auch eine Möglichkeit, die Warnungen zu unterdrücken. Dies ist in der vorliegenden Version nicht möglich. ST-Pascal orientiert sich am genormten ISO-Sprachumfang und versieht ihn mit den üblichen Erweiterungen wie String-Verarbeitung und Random-Access-Dateien. Die mitgelieferten Bibliotheken sind (abgesehen von der GEM-Bibliothek) eher spartanisch.

Pure Pascal brüstet sich mit voller Kompatibilität zu Turbo Pascal 6.0. Vom Sprachumfang her gesehen wird dieses Ziel auch erreicht, viele Turbo Pascal-Bibliotheken sind ebenfalls nachgebildet. Kleinere Fehler traten jedoch im Zusammenhang mit Bit-Shift-Operationen auf, bei denen das Compilat falsche Werte lieferte. Man sollte auch im Auge behalten, daß eine große Anzahl von Turbo Pascal-Programmen die objektorientierte Bibliothek Turbo Vision verwendet, die bei Turbo Pascal fest zum Lieferumfang gehört, für Pure Pascal jedoch nicht erhältlich ist.

Bei Pure Pascal fällt die Begrenzung einzelner Datenstrukturen auf 64 KByte, wie unter Turbo Pascal üblich, weg. Variablen bis 16 MByte dürfen aber aber nur globaler Natur sein, da alle lokalen Variablen einer Prozedur in Pure Pascal zusammen(!) auf eine Größe von 32 KByte beschränkt sind. Es erscheint sonst die im Handbuch nicht erwähnte Fehlermeldung »Procedure runs out of local address space«. Hier hat man es sich mit der Erzeugung schneller Programme wohl etwas zu leicht gemacht. Unter ST-Pascal dürfen auch lokale Variablen bis zu 16 MByte groß sein.

So angenehm einige der Erweiterungen von Turbo Pascal bei der täglichen Arbeit auch sein mögen, sollte sich der Programmierer doch eine gewisse Selbstbeschränkung auferlegen. Sonst bekommt er Probleme, falls er seine Programme irgendwann einmal auf ein anderes System portieren will. Dazu ein Beispiel: Als Ergebnis einer Funktion sind laut Standard nur einfache Typen zugelassen, keinesfalls ganze Zeichenketten. Wer also diese Funktion von Pure Pascal in Anspruch nimmt, muß damit rechnen, daß sich das Programm nur noch nach Turbo Pascal portieren läßt. Die restliche Welt bleibt ihm verschlossen, da viele andere Pascal-Compiler diese Möglichkeit nicht unterstützen.

Bei ST-Pascal fällt hingegen das mangelhafte Modul-Konzept auf. ts erlaubt zwar die getrennte Übersetzung und das spätere Verbinden mehrerer Pascal-Module, verweigert aber Modul-übergreifenden Zugriff auf Variablen. Für den Export sind lediglich Funktionen und Prozeduren vorgesehen.

Fehler macht jeder mal

Kein Programm ohne Fehler - wichtig ist nur, daß man sie findet. Der Quelltext-Debugger von Pure Pascal eignet sich dazu sehr gut. Er erinnert sehr an den Debugger von Pure C - wen wundert's. Alle von der Entwicklungsumgebung gestarteten Programme laufen unter seiner Kontrolle ab. Man kann sie wahlweise Zeile für Zeile oder bis zu einem gesetzten Breakpoint ablaufen lassen und sich dabei etwa die Werte von bestimmten Variablen anzeigen lassen. Ein Doppelklick zusammen mit der Control-Taste auf einen anderen Variablennamen im Fenster mit dem Quelltext bringt ein Fenster mit dem Inhalt dieser Variablen zum Vorschein. Der Debugger wechselt außerdem intelligent zwischen dem Bildschirm mit der Programmausgabe und den »internen« Informationen. Auch hier läßt sich die genaue Verfahrensweise konfigurieren, um die Arbeit am Großbildschirm zu gewährleisten. Dies mag als Vorgeschmack reichen. Der Debugger hat weitaus mehr Funktionen, als man in einem Testbericht erwähnen könnte. Im Handbuch werden sie in einer auch dem Anfänger gut verständlichen Art erklärt. Prädikat: Wertvoll! Auch ST-Pascal hat einen Menüpunkt »Debugger«, der seinen Namen jedoch nicht verdient. Mit einem (nicht im Lieferumfang enthaltenen) Debugger muß man sich in die Assembler-Tiefebenen schwingen. Lediglich die im Programm verwendeten Namen übernimmt der Debugger in Form von Symbolen, um die Arbeit ein wenig zu erleichtern.

Die Verwendung von Assembler-Unterroutinen ist in beiden Paketen kein Problem, da die Schnittstellen gut dokumentiert sind. Pure Pascal liefert den von Pure-C bekannten Assembler mit. Das Einbinden anderer Hochsprachen - ausgenommen Pure C - gestaltet sich bei Pure Pascal etwas schwierig, da die Parameterübergabe in Registern stattfindet. Diese Variante ist zwar schneller, aber nicht gerade üblich. ST-Pascal bietet die Möglichkeit, eine Pascal-eigene Parameterübergabe zu verwenden. Hierzu deklarieren Sie die die Routinen einfach als »External«. Ein zweiter Weg ist die übliche Parameterübergabe über den Stack und die Deklaration der externen Routine als »C«.

Der Debugger auf Quelltextebene gehört zu den Highlights von Pure Pascal

Während man bei ST-Pascal selektiv Code für den 68010 und 68020 erzeugen kann, bietet Pure Pascal nur die Option, Code für 68020 erzeugen zu lassen. Dafür unterstützt Pure Pascal den mathematischen Coprozessor und hat für die Operanden spezielle Datentypen parat. ST-Pascal beschränkt sich bei der Unterstützung des Coprozessors auf einige Bibliotheksroutinen. Die Ergebnisse werden immer im ungenaueren internen Format von ST-Pascal gespeichert.

GEM-Programmierung

Bei der GEM-Programmierung gehen die beiden Entwicklungssysteme recht unterschiedliche Wege. Pure Pascal hält sich genau an die GEM Aufrufe, wie sie auch in C erfolgen würden, und konvertiert lediglich die interne Darstellung der Zeichenketten. Man kann daher Programme und Literatur zur GEM Programmierung in C leicht umsetzen.

ST-Pascal baut auf eine eigene Bibliothek, die z.T. mehrere GEM-Aufrufe zusammenfaßt und für mehr Übersicht im Quelltext sorgt. Gerade dem GEM-Einsteiger erleichtert diese Tatsache die Arbeit. Hinzu kommt, daß man mit ST-Pascal Menüs und Dialoge leicht »von Hand«, also ohne ein Resource Construction Set erstellen kann. Negativ zu Buche schlägt die 1800 Zeilen lange Include-Datei, die von jedem GEM-Programm benötigt wird. Hier verlangsamt sich die Übersetzung deutlich. Man tut gut daran, sich eine eigene Version dieser Datei für den täglichen Gebrauch zusammenzustellen, die nur die Deklarationen enthält, die man tatsächlich verwendet. Die neue Version 2.10 enthält jetzt auch alle GEM-Aufrufe in ihrer Urform, so daß der Programmierer nicht mehr an den ST-Pascal eigenen Ansatz zur GEM-Programmierung gebunden ist.

## WERTUNG

Name: Pure Pascal 1.0
Preis: 398 Mark
Hersteller: Pure Software
Vertrieb: Application Systems Heidelberg

Stärken: Quelltext-Debugger □ schneller Code □ Sprachumfang von Turbo Pascal 6.0

Schwächen: lokale Variablen auf 32 KByte begrenzt □ mangelnde Robustheit

Fazit: Schneller und moderner Compiler mit kleinen Fehlern.

Wer bisher in C programmiert hat, findet wahrscheinlich mehr Gefallen an der Pure-Lösung - ein Umlernen entfällt. Dem Einsteiger nimmt die Bibliothek von ST-Pascal einige Arbeit ab.

Pure Pascal compiliert extrem schnell (kurioserweise auf einem 8-MHz-ST nicht so schnell wie das echte Turbo Pascal unter Super-Charger o.ä.). Nur bei der Geschwindigkeit des Editors (Tempus) hat ST-Pascal die Nase vorn. Hobbyprogrammierer mit kurzen Quelltexten können mit beiden Entwicklungspaketen gut leben; bei Programmlängen von einigen tausend Zeilen wünscht sich der ST-Pascal-Besitzer jedoch einen TT.

Die Veröffentlichung von Benchmarks ist problematisch, da sie meist nur einen kleinen Teil des Compilerspektrums abdecken und oft nur die Qualität der verwendeten Bibliotheken testen. Der subjektiv wahrgenommene Geschwindigkeitsunterschied kann sehr von den gemessenen Ergebnissen abweichen (Tabelle 1).

Für die Benchmarks wurden alle Fehlerkontrollen ausgeschaltet. Die Zeit, die der Compiler für die Übersetzung brauchte, ist nicht berücksichtigt. Da Pure Pascal einen internen Datencache hat, ergeben sich hier unterschiedliche Werte. Unabhängig davon gilt jedoch, daß Pure Pascal hier in fast allen Fällen deutlich effizienter arbeitet.

Die Größe der erzeugten Programme ist bei beiden Compilern etwa gleich, wobei Pure Pascal zur Laufzeit erhebliche Vorteile aufweist. Lediglich bei Festplattenzugriffen ist ST-Pascal etwas schneller.

Fazit

Es ist nicht zu übersehen, daß Pure Pascal das neuere und fortschrittlichere Produkt ist. Besonders der sehr gute Quelltext-Debugger macht es attraktiv. Ebenso deutlich fiel mir beim Testen allerdings auch die noch etwas mangelnde Robustheit auf. Das Potential zu einem wahrlich guten Produkt ist aber vorhanden; gerade wenn man die Kompatibilität zu Turbo Pascal braucht.

Wer einen Compiler haben möchte, der seine Kinderkrankheiten schon hinter sich hat, der sollte die neue Version von ST-Pascal+ auf jeden Fall in Betracht ziehen. Der Compiler ist sicher nicht der schnellste, aber Zuverlässigkeit ist ein Faktor, der bei der Programmierung nicht unterschätzt werden sollte. (ah)

## WERTUNG

Name: ST-Pascal+ 2.10
Preis: 249 Mark
Hersteller:

Stärken: ausgereifter Compiler □ gute GEM-Bibliothek

Schwächen: lange Übersetzungszeiten bei großen Programmen □ mangelhaftes Modul-Konzept □ kein Debugger im Lieferumfang

Fazit: Zuverlässiger Formel-3-Compiler.


Jan Willamowius
Aus: TOS 11 / 1992, Seite 32

Links

Copyright-Bestimmungen: siehe Über diese Seite