To pytanie może wynikać z niezrozumienia kompilatorów z mojej strony, ale tu idzie ...W jaki sposób można napisać kompilator C w C?
można znaleźć następujące stwierdzenie w przedmowie do pierwszego wydania K & R (strona xi):
System operacyjny kompilator C i zasadniczo wszystkie aplikacje programy UNIX (w tym całe oprogramowanie użyte do przygotowania tej książki) są napisane w C.
(podkreślenie moje)
Oto, czego nie rozumiem: czy kompilator C nie musi być skompilowany, zanim będzie mógł skompilować dowolny kod C? A jeśli ten kompilator C jest napisany w C, czy jego kompilacja nie wymagałaby już istniejącego kompilatora C ?!
Jedynym wyjściem z tej zagadki nieskończonej regresji (lub problemu z kurczakiem i jajkiem) jest to, że kompilator C napisany w C, który K & R został faktycznie skompilowany z już istniejącym kompilatorem C, który został napisany w języku innym niż C. Kompilator C napisany w C zastąpił to drugie.
Czy jestem całkowicie wyłączony?
Cóż, zaczynasz od jednego w złożeniu lub cokolwiek innego, a gdy już to zrobisz, możesz użyć go do zrobienia jednego w C i tak dalej. – chris