Использование стеков для таблиц символов или нет

Я работаю над созданием компилятора и наткнулся на текст, который предлагает два разных способа реализации таблиц символов. С одним, есть таблица символов для каждого уровня вложенности, которая хранится в стеке. Во втором варианте есть только две таблицы символов, одна таблица символов создается для ведения всех записей, а другая используется для отслеживания изменений в первичной таблице, чтобы узнать, какие записи следует удалить после того, как вы сделали это. этот конкретный блок. Каковы сильные и слабые стороны этих различных реализаций? Я уверен, что первый вариант будет быстрее, если удалить таблицу символов для отдельного блока, однако это связано с некоторыми накладными расходами (из которых я неясен). Второй явно ресурсоемкий, когда необходимо удалить большой блок со многими объявлениями, но он обеспечивает постоянное время при доступе к переменным.

0 ответов

Другие вопросы по тегам