Абстрактный синтаксис

редактировать

В информатике, абстрактный синтаксисданных - это его структура, описанная как тип данных (возможно, но не обязательно, абстрактный тип данных ), независимо от какого-либо конкретного представления или кодировки. Это, в частности, используется при представлении текста на компьютерных языках, которые обычно хранятся в древовидной структуре как абстрактное синтаксическое дерево. Абстрактный синтаксис, который состоит только из структуры данных, противопоставляется конкретному синтаксису, который также включает информацию о представлении. Например, конкретный синтаксис включает такие функции, как круглые скобки (для группировки) или запятые (для списков), которые не включены в абстрактный синтаксис, поскольку они неявны в структуре.

Абстрактные синтаксисы классифицируются как абстрактный синтаксис первого порядка(FOAS), если структура абстрактная, но имена (идентификаторы) по-прежнему конкретны (и, следовательно, требует разрешения имен ) и абстрактный синтаксис высшего порядка, если сами имена абстрактны.

Использует

Для реализации либо для вычислений, либо для связи, необходимо определить отображение абстрактного синтаксиса в конкретные машинные представления и кодировки; их можно назвать «конкретным синтаксисом » (в языковой реализации) или «синтаксисом передачи» (в коммуникациях).

A Компилятор внутреннее представление программы обычно определяется абстрактным синтаксисом в терминах таких категорий, как «оператор», «выражение» и «идентификатор». Это не зависит от исходного синтаксиса (конкретный синтаксис) компилируемого языка (хотя часто он будет очень похож). Дерево синтаксического анализа похоже на абстрактное синтаксическое дерево , но обычно оно также содержит такие функции, как круглые скобки, которые имеют синтаксическое значение, но неявно присутствуют в структуре абстрактного синтаксического дерева.

Алгебраические типы данных особенно хорошо подходят для реализации абстрактного синтаксиса.

См. Также
Ссылки

.

Последняя правка сделана 2021-06-08 19:47:04
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте