Código fuente de analizador léxico y sintáctico en C

Enviado por fernando y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,42 KB

Patrón


: Es una regla que genera la secuencia de caracteres que puede representar a un determinado componente léxico (una expresión regular).

Lexema:


Cadena de caracteres que concuerda con un patrón que describe un componente léxico, ejemplo. Los números y los identificadores que tienen infinitos lexemas

Relación entre componente léxico, lexema y patrón


.
Un patrón puede llegar a representar un componente léxico y un componente léxico está compuesto de diversos lexemas y los componentes léxicos trabajando con los patrones.

Tres ejemplos de Software de Sistema y Software de Aplicación


Software de Sistema: Sistemas operativos, Controladores de dispositivos, Servidores.
Software de Aplicación: Procesadores de texto, hojas de cálculo, administración de base de datos.

Describe el proceso de compilación general con todas sus faces ó etapas, tomando en cuenta las salidas y entradas de cada etapa así como su estructura de datos.

El proceso de compilación es el proceso por el cual se traducen las instrucciones escritas en un determinado lenguaje de programación a un lenguaje máquina.

  • Analizador léxico


    E/S:


    recibe como entrada el código fuente de otro programa y produce una salida compuesta de tokens o símbolos.

  • Analizador semántico

    E/S:


    recibe como entrada la información de un árbol sintáctico y produce como salida un árbol semántico que le proporciono el significado a cada una de las ramas del árbol sintáctico
  • Analizador sintáctico.

    E/S:


    convierte el texto de entradas en otras estructuras (comúnmente arboles) que son mas útiles para el posterior análisis y capturan la jerarquía implícita de la entrada
  • Generador de código intermedio
    . Representación explicita del programa fuente que surge después del análisis sintáctico y semántico
  • Optimizador de código
    . Trata de mejorar el código intermedio de modo que resulte un código maquina más rápido de ejecutar.

  • Generador de código

    Es la fase final que genera el código objeto.

ESTRUTURA DE DATOS.

  • Componentes léxicos o tokens.
  • Árbol sintáctico.
  • Tabla de símbolos.
  • Tabla de literales.
  • Código intermedio.
  • Archivos temporales.

 Etapas del proceso de compilación (2ª opción)

  • Edición
  • Compilación
  • Linkado
  • Ejecución

Describe correcta y brevemente las etapas del proceso anterior.

  • Analizador léxico:


    Es la primera fase de un compilador lee la secuencia de caracteres del programa fuente, carácter a carácter y los agrupa para formar unidades con significado propio.

  • Analizador semántico:

    trata de determinar el tipo de los resultados intermedios, comprobar que los argumentos que tiene un operador pertenecen al conjunto de los operadores posibles y si son compatibles entre si.

  • Analizador sintáctico:

    convierte el texto d entrada en otras estructuras comúnmente arboles que son más útiles para el posterior análisis y capturan la jerarquía implícita de la entrada.

  • Generador de código intermedio:

    Representación explicita del programa fuente que surge después del análisis sintáctico y semántico
  • Optimización de código:
    Trata de mejorar el código intermedio de modo que resulte un código maquina más rápido de ejecutar.

  • Generador de código:

    Es la fase final que genera el código objeto.

Funciones del Análisis léxico


  • Leer los caracteres de la entrada
  • Generar una secuencia d componentes léxicos (tokens)
  • Eliminar comentarios, delimitadores (espacios, símbolos de puntuación, tabuladores.
  • Relacionar los mensajes d error con las líneas del programa fuente.
  • Introducir los identificadores en la tabla de símbolos.

Expresión regular que describa al conjunto de cadenas cuyos elementos sean solo ceros o solamente unos


W = {0,1}

Define tabla de símbolos


Es una estructura de datos que contiene un registro por cada identificador, con los campos para los atributos del identificador.

Operaciones básicas de la tabla de símbolos


Crear, Insertar, Buscar, Imprimir.

Funciones del análisis sintáctico


  • Lee componentes léxicos (tokens)
  • Comprueba que el orden de estos corresponde a la sintaxis predeterminada.
  • Determina si un programa es correcto sintácticamente mediante la construcción de arboles sintácticos
  • Genera errores en caso de que el flujo de tokens no responda a la sintaxis.
  • Desarrolla el esqueleto de toda la fase de análisis.
  • Integra el análisis semántico como un conjunto de rutinas a ejecutar durante la comprobación de la sintaxis.

Entradas relacionadas: