第 11 章 OCaml 語言

12 編譯單元

單元介面::= { 規格 [;;] }
 
單元實作::= [ 模組項目 ]

編譯單元橋接了模組系統和獨立編譯系統。一個編譯單元由兩個部分組成:一個介面和一個實作。介面包含一系列的規格,就像 sigend 簽名表達式內部一樣。實作包含一系列的定義和表達式,就像 structend 模組表達式內部一樣。編譯單元也有一個名稱 單元名稱,它來自包含介面和實作的檔案名稱(詳情請參閱第 13 章)。一個編譯單元的行為大致如同模組定義

module 單元名稱 : sig 單元介面 end = struct 單元實作 end

編譯單元可以透過名稱引用其他編譯單元,就像它們是常規模組一樣。例如,如果 U 是一個定義了類型 t 的編譯單元,其他編譯單元可以使用名稱 U.t 來引用該類型;它們也可以將 U 作為一個整體結構來引用。除了其他編譯單元的名稱外,單元介面或單元實作不能有任何其他自由變數。換句話說,介面或實作的類型檢查和編譯是在初始環境中進行的

名稱1 : sig 規格1 end名稱n : sig 規格n end

其中 名稱1名稱n 是搜尋路徑中可用的其他編譯單元的名稱(詳情請參閱第 13 章),而 規格1規格n 是它們各自的介面。