TreeDL - TreeDL
Язык описания дерева (TreeDL) - это компьютерный язык для описания строго типизированных древовидные структуры данных и операции на них. В основном TreeDL используется для разработки языковых инструментов (компиляторы, переводчики и др.) для описания структуры абстрактные синтаксические деревья.
Описание дерева можно использовать как
- документация интерфейса между парсер и другие подсистемы;
- источник для генерации типов данных, представляющих дерево на целевых языках программирования;
- источник для генерации различного кода поддержки: посетители, ходунки, фабрики, так далее.
TreeDL можно использовать с любым генератор парсеров что позволяет настраивать действия во время синтаксического анализа (например, ANTLR, JavaCC ).
Обзор языка
В описании дерева перечислены типы узлов, разрешенные в дереве. Поддержка типов узлов одинарное наследование. Типы узлов имеют дочерние элементы и атрибуты. Дочерние элементы должны быть определенного типа узла. Атрибуты могут быть примитивного типа (числовой, строковый, логический), типа перечисления или типа узла. Атрибуты используются для хранения литералов во время построения дерева и дополнительной информации, собранной во время анализа дерева (например, связи между ссылкой и определением, для представления абстрактный синтаксис высшего порядка ).
Операции над деревом определяются как мультиметоды. Преимущества такого подхода описаны в статье. Treecc: аспектно-ориентированный подход к написанию компиляторов
Описания дерева поддерживают наследование, чтобы обеспечить модульность и повторное использование описаний дерева базового языка для языковых расширений.
Смотрите также
- ANTLR - генератор парсеров, который предлагает другой подход к обработке дерева: грамматики деревьев.
- SableCC - генератор парсеров, генерирующий строго типизированный абстрактные синтаксические деревья.
внешние ссылки
- TreeDL главная на Wayback Machine (Архивировано 03.10.2016)
- старый дом TreeDL
- treecc на Wayback Machine (архивировано 3 июля 2007 г.)