"Кларион. Руководство программиста (не хватает с 96 по 119-ю страниц)" - читать интересную книгу автора

Операторы POCEDURE и FUNCTION сопровождаются списком парамет-
ров, состоящих из имен переменных, отделенных запятыми и заключенных
в круглые скобки. Каждое имя переменной в списке параметров оператора
PROCEDURE или FUNCTION д.б. объявлено в процедуре или функции. Пара-
метры, объявленные с оператором EXTERNAL вызываются внешними парамет-
рами. Другие параметры вызываются локальными параметрами.

2.12.1. Локальные параметры.
Локальные параметры являются "проходящими мимо величины", поэ-
тому, они копируются с переменной или выражения в ту же самую позицию
списка параметров вызываемой подпрограммы. Поэтому, когда местные па-
раметры изменяются, их вызывающая копия не меняется.

- 17 -
Локальный параметр не нуждается в подходящем типе данных его
вызывающей копии. Преобразование данных между вызывающими и вызывае-
мыми параметрами описано в гл.3.

2.12.2. Внешние параметры.
Внешние параметры являются "проходящими мимо адресов" и локаль-
ными или глобальными к программе, вызывающей процедуре или функции.
Изменение внешнего параметра меняет его вызывающую копию, т.к. есть
только одна копия параметра. Функции или выражения в списке парамет-
ров вызывающей подпрограммы являются промежуточными величинами. Внеш-
ние промежуточные величины м.б.изменяемы, но изменения могут не чувс-
твоваться.
Метки RECORD, HEADER, FOOTER, DETAIL и TABLE структур м.б. ис-
пользованы в списке параметров вызывающей программы , но они тракту-
ются как структура GROUP, вызываемая процедурой или функцией.
Метки SCREEN, REPORT, DOS, FILE, KEY, INDEX, TABLE, используют-
ся в списке параметров вызывающей программы, но д.б. описаны как ат-
рибут в EXTERNAL - операторе, таком как EXTERNAL, FILE или EXTERNAL,
KEY. Параметр TABLE трактуется как GROUP, если ему соответствующий
оператор EXTERNAL не имеет атрибутов. Иначе, с TABLE атрибутом, он
трактуется как TABLE. EXTERNAL-атрибут, который не подходит типом
данных его вызывающей копии, произведет остановку во время прогона
программы.

2.13. Оператор CODE.
Оператор CODE - директива Компилятора, который отделяет опера-
торы объявления от выполняемых операторов внутри программы, процедуры
или функции. Операторы, предшествующие CODE-оператору, являются опе-
раторами объявления и называются "data section". Операторы, следующие
за CODE-оператором, являются выполняемыми операторами и называются
"code section". Оператор, следующий за CODE-оператором является пер-
вым выполняемым оператором, когда программа, процедура или функция
вызывается.

2.14. Оператор ROUTINE.
Оператор ROUTINE - первый оператор местной(локальной) програм-