Spec-Zone.ru › OCaml
☰Язык OCaml
  • Язык OCaml
  • Расширения языка

Глава 11. Язык OCaml

12 Единицы компиляции

unit-interface ::= { specification [;;] }
unit-implementation ::= [ module-items ]

Единицы компиляции связывают систему модулей с системой раздельной компиляции. Единица компиляции состоит из двух частей: интерфейса и реализации. Интерфейс содержит последовательность спецификаций, как и содержимое сигнатурного выражения sig … end. Реализация содержит последовательность определений и выражений, как и содержимое модульного выражения struct … end. У единицы компиляции также есть имя unit-name, получаемое из имён файлов, содержащих интерфейс и реализацию (подробности см. в главе 13). Единица компиляции примерно соответствует определению модуля

module unit-name : sig unit-interface end = struct unit-implementation end

Единица компиляции может обращаться к другим единицам компиляции по их именам, как если бы они были обычными модулями. Например, если U — единица компиляции, определяющая тип t, другие единицы компиляции могут обращаться к этому типу по имени U.t; они также могут обращаться ко всей структуре U. За исключением имён других единиц компиляции, интерфейс или реализация единицы не должны содержать никаких других свободных переменных. Иными словами, проверка типов и компиляция интерфейса или реализации выполняются в начальном окружении

name1 : sig specification1 end … namen : sig specificationn end

где name1 … namen — имена других единиц компиляции, доступных в пути поиска (подробности см. в главе 13), а specification1 … specificationn — соответствующие им интерфейсы.

« Модульные выражения (реализации модулей)Язык OCaml
Copyright © 2026 Institut National de Recherche en Informatique et en Automatique

© 1995-2026 INRIA.
https://ocaml.org/manual/5.5/compunit.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API