Формальные языки, грамматики и основы построения трансляторов. Кревский И.Г - 85 стр.

UptoLike

85
В данном случае в двух разных блоках а представляет два разных
объекта. Таблица символов должна иметь ту же блочную структуру, что и
программа, чтобы различать виды употребления одного и того же
идентификатора.
Многие современные языки высокого уровня обладают следующими
свойствами:
Определяющая реализация идентификатора появляется (текстуально)
раньше любой прикладной реализации.
При наличии
прикладной реализации идентификатора
соответствующая определяющая реализация находится в наименьшем
включающем блоке, в котором содержится описание этого идентификатора.
В одном и том же блоке идентификатор не может описываться более
одного раза.
B таблице символов компилятора может содержаться и другая
информация об идентификаторе, необходимая во время компиляции,
например, его адрес в ходе прогона
или в случае константыее значение.
Реализация таблиц символов внутри программ возможна либо в виде
массива, либо в виде цепочной структуры, в которой каждый элемент
содержит ссылку на последующий и, возможно, предыдущий элемент
структуры.
Реализация в виде массива
Достоинства
такой организации:
Быстрое выделение памяти под таблицу символов (происходит один
раз при объявлении массива)
Экономия места за счет отсутствия необходимости хранить
информацию о размещении других элементов массива
Простота реализации методов ускоренного поиска, имитации стека и
т.д.
Недостатки:
                                                                           85
       В данном случае в двух разных блоках а представляет два разных
объекта. Таблица символов должна иметь ту же блочную структуру, что и
программа, чтобы различать виды употребления одного и того же
идентификатора.
       Многие современные языки высокого уровня обладают следующими
свойствами:
       Определяющая реализация идентификатора появляется (текстуально)
раньше любой прикладной реализации.
       При     наличии       прикладной      реализации     идентификатора
соответствующая определяющая реализация находится в наименьшем
включающем блоке, в котором содержится описание этого идентификатора.
       В одном и том же блоке идентификатор не может описываться более
одного раза.
       B таблице символов компилятора может содержаться и другая
информация об идентификаторе, необходимая во время компиляции,
например, его адрес в ходе прогона или в случае константы – ее значение.
       Реализация таблиц символов внутри программ возможна либо в виде
массива, либо в виде цепочной структуры, в которой каждый элемент
содержит ссылку на последующий и, возможно, предыдущий элемент
структуры.


                          Реализация в виде массива
       Достоинства такой организации:
       Быстрое выделение памяти под таблицу символов (происходит один
раз при объявлении массива)
       Экономия   места    за   счет   отсутствия   необходимости   хранить
информацию о размещении других элементов массива
       Простота реализации методов ускоренного поиска, имитации стека и
т.д.
       Недостатки: