Zweck einer Programmiersprache
Eine Programmiersprache dient dazu, ein Programm mit schriftsprachlichen Mitteln beschreiben zu können, wobei diese
Beschreibung wenigstens noch einigermaßen einem Text in menschlicher Sprache ähnelt (zumeist Englisch).
Grobe Unterscheidung in zwei Kategorien
Es gibt zwei prinzipiell verschiedene Arten von Programmiersprachen:
- Maschinennahe Sprachen = Assemblersprachen
- Die sprachlichen Elemente bestehen aus sehr kurzen mnemotechnischen Ausdrücken wie
- LDA (load accu) = lade den Akkumulator mit einem Datum von ...
- STA (store accu) = speichere das im Akkumulator befindliche Datum bei ... ab
- MOV (move) = bewege, eigentlich kopiere, ein Datum von ... nach ...
- IN (input) = lies ein Datum von einem Eingabebausteien ... ein
- OUT (output) = gib ein Datum an einen Ausgabebaustein ... aus
- Höhere bzw. problemorientierte Sprachen
- Die sprachlichen Elemente bestehen aus ganzen oder abgekürzten Wörtern und Wortverbindungen, welche
einfachere aber ähnliche Strukturen aufweisen wie eine menschliche Sprache.
Beispiele:
- repeat ... until ... = wiederhole ... bis ...
- do ... while ... = tue folgendes ... solange ...
- select ... case ... case ... = untersuche ... und wähle aus folgenden Fällen aus
Weiterhin wird, anders als in einer Assemblersprache, häufig ein Satz verschiedener Datentypen zur Verfügung gestellt,
welcher durch vom Programmierer definierte Typen erweiterbar ist.
Erstellung eines Programms
Zur Erstellung eines Programms entwirft man die grundlegenden Ideen zunächst weitgehend unabhängig von einer
Programmiersprache. Das Resultat ist u.a. die grafische Darstellung eines Algorithmus.
Danach muss die Entwurfsidee implementiert werden, wozu man sich einer Programmiersprache bedient.
Hierzu entwirft man einen zum zuvor entworfenen Algorithmus passenden Quelltext in ebendieser Programmiersprache.
Diesen Quelltext kann man mit einem Editor eingeben und bearbeiten.
Anschließend werden die Werkzeuge der Programmiersprache verwendet, um ein ablauffähiges Programm zu erhalten.
Wesentliche Werkzeuge einer Programmiersprache sind Übersetzer wie Assembler und Compiler bzw. Interpreter.
Implementationen von Programmiersprachen
Höhere bzw. problemorientierte Programmiersprachen können implementiert sein als
- Interpretersprache
- Der eingegebene Quelltext wird von einem speziellen Editor während der Eingabe in eine kompakte Kurzform
umgesetzt. Das so erhaltene ablauffähige Programm kann nicht unmittelbar von der CPU des Computers abgearbeitet werden.
Hierfür ist ein Interpreter-Programm erforderlich, welches die Programmelemente (Token oder Code-Bytes, nicht jedoch
Quelltext) einzeln und nacheinander mit Hilfe von zumeist mehreren CPU-Befehlen ausführt.
- Compilersprache
- Der Quelltext kann mit jedem beliebigen Editor oder ggf. Textverarbeitungssystem eingegeben und als ASCII-Datei abgelegt
werden. Aus dieser Datei wird eine von der CPU abarbeitbare Programmdatei, indem die Datei zumindest durch einen sog.
Compiler übersetzt wird. Zumeist wirken auf dem Weg zur Programmdatei weitere
Werkzeuge mit.
- Kombination aus Compiler- und Interpretersprache
- Der Quelltext wird in eine Datei aus kompaktem Code übersetzt, der z.B. P-Code (P für pseudo) oder Byte-Code
genannt wird. Diese Datei kann nicht von der CPU sondern von einem virtuellen Prozessor abgearbeitet werden, welcher durch
einen kleinen und leistungsfähigen Interpreter implementiert wird.