Почему языки сценариев используют правило динамического контекста? - PullRequest
4 голосов
/ 24 ноября 2010

Кто-нибудь знает, почему языки сценариев используют правило динамического контекста? Я не могу найти что-либо об этом вопросе в Интернете.

Ответы [ 3 ]

12 голосов
/ 25 ноября 2010

Языки сценариев обычно имеют , а не имеют динамическое определение объема .Scheme, Lua, Ruby и Python имеют лексическую область видимости.Лишь немногие языки до сих пор используют динамическую область видимости, потому что очень трудно рассуждать о том, что делает ваш код, глядя на него.

Когда вы говорите «динамическая область видимости», что вы пытаетесь описать?

2 голосов
/ 24 ноября 2010

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

1 голос
/ 24 ноября 2010

Здесь есть полезный обзор динамического определения объема: От http://c2.com/cgi/wiki?DynamicScoping

Это включает в себя следующее:

"Динамическое определение объема полезно как заменитель глобально переменные. Функция может сказать «пусть current_numeric_base = 16; позвони другим функции; "и другие функции все будет печататься в шестнадцатеричном формате. затем когда они вернутся, и базовая установка функция возвращает, база вернет к чему бы то ни было. "

...