技術

7.1. 第7章のまえがき

LLVMによるプログラミング言語の実装チュートリアル日本語訳
第7章 万華鏡: 言語の拡張: 変更可能な変数(Mutable Variables)
第1節 第7章のまえがき

“LLVMによるプログラミング言語の実装”チュートリアルの第7章へようこそ。
第1章から第6章を通して、シンプルとは言えとても立派な関数型プログラミング言を構築してきた。
そのなかで、いくつかの構文解析の技法や、ASTの表現・構築方法や、LLVM IRの構築の方法や、最終的なコードの最適化方法や、JITコンパイルについて学んだ。

万華鏡は関数言語として興味深いものであるが、関数型言語からLLVM IRを生成するのは簡単過ぎるという事実がある。
特に関数型言語では、SSA形式によって直接LLVM IRを構築するのがとても簡単である。
LLVMは、入力されるコードがSSA形式であることを要求するので、関数型言語にとってはかなり有利ではあるが、一方、変更可能な変数を持つ命令型言語のためのコードの生成方法に関しては、初心者にとって分かりづらくなりがちでもある。

この章の、短く(そしてうまい)要約は、”あなたはフロントエンドでSSA形式を構築する必要がない”となる。
LLVMは、これに関し高度に調節され良くテストされたサポートを提供する、にもかかわらず、その方法は多くの人にとって少し予想外のものとなる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です



※画像をクリックして別の画像を表示

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください