



Next: A.2.2 Was ist ein
Up: A.2 Die echten Programmiersprachen
Previous: A.2 Die echten Programmiersprachen
Contents
Index
Es sieht so aus, als ob auf diese Weise die eigentliche Programmierung
auf diejenigen armen Entwickler übertragen wird, die sich mit der
Erstellung eines entsprechenden Übersetzerprogramms herumschlagen
müssen. Also müssen diejenigen Entwickler doch Assembler beherrschen?
Nein. Die Entwicklung ghet wie folgt:
- Der allererste Übersetzer einer älteren Programmiersprache wurde natürlich
in Assembler irgendwann einmal geschrieben. Eine derartige ältere
Programmiersprache ist zum Beispiel COBOLA.5, aber auch CA.6.
- Nehmen wir an, ein solcher Urübersetzer wurde aus einer Assemblerdatei
erstellt, um C-Programme zu übersetzen. Geben wir diesem Ur-Übersetzer
einen Namen: seine Assemblerdatei heisse urc.asm, die durch
den Assembler in das endgültige Übersetzerprogramm urc.exe
übertragen wird. Mit diesem Programm können nun C-Quelltexte übersetzt
werden (Übersetzer der ersten Generation).
- Jetzt schreibt der Entwickler einen neuen, sehr viel leistungsfähigeren
Übersetzer (zweite Generation) in reinem C. Nennen wir die
Quelldatei ruhig neuc.c A.7.
- Nun wird die Quelldatei neuc.c von dem alten Übersetzer
urc.exe in ein lauffähiges Programm übertragen. Nennen wir
die entstehende Binärdatei ruhig neucVorlaeufig.exe.
- Diese erste Version neucVorlaeufig.exe des neuen Übersetzers
übersetzt nun seinen eigenen Quellcode (Selbstübersetzung)
und erstellt auf diese Weise die viel leistungsfähigere Datei neuc.exe,
die die endgültige Version des neuen Übersetzers darstellt.
Selbstübersetzung hiess also der Trick. Aber irgendwann hat ja einmal
alles mit Assembler angefangen. Was nun, wenn Sie auf die Idee kommen,
eine neue Programmiersprache zu entwickeln; eine Programmiersprache
mit dem Namen »EvB«, wozu auch immer diese gut sein soll. Jetzt
brauchen Sie anscheinend für den ersten Übersetzer eines EvB-Programms
Assemblerkenntnisse, oder?
Nein.
- Schreiben Sie einfach Ihren Übersetzer urevb in der Programmiersprache
C, die »viel« einfacher als Assembler ist. Dafür haben Sie ja
mit neuc bereits einen Übersetzer.
- Lassen Sie Ihre Datei urevb.c dann zunächst von neuc
in eine vorläufige Version urevb.exe übersetzen.
- Schreiben Sie dann die Datei urevb neu und zwar jetzt in der
Programmiersprache EvB. Nennen wir diese Datei evb.eurA.8.
- Jetzt lassen Sie evb.eur von urevb in die Datei evbVorlaeufig.exe
übersetzen. Damit hat urevb seine Aufgabe erledigt und kann
entsorgt werden.
- Der im Vergleich zu urevb viel leistungsfähigere Übersetzer
evbVorlaeufig übersetzt jetzt seinen eigenen Quellcode
evb.eur ein weiteres Mal und der Übersetzer evb.exe
ist fertig.
Sie haben Assembler nicht gebraucht, sondern lediglich die Kenntnis
einer bereits bestehenden Sprache. Für alle Folgeversionen des Übersetzers
evb brauchen Sie nur einmal einen Quellcode in reinem EvB schreiben.
Für die erste Übersetzung können Sie auf eine bereits bestehende Version
zurückgreifen. Von dieser lassen Sie Ihre neue Version in eine vorläufige
Binärdatei übersetzen, die dann anschliessend ihren eigenen Quelltext
noch einmal übersetzt. So geht es.




Next: A.2.2 Was ist ein
Up: A.2 Die echten Programmiersprachen
Previous: A.2 Die echten Programmiersprachen
Contents
Index
Heiko Schroeder
2003-03-19