El lenguaje de descripción de árboles (TreeDL) es un lenguaje informático para la descripción de estructuras de datos de árboles estrictamente tipados y operaciones sobre ellos. El uso principal de TreeDL radica en el desarrollo de herramientas orientadas al lenguaje ( compiladores , traductores, etc.) para la descripción de la estructura de árboles de sintaxis abstracta . [ 1 ]
La descripción del árbol se puede utilizar como
- una documentación de la interfaz entre el analizador sintáctico y otros subsistemas;
- una fuente para la generación de tipos de datos que representan un árbol en lenguajes de programación de destino;
- una fuente para la generación de diversos códigos de soporte: visitantes , caminantes, fábricas , etc.
TreeDL se puede utilizar con cualquier generador de analizadores que permita acciones personalizadas durante el análisis (por ejemplo, ANTLR , JavaCC ). [ 2 ]
Descripción general del idioma
La descripción del árbol enumera los tipos de nodos permitidos en un árbol. Los tipos de nodos admiten herencia simple . Los tipos de nodos tienen hijos y atributos. Los hijos deben ser del tipo de nodo definido. Los atributos pueden ser de tipo primitivo (numérico, cadena, booleano), tipo enumerado o tipo de nodo. Los atributos se utilizan para almacenar literales durante la construcción del árbol e información adicional recopilada durante el análisis del árbol (por ejemplo, enlaces entre referencia y definición, para representar sintaxis abstracta de orden superior ). [ 3 ]
Las operaciones sobre un árbol se definen como multimétodos . [ 4 ]
Las descripciones de árboles admiten la herencia para permitir la modularidad y la reutilización de las descripciones de árboles del lenguaje base para extensiones de lenguaje. [ 5 ]
Véase también
- ANTLR : generador de analizadores sintácticos que ofrece un enfoque diferente para el procesamiento de árboles: gramáticas de árboles.
- SableCC : generador de analizadores sintácticos que genera árboles de sintaxis abstracta con tipado estricto .
Referencias
- ↑ "Treecc: Un enfoque orientado a aspectos para escribir compiladores" .
- ↑ "Treecc: Un enfoque orientado a aspectos para escribir compiladores" .
- ↑ "Treecc: Un enfoque orientado a aspectos para escribir compiladores" .
- ↑ "Treecc: Un enfoque orientado a aspectos para escribir compiladores" .
- ↑ "Treecc: Un enfoque orientado a aspectos para escribir compiladores" .
Enlaces externos
- Página principal de TreeDL en Wayback Machine (archivado el 3 de octubre de 2016)
- Antigua casa de TreeDL
- treecc en Wayback Machine (archivado el 3 de julio de 2007)
- Lenguajes de programación
- Lenguajes de representación del conocimiento específicos de un dominio