При использовании ПП возникает потребность в переменных, которые нужны только при выполнении определенного участка кода (тела ПП и м.б. участков вызова и возврата). Для этих целей использовать глобальные переменные нерационально, так как память требуется только в течение короткого времени выполнения ПП, а в остальное время не используется (и не хранит ничего полезного).
Понятие контекста - весьма важно не только для ПП. Понятие процесса более
Порядок использования ПП (первый взгляд):
1) помещение входных данных (параметров);
2) передача управления на ПП (вызов ПП);
3) доступ к параметрам при выполнении тела ПП
4) помещение вычисленного результата
5) возврат из ПП (как правило, на команду, следующую за командой вызова)
6) доступ к результату работы ПП для его дальнейшего использования.
Дополнительные моменты (второй взгляд)
7) выделение элементов хранения (памяти) под параметры;
8) выделение элемента хранения под адрес возврата и его запоминание;
9) выделение памяти под временные (локальные) переменные, нужные подпрограмме;
10) освобождение выделенной памяти после того, как в ней минула необходимость.
Еще дополнительные моменты (третий взгляд)
11) каждая ПП должна иметь собственные локальные переменные (так как возможны вложенные вызовы в любом порядке)
Вызов и возврат -
передача управления в новое место - изменение контекста;
запоминание адреса возврата сохранение
контекста;
выполнение возврата восстановление
сохраненного контекста.
Место хранения адреса возврата должно быть индивидуальным для каждой ПП, а также для каждого экземпляра ПП (при рекурсивном вызове) - иначе затрется.
Передача параметров и возврат результатов
выделение элементов хранения под параметры и под результаты;
присвоение значений параметрам;
считывание результатов после окончания работы ПП и возврата
Сохранение и восстановление контекста
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.