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ż
- ANTLR - generator parserów oferujący inne podejście do przetwarzania drzew: gramatyki drzew.
- SableCC - generator parsera, który generuje abstrakcyjne drzewa składni o ściśle określonym typie .
Linki zewnętrzne
- Dom TreeDL w Wayback Machine (archiwum 2016-10-03)
- stary dom TreeDL
- treecc w Wayback Machine (archiwum 3 lipca 2007)