ホームページ >バックエンド開発 >Golang >Go 1 コンパイラーは `go/ast`、`go/token`、および `go/parser` パッケージを使用しますか?

Go 1 コンパイラーは `go/ast`、`go/token`、および `go/parser` パッケージを使用しますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-20 17:08:10179ブラウズ

Does the Go 1 Compiler Use the `go/ast`, `go/token`, and `go/parser` Packages?

Go1 コンパイラーの仕組みを理解する

最近 Go1 に go コマンドが導入されたことで、その基礎となる機能に対する好奇心が刺激されています。具体的には、go/ast、go/token、go/parser などのパッケージの存在により、新しいコンパイラ内でのそれらの役割について疑問が生じています。

Go1 コンパイラはこれらのパッケージを利用しますか?

予想に反して、Go1 コンパイラは依然として主に C で書かれています。そのレクサーは次の場所にあります。 src/cmd/gc/lex.c であり、Bison 文法は src/cmd/gc/go.y で定義されています。したがって、上記のパッケージは実際のコンパイル プロセスでは利用されません。

go/ パッケージの役割

代わりに、go/ パッケージは、パッケージ内の多数のツールで重要な目的を果たします。ゴーエコシステム。これらのツールには、ドキュメント生成用の godoc、コード形式設定用の gofmt、go ツールのさまざまなサブコマンドが含まれます。

この現在の実装にもかかわらず、Golang で書かれた Go コンパイラーの可能性は依然として興味深いものです。しかし、この方向ではまだ大きな進歩は見られていません。

以上がGo 1 コンパイラーは `go/ast`、`go/token`、および `go/parser` パッケージを使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。