Лекция 01. Тема Общая характеристика языков программирования высокого уровня
Механизм реализации моделей передачи параметров
Download 4.1 Mb. Pdf ko'rish
|
Lektsii po YaP Lukinova 2 sem
4.4. Механизм реализации моделей передачи параметров
Обмен параметрами при реализации описанных режимов и моделей происходит через стек выполняемой программы. Стек выполняемой программы инициализируется и поддерживается системой поддержки выполнения программ. Параметры, передаваемые по значению, копируются в ячейки стека. Эти ячейки затем служат хранилищем для соответствующих формальных параметров. Передача параметров по результату реализуется как противоположность передаче параметров по значению. Значения, присвоенные фактическим параметрам, передаваемым по результату, помещаются в стек, откуда они могут быть извлечены вызывающим программным модулем после завершения работы вызванной подпрограммы. Передача параметров по значению и результату может быть реализована в соответствии со своей семантикой как комбинация передачи по значению и передачи по результату. Ячейка стека инициализируется вызовом и затем пользуется как локальная переменная в вызываемой подпрограмме. Передача параметров по ссылке наиболее проста для реализации. Независимо от типа фактического параметра в стек должен помещаться лишь его адрес. Если параметр является выражением, то компилятор должен построить код для вычисления выражения непосредственно перед передачей управления в вызываемую подпрограмму. Адрес ячейки памяти, в которую код помещает результат своих вычислений, затем записывается в стек. При передаче по ссылке может возникнуть следующая проблема. Допустим, что подпрограмма завершилась аварийно (возникла исключительная ситуация). В этом случае фактический параметр, передаваемый по значению и результату, не изменится, в то время как при передаче параметров по ссылке соответствующий фактический параметр может измениться до появления ошибки. Описанный механизм демонстрирует рисунок 4.4. . Рисунок 4.4 . Механизм работы стека. Режим InOut Режим InOut Режим In Режим Out Режим InOut & Режим InOut & W Y X Z main Значение a Значение b Значение c &d стек ссылка на а присвоить b ссылка на с присвоить с ссылка на d proc f (a,b,c,d) |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling