Cтраница 2
Подпрограммы могут содержать внутри себя операторы CALL ( см. ниже), вызывающие другие подпрограммы, и любые операторы, выполняющие обращения к подпрограммам типа FUNCTION, библиотечным подпрограммам и описанным в самой подпрограмме оператор-функциям. [16]
![]() |
Типичная последовательность вызова подпрограммы DECADD. [17] |
Подпрограммы типа приведенной в примере могут использовать несколько программ. [18]
Осуществляется недопустимая косвенная ссылка. Например, используются совмещенная переменная, базовая переменная которой в текущем модуле неизвестна, или в подпрограмме типа inline делается ссылка на переменную, неопределенную в текущем модуле. [19]
Внешне, для пользователя, работа с пакетами такого типа организации мало отличается от работы с пакетами типа BMDP или ППСА. Поэтому в дальнейшем эти способы организации пакетов мы различать не будем, именуя условно пакеты из обеих групп просто пакеты программ и отличая их от пакетов ( библиотек) подпрограмм типа ПНП. [20]
Она выполняется после обращения к ней из другой программной единицы. При определении подпрограммы типа FUNCTION используются формальные параметры; информация, необходимая при выполнении подпрограммы-функции, поставляется фактическими параметрами. [21]
Тогда обращение CALL SUB1 должно быть выполнено в NEAR-формате, a CALL SUB2 - в FAR-формате. В первом случае RET имеет NEAR-форму, а во втором он реализуется в FAR-форме. Считается, что подпрограммы типа NEAR необъявленные. Согласование типов подпрограмм, их вызовов и возвратов возлагается на программиста. [22]
Подпрограмма общего вида имеет большое сходство с подпрограммой-функцией. Наиболее существенные отличия заключаются в том, что, во-первых, имени подпрограммы не присваивается какого-либо значения в подпрограмме и этому имени не соответствует никакая переменная. В связи с этим имя подпрограммы типа не имеет. [23]
Средства для работы с подпрограммами в языках ПЛ / 1 и Фортран построены на одинаковых принципах, хотя синтаксически эти языки совершенно различны. В ПЛ / 1 применяются два типа подпрограмм; они объявляются с помощью одного и того же оператора определения подпрограммы PROCEDURE. Они, однако, различаются способом возвращения управления в вызывающую программу. Подпрограмма типа функции возвращает результат в явном виде путем использования оператора RETURN ( выражение), в то время как подпрограмма типа стандартной подпрограммы возвращает результат неявно с помощью оператора RETURN без операнда. [24]
Средства для работы с подпрограммами в языках ПЛ / 1 и Фортран построены на одинаковых принципах, хотя синтаксически эти языки совершенно различны. В ПЛ / 1 применяются два типа подпрограмм; они объявляются с помощью одного и того же оператора определения подпрограммы PROCEDURE. Они, однако, различаются способом возвращения управления в вызывающую программу. Подпрограмма типа функции возвращает результат в явном виде путем использования оператора RETURN ( выражение), в то время как подпрограмма типа стандартной подпрограммы возвращает результат неявно с помощью оператора RETURN без операнда. [25]