Присоединение
Присоединение
Семантика присваивания, как отмечалось, распространяется еще на одну операцию - передачу аргумента при вызове подпрограмм. Предположим, существует подпрограмма (процедура или функция) в форме:
r (..., x: SOME_TYPE, ...)
Здесь сущность x это один из формальных аргументов r. Рассмотрим теперь некоторый вызов r в любой из двух возможных форм - квалифицированный или неквалифицированный вызов:
r (..., y, ...)
t.r (..., y, ...)
Выражение y является фактическим аргументом, передаваемым формальному аргументу x.
Выполнение r при любом из этих вызовов начинается с инициализации формальных аргументов значениями соответствующих фактических аргументов. Для простоты и согласованности правила, определяющие передачу аргументов, те же, что и правила присваивания. Другими словами, инициализация формального аргумента эквивалентна выполнению присваивания:
x := y
Это правило приводит к определению:
Определение: Присоединение
Присоединение y к x является результатом выполнения следующих двух операций:
Присваивания в форме x := y
Инициализации x при вызове подпрограммы, где x - формальный аргумент, а y - фактический аргумент вызова.
В обоих случаях x является целью присоединения, а y - источником.
Одни и те же правила действуют в обоих случаях для определения корректности присоединения (в зависимости от типов цели и источника). При условии корректности одни и те же правила определяют, каков будет эффект присоединения в период выполнения.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
6.5.3 Присоединение области к процессу
6.5.3 Присоединение области к процессу Ядро присоединяет область к адресному пространству процесса во время выполнения системных функций fork, exec и shmat (алгоритм attachreg, Рисунок 6.19). Область может быть вновь назначаемой или уже существующей, которую процесс будет использовать
9.4. Присоединение дополнительных аргументов
0
Присоединение ссылки к объекту
Присоединение ссылки к объекту Классы, появляющиеся в этой лекции, не имели подпрограмм - у них были только атрибуты. Как отмечалось, такие классы почти бесполезны, так как у них нет способа изменить значение атрибутов. Необходимы способы модификации ссылок, не
Присоединение: две семантики - ссылок и значений
Присоединение: две семантики - ссылок и значений В этом разделе рассматривается специальная информация, и он может быть пропущен при первом чтении. Введение развернутых типов требует возвращения к рассмотрению двух фундаментальных операций, уже рассмотренных в этой
Присоединение: ссылочное и копии
Присоединение: ссылочное и копии При изучении ссылочного присваивания мы уже познакомились с эффектом присоединения. Если источник и цель являются ссылками, то эффект присваивания: x := yи соответствующей передачи аргументов состоит в том, что x получает значение ссылки y.
Гибридное присоединение
Гибридное присоединение В рассматриваемых до сих пор случаях источник и цель принадлежали одной категории - оба развернутого или ссылочного типа. Что если они из разных категорий? Вначале рассмотрим ситуацию, когда в присваивании x := y цель x развернутого типа, а источник y
Полиморфное присоединение
Полиморфное присоединение "Полиморфизм" означает способность обладать несколькими формами. В ОО-разработке несколькими формами обладают сущности (элементы структур данных), способные во время выполнения присоединяться к объектам разных типов, что контролируется