При написании программы необходимо соблюдать правила размещения в тексте различных содержательных блоков. Любую программу можно условно разделить на две основные части (см. таблицу): раздел описания (раздел объявлений и соглашений; раздел текстов процедур и функций) и раздел исполнения (раздел основного блока).
Заголовок программы состоит из зарезервированного слова PROGRAM и имени программы, которое является идентификатором (эта строка может отсутствовать).
В директивах компилятора можно указать режимы его работы при трансляции программы. С помощью оператора USES подключаются к тексту программы модули библиотек, он может быть использован только один раз, и его место четко определено.
Раздел описания меток LABEL содержит перечисленные через запятую имена меток перехода, которые могут представлять собой целое число (от 0 до 9999), строка символов, символьно-цифровую конструкцию.
В разделе CONST содержатся перечисленные через запятую константы, используемые в программе.
В разделе TYPE можно определить новые типы, здесь могут использоваться ранее определенные в разделе CONST константы.
В разделе описания переменных VAR содержится список переменных, используемых в программе, и определяется их тип. Жесткое соблюдение порядка объявлений отметок, констант, типов и переменных не требуется.
Если в программе используются процедуры и / или функции, необходимо их объявить. Вслед за зарезервированным словом PROCEDURE (FUNCTION) идет имя процедуры (функции) и список формальных параметров (если они есть). Далее идет объявление локальных меток, констант, типов и переменных. Локально объявлены конструкции доступны только внутри данной подпрограммы.
Тело процедуры (функции) ограничивается служебными словами BEGIN ... END;.
Основной блок состоит из последовательности операторов, которые определяют последовательность действий для выполнения основного алгоритма.
Тело программы ограничивается служебными словами BEGIN ... END, как и тело подпрограммы, но после оператора END ставится точка, что является обозначением конца программы. Все последующие описания будут восприняты как комментарий и игнорироваться транслятором.