ВУЗ:
Составители:
84
14. РАБОТА С ТАБЛИЦЕЙ СИМВОЛОВ
Поскольку синтаксический анализатор обычно использует контекстно-
свободную грамматику, необходимо найти метод определения контекстно-
зависимых частей языка. Например, во многих языках идентификаторы не
могут применяться, если они не описаны, также имеются ограничения в
отношении способов употребления в программе значений различных типов.
Для запоминания описанных идентификаторов и их типов большинство
компиляторов пользуется таблицей
символов.
Когда описывается идентификатор, например,
int a;
это называется определяющей реализацией а. Однако а может
встречаться и в другом контексте:
a=4 или a+b или read(a)
здесь имеются прикладные реализации a.
В случае определяющей реализации идентификатора
(специфицируемого пользователем типа данных, операции и т. п.),
компилятор помещает объект в таблицу символов. В случае
прикладной
реализации в таблице символов осуществляется поиск элемента,
соответствующего определяющей реализации объекта, чтобы узнать его тип
и (возможно) другие признаки, требующиеся во время компиляции.
Во многих языках один и тот же идентификатор может использоваться
для представления в разных частях программы различных объектов. В таких
случаях структура программы помогает различать эти объекты
, например
{
int a;
...
}
...
{
char a;
...
}
84 14. РАБОТА С ТАБЛИЦЕЙ СИМВОЛОВ Поскольку синтаксический анализатор обычно использует контекстно- свободную грамматику, необходимо найти метод определения контекстно- зависимых частей языка. Например, во многих языках идентификаторы не могут применяться, если они не описаны, также имеются ограничения в отношении способов употребления в программе значений различных типов. Для запоминания описанных идентификаторов и их типов большинство компиляторов пользуется таблицей символов. Когда описывается идентификатор, например, int a; это называется определяющей реализацией а. Однако а может встречаться и в другом контексте: a=4 или a+b или read(a) здесь имеются прикладные реализации a. В случае определяющей реализации идентификатора (специфицируемого пользователем типа данных, операции и т. п.), компилятор помещает объект в таблицу символов. В случае прикладной реализации в таблице символов осуществляется поиск элемента, соответствующего определяющей реализации объекта, чтобы узнать его тип и (возможно) другие признаки, требующиеся во время компиляции. Во многих языках один и тот же идентификатор может использоваться для представления в разных частях программы различных объектов. В таких случаях структура программы помогает различать эти объекты, например { int a; ... } ... { char a; ... }
Страницы
- « первая
- ‹ предыдущая
- …
- 82
- 83
- 84
- 85
- 86
- …
- следующая ›
- последняя »