¿Qué significa analizador sintáctico?
Un analizador sintáctico es la parte de un compilador que divide el código fuente en pequeñas secciones de cadenas de caracteres llamadas tokens.
El término tiene sus raíces en la lingüística. En lingüística, el análisis sintáctico consiste en diagramar físicamente la estructura subyacente de una frase. El objetivo es ayudar al alumno a comprender el contexto de cada elemento de la frase y su relación con el significado de la misma.
En informática, los analizadores sintácticos crean diagramas lógicos llamados árboles. El propósito es ayudar al compilador a comprender el contexto de cada token y su relación con la estructura subyacente del código fuente.
Los analizadores sintácticos se utilizan ampliamente en las siguientes tecnologías:
- Java y otros lenguajes de programación.
- HTML y XML.
- Lenguajes de bases de datos, como SQL.
- Lenguajes de modelado, como el lenguaje de modelado de realidad virtual (VRML).
- Lenguajes de scripting, como Javascript.
- Protocolos, como HTTP.
Definición de analizador sintáctico
El proceso técnico de análisis sintáctico consta de tres etapas:
- Análisis léxico: produce tokens a partir de un flujo de caracteres de entrada. Un token es la unidad más pequeña de un lenguaje de programación que posee algún significado (como +, -, *, «función» o «nuevo» en JavaScript).
- Análisis sintáctico: comprueba si los tokens generados forman una expresión con sentido.
- Análisis semántico: utiliza árboles sintácticos y tablas de búsqueda de símbolos para determinar si los tokens generados son semánticamente coherentes con un lenguaje de programación concreto.
El análisis sintáctico puede realizarse de forma descendente o ascendente.
- Análisis sintáctico descendente: El análisis sintáctico comienza con el símbolo de inicio y los árboles se construyen desde la raíz hasta las hojas. El análisis sintáctico descendente también se denomina análisis sintáctico predictivo o recursivo.
- Análisis sintáctico ascendente: Los árboles se construyen de las hojas a la raíz y terminan con el símbolo de inicio. Este tipo de análisis sintáctico también se conoce como análisis shift-reduce.