Heim  >  Artikel  >  Backend-Entwicklung  >  Worin ist Golang geschrieben?

Worin ist Golang geschrieben?

(*-*)浩
(*-*)浩Original
2019-12-27 11:50:132838Durchsuche

Worin ist Golang geschrieben?

Google hat Pläne zur Implementierung von Go 1.5 Bootstrap angekündigt. Der Autor der relevanten Dokumente ist der Go-Kernentwickler Russ Cox, der seit fast sechs Jahren an der Go-Sprache arbeitet. Laut Russ arbeitet Google seit einem Jahr daran, „alle C-Programme aus dem Go-Quellbaum zu entfernen“. (Empfohlenes Lernen: go)

Bootstrapping ist der Prozess des „Schreibens seines Compilers (oder Assemblers) in der zu kompilierenden Zielprogrammiersprache“.

Im Allgemeinen hat Bootstrapping mehrere Vorteile, wie zum Beispiel:

wird zum Testen der Sprache verwendet, die gebootstrappt wird;

unterstützt die Verwendung von im Allgemeinen mehr Schreiben Sie Compiler für höhere Sprachen, die mehr Abstraktionen auf hoher Ebene bereitstellen.

Compiler können auch von Verbesserungen auf Sprachebene profitieren.

Wie oben erwähnt, hat Google bereits begonnen, C-Code aus dem Go-Quellbaum zu entfernen. Der Konvertierungsplan ist in 5 Schritte unterteilt:

Nr - Entwickeln Sie einen Übersetzer von der C-Sprache in die Go-Sprache und übersetzen Sie den vorhandenen C-Compiler in die Go-Sprache. Diese Phase macht sich die Tatsache zunutze, dass der ursprüngliche Compiler einige Funktionen, die sich nur schwer in die Go-Sprache portieren lassen, wie Makros, Unions und Zeigerarithmetik, nicht umfassend genutzt hat.

Stufe 2 – Konvertieren Sie den Quellbaum des Compilers, um einen Go-Sprachcompiler zu erhalten, der jedoch relativ primitiv und im C-Stil ist.

Stufe 3 – Konvertieren Sie den zuvor erhaltenen Compiler in ein Programm, das den Go-Sprachgewohnheiten entspricht, hauptsächlich durch Identifizieren von Paketen, Hinzufügen von Dokumentation und Unit-Tests.

Stufe 4 – Optimieren Sie den Compiler, lösen Sie das Speichernutzungsproblem des Compilers und der CPU und führen Sie möglicherweise Parallelisierung ein.

Versuchen Sie außerdem, eine neue Zwischendarstellung zwischen den heute verwendeten architekturunabhängigen ungeordneten Bäumen (Node*s) und architekturabhängigen geordneten Listen (Prog*s) einzuführen, mit dem Ziel, die Kompilierung zu verbessern Prozessor bei der Eliminierung redundanter Nullprüfungen und Grenzprüfungen

Das obige ist der detaillierte Inhalt vonWorin ist Golang 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