Язык программирования Оберон-2

         

Объявления и области действия



4. Объявления и области действия

Каждый идентификатор, встречающийся в программе, должен быть объявлен, если это не стандартный идентификатор. Объявления задают некоторые постоянные свойства объекта, например, является ли он константой, типом, переменной или процедурой. После объявления идентификатор используется для ссылки на соответствующий объект.

Область действия объекта x распространяется текстуально от точки его объявления до конца блока (модуля, процедуры или записи), в котором находится объявление. Для этого блока объект является локальным. Это разделяет области действия одинаково именованных объектов, которые объявлены во вложенных блоках. Правила для областей действия таковы:

  • Идентификатор не может обозначать больше чем один объект внутри данной области действия (то есть один и тот же идентификатор не может быть объявлен в блоке дважды);
  • Ссылаться на объект можно только изнутри его области действия;
  • Тип T вида POINTER TO T1 (см. ) может быть объявлен в точке, где T1 еще неизвестен. Объявление T1 должно следовать в том же блоке, в котором T является локальным;
  • Идентификаторы, обозначающие поля записи (см. ) или процедуры, связанные с типом, (см. ) могут употребляться только в обозначениях записи.
  • Идентификатор, объявленный в блоке модуля, может сопровождаться при своем объявлении экспортной меткой ("*" или "-"), чтобы указать, что он экспортируется. Идентификатор x, экспортируемый модулем M, может использоваться в других модулях, если они импортируют M (см. гл. 11). Тогда идентификатор обозначается в этих модулях М.x и называется уточненным идентификатором. Переменные и поля записей, помеченные знаком "-" в их объявлении, предназначены только для чтения в модулях-импортерах.

    УточнИдент  = [идент "."] идент.
    ИдентОпр = идент ["*" | "-"].

    Следующие идентификаторы являются стандартными; их значение определено в указанных разделах:



    ABS () LEN ()
    ASH () LONG ()
    BOOLEAN    () LONGINT ()
    CAP ()         LONGREAL    ()
    CHAR () MAX ()
    CHR () MIN ()
    COPY () NEW ()
    DEC () ODD ()
    ENTIER () ORD ()
    EXCL () REAL ()
    FALSE () SET ()
    HALT () SHORT ()
    INC () SHORTINT ()
    INCL () SIZE ()
    INTEGER () TRUE ()



    Содержание раздела