On Don, 2001-09-13 at 14:03, Christoph Maurer wrote:
Am Don, 13 Sep 2001, schrieb Thomas Hertweck:
Ralf Corsepius wrote:
[Erklaerungen zu gcc, Optimierproblemen und Compiler Bugs]
Vielen Dank fuer die Erklaerungen. Dem kann ich mich nur anschließen.
Die gleichen Probleme mit gcc-2.* waren auch ein Grund, warum gcc-3 entwickelt wurde, der, was den C++ Support angeht, gcc-2.* weit überlegen ist, nur in der Summe (insb auf Nicht-ix86-Architekturen) noch reichlich unausgereift ist.
Mal ne bloede Frage am Rande: Um den Compiler von gcc 3.01 zu bekommen, muss ich Quellcode compilieren, d.h. ich brauche einen funktionierenden Compiler. Ist das nicht eine Art Re- kursion, wenn ich einen Compiler brauche, um einen Compiler zu erstellen? Wie sah denn dann der erste Compiler aus? Das kann ja dann doch kein Quellcode gewesen sein, der uebersetzt werden musste, oder? Aeh, ja, vielleicht steh ich auch grade nur auf dem Schlauch.
Das wird so ähnlich sein, wie beim Booten (okay, seltsamer Vergleich, aber im Prinzip müsste es stimmen). Der Fachbegriff lautet "Bootstrappen" :)
Du hast ein winziges Programm, das nichts anderes kann, als ein etwas fähigeres Programm anzustoßen usw.
Der "erste" Compiler wird direkt in Maschinensprache geschrieben worden sein, und ein etwas fähigeres Programm erzeugt haben usw.
Aber irgendwann muß es mal mit Maschinensprache losgegangen sein. Irgendwann in grauer Vergangenheit vermutlich schon, doch zum "Bootstrappen" des gcc wird mindestens ein installierter KnR-cc benötigt. Auf Linux halt ein älterer gcc :)
Siehe auch ftp://ftp.suse.com/pub/people/aj Ralf