На этом шаге мы рассмотрим правила создания идентификаторов.
Идентификатором является последовательность букв, цифр и знаков подчеркивания, которая начинается с буквы или символа подчеркивания и не содержит пробелов. Как и зарезервированные слова, идентификаторы безразличны к регистру клавиатуры.
Идентификаторы выступают в качестве имен констант, типов, переменных, процедур, функций, модулей, программ, меток и полей в записях. Идентификатор может иметь произвольную длину, однако значимыми являются только первые 63 символа.
Правильные идентификаторы:
MyVariable My_Variable _Stop Lab_12 _1_2_3
Неправильные идентификаторы:
MyVariable# - содержит недопустимый символ # My-Variable - содержит недопустимый символ - 1_2_3_ - начинается с цифры
Особым случаем является ситуация, когда в разных модулях описаны одинаковые имена. В такой ситуации используются так называемые квалифицируемые идентификаторы, в которых перед именем переменной ставится идентификатор модуля, содержащего эту переменную. Оба идентификатора при этом разделяются точкой. Квалифицируемые идентификаторы также называют уточненными:
Unitl.MyVar Unit2.MyVar Unit3.MyVar
Кроме указанного случая уточненные идентификаторы используются при работе с записями и объектами.
Квалифицируемые идентификаторы могут использоваться для обозначения меток, констант, типов, переменных, процедур, функций, методов.
В Object Pascal есть две разновидности идентификаторов:
Стандартными (предопределенными) идентификаторами являются имена всех встроенных в язык процедур и функций (Read, Write, Sin и др.), типов (Integer, Real, Char и др.) и директив (absolute, forward, private, public и др.). Переопределение стандартных идентификаторов, в принципе допускается, однако нужно иметь в виду, что в этом случае их стандартное действие будет для данной программы утеряно. Поэтому, такие переопределения считаются в программировании плохим стилем.
Некоторые из стандартных директив, учитывая специфику их применения, называют также процедурными директивами. Перечень стандартных директив Object Pascal приводится ниже.
absolute abstract assembler аutomated cdecl default dispid dynamic export external forward index message name nodefault override pascal private protected public published read register resident stdcall stored virtual write
abstract automated cdecl default dispid dynamic message nodefault override
pascal protected published read register stdcall stored write .
Лексемы private, protected, published и automated внутри описания классов действуют как ключевые слова, а во всех остальных случаях - как стандартные директивы.
На следующем шаге мы рассмотрим метки.