SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
Teoría de Autómatas y
    Compiladores

      Germania Rodríguez
     grrodriguez@utpl.edu.ec
Análisis Sintáctico
•  Determina la sintaxis, o estructura de un
   programa.
•  L a s i n t a x i s d e u n l e n g u a j e d e
   programación se lo determina mediante
   reglas gramaticales de una gramática libre
   de contexto similar a las ER en el análisis
   léxico con la diferencia que son recursivos.
•  Los algoritmos utilizados para reconocer
   estas estructuras difieren del léxico ya que
   utilizan llamadas recursivas o una pila de
   AS.
Análisis Sintáctico
•  El AS involucra tener que elegir entre
   varios métodos diferentes con sus
   propiedades y capacidades, existen dos
   categorías basados en la manera en que
   construyen el árbol de análisis gramáticas
   o sintáctico: descendente o ascendente.
Análisis Sintáctico – Proceso
             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
Análisis Sintáctico - Proceso
•  La tarea del AS es determinar la estructura
   sintáctica de un programa a partir de los
   tokens producidos por el AL.
•  En resumen una función que toma como
   entrada la secuencia de tokens y salida el
   AS.

   Secuencia de tokens  árbol sintáctico
Análisis Sintáctico - Proceso
  – Compiladores de una pasada no generan árbol
    sintáctico explícito.
  – Compiladores de múltiples pasadas – las
    pasadas utilizaran el árbol como su entrada.
•  El árbol se define como estructura de datos
   dinámica, nodos, atributos, campos del
   atributo.
•  Manejo de errores, no solo mostrar
   mensaje sino recuperarse (inferir código
   corregido) y continuar el análisis, para
   encontrar tantos errores como sea posible.
Gramática: definiciones
•  Estructuras
•  Derivación directa
•  Gramáticas equivalentes
Gramática
•  Tipos
  – Tipo 3: Regulares de acuerdo al formato de
    producción pueden ser:
     •  Lineales a la derecha:
           A  aB
           Aa
     •  Lineales a la izquierda
           A  Ba
           Aa
  – Tipo 2: Libre de contexto
     •  A  B siempre independiente del contexto
Gramáticas
•  Tipos
  – Tipo 1: Sensibles al contexto

  – Tipo 0: Sin restricciones respecto a su formato
Gramáticas
Si el lenguaje Li generado por la gramática i
 entonces se cumple que
Gramática Libre de Contexto
•  Especificación para la estructura sintáctica
   de un lenguaje de programación, muy similar
   a la estructura léxica.




•  Se define a través de Reglas Gramaticales
   RG
Gramática Libre de Contexto:
      Comparación RG con las ER
•  Utilizan notación semejante en ER:
  – Operaciones ER: =, concatenación, selección
    |, repetición *,
  – Operaciones RG: , concatenación, selección
    |, recursividad.
  – Ejm:
     exp  exp op exp | (exp) | número
     op  + | - | *
  – Las ER son sobre caracteres y las RG son
    sobre tokens.
Derivación
RG
     exp  exp op exp | (exp) | número
     op  + | - | *


EJEMPLO:
   (34-3) * 42
Árbol de Análisis Sintáctico
RG
                   exp
             exp op exp

           (exp)    * número
      número – número
Árbol de Análisis Sintáctico Abstracto
RG
                  *
              -        42

         34        3
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

Contenu connexe

Tendances

Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfaz
Xavi Flores
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
AlexandraMolinaSanchez
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
perlallamas
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
nenyta08
 
El ciclo de instruccion
El ciclo de instruccionEl ciclo de instruccion
El ciclo de instruccion
ERICA2c3
 

Tendances (20)

Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfaz
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
 
Lenguajes de una maquina de turing
Lenguajes de una maquina de turingLenguajes de una maquina de turing
Lenguajes de una maquina de turing
 
Analizador lexico
Analizador lexicoAnalizador lexico
Analizador lexico
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
El ciclo de instruccion
El ciclo de instruccionEl ciclo de instruccion
El ciclo de instruccion
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
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
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o Hebras
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de Contexto
 
3.1. macros internas
3.1. macros internas3.1. macros internas
3.1. macros internas
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARES
 
Metodos de programacion estructurada
Metodos de programacion estructuradaMetodos de programacion estructurada
Metodos de programacion estructurada
 

Similaire à Automatas y compiladores analisis sintactico

Automatas y compiladores clase1
Automatas y compiladores clase1Automatas y compiladores clase1
Automatas y compiladores clase1
Germania Rodriguez
 
Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2
Universidad
 
Cap6
Cap6Cap6
Cap6
CJAO
 

Similaire à Automatas y compiladores analisis sintactico (20)

Automatas y compiladores clase1
Automatas y compiladores clase1Automatas y compiladores clase1
Automatas y compiladores clase1
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semantico
 
Analizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador SintácticoAnalizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador Sintáctico
 
Analisis sintactico actividad 15
Analisis sintactico actividad 15Analisis sintactico actividad 15
Analisis sintactico actividad 15
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexico
 
Compilador2
Compilador2Compilador2
Compilador2
 
ERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptx
ERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptxERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptx
ERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptx
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador Sintactico
 
ANALISIS SEMANTICO
ANALISIS SEMANTICO ANALISIS SEMANTICO
ANALISIS SEMANTICO
 
Taller análisis sintáctico
Taller análisis sintácticoTaller análisis sintáctico
Taller análisis sintáctico
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
 
Taller de actividades de compiladores 06 06 2019
Taller de actividades de compiladores 06 06 2019Taller de actividades de compiladores 06 06 2019
Taller de actividades de compiladores 06 06 2019
 
Taller análisis sintáctico
Taller análisis sintácticoTaller análisis sintáctico
Taller análisis sintáctico
 
Taller compiladores Análisis Semántico
Taller compiladores Análisis Semántico Taller compiladores Análisis Semántico
Taller compiladores Análisis Semántico
 
Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2
 
Análisis Sintáctico
Análisis SintácticoAnálisis Sintáctico
Análisis Sintáctico
 
Cap6
Cap6Cap6
Cap6
 
diaposichap.pptx
diaposichap.pptxdiaposichap.pptx
diaposichap.pptx
 
Analisis Semantico
Analisis Semantico Analisis Semantico
Analisis Semantico
 
Estructura ensamblador
Estructura ensambladorEstructura ensamblador
Estructura ensamblador
 

Plus de Germania 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 empresarial
Germania Rodriguez
 
Automatas y compiladores clase4
Automatas y compiladores clase4Automatas y compiladores clase4
Automatas y compiladores clase4
Germania Rodriguez
 
Automatas y compiladores clase3
Automatas y compiladores clase3Automatas y compiladores clase3
Automatas y compiladores clase3
Germania Rodriguez
 
Automatas y compiladores clase2
Automatas y compiladores clase2Automatas y compiladores clase2
Automatas y compiladores clase2
Germania Rodriguez
 
Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3
Germania Rodriguez
 
Arquitectura aplicaciones clase2
Arquitectura aplicaciones clase2Arquitectura aplicaciones clase2
Arquitectura aplicaciones clase2
Germania Rodriguez
 
Sociedad de información evolucion ti
Sociedad de información evolucion tiSociedad de información evolucion ti
Sociedad de información evolucion ti
Germania Rodriguez
 
IntroduccióN Sociedad De InformacióN
IntroduccióN Sociedad De InformacióNIntroduccióN Sociedad De InformacióN
IntroduccióN Sociedad De InformacióN
Germania Rodriguez
 

Plus de Germania Rodriguez (20)

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...
 
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
 
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
 
Arquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseñoArquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseño
 
Automatas y compiladores clase4
Automatas y compiladores clase4Automatas y compiladores clase4
Automatas y compiladores clase4
 
Automatas y compiladores clase3
Automatas y compiladores clase3Automatas y compiladores clase3
Automatas y compiladores clase3
 
Automatas y compiladores clase2
Automatas y compiladores clase2Automatas y compiladores clase2
Automatas y compiladores clase2
 
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
 

Automatas y compiladores analisis sintactico

  • 1. Teoría de Autómatas y Compiladores Germania Rodríguez grrodriguez@utpl.edu.ec
  • 2. Análisis Sintáctico •  Determina la sintaxis, o estructura de un programa. •  L a s i n t a x i s d e u n l e n g u a j e d e programación se lo determina mediante reglas gramaticales de una gramática libre de contexto similar a las ER en el análisis léxico con la diferencia que son recursivos. •  Los algoritmos utilizados para reconocer estas estructuras difieren del léxico ya que utilizan llamadas recursivas o una pila de AS.
  • 3. Análisis Sintáctico •  El AS involucra tener que elegir entre varios métodos diferentes con sus propiedades y capacidades, existen dos categorías basados en la manera en que construyen el árbol de análisis gramáticas o sintáctico: descendente o ascendente.
  • 4. Análisis Sintáctico – Proceso 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
  • 5. Análisis Sintáctico - Proceso •  La tarea del AS es determinar la estructura sintáctica de un programa a partir de los tokens producidos por el AL. •  En resumen una función que toma como entrada la secuencia de tokens y salida el AS. Secuencia de tokens  árbol sintáctico
  • 6. Análisis Sintáctico - Proceso – Compiladores de una pasada no generan árbol sintáctico explícito. – Compiladores de múltiples pasadas – las pasadas utilizaran el árbol como su entrada. •  El árbol se define como estructura de datos dinámica, nodos, atributos, campos del atributo. •  Manejo de errores, no solo mostrar mensaje sino recuperarse (inferir código corregido) y continuar el análisis, para encontrar tantos errores como sea posible.
  • 7. Gramática: definiciones •  Estructuras •  Derivación directa •  Gramáticas equivalentes
  • 8. Gramática •  Tipos – Tipo 3: Regulares de acuerdo al formato de producción pueden ser: •  Lineales a la derecha: A  aB Aa •  Lineales a la izquierda A  Ba Aa – Tipo 2: Libre de contexto •  A  B siempre independiente del contexto
  • 9. Gramáticas •  Tipos – Tipo 1: Sensibles al contexto – Tipo 0: Sin restricciones respecto a su formato
  • 10. Gramáticas Si el lenguaje Li generado por la gramática i entonces se cumple que
  • 11. Gramática Libre de Contexto •  Especificación para la estructura sintáctica de un lenguaje de programación, muy similar a la estructura léxica. •  Se define a través de Reglas Gramaticales RG
  • 12. Gramática Libre de Contexto: Comparación RG con las ER •  Utilizan notación semejante en ER: – Operaciones ER: =, concatenación, selección |, repetición *, – Operaciones RG: , concatenación, selección |, recursividad. – Ejm: exp  exp op exp | (exp) | número op  + | - | * – Las ER son sobre caracteres y las RG son sobre tokens.
  • 13. Derivación RG exp  exp op exp | (exp) | número op  + | - | * EJEMPLO: (34-3) * 42
  • 14. Árbol de Análisis Sintáctico RG exp exp op exp (exp) * número número – número
  • 15. Árbol de Análisis Sintáctico Abstracto RG * - 42 34 3
  • 16. 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