Лекция 01. Тема Общая характеристика языков программирования высокого уровня
end; BEGIN { Раздел операторов - тело программы} END
Download 4.1 Mb. Pdf ko'rish
|
Lektsii po YaP Lukinova 2 sem
- Bu sahifa navigatsiya:
- 4.2. Дескриптор подпрограммы
end;
BEGIN { Раздел операторов - тело программы} END. Рисунок 4.2. Структура программы на языке Pascal В некоторых языках, например, С, С++ и подобных нет четкой иерархии между главной программой и подпрограммами, структуризации областей видимости внутри программых единиц, разделения на процедуры и функции. Программа на С представляет собой набор функций, хотя среди них обязательно должна быть функция main() – аналог главной программы. При этом функция может иметь как свойства procedure, так и function в понимании Pascal. Такие качества дают гибкость при программировании, но, безусловно, уменьшают надежность программ, написанных на С-подобных языках, их читабельность. 4.2. Дескриптор подпрограммы С целью осуществления корректного подключения подпрограммы операционная система должна реализовать определенные механизмы. Их два: 1. Механизм обеспечения передачи управления подпрограмме при ее вызове, 2. Механизм обеспечения возврата управления в вызывающую программу. Механизм передачи управления в подпрограмму при ее вызове осуществляет следующие действия: сохранение текущего состояния памяти вызывающего ее модуля; передачу параметров в подпрограмму; сохранение адреса возврата в вызывающую программу. Механизм возврата управления из подпрограммы в вызывающую программу заключается в следующем: присваивание вычисленных значений выходным параметрам подпрограммы; восстановление текущего состояния вызывающего модуля; передача управления по адресу возврата в вызывающий модуль. Выполнение описанных механизмов обеспечиваются с помощью специального дескриптора, который называется запись активации подпрограммы и формируется в автоматической памяти (стеке). Экземпляр записи активации (ЭЗА) под каждую подпрограмму, формируется при ее активации и разрушается в момент завершения работы. На рисунке 4.3 приведена структура ЭЗА при активных главной программе main, подпрограммах f1 и f2 в ситуации статического обзора данных. Особенности реализации подпрограмм: каждая подпрограмма имеет, по крайней мере, один вход и выход, хотя можно организовать процедуру, которая осуществляет выполнение алгоритма пользуясь только глобальными и локальными переменными и не будет иметь входных и выходных параметров, на время выполнения подпрограммы выполнение вызывающего ее модуля приостанавливается, в каждый момент времени выполняется только одна подпрограмма (разумеется, если задействован последовательный вычислитель, а на высокопроизводительной архитектуре со многими процессорами можно организовать обработку процессов параллельно), управление после выполнения подпрограммы всегда возвращается в вызывающий модуль. Рисунок 4.3 . Структура ЭЗА цепочки main -> procedure f1 -> procedure f2 Download 4.1 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling