Внешняя процедура - Большая Энциклопедия Нефти и Газа, статья, страница 1
Порядочного человека можно легко узнать по тому, как неуклюже он делает подлости. Законы Мерфи (еще...)

Внешняя процедура

Cтраница 1


Внешняя процедура может динамически загружаться в основную память либо при выполнении оператора FETCH, либо при обращении к процедуре-подпрограмме оператором CALL или вызове функции. Однако в последних двух случаях загрузка будет выполняться, если имена входов этих внешних процедур указаны в операторах FETCH или RELEASE, находящихся в вызывающей процедуре.  [1]

Внешняя процедура загружается в основную память только тогда, если ее еще там нет. Если же загружаемая процедура уже находится в основной памяти, то оператор FETCH эквивалентен пустому. После динамической загрузки процедура может оставаться в основной памяти до конца выполнения программы. Если этого не требуется, то с помощью оператора RELEASE область памяти, занимаемая ею, может быть вновь освобождена.  [2]

Внешняя процедура может быть вызвана любой другой процедурой, как внешней, так и внутренней. Она может быть вызвана по первичной точке входа или по вторичной точке входа, если такие имеются.  [3]

Внешние процедуры служат в ряде версий языка тем средством, с помощью которого обеспечивается работа с подпрограммами, написанными на других языках, в том числе на языке ассемблера.  [4]

Внешние процедуры и функции не должны иметь в качестве параметров параметры-функции и сами не могут быть переданы в качестве параметров.  [5]

Внешняя процедура может использоваться рекурсивно и передана как параметр только процедуре, декларированной внутри нов самой.  [6]

Внешняя процедура или функция не имеет соответствующего определения PUBLIC в объектном файле. Убедитесь, что указаны все объектные файлы в директивах L Файл.  [7]

Внешние процедуры и функции хранятся в виде самостоятельных загрузочных модулей в библиотеках.  [8]

Внешняя процедура написана на каком-либо другом языке.  [9]

Внешние процедуры контроля включают в себя следующие действия.  [10]

Внешние процедуры типа библиотечных программ ( например, программы решения систем линейных уравнений) могут постоянно находиться в ОЗУ для использования их различными процессами в режиме мультипрограммной работы. Для этого необходимо, чтобы процедурный сегмент любой программы был организован так, что ни одна его ячейка не изменится в процессе решения. Обращение к процедуре извне должно осуществляться только по ее идентификатору, а ее работа должна быть инвариантной к размещению в памяти. При выполнении этих требований процесс может обратиться к процедуре, сегмент которой еще не включен в сегмент основных кодовых слов.  [11]

Каждая внешняя процедура, определяемая отдельным модулем, может иметь как статические, так и динамические параметры. В операторе вызова подпрограммы задаются только те фактические параметры, которые соответствуют динамическим параметрам подпрограммы, а настройка подпрограммы на ее статические параметры производится во время загрузки.  [12]

Каждая внешняя процедура образует исходный модуль, который транслируется независимо.  [13]

Две внешние процедуры транслируются отладочным транслятором, затем они редактируются и выполняются с помощью команды LOADGO. Главная процедура находится в наборе данных BMO. PLI, другая внешняя процедура, используемая как подпрограмма, - в наборе BMO. Трансляция выполняется с помощью команды PLIC с операндами NORUN и LOAD. Операнд NORUN гарантирует, что управление в конце трансляции будет передано на АП. Операнд LOAD указывает, что объектный модуль и интерпретируемый код, полученные во время трансляции, должны быть сохранены в наборе данных. При трансляции главной процедуры в операнде LOAD не указаны имена наборов.  [14]

Две внешние процедуры ( PR1 и PR2) находятся в наборах данных MASTER. Первая процедура транслируется отладочным транслятором, вторая ( подпрограмма) - оптимизирующим. Затем они редактируются и выполняются с помощью команды LOADGO. Так как в командах PLIC и PLI ( которая используется для вызова оптимизирующего транслятора), не указаны имена наборов, где будут храниться объектные модули и интерпретируемый код, система сама построит эти имена. Для процедуры PR1 эти имена соответствуют MASTER.  [15]



Страницы:      1    2    3    4