Редактирование: Стек возвратов

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

Текущая версия Ваш текст
Строка 1: Строка 1:
'''Стек возвратов из подпрограмм''' — одна из основных структур данных [[ЭКВМ]].
'''Стек возвратов из подпрограмм''' — одна из основных структур данных ЭКВМ.


При переходе на подпрограмму, адрес команды, следующей за командой перехода, запоминается в ''стеке возвратов''. При возврате из подпрограммы, последний записанный адрес из ''стека возврата'' переносится в [[счетчик адреса]].
При переходе на подпрограмму, адрес команды, следующей за командой перехода, запоминается в стеке возвратов. При возврате из подпрограммы, последний записанный адрес из стека возврата переносится в [[счетчик адреса]].


Подпрограмма может быть вызвана из другой подпрограммы. Глубина возможных вложений определяется размером ''стека возвратов''. В ЭКВМ возможно использование до 64 уровней вложения подпрограмм.
Подпрограмма может быть вызвана из другой подпрограммы. Глубина возможных вложений определяется размером стека возвратов. В ЭВМ возможно использование до 64 уровней вложения подпрограмм.


== История ==
== История ==
Стек был изобретён в 1946’ом году [https://ru.wikipedia.org/wiki/Тьюринг,_Алан Аланом Тьюрингом]. Изобретение стека позволило аппаратно реализовать вложенные подпрограммы и возврат из них. Сам термин ''стек'' (''англ.'' stack) появился позднее и приписывается [https://ru.wikipedia.org/wiki/Дейкстра,_Эдсгер_Вибе Эдсгеру Дейкстре].
В советских ПМК при полном заполнении стека возвратов из подпрограмм, а его глубина составляла всего 5 адресов, [[В/О|команда В/О]] вне подпрограммы начинала выполнять переход на адреса, зависящие от предыдущего содержимого стека возвратов (см. «Школа начинающего программиста. Занятие 26», В.А. Хмелюк, «Наука и Жизнь» №11 - 1989 г.). В ЭКВМ переход в этом случае всегда выполняется по адресу 01 текущей страницы и от предыдущего содержимого стека не зависит. Глубина стека возвратов в ЭКВМ увеличена до 64 адресов, переполнение вызывает [[аварийный останов|сообщение об ошибке]].


В советских [[ПМК]] при полном заполнении ''стека возвратов'' из подпрограмм, а его глубина составляла всего 5 адресов, [[В/О|команда В/О]] вне подпрограммы начинала выполнять переход на адреса, зависящие от предыдущего содержимого ''стека возвратов'' (см. «Школа начинающего программиста. Занятие 26», В.А. Хмелюк, [[«Наука и жизнь»]] №11 - 1989 г.). В [[ЭКВМ]] переход в этом случае всегда выполняется по адресу 01 текущей страницы и от предыдущего содержимого стека не зависит. Глубина ''стека возвратов'' в [[ЭКВМ]] увеличена до 64 адресов, переполнение вызывает [[аварийный останов|сообщение об ошибке]].
== Ссылки ==
* [http://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B5%D0%BA Стек на Википедии]
* [https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B4%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0 Подпрограмма] и [https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B5%D0%BA_%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%BE%D0%B2 стек вызовов] на Википедии
* [http://www.catb.org/~esr/jargon/html/S/stack.html Stack на The Jargon File] ''(англ.)''


{{нет иллюстраций}}
{{нет иллюстраций}}


[[Категория:Стек]]
[[Категория:Стек возвратов]]
[[Категория:Структуры данных ЭКВМ]]
[[Категория:Структуры данных ЭКВМ]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)

Шаблон, используемый на этой странице: