Элементы языка | Алфавит | Идентификаторы | Константы | Выражения | Операции | Структура программы |
Структура программы
ССтруктура любой программной единицы (программы, процедуры или функции) должна быть такой:
<Объявление программной единицы>
{Раздел описаний}
BEGIN
{Раздел исполняемых операторов}
ЕND <символ конца программной единицы>
Здесь:
      <Объявление программной единицы> — заголовок программы, процедуры
или функции; заголовок программы можно опускать без каких-либо последствий
для программы; для процедур и функций наличие заголовка
обязательно;
      <символ конца программной единицы> — это символ . (точка) для программы
и ; (точка с запятой) — для процедуры и функции.
Любой из двух разделов программной единицы — раздел описаний или исполняемых операторов, или оба одновременно могут быть пустыми, т. е. не содержать никаких описаний или исполняемых операторов.
В разделе описаний должны содержаться описания всех идентификаторов, используемых в разделе исполняемых операторов. Исключением являются идентификаторы, определенные в интерфейсных частях программных модулей (библиотек), а также глобальные для процедуры или функции идентификаторы. Если программная единица использует идентификатор из интерфейсной части какого-либо модуля, в начале программы в предложении USES необходимо указать имя этого модуля. Последнее не относится к идентификаторам, определенным в стандартном модуле SYSTEM, т. е. имя этого модуля в предложении USES указывать не нужно. Более того, модуль SYSTEM считается предварительно объявленным, поэтому объявление
      Uses System;
компилятор расценит как попытку двойного объявления модуля SYSTEM и даст соответствующее сообщение об ошибке.
В разделе описаний объявляются идентификаторы типов, объектов, констант, переменных, а также метки, процедуры и функции. Описанию типов и объектов должно предшествовать зарезервированное слово TYPE, описанию констант — CONST, переменных — VAR и меток — LABEL, например:
type
      DigType = set of '0'..'9';
      StrType = string [40];
const
      N = 100;
      EPS = le-9;
var
      x,y : real;
      st : StrType;
label
      lab1, Iab2;
В отличие от стандартного Паскаля разделы TYPE, CONST, VAR, LABEL могут следовать друг за другом в любом порядке и встречаться в разделе описаний сколько угодно раз.