Абстрактный синтаксис - Abstract syntax

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

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

Использует

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

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

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

Смотрите также

использованная литература