SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Análisis Sintáctico
Analizadores Descendentes
Método Predictivo Rercursivo
¿Que es un análisis descendente?
Es una técnica que intenta comprobar si una cadena x
pertenece al lenguaje definido por una gramática aplicando
los siguientes criterios:
• Partir del axioma de la gramática
• Escoger reglas gramaticales estratégicamente
• Hacer derivaciones por la izquierda (Left Most
Derivation)
• Procesar la entrada de izquierda a derecha
• Obtener el árbol de análisis sintáctico o error
Analizadores predictivos
• Se determina qué regla aplicar a partir de un análisis de los
primeros tokens a la entrada
• Son capaces de decidir qué regla de producción aplicar a cada
paso en función de los elementos terminales que se
encuentran en la sentencia de entrada
• Como consecuencia se consigue un proceso de análisis con
complejidad lineal O (n) con respecto al tamaño del problema
• Estos analizadores son llamados analizadores LL (K)
Método Predictivo Recursivo
Analizadores predictivos LL (1)
• Determinan que regla de producción aplicar encada paso en
función del token que se encuentra en cada momento en la
cabeza de lectura.
Analizadores predictivos LL (k)
• Determinan que regla de producción aplicar en cada paso en
función de los k primeros tokens que se encuentra en cada
momento en la cabeza de lectura.
Analizadores LL (K)
Analizadores LL (1)
• Para aplicar el análisis descendente predictivo LL(1) se asocia
a cada regla de producción un conjunto de predicción.
• El conjunto de predicción de una regla está formado por la
colección de todos los posibles símbolos terminales que es
necesario encontrar en la sentencia de entrada para poder
aplicar dicha regla
• De todas las reglas candidatas para el no terminal en curso se
escoge aquella que contiene en su conjunto de predicción el
terminal a la entrada.
Análisis predictivo LL (1)
• Para aplicar el análisis predictivo LL (1) es necesario que los
conjuntos de predicción de todas las reglas con un mismo
símbolo terminal sean disjuntas entre sí.
Condiciones LL (1)
• Para cumplir la condición LL (1) la gramática debe satisfacer
necesariamente 3 requisitos:
› No ambigua
› Factorizada por la izquierda
› No recursiva por la izquierda
Analizadores LL (1)
Implementación Analizadores LL (1)
• En cada paso del proceso de derivación de la sentencia de
entrada se realiza una predicción de la posible producción a
aplicar
• Se comprueba si existe una concordancia entre el símbolo
actual en la entrada con el primer terminal que se puede
generar a partir de esa regla de producción
• Si existe esta concordancia se avanza en la entrada y en el
árbol de derivación, en caso contrario se vuelve hacia atrás y
se elige una nueva regla de derivación
Implementación Analizadores LL (1)
• Nos restringimos al caso de métodos deterministas (no hay
vuelta atrás) teniendo en cuenta un solo símbolo de pre
análisis (componente léxico que se está analizando en la
cadena de entrada en ese momento)
• Conocemos exactamente en todo momento que producción
aplicar. El símbolo de pre análisis se actualiza cada vez que se
produce una concordancia.
Implementación Analizadores LL (1)
Procedimiento Parea(terminal)
Inicio
si pre análisis == terminal entonces
pre análisis=siguiente token
sino
error sintáctico
fin
Implementación Analizadores LL (1)
Procedimiento A()
inicio
según pre análisis está en:
PRIMEROS(a1): {proceder según alternativa a1 }
PRIMEROS(a2): {proceder según alternativa a2 }
...
PRIMEROS(an): {proceder según alternativa an }
fin según
si pre análisis no pertenece a ningún PRIMEROS(ai) entonces error
sintáctico, excepto si existe la alternativa A -> € en cuyo caso no se hace nada
fin
Implementación Analizadores LL (1)
• Gramática que se va a implementar:
E --> T E’
E’--> + T E’ | - T E’ | €
T --> F T’
T’--> * F T’ | / F T’ | €
F --> (E) | num | id
Implementación Analizadores LL (1)
Procedimiento S() {
Expresion();
Parea(TKN #);
}
Procedimiento Expresion() {
Termino();
Expresion_Prima();
}
Procedimiento Expresion_Prima() {
según pre análisis está en:
{TKN MAS}: Parea(TKN MAS);
Termino();
Expresion_Prima();
{TKN MENOS}: Parea(TKN MENOS);
Termino();
Expresion_Prima();
si no está en ninguno de los anteriores entonces no hacer nada
fin según
}
Implementación Analizadores LL (1)
Procedimiento Termino() {
Factor();
Termino_Prima();
}
Procedimiento Termino_Prima(){
según pre análisis está en:
{TKN POR}: Parea(TKN POR);
Factor();
Termino_Prima();
{TKN DIV}: Parea(TKN DIV);
Factor();
Termino_Prima();
si no está en ninguno de los anteriores entonces no hacer nada
fin según
}
Implementación Analizadores LL (1)
Procedimiento Factor() {
según pre análisis está en:
{TKN ABREPAR}: Parea(TKN ABREPAR);
Expresion();
Parea(TKN CIERRAPAR);
{TKN NUM}: Parea(TKN NUM);
{TKN ID}: Parea(TKN ID);
si no está en ninguno de los anteriores entonces error();
fin según
}

Weitere ähnliche Inhalte

Was ist angesagt?

Análisis sintáctico
Análisis sintáctico Análisis sintáctico
Análisis sintáctico carmensp
 
Exclusión mutua, sección critica y semáforo
Exclusión mutua, sección critica y semáforoExclusión mutua, sección critica y semáforo
Exclusión mutua, sección critica y semáforoJHOVANI189612GAZGA
 
Presentación de automata finito no deterministico, ana belgica vallejo y saud...
Presentación de automata finito no deterministico, ana belgica vallejo y saud...Presentación de automata finito no deterministico, ana belgica vallejo y saud...
Presentación de automata finito no deterministico, ana belgica vallejo y saud...Ana Belgica Vallejo Lebron
 
Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.Uriel Martinez Cervantes
 

Was ist angesagt? (6)

Clase03 laplace (1)
Clase03 laplace (1)Clase03 laplace (1)
Clase03 laplace (1)
 
Análisis sintáctico
Análisis sintáctico Análisis sintáctico
Análisis sintáctico
 
Exclusión mutua, sección critica y semáforo
Exclusión mutua, sección critica y semáforoExclusión mutua, sección critica y semáforo
Exclusión mutua, sección critica y semáforo
 
Presentación de automata finito no deterministico, ana belgica vallejo y saud...
Presentación de automata finito no deterministico, ana belgica vallejo y saud...Presentación de automata finito no deterministico, ana belgica vallejo y saud...
Presentación de automata finito no deterministico, ana belgica vallejo y saud...
 
Sistema lineales
Sistema linealesSistema lineales
Sistema lineales
 
Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.
 

Ähnlich wie Analisis sintáctico

Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semanticoInfomania pro
 
Simulación de Sistemas - Maestria Ingeniería
Simulación de Sistemas - Maestria IngenieríaSimulación de Sistemas - Maestria Ingeniería
Simulación de Sistemas - Maestria IngenieríaNovarMichellCastaeda
 
Algoritmos computacionales
Algoritmos computacionalesAlgoritmos computacionales
Algoritmos computacionalesjhohamn
 
Algoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptxAlgoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptxTIRZOANTONIOMEDINACA1
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador SintacticoBayo Chicaiza
 
Introducción a Compiladores
Introducción a  CompiladoresIntroducción a  Compiladores
Introducción a CompiladoresLeopoldo Capa
 
Introducción a la Teoría de Autómatas by Yeredith
Introducción a la Teoría de Autómatas by YeredithIntroducción a la Teoría de Autómatas by Yeredith
Introducción a la Teoría de Autómatas by Yeredithyeredith1
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS Infomania pro
 
Breve manual visual basic Métodos Númericos
Breve manual visual basic Métodos NúmericosBreve manual visual basic Métodos Númericos
Breve manual visual basic Métodos NúmericosTensor
 
Análisis de complejidad introducción notación big o
Análisis de complejidad   introducción notación big oAnálisis de complejidad   introducción notación big o
Análisis de complejidad introducción notación big oUVM
 
Breve manual visual basic
Breve manual visual basicBreve manual visual basic
Breve manual visual basicTensor
 

Ähnlich wie Analisis sintáctico (20)

4.asll1
4.asll14.asll1
4.asll1
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semantico
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
 
Analisis Semantico
Analisis Semantico Analisis Semantico
Analisis Semantico
 
Simulación de Sistemas - Maestria Ingeniería
Simulación de Sistemas - Maestria IngenieríaSimulación de Sistemas - Maestria Ingeniería
Simulación de Sistemas - Maestria Ingeniería
 
Algoritmos computacionales
Algoritmos computacionalesAlgoritmos computacionales
Algoritmos computacionales
 
APLICACIONES
APLICACIONESAPLICACIONES
APLICACIONES
 
Algoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptxAlgoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptx
 
Analisis de problemas
Analisis de problemasAnalisis de problemas
Analisis de problemas
 
Diagrama de flujo
Diagrama de flujoDiagrama de flujo
Diagrama de flujo
 
GRAFCET [Autoguardado].pptx
GRAFCET [Autoguardado].pptxGRAFCET [Autoguardado].pptx
GRAFCET [Autoguardado].pptx
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador Sintactico
 
Introducción a Compiladores
Introducción a  CompiladoresIntroducción a  Compiladores
Introducción a Compiladores
 
Introducción a la Teoría de Autómatas by Yeredith
Introducción a la Teoría de Autómatas by YeredithIntroducción a la Teoría de Autómatas by Yeredith
Introducción a la Teoría de Autómatas by Yeredith
 
Articulo
ArticuloArticulo
Articulo
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Breve manual visual basic Métodos Númericos
Breve manual visual basic Métodos NúmericosBreve manual visual basic Métodos Númericos
Breve manual visual basic Métodos Númericos
 
Análisis de complejidad introducción notación big o
Análisis de complejidad   introducción notación big oAnálisis de complejidad   introducción notación big o
Análisis de complejidad introducción notación big o
 
Breve manual visual basic
Breve manual visual basicBreve manual visual basic
Breve manual visual basic
 

Mehr von Oscar Eduardo

Mehr von Oscar Eduardo (20)

Introducción a IngSW_2022.pptx
Introducción a IngSW_2022.pptxIntroducción a IngSW_2022.pptx
Introducción a IngSW_2022.pptx
 
Inventario tic
Inventario ticInventario tic
Inventario tic
 
Trayecto de actividades_diplomado
Trayecto de actividades_diplomadoTrayecto de actividades_diplomado
Trayecto de actividades_diplomado
 
Modelo pruebas
Modelo pruebasModelo pruebas
Modelo pruebas
 
Framework Android
Framework AndroidFramework Android
Framework Android
 
Comunicación
ComunicaciónComunicación
Comunicación
 
Modelos de Mediación
Modelos de MediaciónModelos de Mediación
Modelos de Mediación
 
Lenguajes regulares
Lenguajes regularesLenguajes regulares
Lenguajes regulares
 
User stories
User storiesUser stories
User stories
 
App upb móvil 20141
App upb móvil 20141App upb móvil 20141
App upb móvil 20141
 
Subir una aplicación a google play
Subir una aplicación a google playSubir una aplicación a google play
Subir una aplicación a google play
 
Iswiii
IswiiiIswiii
Iswiii
 
Presentacion rup
Presentacion rupPresentacion rup
Presentacion rup
 
Arquitectura sistema
Arquitectura sistemaArquitectura sistema
Arquitectura sistema
 
Doctic modelopropuestadeintervencin
Doctic modelopropuestadeintervencinDoctic modelopropuestadeintervencin
Doctic modelopropuestadeintervencin
 
Isw
IswIsw
Isw
 
Iswii
IswiiIswii
Iswii
 
Cod intermedio
Cod intermedioCod intermedio
Cod intermedio
 
Generalidades sobre windows phone 7.5
Generalidades sobre windows phone 7.5Generalidades sobre windows phone 7.5
Generalidades sobre windows phone 7.5
 
Notacion uml
Notacion umlNotacion uml
Notacion uml
 

Analisis sintáctico

  • 2. ¿Que es un análisis descendente? Es una técnica que intenta comprobar si una cadena x pertenece al lenguaje definido por una gramática aplicando los siguientes criterios: • Partir del axioma de la gramática • Escoger reglas gramaticales estratégicamente • Hacer derivaciones por la izquierda (Left Most Derivation) • Procesar la entrada de izquierda a derecha • Obtener el árbol de análisis sintáctico o error
  • 3. Analizadores predictivos • Se determina qué regla aplicar a partir de un análisis de los primeros tokens a la entrada • Son capaces de decidir qué regla de producción aplicar a cada paso en función de los elementos terminales que se encuentran en la sentencia de entrada • Como consecuencia se consigue un proceso de análisis con complejidad lineal O (n) con respecto al tamaño del problema • Estos analizadores son llamados analizadores LL (K)
  • 4. Método Predictivo Recursivo Analizadores predictivos LL (1) • Determinan que regla de producción aplicar encada paso en función del token que se encuentra en cada momento en la cabeza de lectura. Analizadores predictivos LL (k) • Determinan que regla de producción aplicar en cada paso en función de los k primeros tokens que se encuentra en cada momento en la cabeza de lectura.
  • 6. Analizadores LL (1) • Para aplicar el análisis descendente predictivo LL(1) se asocia a cada regla de producción un conjunto de predicción. • El conjunto de predicción de una regla está formado por la colección de todos los posibles símbolos terminales que es necesario encontrar en la sentencia de entrada para poder aplicar dicha regla • De todas las reglas candidatas para el no terminal en curso se escoge aquella que contiene en su conjunto de predicción el terminal a la entrada.
  • 7. Análisis predictivo LL (1) • Para aplicar el análisis predictivo LL (1) es necesario que los conjuntos de predicción de todas las reglas con un mismo símbolo terminal sean disjuntas entre sí.
  • 8. Condiciones LL (1) • Para cumplir la condición LL (1) la gramática debe satisfacer necesariamente 3 requisitos: › No ambigua › Factorizada por la izquierda › No recursiva por la izquierda
  • 10. Implementación Analizadores LL (1) • En cada paso del proceso de derivación de la sentencia de entrada se realiza una predicción de la posible producción a aplicar • Se comprueba si existe una concordancia entre el símbolo actual en la entrada con el primer terminal que se puede generar a partir de esa regla de producción • Si existe esta concordancia se avanza en la entrada y en el árbol de derivación, en caso contrario se vuelve hacia atrás y se elige una nueva regla de derivación
  • 11. Implementación Analizadores LL (1) • Nos restringimos al caso de métodos deterministas (no hay vuelta atrás) teniendo en cuenta un solo símbolo de pre análisis (componente léxico que se está analizando en la cadena de entrada en ese momento) • Conocemos exactamente en todo momento que producción aplicar. El símbolo de pre análisis se actualiza cada vez que se produce una concordancia.
  • 12. Implementación Analizadores LL (1) Procedimiento Parea(terminal) Inicio si pre análisis == terminal entonces pre análisis=siguiente token sino error sintáctico fin
  • 13. Implementación Analizadores LL (1) Procedimiento A() inicio según pre análisis está en: PRIMEROS(a1): {proceder según alternativa a1 } PRIMEROS(a2): {proceder según alternativa a2 } ... PRIMEROS(an): {proceder según alternativa an } fin según si pre análisis no pertenece a ningún PRIMEROS(ai) entonces error sintáctico, excepto si existe la alternativa A -> € en cuyo caso no se hace nada fin
  • 14. Implementación Analizadores LL (1) • Gramática que se va a implementar: E --> T E’ E’--> + T E’ | - T E’ | € T --> F T’ T’--> * F T’ | / F T’ | € F --> (E) | num | id
  • 15. Implementación Analizadores LL (1) Procedimiento S() { Expresion(); Parea(TKN #); } Procedimiento Expresion() { Termino(); Expresion_Prima(); } Procedimiento Expresion_Prima() { según pre análisis está en: {TKN MAS}: Parea(TKN MAS); Termino(); Expresion_Prima(); {TKN MENOS}: Parea(TKN MENOS); Termino(); Expresion_Prima(); si no está en ninguno de los anteriores entonces no hacer nada fin según }
  • 16. Implementación Analizadores LL (1) Procedimiento Termino() { Factor(); Termino_Prima(); } Procedimiento Termino_Prima(){ según pre análisis está en: {TKN POR}: Parea(TKN POR); Factor(); Termino_Prima(); {TKN DIV}: Parea(TKN DIV); Factor(); Termino_Prima(); si no está en ninguno de los anteriores entonces no hacer nada fin según }
  • 17. Implementación Analizadores LL (1) Procedimiento Factor() { según pre análisis está en: {TKN ABREPAR}: Parea(TKN ABREPAR); Expresion(); Parea(TKN CIERRAPAR); {TKN NUM}: Parea(TKN NUM); {TKN ID}: Parea(TKN ID); si no está en ninguno de los anteriores entonces error(); fin según }