Analizador sintáctico 

22.11.2024

El analizador sintactico también conocido como parser es la segunda fase de un compilador la cual es convierte el texto en otras estructuras comúnmente arboles, que son mas útiles para el posterior análisis, y captura la jerarquía implícita de la entrada. En este los que son procesados son los tokens para construir la estructura de datos por ejemplo un árbol sintactico. ya que esta fase nos ayuda a validar su el codigo fuente cumple con las reglas gramaticales planteadas, Sabemos que al generar un programa suelen contener errores de muy diverso tipo. Por ejemplo, los errores pueden ser: Léxicos, como escribir mal un identificador, palabra clave u operador, sintácticos, como una expresión aritmética con paréntesis no equilibrados, semánticos. En la imagen 3.1 nos va un ejemplo del proceso de la fase lexica y como influye los arboles sintacticos.

fuente: Qué es un Analizador Sintáctico?, Escrito en el 2021 - Ryte Marketing Wiki. (s. f.). https://es.ryte.com/wiki/Analizador_Sint%C3%A1ctico

Arboles sintáctico 

Para el compilador se tiene que generar una gramatica para poder validar los tokens generados el analizador sintáctico obtiene una cadena de tokens del analizador léxico, se verifica que la cadena de nombres de los tokens pueda generarse mediante la gramática para el lenguaje fuente. En la imagen 3.2 se muestra la gramatica que se realizo mediante al compilador que clasifica imagenes, al generar la dramatica se crea el arbol sintactico, Esperamos que el analizador sintáctico reporte cualquier error sintáctico en forma inteligible y que se recupere de los errores que ocurren con frecuencia para seguir procesando el resto del programa. 

Una breve explicacion del arbol sintactico generado:

  • Raíz (programa): Representa el conjunto de instrucciones válidas.
  • Nodos  (instrucción): Cada instrucción es una rama directa del programa.
    • La primera instrucción es LOAD_MODEL.
    • La segunda instrucción es CLASSIFY_IMAGE example.jpg, que a su vez tiene un nodo hijo (archivo).
    • La última instrucción es END.
  • Nodo (archivo): Descompone el nombre del archivo en un IDENTIFICADOR (example) y su EXTENSION (.jpg).
  • El arbol se fue crenado mediante los tokens generados al codigo del compilador que se clasifica imagenes de igual manera se genero la dramatica para poder expresar el arbol sintactico en la cual los tokens utilizados son:

    • Palabras reservadas:

      • LOAD_MODEL
      • CLASSIFY_IMAGE
      • END
    • Identificadores:

      • Cadenas alfanuméricas que representan nombres de archivos o variables (e.g., example).
    • Extensiones:

      • .jpg, .png, .jpeg, etc.

    ¿Como funciona el analizador sintáctico?

    1. Entrada: Recibe una secuencia de tokens generada por el analizador léxico.
    2. Verificación: Usa una gramática formal (como una gramática libre de contexto) para comprobar que los tokens tienen una estructura válida.
    3. Salida:
      • Si la entrada es válida, genera una representación estructurada como un árbol sintáctico (o árbol de derivación) que refleja la jerarquía de la sintaxis.
      • Si la entrada no es válida, genera un error sintáctico, indicando dónde se encuentra el problema.

    Nos ayuda a entender mas afondo sobre cada una de las fase del compilador ya que esta fase va de la mano, ya que la fase sintactica valora los tokens generados por la fase lexica y se va generando el arbol para verificar que la dramatica  valore el programa fuente. Una herramienta que nos ayudará a generar un analizador sintactico seris Bison que va de la mano con flex ya verifica mediante reglas gramaticales el codigo fuente para validarlo.


    Herramienta para realizar un analizador sintáctico 

    Al crear un analizador sintáctico para un compilador que clasifique imágenes el  analizador se encargaría de verificar que las secuencias de comandos o instrucciones para clasificar imágenes sigan las reglas de sintaxis definidas para ese lenguaje específico. En este caso, el lenguaje puede estar diseñado para interactuar con un modelo de clasificación de imágenes de los formatos antes establecidos, al tener la establecido la dramatica  que dictan cómo se deben estructurar las instrucciones en el lenguaje de programación  para interactuar con el modelo de clasificación de imágenes. al tener la dramatica se facilita la generacion del codigo en la herramienta Bison, para saber como se instala la herramienta visita este video: 

    Fantasma del teclado. (2024, 19 marzo). Cómo instalar Flex y Bison en Windows || How to install Flex and Bison [Vídeo]. YouTube. https://www.youtube.com/watch?v=nO4SIa3pe0I

    Al generar un analizador sintáctico para un compilador que clasifique imágenes es posible y puede implementarse de manera sencilla. Este tipo de analizador verifica que el código esté estructurado correctamente según las reglas de un lenguaje predefinido, lo que ayuda a garantizar que las instrucciones para cargar y clasificar imágenes sean válidas y puedan ejecutarse correctamente en el modelo. En la imagen 3.3 vemos el codigo generado en Bison ya que se genero la dramatica con su respectivo arbol sintactico se valora en el codigo fuente, todos los codigos generados utilizan el lenguaje C, noa ayuda entender mejor la logica de cada codigo fuente.

    © 2024 Todo sobre compiladores. Todos los derechos reservados.
    Creado con Webnode Cookies
    ¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar