プログラミング言語SML#解説 3.7.1版
Chapter 31 序文
第V部では,SML#コンパイラの内部構造を詳述する. 本部の目的は,本文書の第II部などを習得しML系関 数型言語の素養を持つ者がSML#ソースコードの詳細を理解することである. 読者としては,SML#コンパイラの開発に加わろうとする者や SML#ソースコードを新しいコンパイラ開発等に利用しようとする者を主 に想定しているが,高水準プログラミング言語のコンパイラに興味を持つ一般の 読者にも参考となる文書となるように配慮した.
オープンソースソフトウェアには尊敬すべき優れたコードが数多く存在 する. それらの文化に接して筆者が感じる問題点の一つは,それら優れたコー ドの構造や機能を,他の開発者や興味ある読者に理解できるように文書化する努 力が往々にして欠如していることである. コードそれ自体がドキュメントであるとの主張は数万行を超える大規模 システムに対しては現実的ではない. 大規模システムでは,それぞれのコード断片自身では理解不可能な大域 的な仮定や,他の複数のコードを制御するためのデータが含まれる. それらを理解するには,関連するシステム全般に関する処理の流れと, その実現のためにシステムの各部分に分散してコード化されたデータの意味を把 握する必要がある. 現時点での唯一の方法は文書化であると考える. さらに,コードの意図や構造を記述した文書は,それ自身,新たな構造 や機能の示唆を与えうる財産となると期待される.
そこで,本文書では,その範を,筆者が尊敬するVAX/VMS OSの内部構造 の詳細な記述文書[4]に取り,SML#コードが扱う データ構造とコードの処理の詳細を,各機能が基礎とする理論やアルゴルズムと 共に記述することにした.