Если бы очередь использовалась вместо стека для записей активации, какими были бы наши программы? - PullRequest
1 голос
/ 22 декабря 2010

Хотя стек может давать нам вызовы вложенных функций (и, возможно, больше), что нам даст очередь?Call-после выхода?Будет ли вообще какое-либо использование?

Есть ли какие-либо материалы по этой теме?

Мне любопытно, это не домашняя работа.

Ответы [ 4 ]

0 голосов
/ 07 января 2011

Это называется Чейни-на-МТА .

0 голосов
/ 22 декабря 2010

Я думаю, это в некоторой степени связано с функциональным программированием.Например, монады - это способ описания вашей программы как цепочки последовательных операций, которые принимают результаты предыдущей операции в качестве входных данных.

0 голосов
/ 22 декабря 2010

Я думаю, что вы смотрите на это задом наперед: просто неправда, что кто-то где-то решил произвольно использовать стек, и это определило структуру программ с тех пор.Все наоборот: программисты хотели произвольно вложенных (и рекурсивных) вызовов подпрограмм и разработали структуру стека для реализации этого.Очереди используются для реализации различных требований (например, планирование, обход графика в ширину).

0 голосов
/ 22 декабря 2010

Очередь может использоваться для задач - очередь заданий.Язык может поддерживать вызовы процедур, которые вставляют задачи в очередь.

...