Название: Построение интерпретаторов, область видимости Отправлено: kdm от Июля 07, 2010, 20:16 Никто не знает как правильно вычислять область видимости переменных внутри программы.
Например, дан исходный код: Код: integer a = 0; Если делать это во время интерпретации, увеличивая с каждым блоком текущий уровень на один, то глобальная переменная a не будет видна из функции func1, т.к. уровени будут отличаться. В случае, когда уровни расставляются при семантическом анализе переменная b будет видная из функции func2, которая может следовать за func1, т.к. они будут находится на одном уровне. Можно использовать смешанный метод, но я пока не представляю как. В красном драконе так сразу не нашел, может кто совет даст, как это делать? Название: Re: Построение интерпретаторов, область видимости Отправлено: lit-uriy от Июля 08, 2010, 00:30 мне компиляторы писать не приходилось, но первая мысль такая:
входя в новый уровень иерархии, создавать некий список переменных. При поиске переменных смотреть сначала его, а затем списки выше по иерархии. |