Teoría de Autómatas y    Compiladores      Germania Rodríguez     grrodriguez@utpl.edu.ec
Compiladores•  Son programas de computador (de 10 000   a 1 000 000 de líneas de código) que   traducen un lenguaje fuente...
Compiladores - Reseña•  Computador VonNeumann 1940•  Lenguaje máquina•  Lenguaje ensamblador (códigos a código   máquina)•...
Compiladores - Reseña•  Autómatas finitos y expresiones regulares   corresponden a gramáticas tipo 3.•  Métodos para gener...
Compiladores – Programas Relacionados•  Intérpretes: Traduce un Lenguaje a otro•  Ensambladores: Traductor para el Lenguaj...
Compiladores – Programas Relacionados•  Preprocesadores: Trata el Lenguaje fuente   eliminando aspectos no relevantes para...
Compiladores – Programas Relacionados •  Perfiladores: Recolecta estadísticas de    comportamiento del programa objeto en ...
Compiladores – Proceso de Traducción                 Código fuente         Analizador léxico o rasterador                 ...
Estructuras de datos•  Tokens: Secuencia de caracteres aceptada dentro   de un Lenguaje.•  Árbol sintáctico: Estructura de...
Estructura de un compiladores•  Análisis y síntesis: propiedades de programa   fuente Análisis y Síntesis producción de có...
Ejercicios•  Pág. 27-29•  Dibujar el árbol de análisis gramátical                 a[i+1] = a[i] + 2
Análisis Léxico
Alfabetos•  Conjunto finito no vacío de símbolos sobre   el que se puede generar cadenas y   posteriormente Lenguajes  Lat...
CadenasCombinación, secuencia, concatenación de símbolos basados de un alfabeto; cadena nula, prefijos, sufijos.EJM: casa,...
Lenguaje•  Conjunto de palabras formadas sobre un   alfabeto  – Castellano•  Restricciones: palabras que no forman   parte...
Operaciones Lenguaje•  Dado que un Lenguaje es un conjunto, es   aplicable todas las operaciones entre   conjuntos  – Unió...
Operaciones Lenguaje•  Y algunas propias  – Concatenación  – Estrella Kleene *  –  Cierre transitivo +Técnicas de Demostra...
Gramáticas•  Mecanismo para generar las cadenas que   pertenecen a un lenguaje, a la vez define   un conjunto finito de re...
Bibliografía•  Kenneth C. Louden, Construccion de Compiladores   Principios Y Práctica•  Universidad Jaume, Open Course Wa...
Upcoming SlideShare
Loading in...5
×

Automatas y compiladores clase1

3,482

Published on

1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
3,482
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
73
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

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
  1. ¿Le ha llamado la atención una diapositiva en particular?

    Recortar diapositivas es una manera útil de recopilar información importante para consultarla más tarde.

×