Pure C: Turbo C, die Zweite

Wie ein Verlierer verabschiedete sich Softwareriese Borland aus dem Atari-Ring. Obwohl Turbo C nahezu konkurrenzlos den C-Compiler-Markt beherrschte, warf Borland das Handtuch. Mit Pure C bleibt dem ST-Anwender aber wenigstens die Software erhalten.

Die Spekulationen, warum sich Borland aus dem ST-Markt zurückgezogen hat, sind mehr als wild und nicht wert, weitergesponnen zu werden. Nach einigen Monaten der Unsicherheit hat die Münchner Firma »Pure Software«, die von den Turbo-C-Entwicklern gegründet wurde, die Rechte an dem Entwicklungspaket erhalten.

Auf der Atari-Messe präsentierte Pure Software der Öffentlichkeit den Turbo-C-Nachfolger Pure C. Und zwar am Stand der Heidelberger Firma Application Systems, die ab sofort den Vertrieb übernimmt und mit Megamax und Laser C schon Erfahrung mit C-Compilern gemacht hat.

Pure C wird mit drei Handbüchern und drei Disketten ausgeliefert. Die Handbücher beziehen sich jeweils auf Compiler, Assembler und Debugger, was zeigt, daß der Pure-C-Umfang dem des Professional-Pakets von Turbo C entspricht. Die Kladden sind leider alle recht großformatig und unhandlich.

Was aber mehr stört, ist, daß es keine Referenz der Bibliotheksfunktionen von Pure C gibt. Dies mag vielleicht angesichts der guten On-line-Hilfe des Pakets erklärbar sein, wer aber ohne integrierte Oberfläche arbeitet, muß diese jedesmal starten, um an Informationen zu einer Funktion zu kommen.

Alternativ könnte man auch noch das mitgelieferte Accessory verwenden, das die On-line-Hilfe permanent zur Verfügung stellt, aber auch dies kann kein Referenzhandbuch ersetzen. Bleibt zu hoffen, daß ASH in dieser Angelegenheit so bald wie möglich rührig wird.

Ein Blick in die Inhaltsverzeichnisse der Disketten zeigt, daß kaum was geändert wurde. Lediglich an die neuen Namen, die jetzt mit »P« statt mit »T« beginnen, muß man sich gewöhnen. Das Resource-Construction Set ist leider gänzlich verschwunden. Die Installation gestaltet sich patent, indem man einfach alle Dateien in einen Ordner auf Festplatte kopiert. Für andere Massenspeicher (RAM-Disk, Floppy) liefert das Handbuch die nötigen Installationshinweise.

Nach dem Start der integrierten Oberfläche »PC« erscheint vorerst nur die Menüzeile. Ein Blick in die Menüs verrät nichts Neues. Alle Menüpunkte sind identisch zu Turbo C. Nur der erste Menütitel »Pure C« weicht ab. Erst ein Blick in die Optionsdialogboxen bringt einige der Neuerungen ans Licht. Vor allem in den Shell-Einstellungen (Abb.) befinden sich einige Leckerbissen. Dort gibt es insgesamt fünf neue Schalter für neue mächtige Funktionen:

Zum einen kann Pure C sowohl Include-Dateien als auch Objektdateien »cachen«, d.h., die Dateien werden nur einmal geladen und bleiben im Speicher. Dies vermindert die Turnaround-Zeiten beim Wiederzugriff erheblich. Vor dem Start eines anderen Programms (z.B. das Compilat) können auf Wunsch die Caches geleert werden.

Die zweite neue Funktion ist »Project help«. Hinter diesem Begriff verbirgt sich eine effektive Erweiterung des On-line-Hilfekonzepts. Welcher Programmierer kennt das Problem nicht: Da möchte man eine vor Monaten geschriebene Funktion aufrufen und kennt die Parameter nicht mehr. Nun steckt die Funktion in einem der 20 Module, aus dem das Programm besteht. Eine Suche nach der Deklaration gestaltet sich fast immer sehr aufwendig, und ein Cross-Referenz-Listing hat man auch nicht immer zur Hand. Noch problematischer ist es, wenn man mit fremden Bibliotheken arbeitet und in diesen nach bestimmten Definitionen oder Deklarationen sucht.

Pure C fegt dieses Problem elegant und komfortabel vom Tisch. Während des Kompilierens legt Pure C eine Datenbank aller Definitionen und Deklarationen an. Dazu gehören Variablen, Funktionen, Defines und Typedefs. Die Datenbank wird automatisch ins On-line-Hilfesystem integriert. Verlangt man nun Hilfe zu einem Wort, das man selbst definiert hat, lädt Pure C, wenn nötig, die Source-Datei und springt die Zeile an, in der die Definition oder Deklaration steht. Eine solche Hilfe Stellung erleichtert natürlich das modulare Programmieren ungemein.

Dank dem mitgelieferten Help-Compiler können jetzt aber auch richtige Hilfstexte in die Online-Hilfe integriert werden. An Programmierhilfen ist Pure C tatsächlich stark erweitert worden.

Bei den Shell-Optionen gibt es im Vergleich zum Turbo-C-Vorgänger einige neue Leckerbissen, z.B. das Caching von Include- und Objektdateien

Compiler und Linker haben gegenüber der letzten Turbo-C-Version 2.05 keine Änderungen erhalten. Die Assembler-Einstellungen wurden um einen Schalter für den 68040-Prozessor erweitert. Der war zwar auch schon in Turbo C 2.05 enthalten, aber jetzt gibt es auch den passenden Assembler. Hinzugekommen sind jetzt drei neue Opcodes (»MOVE 16«, »CINV«, »CPUSH«) und eine Syntaxerweiterung für die Opcodes »PFLUSH« und »PTEST«. Ein weiterer neuer Schalter läßt die Einbindung von Quelltextinformationen zu, ein dritter veranlaßt den Assembler dazu, alle nicht erfüllbaren Referenzen als extern zu deklarieren. Somit müssen nicht mehr alle Exporte und Importe explizit deklariert werden.

Eine wichtige Neuheit des Assemblers ist die Umstellung auf das Pure-C-eigene Objektformat. Dadurch kann ein modularer Aufbau der Sourcen erreicht werden. Der Linker entfernt beim Zusammenbinden des Programms alle nicht verwendeten Objekte. Dies funktionierte bisher nur mit dem C-Compiler. Ebenso neu und bedeutend ist, daß der Pure Assembler jetzt lokale Labels verarbeiten kann.

Ein Start des Projektmanagers demonstriert deutlich gesteigerte Geschwindigkeit. Benötigte Turbo C bei größeren Projekten noch viel Zeit, um festzustellen, welche Module übersetzt werden müssen und welche nicht, so erledigt dies Pure C in wahrhaft rasantem Tempo. Ein Blick mit Sysmon hinter die Kulissen zeigt, daß jetzt die Projektdatei nicht mehr byteweise mit dem Befehl »Fread« gelesen, sondern in größeren Portionen in den Speicher geholt wird.

Auch die Bibliotheken scheinen kaum Veränderungen gegenüber den Turbo-C-Dateien zu haben. Allerdings ist die Funktion »CORELEFT« nicht mehr vorhanden, obwohl diese sowohl im Handbuch als auch in der On-line-Hilfe noch beschrieben ist. Andererseits ist die im Prospekt versprochene Unterstützung der neuen FSM-GDOS-Funktionen leider noch nicht realisiert; endlich vorhanden jedoch eine neue Startup-Datei, die jetzt auch ARGV-Protokoll zur Übergabe von Parametern in der Kommandozeile beherrscht.

Den Quelltext-Debugger hat man bei Pure Software teilweise überarbeitet. Die Kompatibilität zu fremden Grafikkarten wurde erheblich gesteigert. Lief der Turbo Debugger nur auf monochromen Grafikauflösungen, unterstützt der Pure Debugger Farbgrafikkarten. Dies ist besonders für TT-Besitzer von Bedeutung, die bisher nur in ST-Hoch und TT-Hoch ihre Programme entwanzen konnten. Aber auch die Fehlersuche auf Grafikkarten wie »Crazy Dots«, »Matrix« oder »Imagine« muß jetzt nicht mehr im Blindflug geschehen.

Generell kann jetzt die Ausgabe auf VDI umgeschaltet werden. Da der Pure Debugger mit zwei virtuellen Bildschirmen arbeitet und auf Grafikkarten der Bildschirmspeicher nicht so einfach umgeschaltet werden kann, gibt’s drei Wege: Zum ersten kann wie beim Turbo Debugger mit dem XBIOS-Aufruf »Setscreen« die physikalische Bildschirmadresse geändert werden. Weiterhin erlaubt der Debugger den Bildschirmspeicher Speicherverschieben zu retten und restaurieren. Sollte dies noch nicht mit der verwendeten Karte funktionieren, können diese Aktionen auch durch einen Rasterkopierbefehl des VDI erledigt werden.

Ähnlich der Entwicklungsumgebung von Pure C, kann der Debugger auch den aktuellen Zustand beim Verlassen automatisch sichern und beim Wiederaufruf restaurieren.

Etwas stiefmütterlich wurden unter dem Turbo Debugger die Assembler-Module behandelt. Vergangenheit: Wie bereits beschrieben, kann der Assembler alle nötigen Informationen des Quelltextes in die Objektdatei übernehmen. Beim Debuggen sucht man jetzt schon in den Quelltextzeilen der Assembler-Module seine Fehler.

Wer soll nun den Sprung zum alten neuen Pure C wagen und wer nicht? Für Hobbyprogrammierer, die sicherlich in der Mehrzahl sind, können 150 Mark Update-Gebühr von Turbo C auf Pure C bzw. 198 Mark für einen Update von Laser C auf Pure C ein ganz schöner Happen sein. Andererseits ist dies die einzige Chance, einen weiteren Support zu bekommen. Hier schneiden Turbo-C-Besitzer schlechter ab. Wer beide Pakete besitzt, ist sowieso geleimt.

Für Neueinsteiger ist Pure C allemal ein ernsthafter Kandidat. Besonders C-Unerfahrene sind dank des hervorragenden Online-Hilfekonzeptes mit Pure C bestens beraten. Unix-erfahrene Programmierer werden sich etwas schwerer mit Pure C tun, da besonders die Bibliotheken stark abweichen.

Insgesamt ist Pure C zweifelsohne eine Bereicherung des Atari-Softwaremarkts, wenn auch noch an einigen Stellen Verbesserungen notwendig sind. (uw)

WERTUNG

Pure C

Vertrieb: Application System Heidelberg

Preis: 398 Mark

Update von Laser C: 198 Mark
Update von Turbo C: 148 Mark

Stärken: schneller Projektmanager, Cache für Include- und Objektdateien, Projekthilfe für eigene Funktionen, Quelltext-Debugger in Farbe, Quelltext-Debugging für Assembler-Modul

Schwächen: kein Handbuch für Bibliotheken, Bibliotheken unvollständig, ein RCS

Fazit: nach wie vor das Entwicklungspaket für TOS. Der Vorsprung gegenüber der Konkurrenz ist aber sehr knapp geworden.

Application Systems Heidelberg, Englerstr. 3, 6900 Heidelberg

# Zeiten & Werte

RUFUS in 13 Modulen mit insgesamt 32 Dateien (ohne PC-Headerfiles). 300 Kb Source.

  Pure C Turbo C 2.05
Alles neu übersetzen: 1:23 s 1:39 s
Programm starten: >1 s 4 s
Programmlänge: 128816 Byte 129084 Byte

Michael Bernards
Aus: ST-Magazin 11 / 1991, Seite 78

Links

Copyright-Bestimmungen: siehe Über diese Seite