Der Small C Compiler wurde in C entwickelt. Die ersten Versionen wurden mit Hilfe des Tiny C Interpreters (Tiny C Associates) entwickelt (vgl. [1], Seite 42, Absatz 4).
Schließlich übersetzte der interpretierte Code des Compilers seine eigene Eingabe:
Und endlich kam der Tag, da der Compiler (Anmerkung des Verfassers: Gemeint ist der interpretierte Compiler) unter Unix lief und seinen eigenen Quellcode als Eingabe akzeptierte (vgl. [1], Seite 43, Absatz 2).
Das war nun lediglich die Vorstufe zur Inzucht, das so erzeugte Binary war die erste Variante von Small C. Diese war dann der Ausgangspunkt zur weiteren Entwicklung und Verbesserung:
[..] und erneut musste sich der Compiler selbst übersetzen. Als Ergebnis dieser Inzucht tauchten einige Fehler im erzeugten 8080- Code auf , die mir bisher entgangen waren. Nachdem ich sie korrigiert hatte, kompilierte ich den Compiler erneut, benutzte dann das Ergebnis um den Compiler erneut zu kompilieren und kompilierte schließlich den Compiler erneut (vgl. [1], Seite 43, Absatz 2).
Das jeweilige Kompilat (ein 8080 Source- File) wurde mit dem jeweiligen Vorgänger (der Variante, die Ihn selbst erzeugt hatte) vergleichen. Als das Ergebnis schließlich identisch war, nahm der Autor an, dass der Compiler fehlerfrei arbeitete.
Faszinierend! Mehr Informationen zu Small C finden sich hier im Blog: Dr. Dobb’s Journal, C- Tools
Einen C- Interpreter (nicht der hier im Text genannte) findet man dort: Tiny C Interpreter, github (Letzter Aufruf 29.10.2014). Ich habe das Programm noch nicht getestet, laut der Beschreibung im Readme sollte es sich für UNIX kompilieren lassen.
[1] Chain, Ron (1986): Dr. Dobb’s Journal, Ein Small C- Compiler für 8088 Maschinen, München, Verlag Markt und Technik. Wiedergabe eines Artikels aus: Dr. Dobb’s Journal (DDJ) Nr. 45, Juli 1980.