Глава 11 Язык программирования OCaml
12 Единицы компиляции
|
Единицы компиляции связывают систему модулей и систему отдельной компиляции. Единица компиляции состоит из двух частей: интерфейса и реализации. Интерфейс содержит последовательность спецификаций, подобно внутренней части выражения сигнатуры sig … end. Реализация содержит последовательность определений и выражений, подобно внутренней части выражения модуля struct … end. У единицы компиляции также есть имя unit-name, полученное из имён файлов, содержащих интерфейс и реализацию (см. главу 13 для получения дополнительной информации). Единица компиляции ведет себя примерно как определение модуля
Единица компиляции может ссылаться на другие единицы компиляции по их именам, как если бы они были обычными модулями. Например, если U — это единица компиляции, которая определяет тип t, другие единицы компиляции могут ссылаться на этот тип под именем U.t; они также могут ссылаться на U как на целую структуру. За исключением имён других единиц компиляции, интерфейс или реализация единицы не должны иметь каких-либо других свободных переменных. Другими словами, проверка типов и компиляция интерфейса или реализации происходят в начальной среде
где name1 … namen — это имена других единиц компиляции, доступных в пути поиска (см. главу 13 для получения дополнительной информации), а specification1 … specificationn — это их соответствующие интерфейсы.
© 1995-2024 INRIA.
https://ocaml.org/manual/5.2/compunit.html