Successfully reported this slideshow.

Automatas y compiladores clase1

4,937 views

Published on

Automatas y compiladores clase1

  1. 1. Teoría de Autómatas y Compiladores Germania Rodríguez grrodriguez@utpl.edu.ec
  2. 2. Compiladores•  Son programas de computador (de 10 000 a 1 000 000 de líneas de código) que traducen un lenguaje fuente a un lenguaje objeto. Ejm: C++ a código máquina
  3. 3. Compiladores - Reseña•  Computador VonNeumann 1940•  Lenguaje máquina•  Lenguaje ensamblador (códigos a código máquina)•  FORTRAN 1954-1957 IBM Backus•  Chomsky clasificación de Lenguajes por Gramáticas tipo 0, 1, 2, 3 Tipo 2 . Libres de contexto•  Problema de Análisis sintáctico resuelto en la década 60 a 70 solución base para la teoría de compiladores.
  4. 4. Compiladores - Reseña•  Autómatas finitos y expresiones regulares corresponden a gramáticas tipo 3.•  Métodos para generación de código objeto eficaz técnicas de optimización y mejoramiento de código.•  1975 generador de rastreadores o generador de analizadores léxicos.•  1970 y principios de los 80 se enfocaron a automatizar la generación de otras partes de un compilador.•  Avances, primero: algoritmos más sofisticados, segundo: ambiente de desarrollo interactivo IDE
  5. 5. Compiladores – Programas Relacionados•  Intérpretes: Traduce un Lenguaje a otro•  Ensambladores: Traductor para el Lenguaje ensamblador•  Ligadores: – Recopila el código compilado a un archivo ejecutable. – Conecta el programa objeto con las funciones del SO•  Cargadores: Hacen más flexible y organizado el código ejecutable
  6. 6. Compiladores – Programas Relacionados•  Preprocesadores: Trata el Lenguaje fuente eliminando aspectos no relevantes para su ejecución como comentarios.•  Editores: SW orientado al formato o a la estructura del Lenguaje.•  Depuradores: – SW orientado a determinar errores de ejecución en un programa compilado. – Puede detener la ejecución en ubicaciones establecidas.
  7. 7. Compiladores – Programas Relacionados •  Perfiladores: Recolecta estadísticas de comportamiento del programa objeto en tiempo de ejecución. •  Administradores del Proyecto: Coordina archivos o actividades del Proyecto.
  8. 8. Compiladores – Proceso de Traducción Código fuente Analizador léxico o rasterador Tokens Analizador Sintáctico Árbol sintáctico Analizador Semántico Árbol con anotaciones Optimizador de código fuente Código intermedio Generador de código Código objetivo Optimizador de código objetivo Código Objetivo
  9. 9. Estructuras de datos•  Tokens: Secuencia de caracteres aceptada dentro de un Lenguaje.•  Árbol sintáctico: Estructura de carga dinámica con un apuntador al efectuar análisis sintáctico.•  Tabla de símbolos: Mantiene información con id, funciones, variables, constantes y tipos de datos.•  Tabla de literales: Almacena constantes y cadenas utilizadas por el programa•  Código intermedio: Arreglo de cadenas de texto temporal con estructuras ligadas.•  Archivos temporales: Información para proceder a la traducción.
  10. 10. Estructura de un compiladores•  Análisis y síntesis: propiedades de programa fuente Análisis y Síntesis producción de código objetivo•  Etapa inicial y etapa final: Inicial que dependen del código fuente y final que dependen del código objetivo•  Pasadas: Veces que se procesa el código fuente.•  Lenguaje: fuente y objetivo•  Interfaces•  Manejo de Errores
  11. 11. Ejercicios•  Pág. 27-29•  Dibujar el árbol de análisis gramátical a[i+1] = a[i] + 2
  12. 12. Análisis Léxico
  13. 13. Alfabetos•  Conjunto finito no vacío de símbolos sobre el que se puede generar cadenas y posteriormente Lenguajes Latino = {a, b, c, d, e, f, …….z} Binario = {0,1}
  14. 14. CadenasCombinación, secuencia, concatenación de símbolos basados de un alfabeto; cadena nula, prefijos, sufijos.EJM: casa, 01001Operaciones: – Longitud – Concatenación
  15. 15. Lenguaje•  Conjunto de palabras formadas sobre un alfabeto – Castellano•  Restricciones: palabras que no forman parte del Lenguaje, que no están conceptualizadas. – Ejm: abcam
  16. 16. Operaciones Lenguaje•  Dado que un Lenguaje es un conjunto, es aplicable todas las operaciones entre conjuntos – Unión – Intersección – Diferencia – Complemento – Potencia o partesCada una con sus propiedades de las operaciones
  17. 17. Operaciones Lenguaje•  Y algunas propias – Concatenación – Estrella Kleene * –  Cierre transitivo +Técnicas de Demostración – Demostración por inducción
  18. 18. Gramáticas•  Mecanismo para generar las cadenas que pertenecen a un lenguaje, a la vez define un conjunto finito de reglas que aplicadas a un estado inicial, son capaces de generar todas sus cadenas. G={ A, T, P, S} A = símbolos auxiliares T= símbolos terminales P= producciones - pares (antecedente, consecuente) S= símbolo inicial de la gramática
  19. 19. Bibliografía•  Kenneth C. Louden, Construccion de Compiladores Principios Y Práctica•  Universidad Jaume, Open Course Ware –II20 Teoría de autómatas y lenguajes formales en: http://e-ujier.uji.es/pls/ w w w / ! g r i _ w w w . e u j i 2 2 1 0 1 ? p_id=7&p_tipo=A&p_curso=II20&p_idioma=ES

×