Programmieren zum Sparpreis

Die Vielfalt der Programmiersprachen auf ATARI-Computern wird gezeigt, zum Teil für Anfänger geeignet. Der Schwerpunkt liegt auf Free- und Shareware. Auch Schulungsmaterial in Kursform steht auf ATARI-CD-ROMs zur Verfügung, leider derzeit nur in englischer Sprache. Wegen der Bedeutung des Themas werden auch CD-ROMs als Quellen genannt, obwohl Sie vieles auf einer der nächsten Leser-CDs im Ordner PROGRAMM linden dürften, einiges auch erstmalig. Wenn alles klappt, gibt es vorab als Auskoppelung günstig auf je einer Disk ein brauchbares altes GFA-Basic 2 mit Fremd-Compiler bzw. eine für den laufenden PURE-Pascal-Kurs als Pascal "Interpreter" funktionierende Demo.

Überblick mit Typisierung

Zunächst eine Entwarnung für Anfänger: Lassen Sie sich nicht von der Vielfalt erschlagen! Lesen Sie einfach mal drüber und wenn Sie wirklich nur Bahnhof verstehen, konzentrieren Sie sich auf die Informationen zum Anfänger Favoriten BASIC, vor allem über die Kurse (Ordner LERN auf Leser-CD).

Zwei Hauptgründe veranlassen Menschen, auf dem ATARI (zum Sparpreis) zu programmieren: Der eine ist die Möglichkeit, mit jenen Programmiersprachen sauber programmieren zu lernen, die auch in der Universitätsausbildung eingesetzt werden, oder zumindest die persönliche Eignung für Programmierung zu testen. Dies ist ein Aspekt, der für heutige Berufe des Informatikbereichs, bei denen es mehr offene Stellen als Bewerber gibt, eine große Rolle spielt. Der andere Grund ist der Wunsch, eigene per Doppelklick startbare Programme zu erstellen, die exakt das vollbringen, was man selbst möchte. Dies können nützliche Berechnungen, Simulationen, ein Spiel oder vieles andere sein, je nachdem wie weit Ihr Können bereits fortgeschritten ist. Die Kenntnis einer Programmiersprache erleichtert übrigens das Erlernen einer anderen gewaltig (ähnlich) bei gesprochenen Sprachen.

Mit (Programmier-) Sprachen sind hier stets sogenannte "Höhere Programmiersprachen" gemeint, bei denen als Befehle überwiegend aus dem Englischen entlehnte Schlüsselworte dienen. Auf Maschinencode oder Assembler, für den allerdings Shareware existiert (auf der SDK u.a. TURBOASSEMBLER 1.77, eine Weiterentwicklung eines früher kommerziellen Produkts von OMIKRON), wird nicht eingegangen. Assembler nutzt die Hardwarebesonderheiten des Prozessors und erzeugt sehr schnellen Code. In Assembler ist das Programmieren schwieriger und, im Unterschied zu höheren Programmiersprachen, ist eine Portierung von damit entwickelten Programmen auf Systeme mit anderer Prozessorfamilie praktisch unmöglich.

Bei Programmiersprachen unterscheidet man grundsätzlich zwei Gruppen, nämlich Interpreter- und Compiler Sprachen (manchmal gibt es für dieselbe Sprache beides). Beide übersetzen Ihr Quell-Programm (auch Quelltext, Source Code), das aus einzelnen lesbaren Befehlen besteht, in Maschinencode, allerdings auf unterschiedliche Weise.

Interpreter übersetzen jeweils einen Befehl und führen ihn sofort aus, bei Programmschleifen z.B. wird bei jedem Durchlauf erneut übersetzt. Zugehörige Quell-Programme sind nicht ohne "ihren" Interpreter lauffähig. Deshalb gibt es für manche kommerzielle Interpreter sogenannte Run-Only-Interpreter, die nur zum Starten von Programmen geeignet sind und zu sonst nichts, die aber frei weitergegeben werden dürfen. Interpreter sind zwar im allg. langsamer, bieten aber auch Vorteile: Bereits beim Eintippen werden Ihre Programmzeilen einer Syntax-Prüfung unterzogen, z. B. auf richtige Schreibweise eines Befehls. Auch kehrt der Interpreter normalerweise bei einem erst nach dem Start Ihres Programms erkannten Fehler an die fehlerhafte Stelle Ihres Listings zurück. Sie haben auch die Möglichkeit, streckenweise den sogenannten Trace-Modus einzuschalten, bei dem parallel zur Abarbeitung die entsprechenden Befehlszeilen am Bildschirm ausgegeben werden. Sie können so auch in Single Tasking-Systemen (d.h. mit klassischem TOS) schnell verbessern und erneut laufen lassen.

Ein typisches Beispiel ist die kindgerechte Programmiersprache LOGO (ich glaube nur für TOS 1.0), die eine Zeitlang mit STs ausgeliefert wurde (ca. 1986). Deren Turtle-Grafik lebt übrigens in GFA-Basic und in Pascal weiter. So ist in der letzten Pure-Pascal-Demo ein Ordner TURTLE mit Turtle-Gratik-Beispielen enthalten. Kurz gesagt: relative Linienkommandos (rt 30 = drehe um 30 Grad nach rechts, fd 10 = zeichne um 10 vorwärts u.v.a.) erlauben es, mit wenigen Befehlen z.B. eine Vektorgrafik zu erstellen, in der Bildelemente sich immer wieder leicht verändert, z.B. in Größe und Ausrichtung, wiederholen können (etwa Blütenmuster und Sterne).

Die obigen Möglichkeiten besitzt ein Compiler nicht. Bei ihm werden alle Befehle ein für allemal in Maschinencode übersetzt und stehen in der urprünglichen Form nicht mehr zur Verfügung. Daher immer auch das Quellprogramm für spätere Änderungen (auf mehreren Datenträgern) sichern (natürlich auch Ihre Programmiersprache)! Neu übersetzen ist ja kein Problem! Als Ausgleich ist das Compilat (das compilierte Programm) allein lauffähig ("stand alone"), z. B. als xyz.PRG oder xyz.TOS, und meist um ein Vielfaches schneller, u.a. weil nichts mehr, insbesondere mehrfach, übersetzt werden muss.

Eine Mischforen sind Basic-Dialekte (von OMIKRON und GFA), für die sowohl Interpreter als auch Compiler existieren und die daher für Anfänger oder für kleine ad hoc Programme besonders geeignet sind: Programmentwicklung per Interpreter, dann compilieren und als "stand-alone"-Programm verwenden. Im englischen Sprachraum existieren weitere Dialekte.

Weniger verbreitete Sprachen

Natürlich gibt es auf dem ATARI auch schnelle Interpreter, wie z.B. APL (IAPL, APL und APL6800, ähnlich ist J62ATARI). Diese von IBM kreierte Sprache ermöglicht extrem kurze Programme und ist für wissenschaftliche Probleme ideal. Viele Befehle bestehen nur aus einem einzigen Sonderzeichen - die Tastatur lässt sich dafür umschalten (z.B. Jota auf der iTaste und eine Zahl erzeugen einen aufsteigenden Zahlenvektor von 1 bis zu dieser Zahl; ein abgewandelter Pfeil nach oben bewirkt "aufsteigenden Sortierindex bilden"). Da APL verkettete Befehle erlaubt, faßt jede Zeile viele Befehle. So ist ein Programm schnell "zusammengeklopft", aber nicht gut lesbar. Mit etwas gutem Willen lassen sich auch lesbare Programme schreiben. Man profitiert besonders von den vielen eingebauten Funktionen. Zwar für Einsteiger nicht die Sprache der Wahl, aber für Wissenschaftler gut geeignet. Auf weniger übliche Sprachen wie EIFFEL (VICI), FORTH, GOFER, GOLEM, LISP, PROLOG, SCHEME, SMALLTALK u.a. kann leider hier nicht eingegangen werden. Sie sind unter diesen Namen auf verschiedenen CDs zu finden, z.B. mForth auf der SDK Update. FORTRAN, obwohl früher eine vor allem im wissenschaftlichen Bereich weitverbreitete Compilersprache, wird auch ausgeklammert (als BCF, F77 oder verschiedentlich im Ordner GNU FORTRAN als G77). LISP und PROLOG verwendet man für Programme zur Informationsverarbeitung (AI = Artificial Intelligence, falsch eingedeutscht: KI = künstliche Intelligenz). Auch PLO, die Sprache aus Prof. Wirths klassischen Buch zum Compilerbau, findet man, allerdings ohne weitere Angaben, und zwar auf ST 334, Maxon 2 und Alpha, und in einer anscheinend neueren Version auf der SDK.

Moderne Sprachen

Ausführlicher behandelt werden die Compilersprachen Pascal, MODULA2 (eingeschränkt der Abkömmling OBERON) und selbstverständlich C/C++. Bedeutsam ist immer noch die Interpretersprache BASIC, für die zusätzlich Compiler existieren.

PERL ist eine Mischung aus Shell, Programmiersprache u.v.a., die derzeit eine größere Bedeutung unter LINUX (verfügbar für Falcon, TT und jetzt Milan) genießt.

Pascal und MODULA (und letztendlich OBERON) stammen von Prof. Wirth von der ETH Zürich und werden/wurden insbesondere in der Universitätsausbildung eingesetzt, da sie zum sauberen Programmieren erziehen. Zudem gibt es Standards, während z.B. bei BASIC jeder Dialekt weitgehend nach Entwickler Vorstellungen "austreibt". Saubere Programmierung ist wichtig! Nur gut strukturierte, modular aufgebaute und ausführlich kommentierte und dokumentierte Programme lassen sich problemarm pflegen. Daß dies vielfach auch sog. Profis versäumten, sieht man am Nicht-Betriebssystem-Teil der Jahr-2000-Probleme, über die sogar Tageszeitungen schreiben. Allgemein gilt nach Expertenmeinung: kein längeres Programm ist zu 100% fehlerfrei!

Pascal

Zu Pascal habe ich zwar auf CDs Kursmaterial (TTUTOR und TPTUTOR u.a.), aber keinen frei verfügbaren Compiler entdecken können. Als speicherfähiger Pascal-Interpreter einsetzbar ist jedoch die Demo zu Pure Pascal (PP DEMO, letzte veröffentlichte Version auf Suzy B 1). Die Demo compiliert sogar, erlaubt allerdings kein Abspeichem der gelinkten Programme, d.h. die Generierung von PRG usw. ist nicht möglich. PP DEMO genügt zum Selbstlernen und ist für das Lernen auch im Rahmen des ab ST C 5/99 laufenden PURE Pascal Kurses verwendbar. PURE ist übrigens der Firmenname der Programmentwickler - dem Reinen ist alles rein! Es gibt aber einen kostenlosen Umweg: Das später behandelte Gcc-System (GNU C++ usw.) enthält ein Umwandlungsprogramm P2C von Pascal-Quelltexten nach C/C++-Quelltexten, die dann mit dem Gcc compiliert werden können. Analog geht's auch mit FORTRAN (F2C). Ungewohnt ist, dass bei PP DEMO im File-Menue die Open- und Save-Zeilen deaktiviert sind. Man kann daher Quelltext-Dateien nur über interne Laufwerk-Icons öffnen und veränderte Quelltexte nach dem Anklicken des Schließfeldes nur aus der Sicherheitsabfrage heraus speichern. Einen neuen Quelltext erzeugt man unabhängig von der Programmiersprache ohnehin am besten aus der umbenannten Kopie eines vorhandenen Quelltextes, bei PP DEMO vorher, z.B. per Desktop, kopiert.

Modula2

Für MODULA2 war auch nach intensivem Suchen erstaunlicherweise nur ein einziger Kurs auf der SDK (MODU2TUT) zu entdecken. Ein gedruckter Modula-Kurs war in der ST Computer ab Heft 6/89 zu finden. Zum Ausgleich stößt man auf mehrere Compiler, die Freeware [MODULA-2.LPR][1]; die Shareware [ANA V 1.01][2], und zuletzt das 20 MB umfassende Megamax-Modula-Profi-System MM2SHELL Version 2.3g mit Compiler V 4.3e von 1994, mit dem z.B. der Spiele-Klassiker OXYD programmiert wurde. Sie finden es auf der Revolution 5, als STC-PD-"Disk" 191 (4 HDDisks oder CD, natürlich auf der neuen STC-CD "Complete PD 1-250" enthalten) und, allerdings gepackt und nur mit Signum-Texten, auf der Suzy B1.

OBERON wurde aus MODULA abgeleitet, mit weniger Befehlen und weiteren Unterschieden, um es zu beschleunigen. Neben dem alten STOBERON, das noch Unzulänglichkeiten enthält (auf vielen CDs verfügbar), existiert das bis zur Version 2.14 gediehene STJO (STJ-OBERON-2 als OBERON I auf der SDK) und eine Unterweisung 02LANGI 0 (Revolution 8). Zusätzlich findet man noch ein Entwicklungssystem, basierend auf Version 2.14 (als N02 auf Revolution 8) mit ST-Guide-Anleitung, das MagiC 4 oder AES 4.x verlangt.

C, C++ und der GCC

Als Dauerbrenner hält sich auf allen Plattformen als weiterer Pascal-Abkömmling die Programmiersprache C, mit der u.a. das ATARI-Betriebssystem und auch die verschiedensten Programmiersprachen entwickelt wurden. C ist relativ rechnernah und äußerst vielseitig, da fast alles erlaubt ist. So liegt es z.B. in der Verantwortung des Programmierers, dass nicht auf Feldelemente außerhalb des definierten Bereichs zugegriffen wird. Selbstdisziplin und Vorsicht sind angesagt. Zur Optimierung des Codes ist vorgesehen, mit einem sog. Precompiler das Quellprogramm als Zwischenstufe in Assembler zu übersetzen und Codeteile bei entsprechenden Kenntnissen durch schnellere Routinen zu ersetzen.

Hier gibt es als Freeware den SOZOBON C-Compiler (üblicherweise im Ordner SOZOBON, Programm HCC u.a., als neueste auf der SDK eine Version von 9/95,auf der Lohrum 3 in GAMES/SPRACHEN eine von 2/94, ältere als PD-Disks J055, P2260, ST357/358 XE364/365 u.a.). Die für Anfänger komplizierte Bedienung erleichtert eine Shell, d.h. eine zusätzliche Benutzeroberfläche, z.B. die Shareware C-DESK (CDESK). Die aktuellste CDESK Versin 2.01 fand ich in einer Verbesserung einer älteren SOZOBON-Version (Ordner SOZBIN01 auf Lohrum 1 und Wow), die sich jedoch auch mit den neueren (namensgleichen) SOZOBON-Programmen von 1995 (SDK-CD) verträgt.

Für Experten existiert noch eine spezielle Freeware, nämlich Gcc, der GNU C Compiler (GCC V 2.7.2 auf SDK, SDK Updatc und Omega und neuer als V 2.8.1 auf der Whiteline Kappa). Dies ist ein komplettes Entwicklungssystem für das "klassische" C, das seltene Complete C und das allgemein bekannte objektorientierte C++, sprich "C plus plus", derzeit das einzige auf dem ATARI erhältliche für C++. Der Gcc existiert auf praktisch allen Plattformen. Er ist kostenlos verwendbar und unterliegt der äußerst anwenderfreundlichen GNU-Licence. Da der Quelltext frei zugänglich ist und Änderungen durch jederrnann möglich sind, jedoch als Quelltext veröffentlicht werden müssen, ist er vieltausendfach erprobt und verbessert. Er wird von der Free Software FoLindation (FSF) entwickelt und betreut. Auch Sie können Mitglied werden oder spenden. Der Gcc läuft extrem stabil und erzeugt extrem stabilen Code. Mit ihm wurde übrigens auch LINUX entwickelt und compiliert, was seine überragende Qualität beweist.

Der Gcc ist mit ca. 40 MB (inkl. GNFORTRAN und Quellcodes) wohl nichts für Anfänger. Außerdem sind mind. 3 MB freier Arbeitsspeicher erforderlich. Obwohl die ATARI-Version ursprünglich für MINT gedacht war, lässt sie sich auch unter TOS betreiben (durch Kopieren bzw. Umkopieren in bestimmte Ordner, s. CDINFO.TXT auf der SDK oder Textbeitrag von Prof. Walz in der ST-Computer 11/96). Dazu gibt es auch Shells wie GNUSHELL (im Ordner GNUSH 154 auf Revolution 8). Natürlich fand sich auch ein C-KURSUS und durch "Fremdgehen" weitere und sogar ein sehr ausführlicher C++-Kurs (12 Kapitel auf ge,chätzt 150 Seiten), die auf der Leser-CD wiederholt werden. Nicht unerwähnt bleiben sollen auch PURE C und Turbo C, für die die SDK Update-CD Libraries u.a. enthält.

Kurse

Soweit Kurse auf der Leser-CD von anderen Plattformen übernommen wurden, läuft ein evtl. beigefügtes "Rahmenprogramm" natürlich nicht. Aber es gibt Abhilfe: Der Editor TEMPUS bzw. seine Demos (auch bei CD-INF) erlauben nicht nur das Betrachten der Kurs-Texte, sondern auch den Start von Programminen (Menu "Parameter", Untermenu "Sofortaufruf') mit anschließender Rückkehr an die aktuelle Textstelle. Beim Kurs für GNU C++ fehlt noch ein C-Kenner, der die Sourcen übersetzt und in einen Unterordner Programme ergänzt.

OMIKRON-Basic

Sehr beliebt, insbesondere auch für Anfänger, bleibt natürlich weiterhin BASIC. Das unausgereifte ST Basic der ersten Stunde spielte bald keine Rolle mehr. Im deutschen Sprachraum durchgesetzt haben sich die BASIC Dialekte der Firmen OMIKRON und GFA. OMIKRON-BASIC wurde als Interpreter mit Handbuch in der Version 3 mit zahlreichen ST mitgeliefert (auch als Vollversion 3.03 auf der GOLD-CD), ist derzeit in der Version 5 auf dem Markt und wird meines Wissens weiter gepflegt. Auf der PD-Disk ST 25 (Maxon 1 und 2) entdeckte ich auch ein Run-only Programm (OM_BASIC.PRG) und ACC (OM-BAS-R.ACC) mit gleicher Dateilänge, angeblich zu Version 2. Auf der ST 778 (Maxon 2) findet man eine speicherfühige Version (wegen der Dateilänge vermutlich 3.0). Ansonsten suchen Sie Run-Only-Programme vergeblich. Wenn Sie einen Compiler benötigen, müssen Sie ihn dazukaufen auf CD-ROMs Fehlanzeige.

GFA-Basic

Seit April ist die letzte GFA-Basic-Version - soweit ich weiß, 3.6TT, aber nicht nur für TT - auf Disk und CD-ROM beim Falke Verlag mit Literatur auf CD und auch gedruckt für wenig Geld wieder erhältlich. Und zwar in einer gepatchten Variante. GFA-Basic soll ja vorher einige Macken gehabt haben, die jedoch seiner Beliebtheit keinen Abbruch taten. Auch auf PD-CDs findet man eine Menge: So gibt es den programmiergeeigneten Freeware-Editor zur wohl nie mehr erscheinenden Version 4 (EDITOR.PRG, auch bei CD-1NF). Zusätzlich finden wir auf CDs sowohl einen Kurs zur Version 2.0 (GFA CLASS auf PD-Disk V366, CDOpen und Suzy B 1) als auch ein komplettes Handbuch für GFA BASIC V 3.0 (GFAXPERT auf Mega Archive 2, Lohrum 3 und SDK bzw. noch umfangreicher, dessen Nachfolger GFA2MAN3 auf Suzy B 1). Sogar ein Online-Handbuch (Ordner ON LINS auf der Suzy B 1) ist verfügbar. Eine neue Serie mit aktuellen Tips und Tricks wurde auf der Revolution 7 gestartet. Und am besten für schmale Geldbeutel: Es gibt eine frei kopierbare und nutzbare Vollversion GFA BASIC 2 (auf V 473, CD Open, Forever 2 und A Kid CD, jeweils bei MREliza und auf Suzy B 1). Eliza ist übrigens ein pfifger künstlicher "Psychiater" (als solcher ungeeignet!), mit dem Joe Weizenbaum gezeigt hat, dass man nicht ohne weiteres unterscheiden kann, ob der Gesprächspartner Mensch oder Computer ist. Weiter existieren unzählige GFABASRO = run only; die nur zum Starten von GFA-Programmen dienen und uneingeschränkt weitergegeben werden dürfen. Die Versions-Nr. eines GFA-Basic erhalten Sie witzigerweise über den Befehl ERROR 100 angezeigt.

Zur GFA-Vollversion 2 passend gibt es einen Postcardware-Compiler (MNLU TRQ auf SDK und Suzy B 2) für GFA Basic 2 und 3. Leistungsfähiger ist eine bis 100 KByte Programmlänge voll funktionsfähige, bequem bedienbare Compilerdemo für GFA-BASIC 3 bis 3.5 (COMPDEMO auf AI/STC Spezial-Disk 5/96 und Best of ... 2). Sie ergänzt z.B. den GFA-interpreter 3.5 von TOS-Disk 6/92 zu einem Vollsystem für kleinere Programme (Vorsicht, falls Sie an diese Disk geraten! Diese enthielt einen Bootsektor-Virus - eine unrühmliche Ausnahme! Erst Virenscanner einsetzen, was sich auch bei Gebrauchtsoftware aus nicht vertrauten Quellen grundsätzlich empfiehlt). Was sind bei GFA-Basic die Unterschiede von Version 2 zu Version 3? Die Syntax ist z.T. besser handhabbar, z.B. fsfirst und fsnext statt fehleranfälliger GEMDOS-Nrn. Matritzenrechnung, über die Omikron 3.0 bereits verfügte, ist erst ab 3.5 hinzugekommen. Die Namenserweiterung (Dateityp) hat sich von BAS (identisch mit Omikron) zum unterscheidbaren GFA gewandelt. Für die per beliebigen Editor bearbeitbaren Listings im Klartext bleibt es aber bei allen Versionen und Dialekten bei LST (Listing). Compiler lassen sich übrigens nur mit BAS bzw. GFA füttern! Klar, dass einfaches Umbenennen von GFA2-Programmen von xyz.BAS nach xyz.GFA nicht funktioniert (s. "Grenzen überwinden"). Auf der Leser-CD werden Sie im Ordner PROGRAMM\GFA auch GFADIF23.TXT mit einer Liste der Unterschiede zwischen den Versionen finden.

Obwohl GFA-Basic nicht mehr weiterentwickelt wird, tut sich, wie Sie den STC-Heften Ende 98 entnehmen konnten, im Umfeld noch eine Menge (im Sinne von "Visual" Basic). Grundkenntnisse der eigentlichen Programmiersprache sind aber auch bei den besten Tools unverzichtbar.

Der Vollständigkeit halber sei noch CPXBASIC erwähnt, das ab 68000-Prozessor läuft und einen Coprozessor unterstützt.


Dieter Koch
Aus: ST-Computer 06 / 1999, Seite 50

Links

Copyright-Bestimmungen: siehe Über diese Seite