В SICP 3.2, Модель оценки среды, является ли среда первоначально такой же, как ее первый фрейм?

В Структура и интерпретация компьютерных программ часть 3.2, "среда" определяется как "последовательность кадров". Но, насколько я вижу, в книге больше не обсуждается разница между окружением и фреймом. Кроме того, я подозреваю, что рисунки окружающей среды объединяют их с фреймами, потому что книжные рисунки маленькие и двухмерные, и не сразу показывают эволюцию во времени, если не считать другого полного рисунка.

Так будет ли правильно думать, что среда при создании такая же, как и ее первый кадр? И затем, когда в среде происходит какое-либо изменение (изменяется существующая привязка, создается новая привязка), среда добавляет новый кадр в свою последовательность кадров? Если такое понимание НЕ верно, то в чем именно разница между окружением и фреймом?

Заранее благодарю за любую помощь!


person limist    schedule 21.09.2010    source источник


Ответы (3)


Последовательность кадров представляет собой связанный список (кадров), указывающий «вверх» на глобальную среду. Поэтому, когда создается среда (например, в контексте привязки процедуры), «среда» является указателем на фрейм... который в терминах указывает на окружающую среду (или нуль, если глобальная среда).

Итак... квалифицированное "да"... это первый кадр в том смысле, что остальная часть среды доступна из этого первого кадра.

Это помогает?

С уважением, Дак

person Dak    schedule 21.09.2010
comment
Это помогает, спасибо, так что в конечном итоге среда является указателем на последовательность кадров, и изначально эта последовательность состоит только из одного кадра. А как же глобальная среда? Возможно, это будет дальше в книге, но если глобальная env также является просто указателем на последовательность кадров, то где глобальная процедура, указывающая на глобальную последовательность кадров? Это похоже на дилемму первопричины... :) - person limist; 22.09.2010

Очень часто люди используют термины «окружающая среда» и «фрейм» как синонимы. Лично я всегда старался их различать. Я использую фрейм для обозначения определенного стека и среды для всех фреймов.

person Catherine Hwang    schedule 15.10.2010

Я думаю, что начальная среда представляет собой последовательность длины 1 только с первым кадром.

person newacct    schedule 21.09.2010