Введение

Язык программирования, используемый для создания древовидных структур данных. Язык описания деревьев (TreeDL) — это компьютерный язык для описания строго типизированных древовидных структур данных и операций над ними. Основное применение TreeDL — в разработке языко-ориентированных инструментов (компиляторов, трансляторов и т. д.) для описания структуры абстрактных синтаксических деревьев. Описание дерева может использоваться как: документация интерфейса между парсером и другими подсистемами; источник для генерации типов данных, представляющих дерево в целевых языках программирования; источник для генерации различного вспомогательного кода: посетителей, обходчиков, фабрик и т. п. TreeDL может использоваться с любым генератором парсеров, который позволяет выполнять пользовательские действия в процессе разбора (например, ANTLR, JavaCC).

Обзор языков

Описание дерева перечисляет типы узлов, допустимые в дереве. Типы узлов поддерживают одиночное наследование. Типы узлов имеют дочерние элементы и атрибуты. Дочерние элементы должны быть определенного типа узлов. Атрибуты могут быть примитивного типа (числовой, строковый, логический), перечисления или типа узла. Атрибуты используются для хранения литералов при построении дерева и дополнительной информации, собранной в ходе анализа дерева (например, связи между ссылкой и определением, для представления абстрактного синтаксиса высшего порядка). Операции над деревом определяются как мультиметоды. Преимущества этого подхода описаны в статье Treecc: Аспектно-ориентированный подход к написанию компиляторов.

Описания деревьев поддерживают наследование для обеспечения модульности и повторного использования базовых описаний деревьев языка для языковых расширений.