sintaxis abstracta


En informática , la sintaxis abstracta de 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 utiliza particularmente en la representación de texto en lenguajes informáticos , que generalmente se almacenan en una estructura de árbol como un árbol de sintaxis abstracta . La sintaxis abstracta, que sólo 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) siguen siendo concretos (y, por lo tanto, requieren resolución de nombres ) y sintaxis abstracta de orden superior , si los nombres mismos son abstractos.

Para ser implementado 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 llamarse la " sintaxis concreta " (en la implementación del lenguaje) o la "sintaxis de transferencia" (en las comunicaciones).

La representación interna de un compilador de un programa normalmente se especificará mediante una sintaxis abstracta en términos de categorías 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 contendrá características como paréntesis que son sintácticamente significativos pero que están implícitos en la estructura del árbol de sintaxis abstracta.