Spec-Zone.ru › OCaml 5.0

11.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 — их соответствующие интерфейсы.

© 1995-2022 INRIA.
https://v2.ocaml.org/releases/5.0/htmlman/compunit.html

Spec-Zone.ru

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