Процедуры и функции представляют собой относительно самостоятельные фрагменты программы, оформленные особым образом и снабженные именем. Упоминание этого имени в тексте программы называется вызовом процедуры (функции).
Описание подпрограммы состоит из заголовка и тела подпрограммы. Заголовок процедуры имеет вид: procedure <имя> [(<СП.ф.п.>)] : <тип>; . Здесь: <имя> - имя подпрограммы (правильный идентификатор), <СП.ф.п.>- список формальных параметров, <тип> - тип возвращаемого функции результата. Сразу за заголовком подпрограммы может следовать одна из стандартных директив assembler, external, far, forward, inline, interrupt, near. Эти директивы уточняют действие компилятора и распространяются на всю подпрограмму и только на нее, т.е. если за подпрограммой следует другая подпрограмма, стандартная директива, указанная за заголовком первой, не распространяется на вторую.
Assembler – отменяет стандартную последовательность машинных инструкций, вырабатываемых при входе в процедуру и выходом из нее.
External – С помощью этой директивой объявляется внешняя подпрограмма.
Far – компилятор должен создавать код подпрограммы, рассчитанный на дальнюю модель вызова.
Near- заставит компилятор создать код, рассчитанный на ближайшую модель памяти.
Forward – используется при опережающем описании для сообщения компилятору, что описание подпрограммы следует где-то дальше по тексту программы (но в пределах текущего программного модуля).
Inline – указывает на то, что тело подпрограммы реализуется с помощью встроенных машинных инструкций.
Interrupt – используется при создание процедур обработки прерываний.
Параметры.
Список формальных параметров необязателен и может отсутствовать. Если же он есть, то в нем должны быть перечислены имена формальных параметров и их типы, например: Procedure SB (a: Real; b: Integer; c: Char); Для оператора тела подпрограммы список параметров является своеобразным расширением раздела описаний: все переменные из этого списка могут использоваться в любых выражениях внутри подпрограммы. Таким способом осуществляется настройка алгоритма подпрограммы на конкретную задачу.