Введение

В информатике абстрактный синтаксис высшего порядка (сокращенно HOAS) — это техника представления абстрактных синтаксических деревьев для языков с переменными-связывателями.

Отношение к абстрактному синтаксису первого порядка

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

Реализация

Один математический объект, который можно использовать для реализации HOAS, — это граф, в котором переменные связаны со своими областями привязки посредством рёбер. Другой распространённый способ реализации HOAS (например, в компиляторах) — использование индексов де Брюйна.