SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
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 a un lenguaje
   objeto.
  Ejm: C++ a código máquina
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.
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
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
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.
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.
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
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.
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
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
  Latino = {a, b, c, d, e, f, …….z}
  Binario = {0,1}
Cadenas
Combinación, secuencia, concatenación de
 símbolos basados de un alfabeto; cadena
 nula, prefijos, sufijos.
EJM: casa, 01001
Operaciones:
  – Longitud
  – Concatenación
Lenguaje
•  Conjunto de palabras formadas sobre un
   alfabeto
  – Castellano
•  Restricciones: palabras que no forman
   parte del Lenguaje, que no están
   conceptualizadas.
  – Ejm: abcam
Operaciones Lenguaje
•  Dado que un Lenguaje es un conjunto, es
   aplicable todas las operaciones entre
   conjuntos
  – Unión
  – Intersección
  – Diferencia
  – Complemento
  – Potencia o partes
Cada una con sus propiedades de las
 operaciones
Operaciones Lenguaje
•  Y algunas propias
  – Concatenación
  – Estrella Kleene *
  –  Cierre transitivo +


Técnicas de Demostración
  – Demostración por inducción
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
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

Más contenido relacionado

La actualidad más candente

Arboles de derivacion
Arboles de derivacionArboles de derivacion
Arboles de derivacionLuis Couoh
 
Esquema comparativo de los tipos de modelos y metodologías
Esquema comparativo de los tipos de modelos y metodologíasEsquema comparativo de los tipos de modelos y metodologías
Esquema comparativo de los tipos de modelos y metodologíasLeo Jm
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareT.I.C
 
Autómatas finitos no deterministas
Autómatas finitos no deterministasAutómatas finitos no deterministas
Autómatas finitos no deterministasOmega Tech
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfijaOmarzingm
 
Tm03 modelo de casos de uso
Tm03 modelo de casos de usoTm03 modelo de casos de uso
Tm03 modelo de casos de usoJulio Pari
 
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)Videoconferencias UTPL
 
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSINTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSitsl
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasJ M
 
Estilos de programación y sus lenguajes
Estilos de programación y sus lenguajesEstilos de programación y sus lenguajes
Estilos de programación y sus lenguajesPedro Contreras Flores
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turingAnel Sosa
 
Casos de estudio de cpu reales
Casos de estudio de cpu realesCasos de estudio de cpu reales
Casos de estudio de cpu realesKikivan Cortez
 

La actualidad más candente (20)

Hilos con Posix
Hilos con PosixHilos con Posix
Hilos con Posix
 
Automatas y gramaticas
Automatas y gramaticasAutomatas y gramaticas
Automatas y gramaticas
 
Arboles de derivacion
Arboles de derivacionArboles de derivacion
Arboles de derivacion
 
UNIDAD 3 MODULARIZACIÓN
UNIDAD 3 MODULARIZACIÓNUNIDAD 3 MODULARIZACIÓN
UNIDAD 3 MODULARIZACIÓN
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
 
Esquema comparativo de los tipos de modelos y metodologías
Esquema comparativo de los tipos de modelos y metodologíasEsquema comparativo de los tipos de modelos y metodologías
Esquema comparativo de los tipos de modelos y metodologías
 
Tópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUITópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUI
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del Software
 
Autómatas finitos no deterministas
Autómatas finitos no deterministasAutómatas finitos no deterministas
Autómatas finitos no deterministas
 
Topicos avanzados de programacion
Topicos avanzados de programacionTopicos avanzados de programacion
Topicos avanzados de programacion
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Tm03 modelo de casos de uso
Tm03 modelo de casos de usoTm03 modelo de casos de uso
Tm03 modelo de casos de uso
 
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
 
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSINTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o Hebras
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
Estilos de programación y sus lenguajes
Estilos de programación y sus lenguajesEstilos de programación y sus lenguajes
Estilos de programación y sus lenguajes
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
 
Casos de estudio de cpu reales
Casos de estudio de cpu realesCasos de estudio de cpu reales
Casos de estudio de cpu reales
 

Destacado

Automatas y compiladores clase4
Automatas y compiladores clase4Automatas y compiladores clase4
Automatas y compiladores clase4Germania Rodriguez
 
Automatas y compiladores clase2
Automatas y compiladores clase2Automatas y compiladores clase2
Automatas y compiladores clase2Germania Rodriguez
 
Automatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxicoAutomatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxicoGermania Rodriguez
 
Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...
Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...
Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...Germania Rodriguez
 
Alfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y ProblemasAlfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y ProblemasRaul
 
Operaciones entre lenguajes
Operaciones entre lenguajesOperaciones entre lenguajes
Operaciones entre lenguajesJean Bernard
 
Analisis lexico 2
Analisis lexico 2Analisis lexico 2
Analisis lexico 2perlallamas
 
Automatas de pila_no_det
Automatas de pila_no_detAutomatas de pila_no_det
Automatas de pila_no_detOscar Eduardo
 
Simulación de un autómata de estado finito en Jflap
Simulación de un autómata de estado finito en JflapSimulación de un autómata de estado finito en Jflap
Simulación de un autómata de estado finito en JflapEduardo Chavez Vasquez
 
Lenguajes Regulares y Autómatas Finitos - Clase 7
Lenguajes Regulares y Autómatas Finitos - Clase 7Lenguajes Regulares y Autómatas Finitos - Clase 7
Lenguajes Regulares y Autómatas Finitos - Clase 7UTN-FRT Tucumán Argentina
 
Lenguajes Regulares y Autómatas Finitos - Clase 6
Lenguajes Regulares y Autómatas Finitos - Clase 6Lenguajes Regulares y Autómatas Finitos - Clase 6
Lenguajes Regulares y Autómatas Finitos - Clase 6UTN-FRT Tucumán Argentina
 
Diagramas de Flujos de Datos
Diagramas de Flujos de DatosDiagramas de Flujos de Datos
Diagramas de Flujos de DatosRenny Batista
 

Destacado (15)

Automatas y compiladores clase4
Automatas y compiladores clase4Automatas y compiladores clase4
Automatas y compiladores clase4
 
Automatas y compiladores clase2
Automatas y compiladores clase2Automatas y compiladores clase2
Automatas y compiladores clase2
 
Automatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxicoAutomatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxico
 
Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...
Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...
Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...
 
Alfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y ProblemasAlfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y Problemas
 
Operaciones entre lenguajes
Operaciones entre lenguajesOperaciones entre lenguajes
Operaciones entre lenguajes
 
Analisis lexico 2
Analisis lexico 2Analisis lexico 2
Analisis lexico 2
 
Automatas de pila_no_det
Automatas de pila_no_detAutomatas de pila_no_det
Automatas de pila_no_det
 
Analizador Léxico en C++
Analizador Léxico en C++Analizador Léxico en C++
Analizador Léxico en C++
 
Lenguajes regulares
Lenguajes regularesLenguajes regulares
Lenguajes regulares
 
Simulación de un autómata de estado finito en Jflap
Simulación de un autómata de estado finito en JflapSimulación de un autómata de estado finito en Jflap
Simulación de un autómata de estado finito en Jflap
 
Lenguajes Regulares y Autómatas Finitos - Clase 7
Lenguajes Regulares y Autómatas Finitos - Clase 7Lenguajes Regulares y Autómatas Finitos - Clase 7
Lenguajes Regulares y Autómatas Finitos - Clase 7
 
Lenguajes Regulares y Autómatas Finitos - Clase 6
Lenguajes Regulares y Autómatas Finitos - Clase 6Lenguajes Regulares y Autómatas Finitos - Clase 6
Lenguajes Regulares y Autómatas Finitos - Clase 6
 
Automatas finitos
Automatas finitosAutomatas finitos
Automatas finitos
 
Diagramas de Flujos de Datos
Diagramas de Flujos de DatosDiagramas de Flujos de Datos
Diagramas de Flujos de Datos
 

Similar a Automatas y compiladores clase1

Automatas y compiladores analisis sintactico
Automatas y compiladores analisis sintacticoAutomatas y compiladores analisis sintactico
Automatas y compiladores analisis sintacticoGermania Rodriguez
 
Lenguajes de programación: Paradigmas de Programación
Lenguajes de programación: Paradigmas de ProgramaciónLenguajes de programación: Paradigmas de Programación
Lenguajes de programación: Paradigmas de ProgramaciónLuis Fernando Aguas Bucheli
 
Estructura ensamblador
Estructura ensambladorEstructura ensamblador
Estructura ensambladoremoOzitHa
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladoresbachispasaca
 
compiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladorescompiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladoresBEVERLYIGUARDIA
 
Grupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iGrupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iRossana Sosa
 
Informacion sobre los compiladores y sus funciones
Informacion sobre los compiladores y sus funcionesInformacion sobre los compiladores y sus funciones
Informacion sobre los compiladores y sus funcionesFrancescoReinaga1
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1X3025990
 
S01.s1 - Material.pdf
S01.s1 - Material.pdfS01.s1 - Material.pdf
S01.s1 - Material.pdfJS Legendario
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacionTensor
 
Historia de los lenguajes fortran h, pascal, c
Historia de los lenguajes fortran h, pascal, c Historia de los lenguajes fortran h, pascal, c
Historia de los lenguajes fortran h, pascal, c Alvaro Cedeño
 

Similar a Automatas y compiladores clase1 (20)

ingenieria de software
ingenieria de softwareingenieria de software
ingenieria de software
 
TEMA Nº 1
TEMA Nº 1TEMA Nº 1
TEMA Nº 1
 
Automatas y compiladores analisis sintactico
Automatas y compiladores analisis sintacticoAutomatas y compiladores analisis sintactico
Automatas y compiladores analisis sintactico
 
Lenguajes de programación: Paradigmas de Programación
Lenguajes de programación: Paradigmas de ProgramaciónLenguajes de programación: Paradigmas de Programación
Lenguajes de programación: Paradigmas de Programación
 
Estructura ensamblador
Estructura ensambladorEstructura ensamblador
Estructura ensamblador
 
Estructura ensamblador
Estructura ensambladorEstructura ensamblador
Estructura ensamblador
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
 
compiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladorescompiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladores
 
Grupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iGrupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes i
 
Informacion sobre los compiladores y sus funciones
Informacion sobre los compiladores y sus funcionesInformacion sobre los compiladores y sus funciones
Informacion sobre los compiladores y sus funciones
 
Tema 1 introducción compilador
Tema 1 introducción compiladorTema 1 introducción compilador
Tema 1 introducción compilador
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1
 
S01.s1 - Material.pdf
S01.s1 - Material.pdfS01.s1 - Material.pdf
S01.s1 - Material.pdf
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Unidad-1.pptx.pdf
Unidad-1.pptx.pdfUnidad-1.pptx.pdf
Unidad-1.pptx.pdf
 
Unidad-1.pptx.pdf
Unidad-1.pptx.pdfUnidad-1.pptx.pdf
Unidad-1.pptx.pdf
 
Historia de los lenguajes fortran h, pascal, c
Historia de los lenguajes fortran h, pascal, c Historia de los lenguajes fortran h, pascal, c
Historia de los lenguajes fortran h, pascal, c
 
Lenguaje de programacion mike alvarado
Lenguaje de programacion mike alvaradoLenguaje de programacion mike alvarado
Lenguaje de programacion mike alvarado
 
Introducción al Lenguaje de Programación
Introducción al Lenguaje de ProgramaciónIntroducción al Lenguaje de Programación
Introducción al Lenguaje de Programación
 

Más de Germania Rodriguez

Introducción gestión de proyectos informáticos
Introducción gestión de proyectos informáticosIntroducción gestión de proyectos informáticos
Introducción gestión de proyectos informáticosGermania Rodriguez
 
Tecnologías sociales para OCW
Tecnologías sociales para OCWTecnologías sociales para OCW
Tecnologías sociales para OCWGermania Rodriguez
 
Gestión de ti arquitectura empresarial como programa de gestión, método de an...
Gestión de ti arquitectura empresarial como programa de gestión, método de an...Gestión de ti arquitectura empresarial como programa de gestión, método de an...
Gestión de ti arquitectura empresarial como programa de gestión, método de an...Germania Rodriguez
 
Gestión de ti arquitectura empresarial
Gestión de ti arquitectura empresarialGestión de ti arquitectura empresarial
Gestión de ti arquitectura empresarialGermania Rodriguez
 
Gestión de ti introduccion cobit itil pmi
Gestión de ti introduccion cobit itil pmiGestión de ti introduccion cobit itil pmi
Gestión de ti introduccion cobit itil pmiGermania Rodriguez
 
Presentación Open Day Oportunidad UTPL
Presentación Open Day Oportunidad UTPLPresentación Open Day Oportunidad UTPL
Presentación Open Day Oportunidad UTPLGermania Rodriguez
 
Presentación ddi 2012 proyecto cepra
Presentación ddi 2012 proyecto cepraPresentación ddi 2012 proyecto cepra
Presentación ddi 2012 proyecto cepraGermania Rodriguez
 
Arquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseñoArquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseñoGermania Rodriguez
 
Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Germania Rodriguez
 
Arquitectura aplicaciones clase2
Arquitectura aplicaciones clase2Arquitectura aplicaciones clase2
Arquitectura aplicaciones clase2Germania Rodriguez
 
Sociedad de información evolucion ti
Sociedad de información evolucion tiSociedad de información evolucion ti
Sociedad de información evolucion tiGermania Rodriguez
 
IntroduccióN Sociedad De InformacióN
IntroduccióN Sociedad De InformacióNIntroduccióN Sociedad De InformacióN
IntroduccióN Sociedad De InformacióNGermania Rodriguez
 
Gestion del conocimiento caso UTPL
Gestion del conocimiento caso UTPLGestion del conocimiento caso UTPL
Gestion del conocimiento caso UTPLGermania Rodriguez
 
Manual GestióN Cuentas Institucionales Utpl En La Web
Manual GestióN Cuentas Institucionales Utpl En La WebManual GestióN Cuentas Institucionales Utpl En La Web
Manual GestióN Cuentas Institucionales Utpl En La WebGermania Rodriguez
 
Sociedad De La InformacióN Ecuador Y Latinoamerica
Sociedad De La InformacióN Ecuador Y LatinoamericaSociedad De La InformacióN Ecuador Y Latinoamerica
Sociedad De La InformacióN Ecuador Y LatinoamericaGermania Rodriguez
 

Más de Germania Rodriguez (20)

Gestión de proyectos PMBok
Gestión de proyectos PMBokGestión de proyectos PMBok
Gestión de proyectos PMBok
 
Introducción gestión de proyectos informáticos
Introducción gestión de proyectos informáticosIntroducción gestión de proyectos informáticos
Introducción gestión de proyectos informáticos
 
Tecnologías sociales para OCW
Tecnologías sociales para OCWTecnologías sociales para OCW
Tecnologías sociales para OCW
 
Gestión de ti arquitectura empresarial como programa de gestión, método de an...
Gestión de ti arquitectura empresarial como programa de gestión, método de an...Gestión de ti arquitectura empresarial como programa de gestión, método de an...
Gestión de ti arquitectura empresarial como programa de gestión, método de an...
 
Gestión de ti arquitectura empresarial
Gestión de ti arquitectura empresarialGestión de ti arquitectura empresarial
Gestión de ti arquitectura empresarial
 
Gestión de ti introduccion cobit itil pmi
Gestión de ti introduccion cobit itil pmiGestión de ti introduccion cobit itil pmi
Gestión de ti introduccion cobit itil pmi
 
Presentación Open Day Oportunidad UTPL
Presentación Open Day Oportunidad UTPLPresentación Open Day Oportunidad UTPL
Presentación Open Day Oportunidad UTPL
 
Presentación ddi 2012 proyecto cepra
Presentación ddi 2012 proyecto cepraPresentación ddi 2012 proyecto cepra
Presentación ddi 2012 proyecto cepra
 
Arquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseñoArquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseño
 
Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3
 
Arquitectura aplicaciones clase2
Arquitectura aplicaciones clase2Arquitectura aplicaciones clase2
Arquitectura aplicaciones clase2
 
Si nueva economia junio 2010
Si nueva economia junio 2010Si nueva economia junio 2010
Si nueva economia junio 2010
 
Sociedad de información evolucion ti
Sociedad de información evolucion tiSociedad de información evolucion ti
Sociedad de información evolucion ti
 
IntroduccióN Sociedad De InformacióN
IntroduccióN Sociedad De InformacióNIntroduccióN Sociedad De InformacióN
IntroduccióN Sociedad De InformacióN
 
Fotos Naturaleza Grrodriguez
Fotos Naturaleza GrrodriguezFotos Naturaleza Grrodriguez
Fotos Naturaleza Grrodriguez
 
Gestion del conocimiento caso UTPL
Gestion del conocimiento caso UTPLGestion del conocimiento caso UTPL
Gestion del conocimiento caso UTPL
 
Manual GestióN Cuentas Institucionales Utpl En La Web
Manual GestióN Cuentas Institucionales Utpl En La WebManual GestióN Cuentas Institucionales Utpl En La Web
Manual GestióN Cuentas Institucionales Utpl En La Web
 
Sociedad De La InformacióN Ecuador Y Latinoamerica
Sociedad De La InformacióN Ecuador Y LatinoamericaSociedad De La InformacióN Ecuador Y Latinoamerica
Sociedad De La InformacióN Ecuador Y Latinoamerica
 
Workshop RRPP 2.0
Workshop RRPP 2.0Workshop RRPP 2.0
Workshop RRPP 2.0
 
Social Networks and OERs
Social Networks and OERsSocial Networks and OERs
Social Networks and OERs
 

Automatas y compiladores clase1

  • 1. Teoría de Autómatas y Compiladores Germania Rodríguez grrodriguez@utpl.edu.ec
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Ejercicios •  Pág. 27-29 •  Dibujar el árbol de análisis gramátical a[i+1] = a[i] + 2
  • 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. Cadenas Combinación, secuencia, concatenación de símbolos basados de un alfabeto; cadena nula, prefijos, sufijos. EJM: casa, 01001 Operaciones: – Longitud – Concatenación
  • 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. Operaciones Lenguaje •  Dado que un Lenguaje es un conjunto, es aplicable todas las operaciones entre conjuntos – Unión – Intersección – Diferencia – Complemento – Potencia o partes Cada una con sus propiedades de las operaciones
  • 17. Operaciones Lenguaje •  Y algunas propias – Concatenación – Estrella Kleene * –  Cierre transitivo + Técnicas de Demostración – Demostración por inducción
  • 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. 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