Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КОМП. НАУКИ_1сем.doc
Скачиваний:
6
Добавлен:
05.11.2018
Размер:
902.14 Кб
Скачать
    1. Корректность передачи параметров

Корректность передачи параметров обеспечивается следующим:

  1. порядок перечисления формальных параметров в заголовке описания подпрограммы и фактических параметров при вызове подпрограммы должен быть одинаковым;

  2. если параметр передается по значению, типы формального параметра и соответствующего фактического параметра должны быть совместимы по присваиванию;

  3. если параметр передается по адресу, типы формального и фактического параметров должны быть эквивалентны.

    1. Досрочное завершение работы программы и подпрограммы

Досрочно выйти из подпрограммы можно, вызвав стандартную процедуру exit. При использовании exit непосредственно в теле программы она завершается (так же, как при использовании процедуры halt).

    1. Реализация вызова подпрограммы

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

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

Так как подпрограммы могут вызывать друг друга, в стеке могут находиться записи нескольких вызванных подпрограмм. Подпрограмма, вызванная последней, первой завершает свою работу.

    1. Область действия и время жизни идентификаторов

Областью действия идентификатора (сферой видимости) называется часть программы или подпрограммы, где идентификатор может использоваться. Границы области действия определяются местом объявления (описания) идентификатора.

Глобальным называется идентификатор, объявленный в программе.

Локальным называется идентификатор, объявленный в той подпрограмме, где он используется.

Язык Pascal допускает описание вложенных подпрограмм, т.е. помещение подпрограмм внутрь других подпрограмм. Такие вложенные подпрограммы могут использоваться только в той подпрограмме, в которой они описаны. Это можно использовать для более логичной структуризации программы.

Правила видимости

  1. Глобальный идентификатор может использоваться в любом месте программы, в том числе во всех подпрограммах программы.

  2. Локальный идентификатор может использоваться в той подпрограмме, где он объявлен, и во всех вложенных в нее подпрограммах. Для этих внутренних подпрограмм он называется внешним идентификатором.

  3. Формальные параметры считаются локальными в той подпрограмме, где они описаны.

  4. Идентификатор в любой подпрограмме должен быть уникальным, но в разных подпрограммах можно объявлять одинаковые идентификаторы.

  5. В каждом месте программы действует ближайшее по вложенности описание. Объекты с такими же идентификаторами из объемлющих подпрограмм или из программы становятся недоступными.

Время жизни идентификаторов

Время жизни  это интервал времени выполнения программы, в течение которого переменная или подпрограмма существуют. Время жизни переменной может быть локальным или глобальным. Переменная с глобальным временем жизни имеет выделенную для нее память и определенное значение на протяжении всего времени выполнения программы, начиная с момента выполнения объявления этой переменной. Переменная с локальным временем жизни имеет выделенную для него память и определенное значение только во время выполнения подпрограммы, в котором эта переменная объявлена. При каждом вызове подпрограммы для локальной переменной выделяется новая память в стеке подпрограмм, которая освобождается при выходе из подпрограммы.