最近 Go1 に go コマンドが導入されたことで、その基礎となる機能に対する好奇心が刺激されています。具体的には、go/ast、go/token、go/parser などのパッケージの存在により、新しいコンパイラ内でのそれらの役割について疑問が生じています。
予想に反して、Go1 コンパイラは依然として主に C で書かれています。そのレクサーは次の場所にあります。 src/cmd/gc/lex.c であり、Bison 文法は src/cmd/gc/go.y で定義されています。したがって、上記のパッケージは実際のコンパイル プロセスでは利用されません。
代わりに、go/ パッケージは、パッケージ内の多数のツールで重要な目的を果たします。ゴーエコシステム。これらのツールには、ドキュメント生成用の godoc、コード形式設定用の gofmt、go ツールのさまざまなサブコマンドが含まれます。
この現在の実装にもかかわらず、Golang で書かれた Go コンパイラーの可能性は依然として興味深いものです。しかし、この方向ではまだ大きな進歩は見られていません。
以上がGo 1 コンパイラーは `go/ast`、`go/token`、および `go/parser` パッケージを使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。