Analizador Sintáctico
Todo lenguaje de programación tiene reglas que describen la estructura sintáctica de programas bien formados. Analizador Sintáctico es la fase del analizador que se encarga de chequear el texto de entrada en base a una gramática dada. Y en caso de que el programa de entrada sea válido, suministra el árbol sintáctico que lo reconoce.
El compilador se asegura de que el código se traduce correctamente a un lenguaje ejecutable. En teoría, se supone que la salida del analizador sintáctico es alguna representación del árbol sintáctico que reconoce la secuencia de tokens suministrada por el analizador léxico.
Cómo funciona
Los analizadores suelen utilizar un analizador léxico separado (llamado lexer), que descompone los datos de entrada en fichas (símbolos de entrada como palabras).
Los Lexers son por lo general máquinas de finitas, que siguen la gramática regular y por lo tanto aseguran un desglose adecuado. Los tokens obtenidos de sta manra sirven como caracteres de entrada para el analizador sintáctico.
El analizador actual maneja la gramática de los datos de entrada, realiza un análisis sintáctico de éstos y como regla general crea un árbol de sintaxis (árbol de análisis).
Esto se puede utilizar para el procesamiento posterior de los datos, por ejemplo, la generación de código por un compilador o ejecutado por un intérprete (traductor).
Por lo tanto, el analizador es el software que comprueba, procesa y reenvía las instrucciones del código fuente.
Tipos de analizadores
Hay dos métodos de análisis diferentes, análisis de arriba hacia abajo (top-down) y análisis de abajo hacia arriba (bottom-up).
De arriba a abajo
En el método top-down, el analizador trabaja en un método orientado a objetivos, lo que significa que busca a partir del símbolo de inicio de la sintaxis y busca una derivación sintáctica adecuada. Por lo tanto, el árbol de análisis se desarrolla de arriba hacia abajo en la dirección de un desglose cada vez más detallado.
De abajo hacia arriba
El analizador ascendente comienza con el símbolo de la cadena de entrada e intenta establecer relaciones sintácticas cada vez mayores. Esto se hace hasta que el símbolo de inicio de la gramática se ha alcanzado.
Tipo de gramática que acepta un analizador sintáctico
La gramática que acepta el analizador sintáctico es una gramática de contexto libre:
Gramática libre de contexto
Una gramática libre de contexto o contexto libre es aquella que se pueden describir la mayoría de los lenguajes de programación, en la gran mayoría de la sintaxis de los lenguajes de programación se define mediante gramáticas libres de contexto, a nivel informático contamos con la forma v – w.
La simbología o GIC en la que se identifican los diferentes tipos de caracteres que se encuentran en esta gramática son las siguientes:
En la gramática libre de contexto es necesario establecer reglas para poder identificar todas posibles variable se puedan presentar dentro del lenguajes, en la siguiente gráfica podemos ver cada una de las reglas:
Existen dos formas en las que se pueden interpretar la gramática libre de contexto:
- Inferencia recursiva: que va del cuerpo a la cabeza.
- Derivación: de la cabeza al cuerpo.
- Derivación a la derecha
- Derivación a la izquierda
Por ultimo existen diferentes formas en las que se nos pueden presentar la gramática libre de contexto, a través de un árbol o de una cadena de caracteres que se pueden ir descifrando a través de los métodos que anteriormente mencionamos.
La gramática que acepta el analizador sintáctico es una gramática de contexto libre:
Gramática : G (N, T, P, S)
- N = No terminales.
- T = Terminales.
- P = Reglas de Producción.
- S = Axioma Inicial.
Aplicaciones
Un analizador sintáctico se utiliza a menudo para convertir texto en una nueva estructura, por ejemplo, un árbol sintáctico, que expresa la disposición jerárquica de los elementos. En las siguientes aplicaciones el uso de un analizador es usualmente esencial:
- La lectura de un lenguaje de programación es realizada por un analizador. Proporciona una estructura de datos al compilador, con la que se puede generar el código máquina o bytecode.
- El código HTML es al principio sólo una cadena de caracteres para un ordenador que debe ser analizada por el analizador contenido en el navegador web. Proporciona una descripción de la página web como una estructura de datos que puede ser proyectada por un motor de diseño en la pantalla.
- Los analizadores especiales de XML son responsables del análisis de los documentos XML y preparan la información contenida en ellos para su uso posterior.
- Los analizadores de URI descomponen esquemas complejos tales como URLs en su estructura jerárquica.
- Los motores de búsqueda como Google extraen (analizan) texto relevante para ellos de las páginas web descargadas con rastreadores. Se procesan y los datos analizados se pueden utilizar para la navegación.






No hay comentarios.: