1 / 16

Lenguajes de Programación

Lenguajes de Programación. 1.3 Compiladores e Intérpretes. Berenice de los Ángeles Fernández Abarca Marzo 2005. Análisis Léxico, Sintáctico y Semántico.

asasia
Download Presentation

Lenguajes de Programación

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lenguajes de Programación 1.3 Compiladores e Intérpretes Berenice de los Ángeles Fernández Abarca Marzo 2005

  2. Análisis Léxico, Sintáctico y Semántico • Análisis Léxico (lineal o exploración). Consiste en descomponer el programa fuente en secuencias de caracteres con significado especial (componentes léxicos). Aísla los símbolos, identifica su tipo, y guarda su información en una tabla de símbolos.

  3. Análisis Léxico, Sintáctico y Semántico • Componentes Léxicos en un lenguaje de programación: palabras clave, operadores, identificadores, constantes, cadenas literales y signos de puntuación.

  4. Análisis Léxico, Sintáctico y Semántico = < Inicio 0 0 0 0 1 2 • Diagrama de transiciones. > 0 3 = 0 5 > 0 0 7 6 =

  5. Análisis Léxico, Sintáctico y Semántico • Análisis Sintáctico (Jerárquico). Agrupa los componentes léxicos en frases gramaticales. • El analizador sintáctico comprueba si una cadena dada en el programa fuente, puede o no ser generada por la gramática del lenguaje fuente.

  6. Análisis Léxico, Sintáctico y Semántico • Análisis descendente. Construye el árbol sintáctico de la raíz a las hojas. • Por descenso recursivo. Se busca una derivación por la izquierda para una cadena de entrada. • Predictivo. Dado el símbolo actual de entrada y el no terminal a expandir, se analiza cual de las reglas de producción tiene una cadena que comience con el símbolo. • Predictivo no recursivo. Mantiene la pila explícitamente, en lugar de hacer llamadas recursivas.

  7. Análisis Léxico, Sintáctico y Semántico • Análisis Sintáctico ascendente. Se construye el árbol sintáctico de las hojas hacia la raíz. • Análisis por reducción y desplazamiento. Se reduce la cadena de entrada cambiando le lado derecho de una regla de producción por el lado izquierdo, hasta llegar al símbolo de inicio de la gramática. • Análisis por precedencia de operadores. • LR.

  8. Análisis Léxico, Sintáctico y Semántico • Análisis Semántico. Se analiza que el programa fuente tenga un significado. Dicho significado se obtiene de las estructuras sintácticas encontradas, y los símbolos definidos en la tabla de símbolos

  9. Generación de código, ejecución e interpretación • Si el programa fuente no presenta errores en el análisis sintáctico, y semántico, se genera un código intermedio. • Si el programa hace referencia a módulos o rutinas fuera del programa fuente, se hace el enlace con estos componentes, generando el código objeto.

  10. Implementación: compilación, interpretación e implementación híbrida Las formas de implementar un lenguaje de alto nivel son: • Compilador • Intérprete • Implementación Híbrida

  11. Implementación: compilación, interpretación e implementación híbrida El compilador es un programa que lee un código fuente, escrito en un lenguaje, llamado lenguaje fuente, y lo traduce en un programa equivalente en otro lenguaje, llamado lenguaje objeto. Programa Fuente Programa Objeto Compilador Mensajes de Error

  12. Implementación: compilación, interpretación e implementación híbrida El compilador realiza la traducción de un programa fuente en un programa objeto en 2 fases: • Análisis. Divide el programa fuente en sus elementos componentes y crea una representación intermedia. • Síntesis. Construye el programa objeto a partir de la representación intermedia.

  13. Implementación: compilación, interpretación e implementación híbrida Programa Fuente Analizador Léxico Cadena de C. Léxicos Analizador Sintáctico Árbol Sintáctico Analizador Semántico Administrador de la tabla de símbolos Árbol Sintáctico Abstracto Manejador de Errores Generador de Código Intermedio Código Intermedio Optimizador de Código Código Modificado Generador de Código Programa Objeto

  14. Implementación: compilación, interpretación e implementación híbrida El intérprete es un programa que simula una máquina que entiende el lenguaje de alto nivel. Dicho intérprete, simula el programa que está siendo interpretado. Programa Fuente Salida Intérprete Mensajes de Error

  15. Implementación: compilación, interpretación e implementación híbrida La implementación híbrida, traduce un programa fuente en un programa objeto, que sirve como entrada a un intérprete. Programa Objeto Programa Fuente Salida Compilador Intérprete Mensajes de Error Mensajes de Error

  16. Implementación: compilación, interpretación e implementación híbrida

More Related