До тех пор, пока это не произойдет естественным образом, я легко нарисую диаграммы моделей среды. Они также очень важны для экзаменов и тех эзотерических примеров, которые предназначены для того, чтобы сбить с толку. Я предлагаю знаменитый SICP (http://mitpress.mit.edu/sicp/),, но в Интернете явно более чем достаточно ресурсов (быстрый Google привел меня к этому: http://www.icsi.berkeley.edu/~gelbart/cs61a/EnvDiagrams.pdf).
Это зависит от языка / реализации, когда / как выполняются привязки, однако в вашем примере привязки могут быть выполнены во время компиляции. В общем, статическая область видимости, как следует из названия, допускает большую статическую привязку / время компиляции. Компилятор может просмотреть функцию, увидеть все ссылки и немедленно разрешить их. Например, в B2
ссылка на y
может быть немедленно разрешена, чтобы принадлежать к охватывающей области, то есть к B
.
Согласно динамическому и статическому масштабированию, существует огромная разница. Динамическое, как следует из названия, гораздо сложнее связывать во время компиляции, поскольку структура кода не определяет ссылки на переменные. Разные пути исполнения могут давать разные привязки. Вы должны быть более конкретными с этим вопросом.