Programmiersprachen

Die Rechner der 1940er und frühen 1950er Jahre (z.B. ENIAC, in der DDR der OPREMA) wurden ebenso wie ihre Vorläufer, die mechanischen Lochkartenmaschinen, mittels Stecktafeln programmiert. Die Idee, dass ein Programm ebenso wie die zu verarbeitenden Daten selbst eine Information ist, die im Computer gespeichert werden kann, stammt von John v. Neumann. Jeder Rechnertyp hatte dabei seinen eigenen Code (=Maschinencode, Maschinensprache) und nur diesen "versteht" die Maschine.


Maschinensprache (unter UDOS auf dem A5120)

Bevor die konkrete Aufgabe aber in diesem Code formuliert werden kann, empfiehlt es sich (auch heute noch), den logischen Ablauf in graphischer Form in einem Flussdiagramm oder Programmablaufplan (PAP) festzuhalten.


PAP (Polynomberechnung nach dem Hornerschema)

Wie man dann weiter zum Maschinenprogramm kam, zeigt das folgende Bild am Beispiel des Kleinrechners SER2a.


Programmeingabeformular (Berechnung der Quadratwurzel)

Die Befehlsfolge wurde zunächst symbolisch in ein Formular geschrieben, dann von Hand verschlüsselt (P2 bis P7 steht für die Hexziffern A bis F) und schließlich in einen Lochstreifen gestanzt. Für etwas größere Rechner sah das noch viel viel komplizierter aus.


Autocodes und Assemblersprachen

Um 1952 erschienen die ersten Versuche einer "automatischen Programmierung", wie man damals sagte, um die aufwendigen und fehlerträchtigen Maschinencode-Programmierung dem Computer zu übertragen. Man konnte nun für die Operationen leicht zu merkende "Mnemonics" und für die Variablen symbolische Namen schreiben (jedem Maschinensprachebefehl ist ein leichter verständlicher Befehl zugeordnet).
Ein spezielles Programm, "Assembler" genannt, übertrug alles in Maschinencode und sorgte für die Speicherzuordnung. Assemblersprachen ermöglichen die Nutzung aller Funktionen des Rechners, sind durch die Einfachheit der Befehle sehr schnell und ermöglichen den Aufbau sehr schlanker Programme.

Natürlich blieb man auch bei der Benutzung von Assemblern an die spezielle Rechnerstruktur gebunden, und jeder Rechnertyp hatte seine eigene Assemblersprache mit teils phantasievollen Namen wie MOPS ("Maschinenorientierte Programmiersprache", R300) oder SYPS ("Systemprogrammiersprache", R4000, R4200) usw.

Im Lauf der Zeit bildeten sich bestimmte Rechnerfamilien heraus, was zu einer gewissen Vereinheitlichung der Assemblersprachen führte. Beispiele sind bei den Großrechnern die IBM360/370 und ESER-Typen, bei 8-Bit-Rechnern die Prozessortypen 8080 und Z80 (U880), bei 16/32Bit-PCs die Prozessoren der Serie x86.

Allerdings verwendeten verschiedene Hersteller auch unterschiedliche Mnemonics (besonders im 8Bit-Bereich sehr ausgeprägt). Meist entstammten diese dem Englischen, jedoch konnte sich auch der deutschsprachige Nutzer z.B. unter LD (load = laden), MOV (move = bewegen), JMP (jump = springen) leicht etwas vorstellen. In der DDR gab es zeitweise eine Tendenz zur Eindeutschung, was zu ziemlich kryptischen Abkürzungen führte, wie z.B. in SYPS die Befehle AVA, ENA, ZUN usw.

Das Schreiben größerer Programme in Assembler ist recht mühsam. So hat man Assembler hauptsächlich zum Erstellen der Betriebssysteme und für Treiberprogramme benutzt.

Um die Nachteile von Assembler zu zu beheben, hat man später die Hochsprachen (Problemorientierte Sprachen) eingeführt. Sie ermöglichten eine hardware-unabhängigere Programmierung. Außerdem enthalten die Befehle der Hochsprachen komplexe Funktionen und gestatteten so ein schnelleres Programmieren.


Problemorientierte Programmiersprachen

Leistungsfähigere Hardware, insbesondere größere Speicherkapazität, bot auch neue Möglichkeiten einer möglichst maschinenunabhängigen, dafür dem zu lösenden Problem angepassten, Programmierung. Es bildeten sich bald zwei große Problemkreise heraus: Einerseits das eigentliche "Rechnen" bei wissenschaftlich-technischen Aufgaben mit komplizierten Algorithmen und meist nur wenigen Daten, zum anderen die "Datenverarbeitung" in Ökonomie und Verwaltung, wo einfache Manipulationen großer Datenmengen im Vordergrund standen. Diese unterschiedlichen Schwerpunkte finden sich auch in den Programmiersprachen wieder. Es zeigte sich aber bald, dass bestimmte Sprachelemente immer wieder gebraucht werden und daher in allen Sprachen in sehr ähnlicher Form enthalten sind. Dazu gehören: Historisch sind viele Programmiersprachen im Umfeld der Großrechner entstanden und wurden später auf kleineren Computer (z.B. Bürocomputer) portiert.

Die Befehle werden in der Regel vom Programmierer in eine Textdatei (=Quelldatei, Quelltext) geschrieben.
Für die Abarbeitung der Befehle gibt es 2 Verfahren: den Interpreter und den Compiler.


Interpreter

Der Interpreter liest bei Start des Programm jeweils 1 Quelldatenzeile, übersetzt sie in Maschinensprache und führt sie aus. Anschließend wiederholt er dies mit der nächsten Programmzeile.
Damit ist zu jedem Programmstart das Vorhandensein des Interpreters immer zwingend notwendig.
Über Programmiertricks ist es möglich, auch Programme zu schreiben, die sich während der Abarbeitung selbst ändern.
Vorteilhaft bei Interpretern ist auch die einfache Möglichkeit, Programme im Einzelschrittbetrieb zu testen.
Nachteilig ist die geringe Ausführungsgeschwindigkeit.
Ein typisches Beispiel für eine Interpretersprache ist BASIC. Auch die Programme des Datenbanksystems REDABAS wurden per Interpreter abgearbeitet.


Compiler

Der Compiler übersetzt den gesamten Quelltext in ein Maschinensprache-Programm, welches dann später allein gestartet werden kann.
Der Compiler wird also nur beim Programmierer benötigt.
Vorteilhaft beim Compiler gegenüber dem Interpreter ist die höhere Verarbeitungsgeschwindigkeit.
Nachteilig ist die Tatsache, dass ein einmal übersetztes Programm nicht mehr geändert werden kann.
Ein Ausführen von Programmen im Einzelschrittbetrieb und ein Kontrollieren der Programmarbeit (Debugging) ist beim Compiler schwierig.
Beispiele für Compiler-Sprachen sind Assembler, PASCAL, FORTRAN, COBOL, FORTH, C, RPG und teilweise auch BASIC.


Programmiersprache BASIC

Diese Sprache wurde erst 1965 als Lernsprache für Anfänger eingeführt und ist trotzdem von allen Programmiersprachen die mit den vielleicht meisten inkompatiblen Dialekten. Vor allem im Heimbereich fand sie viele Liebhaber.
BASIC ist ist auf nahezu jedem Rechner realisierbar, einfach zu erlernen und stellt keine großen Anforderungen an den Programmierer. Allerdings ist sein Sprachumfang relativ begrenzt und wegen der meist interpretierenden Arbeitsweise recht langsam.


BASIC-Interpreter BASI auf dem PC1715

In der DDR gab es BASIC-Interpreter für die 8-Bit-Rechner unter den Betriebssystemen SCP, UDOS und SIOS sowie für die 16-Bit-Rechner (A7100, A7150, EC1834) unter den Betriebssystemen SCP und DCP und auf dem Rechner P8000 unter dem Betriebssystem WEGA. Auch für den Rechner PBT4000 gab es einen BASIC-Interpreter, der gleichzeitig Betriebssystem war.
Seltener gab es auch BASIC-Compiler (8-Bit-Rechner, Betriebssystem SCP)

Der DCP1700-Standard-BASIC-Interpreter kostete 1980 Mark.


Programmiersprache PASCAL

(nach dem Wissenschaftler Blaise Pascal benannt)
Die Compilersprache PASCAL wurde gern im Bereich der Forschung eingesetzt und stellte stilistisch eine sehr schöne Sprache dar.
1970 von N. Wirth als Lernsprache konzipiert, baute PASCAL im Wesentlichen auf ALGOL auf, hatte ziemlich strenge Syntaxregeln und zwang zu gründlichem Durchdenken des Problems und sauberer Strukturierung des Programms.


PASCAL-Compiler auf dem A7150

PASCAL-Compiler auf dem A7150

PASCAL-Compiler auf dem A7150

In der DDR gab es PASCAL-Compiler für die 8-Bit-Rechner unter den Betriebssystemen SCP, UDOS und SIOS sowie für die 16-Bit-Rechner (A7100, A7150, EC1834) unter den Betriebssystemen SCP und DCP und auf dem Rechner P8000 unter dem Betriebssystem WEGA.

Beliebt wurde Pascal vor allem durch die als Turbo-Pascal bekannte integrierte Entwicklungsumgebung aus Editor, Compiler, Linker und Debugger, die Ende der 1980er Jahre überraschend schnell ihren Weg in die DDR fand. Dazu mag auch die Kulanz der Herstellerfirma Borland beigetragen haben, die nach der Wende allen illegalen Nutzern in der DDR nachträgliche Lizenzen zu sehr günstigen Konditionen anbot.

Eine von PASCAL abgeleitete Sprache ist MODULA.


Programmiersprache FORTRAN

(Formula Translator)
Von IBM anfangs nur zum Übersetzen mathematischer Formeln in Maschinencode konzipiert, kam 1957 die erste kommerzielle Version auf den Markt. Anfangs gab es verschiedene Versionen einzelner Hersteller, 1966 wurde FORTRAN IV (auch als FORTRAN66 bekannt) und 1977 FORTRAN77 standardisiert, das vor allem im wissenschaftlich-technischen Bereich für lange Zeit die Sprache der Wahl wurde.
Eine spätere, noch umfangreichere Version war FORTRAN90, die jedoch bald in den Schatten anderer Sprachen, wie PASCAL, geriet.
In FORTRAN können die einzelnen Programmeinheiten (Hauptprogramm, SUBROUTINE- und FUNCTION-Unterprogramme) weitgehend unabhängig voneinander entwickelt, übersetzt und ggf. geändert werden und "wissen" voneinander nichts. Daten können zwischen ihnen nur über Parameterlisten oder speziell definierte gemeinsame Speicherblöcke (COMMON) ausgetauscht werden, den fehlerträchtigen Unterschied zwischen globalen und lokalen Variablen, wie etwa in ALGOL und PASCAL, gibt es nicht.
FORTRAN kann seine IBM-Herkunft nicht verleugnen. Als Standard-Ein- und auch Ausgabemedium diente die Lochkarte, und mancher Einsteiger wurde durch die Vielzahl der FORMAT-Anweisungen zunächst abgeschreckt. Erst ab FORTRAN77 gab es da einige Erleichterungen.

Ein gewisser Nachteil ist auch, dass bei jeder neuen Version auch die veralteten Sprachelemente der vorigen mitgeschleppt wurden, so dass z.B. der ISO-Standard von FORTRAN77 (in der DDR unverändert als TGL 44500 übernommen) zu einem Buch von 380 Seiten angewachsen war.

Beispiel: Anfangs gab es keine logischen (BOOLEschen) Variablen. Bedingte Anweisungen konnten nur als "Arithmetisches IF" formuliert werden:

IF (expression) m1, m2, m3

"expression" ist dabei irgendein arithmetischer Ausdruck. Wenn dieser negativ ist, dann springe zur Marke m1, ist er gleich Null, dann zu m2, ansonsten zu m3. Implizit stecken darin also drei GOTO-Anweisungen. Das verführt zu einem schlechten Programmierstil, im Volksmund als "Spaghettiprogrammierung" bezeichnet, und mancher Programmierer hatte schon nach wenigen Wochen, wenn er noch etwas an seinem Programm ändern wollte, das Gefühl, in einem Topf mit Spaghetti in Tomatensoße herumzustochern.

In der DDR gab es FORTRAN-Compiler für Großrechner und für die 8-Bit-Rechner unter dem Betriebssystem SCP sowie für die 16-Bit-Rechner (A7100, A7150, EC1834) unter den Betriebssystemen SCP und DCP.

Der Preis für einen BOS1810-Fortran-Compiler lag bei 8555 Mark, der SCP1700-Fortran-Compiler kostete 1950 Mark, der DCP1700-Fortran-Compiler kostete in der Version 2.0 714 Mark und in der Version 3.0 1275 Mark.


Programmiersprache COBOL

(Common Business-Oriented Language)
COBOL ist etwa ebenso alt wie FORTRAN und dessen ökonomisches Gegenstück. Der Schwerpunkt liegt bei der Handhabung von Massendaten, die Darstellung mathematischer Operationen ist dagegen ziemlich umständlich.


COBOL-Compiler auf dem A7150

COBOL wurde vor allem im Finanzwesen eingesetzt, erlangte in der DDR aber keine große Verbreitung.
Es gab Compiler für die 16-Bit-Bürocomputer (A7150, EC1834) unter dem Betriebssystem DCP.
Der SCP1700-Cobol-Compiler kostete ebenso wie der DCP1700-Cobol-Compiler 2380 Mark.

Heute ist COBOL durch moderne Datenbanksysteme weitgehend abgelöst.


Programmiersprache C

C stellt eine Compilersprache dar, mit der sowohl hardwarenah als auch in Hochsprachenform programmiert werden konnte. Sie kam aus der UNIX-Welt und wurden anfangs vor allem zur Betriebssystemprogrammierung benutzt. C ist nicht ganz so streng reglementiert wie PASCAL und in etwa gleich leistungsfähig wie dieses. Bedingt durch ihr Alter ist die Anwendung der Befehle aber nicht allzu nutzerfreundlich.

C wurde bevorzugt im UNIX-Umfeld (Betriebssysteme MUTOS auf den K1600-Rechnern, dem K1840, A5120.16, A7100, A7150, EC1834, unter WEGA auf den Rechnern P8000 und P8000 compact)
sowie in seltenen Fällen auch unter den Betriebssystemen SCP (Rechner A5120, A5130, PC1715, A7100) und DCP (Rechner A7150 und EC1834) eingesetzt.

Der SCP1700-C-Compiler kostete 1215 Mark, der DCP1700-C-Compiler kostete in der Version 1.0 861 Mark und in der Version 2.0 1565 Mark.

Die objektorientierte Variante wurde C++ genannt.


Programmiersprache MODULA

MODULA ist ein Abkömmling von PASCAL und kam auf den 16-Bit-Rechnern (A7150, EC1834) unter dem Betriebssystem DCP zum Einsatz.
Diese Programmiersprache hatte in der DDR keine große Bedeutung erlangt.

Der SCP1700-Modula-Compiler kostete 1375 Mark, der Preis des DCP1700-Modula-Compilers wurde mit ca. 1050 Mark gehandelt.


Programmiersprache FORTH

(a Fo[u]rth Generation Language)
Ein Außenseiter unter den Programmiersprachen, wurde in den 70er Jahren gelegentlich als "die optimale Sprache für Mikrorechner" angepriesen. Sie war ziemlich gewöhnungsbedürftig wegen konsequenter Verwendung der "Umgekehrten Polnischen Notation (UPN)". Bemerkenswert ist, dass es in FORTH keine Grenzen zwischen Betriebssystem, Sprachcompiler und Anwenderprogramm gab. FORTH-Programme liefen deutlich schneller und waren meist auch speichergünstiger als solche in BASIC. Leider gab es auch hier mehrere unterschiedliche Dialekte.

FORTH war eine seltene Sprache in der DDR. Für den Kleincomputer KC85 gab es ein FORTH-Steckmodul. Für die Rechner A7100, A5120 und PC1715 existierten unter dem Betriebssystem SCP ebenfalls FORTH-Compiler.


Programmiersprache PL/1

(Programming Language Number 1)
von IBM mit viel Getöse als Nachfolger von FORTRAN, ALGOL und COBOL angekündigt (und in der DDR mit großen Hoffnungen erwartet), sollte PL/1 die Vorteile dieser drei Sprachen vereinigen und war modular konzipiert, so dass jeder Nutzer nur die für seinen Problemkreis relevanten Teile zu implementieren brauchte. Leider erwies sich der PL/1-Compiler auf den ESER-Rechnern nur als ein etwas besseres COBOL, während die von bisherigen FORTRAN-Anwendern erwartete Funktionalität mehr als dürftig ausfiel. Ob jemals ein besserer Compiler herauskam, ist nicht bekannt. Mit dem Erscheinen von PASCAL erledigte sich die Diskussion um PL/1 von selbst. Lediglich die Abkömmlinge PL/M und PL/Z für Mikrorechner überlebten.


Programmiersprache PL/M

(PL/M = PL/1 for Microcomputers)
Diese Sprache wurde aus der Sprache PL/1 abgeleitet.
PL/M sollten den Großrechner-Programmierern die Möglichkeit geben, ihre Programmierkenntnisse auch auf Bürocomputern zu nutzen.
Es existierten Compiler für die die Rechner A7100 und A7150 unter den Betriebssystemen SCP und DCP.
PL/M fand in der DDR keine große Verbreitung.
Abgeleitet von PL/M gab es die Sprache PL/Z, die unter dem Betriebssystem UDOS auf den 8-Bit-Bürocomputern A5120, A5130 und K8924 eingesetzt wurde.


Programmiersprache ALGOL

Diese Ende der 50er Jahre entwickelte Sprache war ursprünglich gar nicht als Programmiersprache, sondern zur Publikation mathematischer Algorithmen ausgearbeitet. Der offizielle Bericht erschien 1960. Kurz danach kamen die ersten ALGOL-Compiler auf den Markt, natürlich nur für Großrechner, und wurden vor allem in Europa verwendet, während man in USA bei FORTRAN blieb. Eine weiterentwickelte Version (ALGOL 68) fand kaum Verbreitung. In der DDR gab es ALGOL-Compiler für die Rechner ZRA1 sowie R300, beide (maschinenbedingt) mit ziemlich eingeschränktem Funktionsumfang. Etwas besser funktionierten die Compiler für die sowjetischen Maschinen, wie MINSK22 und BESM6, die aber in der DDR so gut wie nicht vertreten waren. Für die ESER-Rechner hatte es vermutlich auch ALGOL-Compiler gegeben.


Programmiersprache PROLOG

Zur problemnahen Notation von Steuerprogrammen für speicherprogrammierbare Steuerungen wurde die Fachsprache PROLOG entwickelt. Die für Anwendersteuerprogramme der SPS ursalog5010 konzipierte Fachsprache PROLOG 1, wurde unter den höheren Anforderungen der SPS ursalog5020 weiterentwickelt zu PROLOG 2 und ist aufwärtskompatibel zur Fachsprache PN5000 für das Automatisierungssystem audatec. Trotz der systemnahen Entwicklung weisen die in PROLOG notierten Anwendersteuerprogramme (Quellprogramme) kaum maschinenspezifische Besonderheiten auf. Sie können in Verbindung mit einem maschinenspezifischen Compiler als Quellprogramme für beliebige SPS dienen, vorausgesetzt, die SPS enthält ein hierfür vorbereitetes Echtzeitbetriebssystem und die notwendigen Software-Module.

Ein Einsatzgebiet von PROLOG war die Programmierung der Maschinensteuerung S2000S.


Programmiersprache PROMAR

Diese Sprache wurde gemeinsam von EAW und der TU Dresden entwickelt und zur Programmierung der Maschinensteuerung S2000R eingesetzt. PROMAR war eine Compilersprache, die unter dem Betriebssystem UDOS auf den Rechnern PC1715, A5120 und P8000 lief. Zur Software gehörten: An Dateiarten benutzte PROMAR:
Beispielprogramm:

MOD EB,16
MOD AB,6
;
APRO 3
DEF1 MB1, 0FFH
;
DEF1 AB0,0FFH
DEF1 AB1,0FFH
EA 1
PEND


Programmiersprache RPG

Die Sprachen RPG wurde nur im Großrechnerumfeld, speziell bei den ESER-Rechnern eingesetzt.
Sie ist durch ein strenges spaltenorientiertes Programmieren gekennzeichnet (Ein Versetzten eines Befehls oder Parameters um 1 Zeichen zwecks Strukturierung war also nicht möglich).
Auf jede Zeile kann, ähnlich wie bei Assembler, nur 1 Befehl geschrieben werden.
Zum Vorbereiten der Programme gab es spezielle Formblätter, die die man per Stift die Befehle eingetragen hatte.
PRG war eine recht umständliche Sprache, hatte sich aber durch die Dominanz von IBM bei den Großrechnern durchgesetzt.


Programmiersprache DIWA

(DIWA =Dialogsystem für Wissenschaftliche Anwendungen).
Mit der Kombination von Betriebssystem und höherer Programmiersprache ist es mit dem System DIWA den Robotron-Entwicklern Mitte der 1970er Jahre gelungen, für die Robotronrechner der R4000-Serie eine einfache Nutzungsmöglichkeit auch für Menschen zu schaffen, die nicht ausgebildete Programmierer waren. Im Grundprinzip war es BASIC ähnlich, durch Verwendung deutscher Schlüsselworte und Unterteilung der Programmzeilen in Gruppen war eine eigenständige Weiterentwicklung gegenüber BASIC allerdings gegeben. Durch seine Einfachheit, Problemorientiertheit, schnelle Erlernbarkeit und direkte Rechnerkommunikation wurde es vor allem mit der Verbreitung des KRS4200 für wissenschaftliche Berechnungen eingesetzt.

DIWA4200 gab es in 4 unterschiedlichen Ausführungen, die sich allerdings nur durch die unterstützte Hardware unterschieden: Allen Varianten gemeinsam waren die 12 Grundbefehle:
AUSGABE EINGABE
STARTE RUFE
BEENDE HALT
LADE ORGANISIERE
WENN FUER
TILGE KOMMENTAR

Erweitert wurden diese Befehle mit den Anweisungen für die Gerätebenutzung:
Schreibmaschine Lochband
Drucker Trommelspeicher

und der Angabe, was zu verarbeiten ist:
Daten Programm
Kommandos Variablenliste
Freier Speicherplatz Dateitabelle auf der Trommel

Verwendet wurde nur der jeweils erste Buchstabe des Wortes. Das Ausschreiben im Programmtext diente nur der besseren Lesbarkeit durch den Anwender. z.B. bedeutet "A SP 2.2" Schreibmaschinenausgabe der Programmzeile 2.2

Die Kommandos wurden entweder über die Bedienschreibmaschine direkt eingegeben und sofort in die Maschinensprache übersetzt und ausgeführt oder mit einer Zeilennummer versehen als indirektes Kommando in der Programmliste gespeichert. Die Zeilennummer bestanden aus zwei mal zwei Ziffern von 01 bis 99 die durch einen Punkt in Gruppen und Schrittnummer unterteilt wurden. So konnten Unterprogramme optisch sehr gut vom Hauptprogramm getrennt werden. Dennoch ließ sich jede Zeile, jede Programmgruppe oder das Gesamtprogramm direkt oder als Unterprogramm aufrufen. Die Verarbeitung erfolgte zeilenorientiert. Es durften mehrere Anweisung auf einer Zeile stehen, die durch ein Semikolon getrennt wurden. Die Zeilenlänge betrug maximal 65 Zeichen und wurde durch ein NL-Zeichen abgeschlossen. Namen von Variablen mussten mit einem Großbuchstaben beginnen und durften Ziffern enthalten. Allerdings wurden nur die ersten beiden Zeichen vom System unterschieden. Funktionen begannen mit einem kleinen "f".


So sah ein originales Programmlisting nach Ausgabe über den Seriendrucker aus.

Neben den vielen Vorteilen, die dieses System hatte, kann man aber auch die Nachteile nicht verschweigen. Durch den beschränkten Speicher im KRS4200 (16 bis 32 KByte) mussten einige Einschränkungen in Kauf genommen werden. Die Rechengenauigkeit beschränkte sich auf 5 Dezimalziffern. Obwohl zu dieser Zeit in Ingenieurkreisen noch mit dem Rechenstab gerechnet wurde, der nur maximal 3 Dezimalziffern auflöste, war durch Fortpflanzung der Rundungsfehler die Genauigkeit von DIWA für manche Aufgaben nicht ausreichend. Durch die Arbeitsweise als Interpreter war bedingt durch die damals noch niedrigen Taktfrequenzen die Abarbeitung sehr langsam. Trotzdem kann man sagen, dass mit Hilfe von DIWA viele Wissenschaftler den Zugang zur Rechentechnik gefunden haben und dann später am PC mit BASIC kaum noch Probleme hatten.

Programmiersprache FORMAL

Bei dieser Sprache handelte es sich um eine abgerüstete Version eines ALGOL-Compilers, der auf dem Rechner D4A betrieben wurde.



Letzte Änderung dieser Seite: 29.11.2016Herkunft: www.robotrontechnik.de