DrzewoDL

Tree Description Language (TreeDL) to język komputerowy do opisu ściśle typowanych drzewiastych struktur danych i operacji na nich. Głównym zastosowaniem TreeDL jest rozwój narzędzi zorientowanych językowo ( kompilatory , translatory itp.) do opisu struktury abstrakcyjnych drzew składniowych .

Opis drzewa może być używany jako

  • dokumentacja interfejsu pomiędzy parserem a innymi podsystemami;
  • źródło do generowania typów danych reprezentujących drzewo w docelowych językach programowania;
  • źródło do generowania różnych kodów wsparcia: odwiedzający , spacerowicze, fabryki itp.

TreeDL może być używany z dowolnym generatorem parsera , który umożliwia niestandardowe akcje podczas analizowania (na przykład ANTLR , JavaCC ).

Przegląd języków

Opis drzewa zawiera listę typów węzłów dozwolonych w drzewie. Typy węzłów obsługują dziedziczenie pojedyncze . Typy węzłów mają dzieci i atrybuty. Elementy podrzędne muszą należeć do określonego typu węzła. Atrybuty mogą być typu pierwotnego (liczbowego, łańcuchowego, boolowskiego), typu wyliczeniowego lub typu węzła. Atrybuty służą do przechowywania literałów podczas konstruowania drzewa i dodatkowych informacji zbieranych podczas analizy drzewa (na przykład powiązania między odwołaniem a definicją, aby reprezentować abstrakcyjną składnię wyższego rzędu ).

Operacje na drzewie są definiowane jako multimetody . Zalety takiego podejścia opisano w artykule Treecc: An Aspect-Oriented Approach to Writing Compilers

Opisy drzew obsługują dziedziczenie, aby umożliwić modułowość i ponowne wykorzystanie opisów drzew języka podstawowego dla rozszerzeń językowych.

Zobacz też

Linki zewnętrzne