Cтраница 1
Определения подпрограмм должны встречаться в виде описаний в блоке, перед тем как к ним может произойти обращение. Тело подпрограммы во время трансляции компилируется в отдельный сегмент выполняемого машинного кода, но связывание имени подпрограммы с кодом происходит только во время выполнения при входе в блок, содержащий данное определение. [1]
Определение подпрограммы служит образцом для построения во время выполнения ее активации - Обычно результатом обработки определения подпрограммы транслятором является постоянная часть, содержащая выполняемые команды, константы и другие составные части программы, которые одинаковы во всех активациях, и шаблон активационной записи, представляющий ту часть подпрограммы, которая зависит от активации. Когда во время выполнения происходит вызов подпрограммы, этот шаблон используется при построении активационной записи для новой активации подпрограммы. В типичной активационной записи предусмотрено место для локальных данных подпрограммы, параметров, точки возврата, временной памяти и различных элементов системной информации. Акти-вационная запись вместе с постоянной частью подпрограммы составляют активацию этой подпрограммы. [2]
Определение подпрограммы прерывания ( подпрограммы, которая должна быть вызвана при выполнении условия) и связывание ее с конкретным условием. [3]
Для определения подпрограммы в активной рабочей области необходимо ввести системную команду, переводящую систему в режим определения подпрограммы, а вслед за ней спецификацию имени подпрограммы и инструкции, образующие ее тело. [4]
Операторы определения подпрограмм - предназначены для определения подпрограмм и дополнительных точек входа в подпрограммы. [5]
Используется для определения подпрограммы, которая будет вызываться главной АРТ-программой. [6]
Никак не выделяемые определения подпрограмм. В нем не делается синтаксических разграничений между инструкциями главной программы и инструкциями подпрограмм. Любая программа независимо от количества содержащихся в ней подпрограмм синтаксически - не что иное, как список инструкций. Точки начала и конца подпрограмм никак не выделяются. Фактически, любая инструкция может быть частью главной программы и одновременно частью любого числа подпрограмм в том смысле, что она может быть выполнена во время выполнения главной программы и повторена снова как часть подпрограммы уже во время выполнения последней. Эта весьма хаотическая организация программы приносит лишь ту пользу, что допускает во время прогона программы трансляцию и выполнение новых инструкций и относительно простых подпрограмм. Большинство программирующих на Сноболе 4 вводят искусственные разграничения между телами подпрограмм, вставляя комментарии или другие синтаксические ограничители. [7]
Важной частью определения подпрограммы является список параметров, который уже использован в примерах в предыдущем разделе. Он выглядит как заключенный в скобки список идентификаторов переменных, разделенных запятыми. Внутри функции ( процедуры) параметры могут использоваться как обычные переменные, но они отличаются от обычных переменных тем, что на самом деле не существуют. [8]
Операторы-функции предназначены для определения подпрограмм, используемых только в той программной единице, в которой они определены. Оператор-функция записывается в виде оператора присваивания, определяющего некоторую к тематическую функцию, зависящую, от одного или нескольких аргументов. Обращение к оператору-функции выполняется путем указания имени функции в арифметическом или логическом выражении. Результатом выполнения оператора-функции является значение функции. [9]
Любой блок или определение подпрограммы содержит набор описаний и набор выполняемых инструкций. В общем случае каждый тип инструкции или описания имеет основную форму и большое число дополнительных возможностей, употребляемых по выбору программиста; он может либо использовать их, либо опустить и воспользоваться вариантом, предоставляемым по умолчанию компилятором. Получающийся в результате синтаксис довольно сложен, и программы на ПЛ / I не особенно легки в чтении и написании. [10]
Строка 21 содержит оператор определения подпрограммы FUNCTION. В операторе заданы имя подпрограммы ANGLE и список формальных параметров. При обращении к подпрограмме ( строки 11 и 12) устанавливается соответствие между формальными и фактическими параметрами, и подпрограмме становятся доступными значения параметров из основной программы. [11]
Операторы определения подпрограмм - предназначены для определения подпрограмм и дополнительных точек входа в подпрограммы. [12]
Общая синтаксическая организация главной программы и определений подпрограмм так же сильно варьируется, как и другие аспекты синтаксиса языков. [13]
Оператор ы-ф у н к ц и и предназначены для определения подпрограмм, используемых только в той программной единице, в которой они определены. Оператор-функция записывается в виде оператора присваивания, определяющего некоторую математическую функцию, зависящую от одного или нескольких аргументов. [14]
Используя это правило обработки ссылок, основанное на статической вложенности определений подпрограмм и блоков, мы всегда сможем во время трансляции сопоставить каждому идентификатору декларацию и, таким образом, избегнем проверки типов во время выполнения. Такая вложенность определений блоков и подпрограмм во время трансляции обычно называется статической блочной структурой программы. [15]