Heim  >  Artikel  >  Backend-Entwicklung  >  In was ist der Golang-Compiler geschrieben?

In was ist der Golang-Compiler geschrieben?

(*-*)浩
(*-*)浩Original
2019-12-27 14:27:023139Durchsuche

In was ist der Golang-Compiler geschrieben?

In welcher Sprache ist Golangs Compiler geschrieben?

Es scheint ein „Henne-Ei“-Problem zu sein, ist es aber nicht. (Empfohlenes Lernen: GO )

Der Schlüssel zu diesem Problem besteht darin, zu verstehen, dass der Compiler selbst ein Programm ist und seine Funktion darin besteht, den Quellcode in eine vom Computer ausführbare Datei zu übersetzen Programm.

Für lokale Sprachen wie C/C++, Go und Rust ist das Zielprogramm, das sie kompilieren und generieren, das lokal ausführbare Programm der Zielplattform. Wenn Sie beispielsweise „Hello World“ in diesen drei Sprachen schreiben, muss das Ergebnis der Kompilierung unter der Windows-Plattform eine .exe-Datei sein. Diese .exe-Dateien enthalten keine Informationen zur Quellsprache.

Windows weiß nicht, wann sie ausgeführt werden, und es muss auch nicht wissen, in welcher Sprache diese .exe-Dateien vor der Kompilierung geschrieben wurden. Es muss sie nur in den Speicher laden und die Anweisungen Satz für Satz ausführen.

Das Gleiche gilt für Compiler-Programme.

Wenn Sie eine neue Sprache CNifeLang erfinden, müssen Sie zunächst einen CNifeLang-Compiler in einer vorhandenen Sprache schreiben. Verwenden Sie beispielsweise Golang.

Sie haben einen CNifeLang-Compiler in Golang geschrieben , mit dem jeder legale CNifeLang-Quellcode erfolgreich in ein äquivalentes Zielprogramm kompiliert werden kann.

Schreiben Sie dann ein Programm mit CNifeLang, das die gleiche Funktion hat wie der in Golang geschriebene Compiler, um das Programm zu kompilieren, und Sie erhalten einen in CNifeLang implementierten Compiler.

Da die Funktion dieses Programms genau mit der des in Golang geschriebenen Compilers übereinstimmt, können Sie diesen Compiler zum Kompilieren von CNifeLang verwenden, sodass CNifeLang das Bootstrapping implementiert.

Wenn Sie den Kurs über Kompilierungsprinzipien studiert haben, werden Sie feststellen, dass die Kompilierung nichts mit Programmiersprachen zu tun hat. Sie können jede Turing-vollständige Sprache verwenden Schreiben Sie einen Compiler für jede formale Sprache, und es gibt strenge mathematische Methoden, um zu beweisen, dass der von Ihnen geschriebene Compiler korrekt ist.

Unsere gängigen Programmiersprachen haben grundsätzlich Bootstrapping implementiert, was eines der Zeichen dafür ist, dass eine Programmiersprache ausgereift ist. Da der Compiler ein komplexes Projekt ist und auch über ein ausgereiftes Bewertungssystem verfügt, bedeutet die Fähigkeit, einen ausgereiften, verwendbaren und effizienten Compiler für diese Sprache zu schreiben, dass die Sprache einsatzbereit ist.

Das obige ist der detaillierte Inhalt vonIn was ist der Golang-Compiler geschrieben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn