プログラミング言語SML#解説 3.7.1版
32.3 compilerディレクトリ
これらの中でcompilerディレクトリはさらに階層化されている.
-
•
ディレクトリ
-
–
compilePhases/ : コンパイルフェーズ
bitmapcompilation/ ビットマップ生成 cconvcompile/ コーリングコンベンションコンパイル closureconversion/ クロージャ変換 datatypecompilation/ データ型コンパイル elaborate/ 構文論的評価 fficompilation/ C言語連携コンパイル llvmemit/ LLVMコードエミッション llvmgen/ LLVMコード生成 loadfile/ machinecodegen/ 低レベルコード生成 main/ matchcompilation/ パターンマッチングコンパイル nameevaluation/ 名前評価とモジュールコンパイル parser/ 構文解析 recordcalcoptimization/ 型付きレコード計算最適化処理 recordcompilation/ 型主導レコードコンパイル stackallocation/ スタックフレーム割り当て toplevel/ typedcalcoptimization/ 型付き中間言語最適化 typedelaboration/ typeinference/ 型推論,カリー関数最適化 valrecoptimization/ 相互再帰的関数最適化処理 -
–
compilerIRs/ : コンパイラ中間表現
absyn/ 抽象構文木 anormal/ A-normal中間言語 bitmapcalc/ ビットマップを明示した中間言語 closurecalc/ クロージャ生成を明示した中間言語 idcalc/ スコープ規則を持たない中間言語 llvmir/ LLVM 中間表現 machinecode/ レジスタトランスファ言語 patterncalc/ 型無し中間表現 recordcalc/ 多相型レコード計算 runtimecalc/ 低レベル中間言語 typedcalc/ 型付き中間言語 typedlambda/ 型付きラムダ計算 -
–
data/ : 型や定数などのデータ
builtin/ コンパイラ組込みデータ constantterm/ 定数定義 control/ コンパイラの動作パラメタ name/ 実行コードラベル runtimetypes/ 実行時型 symbols/ 変数,ラベル等の表現 types/ 型表現 -
–
extensions/ : 種々のコンパイル機能
concurrencysupport/ 並列スレッドサポート debug/ デバッグ機能 foreach/ 超並列_foreach構文サポート format-utils/ smlforma用フォーマッタライブラリ json/ JSONサポート reflection/ コンパイル時のレフレクションサポート usererror/ コンパイラエラー処理 userlevelprimitive/ ユーザコードによるコンパイラ拡張機能 -
–
libs/ : コンパイラが使用するライブラリ
digest/& SHAハッシュライブラリ env/ 辞書ユーテリティ heapdump/ 実行時ヒープイメージダンプ関数 ids/ カウンタユーテリティ interactivePrinter/ 対話型プリンタ list-utils/ リストユーティリティ toolchain/ UNIX toolchain コマンド util/ 各種ユーティリティ関数
-
–
-
•
ファイル
minismlsharp.smi minismlsharpのインタフェイスファイル minismlsharp.sml smlsharpのコンパイル用コンパイラトップレベル smlsharp.smi smlsharpのインタフェイスファイル smlsharp.sml smlsharpトップレベル
compilerのサブディレクトリを含む各ディレクトリは, mainサブディレクトリを含み,このディレクトリ以下にソースファイル が置かれている. 従って,例えば抽象構文木のソースファイルは compilerIRs/absyn/main/下に置かれている. ソースファイルには,拡張子.smlを持つプログラムファイルと 拡張子.smiを持つ同名のインターフェイスファイルが含まれる.
これに加えて,以下の拡張子を持つファイルは,ソースファイルを生成 ツールの入力ファイルである.
.ppg | プリンターコード自動生成器smlformatの入力ファイル. |
---|---|
.grm | smlyaccの入力ファイル. |
.lex | smllexの入力ファイル. |
これらファイル名に.smiが付加したインターフェイスファイル は,自動生成されたソースファイルのインタフェイス記述である.