プログラミング言語SML#解説 3.7.1版
32 SML#ソースパッケージ

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