Das Thema Programmiersprachen ist ungeheuer komplex. Es gibt unendlich viele Programmiersprachen. Eine Liste der gängigen Programmiersprachen siehe Wikipedia.
Die Aufstellung der aktuell beliebtesten Programmiersprachen zeigt die Dynamik, mit welcher sich die Programmiersprachen entwickelt haben. Viele Sprachen wurden für besondere Anwendungen entwickelt, wie z. B. Internet/Webseiten.
In diesem Artikel möchte ich nur einige Sprachen und Tools aufführen, mit denen ich bisher gearbeitet habe. Meine Auswahl zeigt auch eher die Entstehung der Programmiersprachen anhand einiger praktischer Beispiele.
1) Reiner Maschinencode (Hexadezimal Code)
Nebenstehend ein kleiner 4-Bit-Lerncomputer des Christani Verlags aus den frühen 1980er Jahren. Dieser Computer verfügte über keine Programmiersprache im eigentlichen Sinn.
Bei diesem System wurde jeder Befehl mit dem zugehörigen Hex-Code (z.B. $A5 etc.) über die abgebildete Tastatur in das System eingegeben.
Mit diesem Lerncomputer habe ich 1982 meine IT-Laufbahn begonnen.
2) Assembler Code
Nebenstehend ein Computerselbstbauprojekt. Dieses Computersystem der Zeitschrift „mc“ basierte auf der mc68000-CPU. Dieses System begleitete mich während meines Studiums (siehe auch den Hardwareteil).
Die nötigen Treiber und Testroutinen wurden mit dem Assembler für Motorola MC68000 programmiert.
Untenstehend zeige ich ein Beispiel für ein Assemblerprogramm.
Nebenstehend ein Codebeispiel für eine Testroutine. Dieses Programm (siehe Bild) wurde mit einem Texteditor erstellt und mit einem Assembler-Programm in einen ausführbaren Hex-Code umgewandelt, welcher auf dem jeweiligen Computersystem zum Einsatz kommt.
Dieser Code ist nur für eine bestimmte Prozessorfamilie ausführbar, hier die Motorola-mc68000-Familie.
Der assemblierte Code ermöglicht die maximale Ausführungsgeschwindigkeit auf dem jeweiligen Computersystem und ist für besonders kritische Routinen in einem Computersystem vorgesehen (BIOS etc.)
Vorteile: kompakt, schneller Code, individuelle Anpassung an den jeweiligen Prozessor und die Hardwareumgebung. Es ist also eine „Spezialanwendung“.
Nachteile: Es ist ein extremes Wissen über die Zielarchitektur nötig. Der Code ist für Außenstehende nur schwer lesbar und ebenso schwer zu programmieren.
Den gezeigten Programmausschnitt habe ich im Rahmen meiner Diplomarbeit 1987 erstellt.
3) BASIC (Beginners' All-purpose Symbolic Instruction Code)
Und wieder ein Selbstbauprojekt. Hier geht es um ein Mikrocontroller-Board von der Zeitschrift „Elektor“.
Diese Platine verwendet den 8-Bit-Mikrocontroller 8052 von Intel. Das Besondere an diesem Controller war, dass dieser mit einer „normalen“ RS-232-Schnittstelle direkt über ein Terminal programmiert wurde.
Die Besonderheit von BASIC (engl. für „Beginners‘ All-purpose Symbolic Instruction Code“) ist die Tatsache, dass diese Sprache eine sogenannte Interpreter-Sprache ist. Bei diesen Sprachen wird der ausführbare Code für die CPU erst bei Ausführen des „interpretiert“ und zur Ausführung gebracht.
Der Vorteil: Ein aufwendiger Prozess des Compilierens und des Linkens (Verbinden) mit anderen Programmteilen entfällt hier. Die Sprache BASIC ist einfach strukturiert und schnell zu erlernen. Nachträgliche Änderungen am Programmcode können leicht vorgenommen werden.
Die einfache Handhabung von BASIC machte diese Programmiersprache ab Anfang der 80er Jahre sehr populär. Ein bekannter Computer aus dieser Zeit war der Commodore 64.
Die Nachteile: Die Übersetzung des BASIC-Codes zur Laufzeit des Programms dauert dadurch länger, daher ist die Ausführungsgeschwindigkeit des Programms deutlich verlangsamt. Der Speicherbedarf des Programms auf dem Computer ist wegen des BASIC-Interpreters größer als bei einem kompilierten Programm.
Mit der Einführung der Programmiersprache BASIC wurden kleinere Computer „massentauglich“.
Mein einziges Projekt, welches ich in BASIC programmiert habe, war eine Heizungssteuerung mit dem Intel 8052AH-BASIC Anfang der 90er Jahre. Für diese Anwendung reichte die Geschwindigkeit völlig aus.
4) Programmiersprache C
Die Programmiersprache C entstand in den 70er Jahren und ist bis heute eine der populärsten und leistungsstärksten Programmiersprachen. Es gibt viele verschiedene Erweiterungen und Abwandlungen. Sie ist die Basis vieler Betriebssysteme wie z.B. Unix und Linux.
Es gibt diverse integrierte Entwicklungsumgebungen (IDE) und viele Abwandlungen von C und Programmiersprachen, welche sich an der Syntax von C orientieren.
Bekannte IDEs für C sind z.B. das Visual Studio von Microsoft.
C wird u.a. zur Generierung von Betriebssystemen eingesetzt wie auch zur Programmierung von effizienten und leistungsstarken Programmen.
Ich habe in meiner Laufbahn relativ wenige Programme in C programmiert. Meine Präferenz geht eher in Richtung Pascal (siehe Pkt. 5)
5) Programmiersprache Pascal
Die Programmiersprache Pascal wurde 1971 eingeführt und war viele Jahrzehnte sehr populär und weiter verbreitet.
Insbesondere in Universitäten und wissenschaftlichen Einrichtungen war Pascal über Jahre die erste Wahl bei den Programmiersprachen.
Anfang der 80er Jahre wurde von der Firma Borland eine auf Pascal beruhende Entwicklungsumgebung vorgestellt: Diese Umgebung trug den Namen Turbo Pascal.
Diese Umgebung war auf vielen Betriebssystemen lauffähig: CP/M, MS-DOS, Mac OS u.a. Damit wurde Pascal extrem populär.
Daneben entwickelte Borland mit der Entwicklungsumgebung Delphi, welche auf Objekt Pascal basiert. Diese Umgebung wird heute noch vertrieben.
Daneben entstand eine auf Free Pascal basierende Open-Source-Variante von Delphi mit dem Namen Lazarus.
Nebenstehend ein Bild der Lazarus IDE (integrierte Entwicklungsumgebung).
Lazarus hat den großen Vorteil, dass diese Umgebung für Windows, Linux und Mac OS zur Verfügung steht. Und der Quellcode kann einfach für alle drei Zielsysteme kompiliert werden.
Pascal ist also ebenfalls eine Sprache, bei welcher der Sourcecode mit einem Compiler in eine, auf dem jeweiligen Zielsystem, ausführbare Binärdatei umgewandelt wird.
Die Vorteile insbesondere von Lazarus als Open-Source-Entwicklungsumgebung werden im Internet auf vielen Seiten hervorgehoben.
Ich verwende Lazarus als meine Standardumgebung, wenn es darum geht, Programme sowohl für Windows als auch für Linux zu erstellen.