図で理解するプログラミング言語の裏側:EBNF、AST、LLVM、各言語のコンパイル
プログラミング言語は、ソースコードをそのままCPUに渡しているわけではありません。多くの処理系では、まず文字列をtokenへ分け、構文を読み、ASTを作り、意味解析や最適化を行い、最終的に機械語・bytecode・JITコードなどへ変換します。
TOPIC ARCHIVE
2本の記事
プログラミング言語は、ソースコードをそのままCPUに渡しているわけではありません。多くの処理系では、まず文字列をtokenへ分け、構文を読み、ASTを作り、意味解析や最適化を行い、最終的に機械語・bytecode・JITコードなどへ変換します。
Goで .s ファイルを書くと、TEXT ·Add(SB), NOSPLIT, $0-24 のような見慣れない記法に出会います。これは「Plan 9というOSそのものを使っている」という意味ではなく、Plan 9系アセンブラの入力スタイルを受け継いだ、Go専用アセンブラを使うという意味です。[^go-asm]