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

Блок - процедура

Cтраница 2


Общая программа составляется из отдельных подпрограмм, которые, в некоторых случаях, являются процедурами без параметров. Формальные параметры такой процедуры вводятся в состав общих переменных, глобальных по отношению к блоку процедуры. Настройка такой процедуры на фактические параметры сводится к присвоению значений фактических параметров глобальным переменным процедуры. После этого в программе осуществляется передача управления на вход процедуры. Этот метод позволяет программисту воздействовать на порядок присвоения значений формальным параметрам, на способ передачи управления на процедуру и управлять выделением памяти под ее формальные параметры.  [16]

Выполнение оператора процедуры состоит в следующем. Все формальные параметры заменяются соответствующими фактическими. После этого создается динамический экземпляр блока процедуры, который и выполняется.  [17]

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

Это делает программу нагляднее. Правилами определения области действия допускается использование одного имени для глобального и формального параметров. В этом случае глобальный параметр теряет свое значение внутри блока процедуры или функции, так как с этим именем связан локальный параметр.  [19]

Метки в этом операторе END произвольны. Первая метка ( или метки) является метками оператора, в то время как последняя метка, если она необходима, означает метку процедуры. Это облегчает чтение блока процедуры.  [20]

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

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

Один блок ( либо PROCEDURE, либо BEGIN) может быть вложен в другой блок. Такие блоки называются внутренними. Совмещения блоков быть не может. Каждый блок должен быть полностью вложен в другой аналогично тому, как вкладываются друг в друга группы DO. Блоки, которые ни в какой другой блок не вкладываются, называются внешними. Внешними могут быть только блоки процедур, а в каждой программе ПЛ / 1 должна быть по крайней мере одна внешняя процедура.  [23]

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

Работа транслятора начинается вводом программы на языке АЛГОЛ в машину. При этом работает 1 - й или 2 - й блок, который перекодирует все основные символы языка в 15-разрядный двоичный код. После этого работает блок синтаксического контроля. Все места записи с ошибками выдаются на печать. Следующий блок - выделения понятий - сводит алгольную программу к системе таблиц, относящихся к различным понятиям внутреннего языка транслятора. В процессе работы печатаются все неописанные идентификаторы. Если таких нет, то начинает работать блок программирования выражений, выделенных во входной записи в условном коде. Затем вызываются блоки по обработке операторов или описаний определенного типа ( входа, циклов и др.), по окончании работает блок распределения памяти для простых переменных и массивов. После блока распределения памяти работают блоки процедур - кодов.  [25]



Страницы:      1    2