Programmiersprachen: Do you speak Pasdula II C?

Computer sind nicht mehr als ein dummes Stück Silikon. Um ihnen mitzuteilen, was Sie tun sollen, muß man sich unmenschlich abstrakte Kommunikationsformen aneignen: Programmiersprachen. Ohne die geht nichts.

Wer auch immer mit der Software-Palette für den ST nicht zufrieden sein sollte, eines muß er zugeben: Das Angebot an Programmiersprachen ist überwältigend. Angefangen bei A wie APL über B wie Basic, C wie C und P wie Pascal bis hin zu S wie Simula sind mit wenigen Ausnahmen wirklich alle Programmiersprachen für den Atari ST erhältlich.

Diese Sprachenvielfalt versetzt vor allem Studenten in helles Entzücken, wogegen sich der Einsteiger eher verwirrt die Frage stellt, welche Sprache eigentlich die beste ist und mit welcher er nun anfangen soll? Selbstverständlich gibt es keine eindeutige Antwort. Fast jede Programmiersprache hat ihre Vor- und Nachteile. Allerdings sollte man als Einsteiger eher zu einer leicht erlernbaren Hochsprache (z. B. einem Basic-Dialekt oder Pascal) greifen.

Ein Klassiker: Schon manches Listing entstand mit GFA-Basic 3.0

Jeder wird schon einmal mit Basic in Berührung gekommen sein. Basic hat den Vorteil, daß es sehr leicht erlernbar ist und sich schnell die ersten Erfolge einstellen. Da die meisten Heimcomputer der 80er Jahre Basic fest eingebaut hatten, entwickelte es sich schnell zur Populärprogrammiersprache schlechthin.

Auch der Atari ST sollte von Beginn an mit einem sehr mächtigen Basic ausgeliefert werden. Was dann schließlich den Kunden erreichte, machte allerdings eher einem Text-Adventure Ehre. Der Interpreter war ätzend langsam und mit Fehlern nur so gespickt. Die simple Zuweisung einer einzigen Variablen konnte das Basic schon ins Nirwana schicken. Zur Freude aller Basic-Fans kamen mit dem Omikron-Basic und GFA-Basic zwei leistungsfähige und schnelle Interpreter auf den Markt, die der Sprache innerhalb kürzester Zeit zu einem deutlichen Sprung auf der Beliebtheitsskala verhalfen.

Leider führte der Basic-Boom dazu, daß eine Masse von Programmen auf den Markt kam, die außer einer Menüleiste und ein paar Alertboxen keinerlei GEM-Elemente aufwiesen. Womit auch schon ein Nachteil des Basics angedeutet wäre: Zumindest die für den ST verfügbaren Basic-Pakete verführen nur allzu leicht zu »unsauberer« Programmierung. Mal eben in den Bildschirmspeicher schreiben oder eine Dialogbox mit Grafikbefehlen auf den Bildschirm geklatscht — Basic erlaubt’s ja. Ganz abgesehen von der katastrophalen Optik solcher Programme, leidet auch die Benutzerführung schwer unter derartiger Pseudo-GEM-Programmierung.

Daß es auch anders geht, zeigen die mittlerweile erschienenen Erweiterungen »Easy-GEM« (für Omikron-Basic) und »GEM-Utility-Package« (für GFA-Basic), mit denen man auf einfache Weise GEM-konforme Programme schreiben kann.

Ein weiterer Nachteil: der sog. Spaghetti-Code. Obwohl modernere Basic-Varianten Prozeduren, Funktionen und andere Elemente zur strukturierten Programmierung anbieten, agieren die meisten Hobby-Basic-Programmierer nach dem Verfahren »Eintippen und Probieren«. Wenn ein Programm dann eine gewisse Größe erreicht hat, ist die Programmpflege nahezu unmöglich geworden.

Angehende Informatiker lernen deshalb an der Uni fleißig Pascal oder den Nachfolger Modula II. Beide Sprachen sind sehr streng strukturiert und schließen schon vom Konzept her viele Fehler der Basic-Kollegen aus. Beide Sprachen lassen sich relativ leicht erlernen. Allerdings muß man sich im Gegensatz zum Basic schon vor dem Eintippen Frustrationen Vorbeugen und sich Gedanken machen, wie das Programm später aussehen soll. Die Programmpflege größerer Projekte ist besonders mit Modula II sehr einfach, da die Strukturierung und der ausgesprochene Modul-Charakter ein schnelles Einarbeiten — auch in ältere Quelltexte — stark erleichtert.

Das derzeit am häufigsten eingesetzte Pascal-Paket ist »ST Pascal Plus« von CCD. Professionelle Programmentwicklung unter Pascal läßt sich damit am besten realisieren. Leider fehlen noch ein Debugger und ein Resource Constructions Set, um das Paket zu komplettieren.

Struktur contra Spaghetticode

Ein weiteres sehr interessantes Pascal-System heißt »KatCe-Pascal«. Es besteht aus Compiler, Editor, Assembler und Disassembler. Alle Teile vereinen sich in einem einzigen Programm. Bedienung und Sprache sind weitestgehend an Turbo Pascal 3.0 angelehnt. Zum Reinschnuppern, aber auch zum Ausarbeiten allgemeiner Probleme (Hausaufgaben) ist KatCe-Pascal bestens geeignet.

Kurz und bündig: Beim Turbo-C beschränkt sich nicht nur der Name auf das unbedingt Notwendige...

Bei Modula II kann man derart eindeutige Aussagen nicht treffen. Mit den Paketen »Hänisch Modula II«, »Megamax Modula II« und »SPC Modula II« sind drei hervorragende Entwicklungspakete auf dem Markt. Zum Reinschnuppern gibt es auch noch »LPR Modula II«.

Als die Muttersprache des Atari ST gilt C. Tatsächlich dürften die meisten kommerziellen Programme in dieser Sprache verfaßt worden sein. C ist — ähnlich wie Pascal und Modula II — eine strukturierte Sprache. Allerdings unterliegt sie nicht so vielen Einschränkungen wie die anderen Sprachen. Dadurch wird C wesentlich flexibler — und schwieriger in der Handhabung. Wie beim Basic kann bei falscher Anwendung ein Programm unlesbar werden.

Eine Verbesserung in Richtung »sauberes« Programmieren stellt »ANSI-C« dar. Viele Fehler, die mit einem herkömmlichen C-Compiler nie erkannt würden, bringt ein ANSI-C-Compiler schnell ans Tageslicht.

Ein weiterer Schritt in Richtung C-Zukunft ist »C++«. C++ bietet Objektorientiertes Programmieren à la »Smalltalk« auf C-Ebene. Leider gibt es momentan noch kein kommerzielles C++ -Paket für den ST.

Seit »Turbo-C« von Borland auf dem Markt ist, führen die zahlreichen anderen Konkurrenten nur noch ein Schattendasein. Turbo-C besticht durch einfache Handhabung, kurze Turn-around-Zeiten und sehr hohe Ablaufgeschwindigkeit der Compilate. Die miteingebauten vorbildlichen Hilfsfunktionen lassen das Handbuch im Regal verstauben. Seit der Version 2.0 gibt es einen Source-Level-Debugger, der die Fehlersuche erheblich vereinfacht. Turbo-C kann man gleichermaßen uneingeschränkt als Einsteigerpaket und Entwicklerpaket für Profis empfehlen.

Ernsthafte Konkurrenz kommt allerdings aus England: »Lattice C 5.0«. Nachdem sich die Firma »Metacomco« bei der Entwicklung früherer Versionen derartig viele Schnitzer erlaubte, hat sich nun »Hisoft« der Sache angenommen. Mittlerweile kann sich das Produkt sehen lassen: Der Compiler hat deutlich an Geschwindigkeit gewonnen, der erzeugte Code kann sich ohne weiteres mit dem von Turbo-C messen, übertrifft diesen teilweise sogar. ANSI-Kompatibilität versteht sich fast von selbst und ist auch bis in die Libraries realisiert.

Baukasten: Sogar die Icons zeigen die strenge Modula-II-Struktur

Die Bibliotheken von Lattice C 5.0 enthalten sehr viele Funktionen aus dem Unix-Bereich. Wer also Quelltexte von Unix auf den ST portieren möchte, ist mit Lattice C 5.0 bestens bedient. Für den Einsteiger eignet sich das Paket nicht so gut wie Turbo-C. Auch einen Quelltext-Debugger kann Lattice C 5.0 nicht anbieten.

Die Muttersprache (fast) jedes Computers ist Assembler. Im Gegensatz zu hochentwickelten Programmiersprachen erscheint Assembler sehr abstrakt und umständlich. Für schnelle Routinen ist maschinennahes Programmieren und damit der Einsatz von Assembler jedoch unumgänglich. Nicht zuletzt zum besseren Verständnis der »höheren« Sprachen sollte sich jeder Programmierer irgendwann auch mit der Sprache der CPU befassen.

Allerdings eignet sich Assembler kaum zum Entwickeln größerer Anwendungen. Zwar haben einige Programme (z. B. »Tempus« und »STAD«) bewiesen, daß es sich durchaus realisieren läßt. Die künftige Entwicklung wird aber zeigen, ob sich solche Programme überhaupt vernünftig pflegen lassen. Außerdem ist die Entwicklungszeit meist wesentlich länger, als sie mit einer Hochsprache wäre.

Für den ST gibt es vier sehr gute Assembler-Pakete: »Easyrider«, »Devpac«, »GFA-Assembler« und »Turbo-Assembler«. Der letzte ist der Nachfolger des Omikron-Assemblers und wird als Shareware vertrieben.

(Michael Bernards/hu)

Omikron-Basic: Omikron Software, Sponheimstr. 12, 7530 Pforzheim

GFA-Basic und GFA-Assembler: GFA Systemtechnik GmbH, Heerdter Sandberg, 4000 Düsseldorf 11

ST Pascal Plus: alle autorisierten Atari-Fachhändler

KatCePascal: Heim Verlag, Heidelberger Landstraße 194, 6100 Darmstadt

SPC Modula II: advanced applications Vincenza GmbH, Sperlingweg 19, 7500 Karlsruhe 31

Megamax Modula-2: Application Systems Heidelberg, Postfach 102646, 6900 Heidelberg

Lattice C 5.0: Gerhard Knupe GmbH, Günterstr. 75, 4600 Dortmund

Turbo C: Borland GmbH, Lindwurmstr. 88, 8000 München 2

Devpac-Assembler: Markt & Technik AG, Hans-Pinsel-Str. 2, 8013 Haar


Michael Bernards
Aus: ST-Magazin 09 / 1990, Seite 65

Links

Copyright-Bestimmungen: siehe Über diese Seite