IT-словарь › Программирование › Переход Уилера

Переход Уилера

Программирование Svenska → Обновлено: 2026-10-19

Приём, позволивший прыгнуть в подпрограмму и всё же найти дорогу назад, — вызов подпрограммы, изобретённый в 1949 году.

На EDSAC Дэвид Уилер решил задачу о подпрограмме, вызываемой из разных мест и обязанной знать, куда возвращаться. Вызывающий код перед переходом помещал в сумматор собственный адрес; первая команда подпрограммы превращала это значение в готовую команду перехода и записывала её поверх своей последней команды. Подпрограмма сама подгоняла концовку под каждый вызов, а вызывающему о механизме знать ничего не требовалось.

Код стал повторно используемым, а у EDSAC появилась первая в истории библиотека подпрограмм: бумажные ленты в картотеке, которые программист копировал в свою ленту. Метод описали в учебнике Уилкса, Уилера и Гилла 1951 года — первом по этой теме. Слабость очевидна сразу: адрес возврата вписан в сам код, поэтому подпрограмма не может вызвать себя — второй вызов затрёт первый. Рекурсии пришлось ждать появления стека вызовов.

← Назад к словарю