|
コンパイラキット(インフラス
トラクチャ)はユーザにとっての使いやすさが重要である。コンパイラの扱うデータは複雑であるから、ソースが公開されていて、ドキュメントが整備されてい
るだけでは十分とは言えない。我々は実装言語独立でモジュラリティがよく、使いやすいコンパイラキットを EmacsLisp
で作成する。各モジュール間のインタフェースは全てS-式を基としたシンタックスを持つ言語(実装言語 EmacsLisp
とは独立)により実装される。
通常、モジュール間のインタフェースは実装言語に依存したデータ構造、パラメータ、大域的変数などにより実現される。しかし、インタフェースというものは
構造と意味を持ったデータであり、抽象的には全てプログラミング言語と考えることが出来る。あるプログラミング言語のプログラムと、それを構文解析して内
部データに変換したものを考える。通常のソフトウェアでは後者の内部データをインタフェースとしたモジュールから成立しているのに対して我々のソフトウェ
アは前者のプログラムをインタフェースとして構成される。
このコンパイラキットの実装言語としては、S-式 によるインタフェースを使っている点も関係するが、その高い記述能力、及び申請者の好みにより
Lisp を用いる。残念なら現在 Lisp はメジャーな言語ではなく、標準的で広く使われているフリーの Lisp
処理系は少ないが、EmacsLisp
はそのようなものの一つであり、ほとんどのコンパイラ研究者の手元に既に存在する可能性が最も高い。また、本コンパイラキットを使う上で実装言語である
EmacsLisp の知識は必要ないので、手軽に使えるコンパイラキットとして広く流布するソフトウェアに成り得る。
|