TreeDL - TreeDL

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

Описание дерева можно использовать как

  • документация интерфейса между парсер и другие подсистемы;
  • источник для генерации типов данных, представляющих дерево на целевых языках программирования;
  • источник для генерации различного кода поддержки: посетители, ходунки, фабрики, так далее.

TreeDL можно использовать с любым генератор парсеров что позволяет настраивать действия во время синтаксического анализа (например, ANTLR, JavaCC ).

Обзор языка

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

Операции над деревом определяются как мультиметоды. Преимущества такого подхода описаны в статье. Treecc: аспектно-ориентированный подход к написанию компиляторов

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

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

внешние ссылки