Статические и динамические области видимости

Перевод статьи Static and Dynamic Scoping.

Область видимости переменной x это область программы в которой использование имени x ссылается на объявление этой переменной. Одна из причин использование областей видимости — сохранить переменные в разных частях программы отличными друг от друга. Количество коротких имён для переменных ограничено и программисты используют общепринятые имена (например i для индекса массива). В любой программе среднего размера одинаковые названия переменных используются в разных частях программы.

Области видимости делятся на два вида: статические и динамические.

Статические области видимости

Статические области видимости (Static scoping) так же называются лексическими областями видимости (Lexical scoping). В этих областях видимости имена переменных всегда ссылаются на окружение более верхнего уровня. Это свойство текста программы и не связано со стеком вызовов во время выполнения. Статические области видимости упрощают написание модульного кода, так как программист вычисляет область видимости просто смотря на код. В отличии от этого, динамические области видимости требуют от разработчика учитывать все возможные варианты динамического контекста.

Читать далее Статические и динамические области видимости