Pure Pascal - Turbo Power für ATARI-Rechner

Pascal hat leider auf ATARI-Rechnern nicht die Verbreitung gefunden, wie es im MS-DOS-Bereich der Fall ist. Von Anfang an spalteten sich die ATARI-Programmierer in BASIC- und C-Spezialisten auf. Nur wenige liehen sich nicht beirren und frönten ihrer Lieblingssprache PASCAL. Mit Maxon PASCAL kam dann frischer Wind in die PASCAL-Szene auf dem ATARI. Dieser Compiler machte den Turbo-Pascal-Standard verfügbar. Jetzt ist Pure Pascal, der jüngste Sproß der PASCAL-Compiler, mit seiner Kompatibilität zu Turbo Pascal 6.0 erhältlich.

Geliefert wird Pure Pascal in einem hübschen farbigen Einschubkarton mit einem ebenso aufgemachten, 300 Seiten umfassenden gebundenen Handbuch. Auf den drei Disketten befinden sich neben der Entwicklungsumgebung. in die Compiler, Linker und Debugger integriert sind, auch einige Ordner mit Beispielprogrammen zur Programmierung mit Pure Pascal sowie die Bibliotheken und der Assembler.

Systemanforderungen

Für ein angenehmes Arbeiten sollten schon 2 MB RAM und Festplatte vorhanden sein. Mit 1 MB RAM kann zwar gearbeitet werden.jedoch sind die Grenzen des Systems dann bald erreicht. Die Installation ist sehr einfach und beschränkt sich auf das Kopieren der Disketten in ein Verzeichnis der Festplatte. Eine Komplettinstallation beansprucht etwa 1.7 MB. Es wurde Sorge getragen, daß auch ein Betrieb mit Diskettenlaufwerken möglich ist, wobei aber Komforteinbußen in Kauf genommen werden müssen.

Dokumentation

Sie hinterläßt ein etwas zwiespältiges Bild. Die Beschreibungen der Arbeitsoberfläche, des Editors, des Compilers und des Debuggers sind sehr ausführlich und geben eine gute Hilfestellung. Der Stil ist sehr locker und der Text wird auch schon mal mit einem kleinen Scherz bereichert. Gut sind auch ein Crash-Kurs für Kurzeinsteiger und die Pascal-Einführung für Anfänger. Kleine Beispielprogramme geben ein Gefühl für die neue Sprache. Vorbildlich ist auch eine Einführung in die GEM-Programmierung, bei der neben der Programmierung von Fenstern und Dialogen auch gleich eine Unit zur Initialisierung eines GEM Programmes und der wahlweise Start als ACC mitgeliefert wird. Unerläßlich, weil hier doch ein gewisses Neuland beschritten wird, ist ein Kapitel über OOP (objekt orientierte Programmierung). Im Handbuch werden knapp, aber ausreichend die Grundlagen dargestellt. Angaben weiterführender Literatur am Ende der Kapitel bieten die Gelegenheit, sich intensiver als in einem Handbuch mit der Materie zu befassen. Neben diesen positiven Seiten möchte ich auch Kritik äußern. So sind die Beschreibungen von Nutzung und Bedienung, sowie des Einbindens von Routinen des Assemblers entschieden zu kurz ausgefallen. Es gibt keine Kurzzusammenfassung des Leistungsumfanges und der Einschränkungen von Pure Pascal. Der Index ist mit 12 Seiten völlig unterdimensioniert. Fehlermeldungen können nicht direkt im Handbuch nachgeschlagen werden, da der Index nur global angibt, wo diese zu finden sind, und daher alle Fehlermeldungen, bis man fündig geworden ist, durchsucht werden müssen. Es gibt eine Kurzübersicht der Units, leider ebenfalls ohne Index, mit einer Kurzbeschreibung der Befehle. Eine Kurzbeschreibung mit den zu übergebenden Parametern fehlt. Um an diese zu gelangen, muß die Online Hilfe bemüht werden.

Die Oberfläche von Pure Pascal

Oberfläche

Nach dem Start von Pure Pascal erscheint eine GEM-Desktop-ähnliche Oberfläche, die anfangs etwas gewöhnungsbedürftig ist. dank der komfortablen Bedienung aber nach kurzer Zeit ein besonders angenehmes Arbeiten ermöglicht. Dateien und Programme können als Icons auf die Oberfläche gezogen werden. Neben den üblichen Funktionen bietet das File-Menü auch die Anlage neuer Ordner und die Formatierung von Disketten an. Dies erspart ein öfteres Verlassen von Pure Pascal. Der Editor ermöglicht ein Einrücken des Sourcecodes mit „dehnbaren Tabulatoren“. Je nach eingestellter Tabulatoren weite wird der Text automatisch eingerückt. Bei Änderungen der Tabulatorenweite ist der Text gleich entsprechend neu formatiert. Der Editor benutzt hierfür keine Space-Zeichen, sondern ein anderes Steuerzeichen, welches bei manchen anderen Editoren etwas unschön aussehen kann. Die sehr umfangreichen Such- und Ersetzfunktionen lassen keine Wünsche mehr offen. Gut ist auch die „Live Scroll-Funktion“. Mit ihr erfolgt das Scrolling der Fenster, schon während der Slider bewegt wird. Hierdurch bleibt die alte Slider-Position sichtbar und kann wieder angefahren werden, um an gleicher Stelle fortfahren zu können. In weiteren Menüs können die Compiler-Aufrufe usw. durchgeführt und die entsprechenden Einstellungen vorgenommen werden. Auch hier hat das Konzept einige Nachteile. Wegen des Debuggers handelt es sich bei der Pure-Pascal-Oberfläche nicht um ein GEM-Programm. ACCs lassen sich daher erst nach Selektion eines Menüeintrages ausführen. Ein weiterer Nachteil ist darin zu sehen, daß die Oberfläche nicht zukunftssicher programmiert ist. Zwar ist Pure Pascal auflösungsunabhängig betreibbar, arbeitet aber nicht mit dem in Bälde zu erwartenden Multi-TOS zusammen. Es kommt dabei zu dem Effekt, daß die Menüs von Desktop und Pure Pascal übereinander ausgegeben werden und damit ein Arbeiten unmöglich ist. Dazu werden auch noch ohne Verwendung von XBRA einige Vektoren verbogen. Hier sollten dringend einige Änderungen erfolgen.

Compiler

Der Compiler ist über viele Optionen, die alle aufzuzählen den Rahmen dieses Tests sprengen würde, steuerbar. Neben der Möglichkeit, z.B. Debug-Informationen und Funktionsaufrufe ohne Dummy Rückgaben einzustellen, ist für Besitzer eines TTs oder einer PAK die Möglichkeit zur Ausnutzung der 68020/30-Prozessoren und der mathematischen Coprozessoren bestimmt erfreulich. Der Compiler nimmt seine Arbeit sehr gründlich wahr und deckt manchmal Schwachstellen auf, die andere Compiler nicht wahrnehmen. Dabei sind die Übersetzungszeiten sehr klein. Auch bei größeren Projekten bleibt eine Kaffeepause erspart. Bleibt die Frage nach dem erzeugten Code. Wie aus den Tests ersichtlich ist, sind kleine Programme bei Pure Pascal etwas größer dimensioniert als üblich. Dies Fällt aber bei größeren Projekten nicht ins Gewicht. Hier kann Pure Pascal mit einem sehr kompakten Code glänzen. Dieser macht sich auch in der Ausführungsgeschwindigkeit bemerkbar. Der Compiler ermöglicht auch die bedingte Compilierung. Damit können Programme an bestimmte Begebenheiten angepaßt werden (wie z.B. ein vorhandener Coprozessor), ohne daß dafür zwei verschiedene Programme geschrieben werden müssen.

Eine Optimierung z.B. von Schleifen wird vom Compiler selbständig durchgeführt. Treten Fehlermeldungen auf, bricht Pure Pascal nicht bereits beim ersten Fehler ab, sondern compiliert das ganze Programm. Die Fehlermeldungen erscheinen in einem Fenster, und nach Anwahl springt der Editor an die entsprechende Stelle. Bei Unklarheiten hilft die Online-Hilfe weiter. Sie ist sehr ausführlich gehalten, und es gibt meist zur Verdeutlichung noch ein lauffähiges Kurzprogramm. Neben den üblichen Fehlermeldungen liefert der Compiler zusätzlich noch Warnungen zurück. Diese führen nicht zu einem Abbruch, und auch die erzeugten Programme laufen ohne Fehler. Warnungen sollten eher als Hinweis verstanden werden z.B. für Variablen, die nicht benutzt wurden, oder Funktionen, deren Rückmeldungen nicht ausgewertet wurden. Für größere Projekte sind diese Warnungen sehr nützlich, da hier oft „Variablenmüll" auftreten kann, der sich so vermeiden läßt. Aufgefallen ist mir noch ein kleiner Fehler in der Online-Hilfe. Im Handbuch wirdein Beispiel gebracht, mittels des Befehls PTR einem Zeiger eine Adresse zuzuweisen. In der Online-Hilfe steht dazu, daß dieser Befehl nur für 80X86 Prozessoren sinnvoll sei. Seltsamerweise ist der Befehl aber implementiert und arbeitet auch, wie er soll. Bei Größe und Umfang der Online-Hilfe lassen sich kleine Fehler wohl kaum vermeiden, und es kann davon ausgegangen werden, daß sie bald behoben sind.

Die Compiler-Optionen

Assembler

Er liegt im System als TTP vor und bietet ein weites Anwendungsspektrum. Es werden alle 680X0-Prozessoren unterstützt, ebenso die mathematischen Coprozessoren. Dank der vielen Optionen und der umfangreichen Fehlermeldungen, wozu auch eine eigene Online-Hilfe gehört, ist eine effiziente Einbindung von Assemblersourcen kein Problem. Die Darstellung aller Optionen und Möglichkeiten würde den Rahmen dieses Artikels übersteigen. Da Pure Pascal schon sehr schnell ist, wird sich der Einsatz wohl meist nur auf besonders zeitkritische Problemstellungen beschränken.

Debugger

Für die Fehlersuche unerläßlich und in den bekannten Pascal-Compilern nicht vorhanden ist der Debugger, der immer dann weiterhilft, wenn keine syntaktischen Fehler vorliegen. Bei Pure Pascal wird der Debugger nicht extern gestartet, sondern ist im System integriert. Er arbeitet auf Quelltextebene, zeigt also den gerade abgearbeiteten Quelltext an. Ein kleiner Pfeil an der linken Seite zeigt an, wo sich gerade der Programm-Counter befindet. Daneben kann der Wert von Variablen beobachtet, aber auch verändert werden. Die Ausgabe erfolgt über Fenster. Weitere Fenster für Stack, Units, Breakpoints und Objekthierarchie lassen sich öffnen. Komfortabel ist auch das Unit-Fenster. Durch Doppelklick erhält man ein weiteres Fenster, in dem die Konstanten, Typen, Prozeduren, Funktionen und globalen Variablen der Unit angezeigt werden. Durch direkte Tastatureingaben kann ohne langes Scrollen eine interessierende Stelle angefahren werden. Durch den Einbau von Breakpoints lassen sich Programme an beliebiger Stelle unterbrechen. Mit den bestehenden Möglichkeiten dürften sich wohl praktisch alle Probleme lösen lassen. Die Vielzahl der Möglichkeiten führt zu einem gewissen Problem, die vielen Fenster auf dem Bildschirm unterzubringen. Eine höhere Auflösung ist deshalb sehr empfehlenswert.

Bibliotheken

Ohne sie wäre der Pascal-Compiler wie ein Segler ohne Segel. In diesem Falle kommt noch hinzu, daß Pure Pascal sowohl den PC- als auch den ATARI-Bereich abdecken muß. ohne daß es zu Inkompatibilitäten kommen darf. Im Lieferumfang befinden sich zur Zeit sechs Bibliotheken. Den DOS-konformen Bildschirm-I/O übernimmt die CRT-Unit. Sie enthält Routinen für die Einstellung verschiedener Textmodi und färben. Dateioperationen können ebenso auf den Bildschirm umgeleitet werden, wie sich Fenster für die Textausgabe erzeugen lassen. Die DOS-Unit stellt die dem GEMDOS ähnlichen Befehle bereit. Sehr wichtig für die Kompatibilität zu Turbo Pascal sind Routinen zur Interrupt-Programmierung (GetIntVEc und SetIntVec), zur Programmausführung (DosExitCode, Exec, Keep und Scrap Vectors), sowie Routinen für die Environment-Variablen und DOS-Parameter. Unerläßlich ist für die Grafikausgabe die Graf-Unit. Auch hier hat man sich sehr bemüht, so nah wie möglich an das Vorbild heranzukommen. Sogar BGI-Treiber und Vektorzeichensätze lassen sich installieren. Ein VDI- BGI-Treiber liegt bei. In der System-Unit sind die Standard-Pascal-Befehle zusammengefaßt worden. Neben dem DOS-Bereich ist natürlich die Einbindung des ATARI-Bereiches von großer Wichtigkeit. Die unteren Bereiche des Betriebssystems werden mit der TOS-Unit abgedeckt. Diese enthält die bekannten Routinen von BIOS,XBIOS und GEMDOS. Die Befehle der neuen Betriebssystemversionen sind bereits integriert. Der GEM-Unit wurden noch einige nützliche Routinen beigefügt, die das Programmieren sehr erleichtern. Neben den bekannten AES- und VDI-Routinen sind noch einige Auskunfts- und Eingaberoutinen für die Ermittlung bzw. das Setzen von Pascalstrings in/aus TEDINFO-Strukturen, Icons usw. hinzugekommen. Leider fehlen die Routinen für die Programmierung von CPX-Modulen. Im Handbuch ist eine Auflistung der FSMGDOS-Befehle enthalten. Seltsamerweise sind diese Befehle nicht mit der Online-Hilfe abrufbar. In Ermangelung von FSMGDOS konnte ich leider nicht ermitteln, ob die Befehle bereits implementiert sind.

Der Debugger

Kompatibilität

Wie bereits in den Bibliotheksbeschreibungen ersichtlich, hat man bei Application Systems viel Wert auf eine bestmögliche Anpassung an Turbo Pascal 6.0 gelegt. Diese Bemühungen tragen in der Praxis ihre Früchte, machen sie doch die Anpassung von PC-Programmen an den ATARI sehr einfach. Die meisten Programme, die ich ausprobierte, ließen sich ohne große Schwierigkeiten direkt compilieren und ausführen. Oft mußten nur die benutzten Unit-Namen etwas angepaßt werden. Aufwendiger wird es erst dann, wenn sich die PC-Programmierer zu sehr mit der rechnerspezifischen Hardware befassen oder Assembler-Routinen einbinden. Hier ist es nur verständlich, daß Pure Pascal an dieser Hürde scheitern muß. Es bleibt aber festzuhalten, daß Pure Pascal der kompatibelste Turbo Pascal-Compiler auf dem ST ist.

Sieb des Erasthotenes : | Primzahlenberechnung Fibonacci: | Rekursionstest Float: | Fließkommaarithmetik Quicksort: | Rekursionen und Entscheidungen Savage : | Genauigkeit von Fließkommaoperationen Drhystone | Datenflußanalyse, Stringcopy Kurzprogramm : | Länge eines leeren Programms Referenzrechner: | Mega ST 2 16 MHz-Speeder. TOS 1.04

Die erste Spalte gibt jeweils die Zeiten in Sekunden eines 8-MHz-Rechners wieder, die zweite Spalte den gleichen Durchlauf unter Verwendung des 16-MHz-Speeders. Niedrige Zeiten bezeichnen bessere Werte mit Ausnahme der Drhystone-Benchmarks, wo höhere Werte für linear bessere Ergebnisse stehen. Bei allen REAL-Operationen wurde mit maximaler Genauigkeit gearbeitet. Je kleiner der Wert der Genauigkeit von Null abweicht, desto genauer wird berechnet.

Benchmarks Maxon-Pascal Pure-Pascal ST-Pascal Maxon-Pascal Pure-Pascal ST-Pascal
Erastothenes 2,50 0,78 2,59 1,37 0,43 1,39
Fibonacci 66,91 18,66 40,64 41,94 10,92 24,38
Float 62,63 45,44 58,31 33,32 23,83 29,37
Quicksort 96,30 65,85 94,55 50,65 35,84 53,05
Savage 80,32 72,62 158,99 40,59 37,97 87,35
Drhystone 645,16 1700,68 915,75 1127,40 2989,54 1549,19
Genauigk. -2.2686585E-09 -2.1719515E-11 -5,2684436E-01 -2.2686585E-09 -2.1719515E-11 -5.2684436E-01
Kurzprog. 972Bytes 3072Bytes 334Bytes

Geschwindigkeit

Um hierüber Aussagen machen zu können, habe ich einige Tests durchgeführt und Pure Pascal mit den direkten Konkurrenten verglichen. Wie aus der Tabelle entnommen werden kann, bleibt Pure Pascal in jedem Test der Sieger. Damit erzeugt Pure Pascal den zur Zeit schnellsten Code aus Pascal-Sourcen. Die Drhystone-Werte erreichen das Niveau eines C-Compilers (Pure C). Wer also immer der Meinung war, Pascal-Programme seien langsam, wird von den Ausführungszeiten überrascht sein. Wenn berücksichtigt wird, daß ein Apple II für einen Durchlauf FIB(20) etwa eine Minute brauchte, zeigt dies, wie gewaltig die Rechenleistung zwischenzeitlich angestiegen ist.

Resümee

Das Warten auf Pure Pascal hat sich gelohnt. Der Anwender erhält nicht nur einen sehr komfortablen, sondern gleichermaßen schnellen und zu Turbo Pascal 6.0 kompatiblen Compiler, der über einen ausgezeichneten Debugger und die Möglichkeit zur objektorientierten Programmierung verfügt. Die kleinen Ungenauigkeiten der Online-Hilfe und das „Nichtvorhandensein“ bestimmter Befehle werden wohl bereits im nächsten Update ausgebügelt sein. Schwerer wiegt da schon die die Entwicklung hemmende nicht GEM-konforme Oberfläche, die hoffentlich in bezug auf Multi-TOS überarbeitet wird. Eine weitere Kritik möchte ich auch am Gesamtumfang üben. Irgendwie habe ich immer das Gefühl, die Hersteller seien der Meinung, Pascal-Anwender bräuchten weniger Information und weniger Zusatzprogramme als z. B. C-Programmierer. Ein Vergleich ist in diesem Falle möglich, da ASH mit Pure C ein Schwesterprodukt anbietet, das genausoviel kostet wie Pure Pascal. Während das Pascal-Handbuch 300 Seiten umfaßt, sind es bei Pure C 650 Seiten. Dazu gibt es bei Pure C noch ein Resource Construction Set, welches Pure Pascal auch gut zu Gesicht stünde. Hier sollte sich der Hersteller eine gewisse Angleichung überlegen.

Dies soll aber nicht die Leistungen, die in Pure Pascal stecken, schmälern. Jeder, der in Pascal programmieren möchte und auch den Zugriff auf die riesigen Mengen an Bibliotheken und Sourcen aus dem DOS-Bereich haben möchte, ohne auf eine hohe Geschwindigkeit verzichten zu wollen, wird kaum an Pure Pascal vorbeikommen.

Bezugsquelle:
Application Systems Heidelberg Englerstraße 3 W-6900 Heidelberg 1


Rainer Esser
Aus: ST-Computer 09 / 1992, Seite 48

Links

Copyright-Bestimmungen: siehe Über diese Seite