これらの中で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が付加したインターフェイスファイル は,自動生成されたソースファイルのインタフェイス記述である.