next up previous contents
След.: Определение интерфейса Выше: Интерфейсы Пред.: Интерфейсы   Содержание

Понятие интерфейса

Интерфейс процедуры определяет возможные способы обращения к ней. Интерфейс процедуры содержит информацию об ее имени, внешнем имени (§ 14) атрибутах, а также о ее аргументах и возвращаемом значении. Абстрактный интерфейс указывает информацию об атрибутах процедур и именах формальных параметров (и возвращаемом значении для функций).

Интерфейс может быть явным и неявным. Для внутренней, модульной и встроенной процедуры всегда явный в области видимости имени процедуры. Интерфейс процедуры и функции с указанным именем возвращаемого значения в их теле тоже явный. За пределами области видимости, в которой процедура определена, интерфейс внешней процедуры явный, если указан интерфейсный блок, в противном случае -- неявный. Неявный интерфейс допускается для «простого вызова», если не требуется проверка соответствия фактических аргументов формальным. При этом такая проверка не проводится, что может приводить к ошибкам: например, несовпадение числа аргументов само по себе не приводит к ошибке компиляции. При разработке больших проектов, когда процедуры размещаются в разных файлах, в основной программе разумно размещать интерфейсный блок, обеспечивая зависимую компиляцию; либо использовать концепцию модулей. В ряде случаев явный интерфейс необходим: при вызове с ключевыми аргументами и в контексте, требующем стерильности; если формальный аргумент размещаем § 4.7, асинхронен § 9.1, необязателен § 11.1, является указателем или целью § 4.6, передается по значению § 11.1 или хрупок § 14, если перенимает конфигурацию, является комассивом, имеет производный тип с параметрами разновидности или полиморфен; если результат функции массив, указатель, размещаемый, имеет параметр типа в виде неконстантного выражения или символьный тип неопределенной заранее длины; если процедура поэлементная или взаимодействующая с языком C § 14.7.



Ilya A. Chernov 2012-12-19
X