En informática , la sintaxis abstracta de los datos es su estructura descrita como un tipo de datos (posiblemente, pero no necesariamente, un tipo de datos abstracto ), independiente de cualquier representación o codificación particular. Esto se usa particularmente en la representación de texto en lenguajes de computadora , que generalmente se almacenan en una estructura de árbol como un árbol de sintaxis abstracta . La sintaxis abstracta, que solo consiste en la estructura de los datos, se contrasta con la sintaxis concreta, que también incluye información sobre la representación. Por ejemplo, la sintaxis concreta incluye características como paréntesis (para agrupar) o comas (para listas) que no están incluidas en la sintaxis abstracta, ya que están implícitas en la estructura.
Las sintaxis abstractas se clasifican como sintaxis abstracta de primer orden (FOAS), si la estructura es abstracta pero los nombres (identificadores) aún son concretos (y por lo tanto requieren resolución de nombres ), y sintaxis abstracta de orden superior , si los nombres mismos son abstractos.
Usos
Para ser implementado ya sea para computación o comunicaciones, se debe definir un mapeo de la sintaxis abstracta a representaciones y codificaciones específicas de la máquina; estos pueden denominarse " sintaxis concreta " (en la implementación del lenguaje) o "sintaxis de transferencia" (en las comunicaciones).
La representación interna de un compilador de un programa se especificará típicamente mediante una sintaxis abstracta en términos de categorías tales como "declaración", "expresión" e "identificador". Esto es independiente de la sintaxis de origen (sintaxis concreta ) del lenguaje que se está compilando (aunque a menudo será muy similar). Un árbol de análisis es similar a un árbol de sintaxis abstracta, pero normalmente también contiene características como paréntesis que son sintácticamente significativas pero que están implícitas en la estructura del árbol de sintaxis abstracta.
Los tipos de datos algebraicos son particularmente adecuados para la implementación de la sintaxis abstracta.
Ver también
Referencias
- Este artículo se basa en material extraído del Diccionario gratuito de informática en línea antes del 1 de noviembre de 2008 e incorporado bajo los términos de "renovación de licencias" de la GFDL , versión 1.3 o posterior.