PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint...
Transcript of PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint...
![Page 1: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/1.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
PROCESADORES DE LENGUAJESTEMA V: ANALISIS ASCENDENTE
Prof. Dr. Nicolas Luis Fernandez Garcıa
Departamento de Informatica y Analisis NumericoEscuela Politecnica Superior de Cordoba
Universidad de Cordoba
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 1 / 563
![Page 2: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/2.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Programa
Tema I.- Introduccion
Tema II.- Analisis Lexicografico
Tema III.- Fundamentos Teoricos del Analisis Sintactico
Tema IV.- Analisis Sintactico Descendente
Tema V.- Analisis Sintactico Ascendente
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 2 / 563
![Page 3: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/3.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Programa
1 Introduccion
2 Analisis sintactico ascendente SLR
3 Analisis sintactico ascendente LR-canonico
4 Analisis sintactico ascendente LALR
5 Metodos de recuperacion de errores
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 3 / 563
![Page 4: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/4.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Programa
1 Introduccion
2 Analisis sintactico ascendente SLR
3 Analisis sintactico ascendente LR-canonico
4 Analisis sintactico ascendente LALR
5 Metodos de recuperacion de errores
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 4 / 563
![Page 5: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/5.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Programa
1 Introduccion
2 Analisis sintactico ascendente SLR
3 Analisis sintactico ascendente LR-canonico
4 Analisis sintactico ascendente LALR
5 Metodos de recuperacion de errores
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 5 / 563
![Page 6: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/6.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Programa
1 Introduccion
2 Analisis sintactico ascendente SLR
3 Analisis sintactico ascendente LR-canonico
4 Analisis sintactico ascendente LALR
5 Metodos de recuperacion de errores
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 6 / 563
![Page 7: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/7.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Programa
1 Introduccion
2 Analisis sintactico ascendente SLR
3 Analisis sintactico ascendente LR-canonico
4 Analisis sintactico ascendente LALR
5 Metodos de recuperacion de errores
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 7 / 563
![Page 8: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/8.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Seccion actual
1 Introduccion
2 Analisis sintactico ascendente SLR
3 Analisis sintactico ascendente LR-canonico
4 Analisis sintactico ascendente LALR
5 Metodos de recuperacion de errores
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 8 / 563
![Page 9: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/9.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
1 IntroduccionDescripcion generalConcepto de pivoteConflictosTipos de analisis sintactico ascendenteGramaticas LRTabla de analisis sintactico ascendente LR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 9 / 563
![Page 10: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/10.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionDescripcion general
Analisis sintactico ascendente
ObjetivoConstruir de forma ascendente un arbol sintactico asociado ala cadena de entrada.Comienza por las hojas y termina en la raız.
Objetivo equivalente
Obtener una derivacion por la derecha en orden inverso.
Se fundamenta en los conceptos de desplazamiento yreduccion.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 10 / 563
![Page 11: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/11.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionDescripcion general
Ejemplo (Analisis sintactico ascendente 1 / 4)
P = {(1) S −→ T id ( L ) ;(2) T −→ T *(3) T −→ int(4) L −→ L , T(5) L −→ T
}
Nota
Esta gramatica genera algunos prototipos de funciones del lenguajede programacion C.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 11 / 563
![Page 12: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/12.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionDescripcion general
Ejemplo (Analisis sintactico ascendente 2 / 4)
Pila Entrada Accionint * id ( int ) ; $ desplazar int
int * id ( int ) ; $ reducir (3) T −→ intT * id ( int ) ; $ desplazar *T * id ( int ) ; $ reducir (2) T −→ T *T id ( int ) ; $ desplazar idT id ( int ) ; $ desplazar (T id ( int ) ; $ desplazar intT id ( int ) ; $ reducir (3) T −→ int
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 12 / 563
![Page 13: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/13.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionDescripcion general
Ejemplo (Analisis sintactico ascendente 3 / 4)
Pila Entrada AccionT id ( int ) ; $ reducir (3) T −→ intT id ( T ) ; $ reducir (5) L −→ TT id ( L ) ; $ desplazar )T id ( L ) ; $ desplazar ;T id ( L ) ; $ reducir (1) S −→ T id (L);S $ Aceptar
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 13 / 563
![Page 14: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/14.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionDescripcion general
Ejemplo (Analisis sintactico ascendente 4 / 4)
Derivacion por la derecha
S ⇒1
T id ( L ) ;
⇒5
T id ( T ) ;
⇒3
T id ( int ) ;
⇒2
T * id ( int ) ;
⇒3
int * id ( int ) ;
Nota
La derivacion por la derecha se ha obtenido en orden inverso.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 14 / 563
![Page 15: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/15.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionDescripcion general
Ejemplo (Arbol sintactico asociado a la derivacion 1 / 6)
) ;int * id int(
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 15 / 563
![Page 16: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/16.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionDescripcion general
Ejemplo (Arbol sintactico asociado a la derivacion 2 / 6)
) ;int * id int
T
(
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 16 / 563
![Page 17: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/17.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionDescripcion general
Ejemplo (Arbol sintactico asociado a la derivacion 3 / 6)
T
) ;int * id int
T
(
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 17 / 563
![Page 18: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/18.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionDescripcion general
Ejemplo (Arbol sintactico asociado a la derivacion 4 / 6)
T
) ;int * id int
T
(
T
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 18 / 563
![Page 19: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/19.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionDescripcion general
Ejemplo (Arbol sintactico asociado a la derivacion 5 / 6)
T
) ;int * id int
L
T
(
T
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 19 / 563
![Page 20: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/20.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionDescripcion general
Ejemplo (Arbol sintactico asociado a la derivacion 6 / 6)
T
S
) ;int * id int
L
T
(
T
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 20 / 563
![Page 21: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/21.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionDescripcion general
Nota (Acciones del analisis ascendente)
1.- Desplazar: traslada el primer sımbolo de la entrada a la pila.
2.- Reducir:
sustituye, en la pila, los sımbolos de la alternativa de una reglapor el sımbolo de su parte izquierda;se utiliza el concepto de pivote.
3.- Aceptar: la cadena de entrada es reconocida.
4.- Error: la cadena de entrada es rechazada.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 21 / 563
![Page 22: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/22.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
1 IntroduccionDescripcion generalConcepto de pivoteConflictosTipos de analisis sintactico ascendenteGramaticas LRTabla de analisis sintactico ascendente LR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 22 / 563
![Page 23: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/23.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConcepto de pivote
Definicion (Concepto de pivote 1 / 2)
Si G =(VN , VT , P, S) es gramatica de contexto libre y
Sk⇒D
γ
entonces
un pivote se define como
una regla de produccion de la forma A → βy una posicion en γ, en la cual se encuentra β.
de forma que,
al sustituir β por A en γ,se obtiene el paso anterior de una derivacion por la derecha.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 23 / 563
![Page 24: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/24.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConcepto de pivote
Definicion (Concepto de pivote 2 / 2)
Si γ = α β z entonces
S∗⇒D
αAz ⇒A→ β
αβz = γ
Pila Entrada Accion. . . . . . . . .α β z $ reducir A −→ βα A z $ . . .. . . . . . . . .
donde α, β ∈ V ∗ = (VN ∪ VT )∗, z ∈ V ∗T
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 24 / 563
![Page 25: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/25.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConcepto de pivote
Ejemplo (Pivote)
S∗⇒D
T id (T ) ; ⇒T−→int
T id (int ) ; = γ
Pila Entrada Accionint * id ( int ) ; $ desplazar int
. . . . . . . . .T id ( int ) ; $ reducir (3) T −→ intT id ( T ) ; $ . . .. . . . . . . . .
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 25 / 563
![Page 26: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/26.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConcepto de pivote
Nota (Analisis sintactico ascendente)
El analisis ascendente intenta obtener una derivacion por laderecha en orden inverso.
Un pivote es una regla de produccion y una posicion.
El pivote siempre debe aparecer en la cima de la pila.
Se realizara una reduccion cuando se encuentre un pivote.
Al realizar la reduccion, se genera el paso anterior de unaderivacion por la derecha.
Al aplicar las reducciones, se alcanza el sımbolo inicial de lagramatica (raız del arbol sintactico) y la cadena de entradaes reconocida.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 26 / 563
![Page 27: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/27.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConcepto de pivote
Ejemplo (Pivote en la cima de la pila 1 / 2)
En este caso, la eleccion del pivote es correcta.
Pila Entrada Accion. . . . . . . . .
α β δ y z $ reducir B → δ
α β B y z $ desplazar y
α β B y z $ reducir A→ βBy
α A z $ · · ·
S∗⇒D
α A z ⇒A−→βBy
α β B y z ⇒B−→δ
α β δ y z
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 27 / 563
![Page 28: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/28.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConcepto de pivote
Ejemplo (Pivote en el interior de la pila 2 / 2)
La eleccion del pivote no es correcta: no se genera una derivacionpor la derecha en orden inverso
Pila Entrada Accion. . . . . . . . .
α β γ δ y z $ reducir B → δ
α β γ B y z $ se busca en el interior
α β γ B y z $ reducir C → β
α C γ B y z $ . . .
S∗⇒D
α C γ B y z ⇒C−→ β
α β γ B y z ⇒B−→δ
α β γ δ y z
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 28 / 563
![Page 29: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/29.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
1 IntroduccionDescripcion generalConcepto de pivoteConflictosTipos de analisis sintactico ascendenteGramaticas LRTabla de analisis sintactico ascendente LR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 29 / 563
![Page 30: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/30.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
1 IntroduccionDescripcion generalConcepto de pivoteConflictos
Tipos de conflictosConflicto desplazamiento-reduccionConflicto reduccion-reduccion
Tipos de analisis sintactico ascendenteGramaticas LRTabla de analisis sintactico ascendente LR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 30 / 563
![Page 31: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/31.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Definicion (Conflictos en el Analisis Sintactico Ascendente)
Un conflicto representa una situacion en la cual el analisissintactico ascendente puede elegir entre acciones diferentes
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 31 / 563
![Page 32: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/32.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Definicion (Tipos de conflictos)
Desplazamiento-reduccion:
Se puede desplazar un sımbolo a la pila o reducir con una reglade produccion.
Reduccion-reduccion:
Se puede elegir una regla de produccion entre varias para hacerla reduccion.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 32 / 563
![Page 33: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/33.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Nota (Tipos de conflictos)
En el caso de conflicto de desplazamiento-reduccion, se sueleelegir el desplazamiento.
Los conflictos reduccion-reduccion
Son mucho mas graves y no se suelen permitir.Se debe reescribir la gramatica para eliminar el conflicto.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 33 / 563
![Page 34: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/34.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
1 IntroduccionDescripcion generalConcepto de pivoteConflictos
Tipos de conflictosConflicto desplazamiento-reduccionConflicto reduccion-reduccion
Tipos de analisis sintactico ascendenteGramaticas LRTabla de analisis sintactico ascendente LR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 34 / 563
![Page 35: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/35.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Conflicto desplazamiento-reduccion 1 / 9)
P = {(1) E −→ E + E(2) E −→ E * E(3) E −→ ( E )(4) E −→ id(5) E −→ numero
}
Nota
Esta gramatica genera algunas expresiones aritmeticas.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 35 / 563
![Page 36: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/36.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Conflicto desplazamiento-reduccion 2 / 9)
La expresion id + id * id provoca un conflicto dedesplazamiento-reduccion
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 36 / 563
![Page 37: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/37.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Conflicto desplazamiento-reduccion 3 / 9)
Pila Entrada Accionid + id * id $ desplazar id
id + id * id $ reducir (4) E −→ idE + id * id $ desplazar +E + id * id $ desplazar idE + id * id $ reducir (4) E −→ idE + E * id $ Conflicto:
desplazar *reducir (1) E −→ E + E
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 37 / 563
![Page 38: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/38.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Conflicto desplazamiento-reduccion 4 / 9)
Si se elige la reduccion, el analisis continua de la siguiente forma:
Pila Entrada AccionE + E * id $ reducir (1) E −→ E + EE * id $ desplazar *E * id $ desplazar idE * id $ reducir (4) E −→ idE * E $ reducir (2) E −→ E ∗ EE $ ACEPTAR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 38 / 563
![Page 39: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/39.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Conflicto desplazamiento-reduccion 5 / 9)
id + id * id
E E
E E
E
Nota
La expresion es reconocida, pero el arbol sintactico asociado a laderivacion no respeta la precedencia de los operadores aritmeticos
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 39 / 563
![Page 40: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/40.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Conflicto desplazamiento-reduccion 6 / 9)
Si se elige el desplazamiento, el analisis continua de la siguienteforma:
Pila Entrada AccionE + E * id $ desplazar *E + E * id $ desplazar idE + E * id $ reducir (4) E −→ idE + E * E $ reducir (2) E −→ E * EE + E $ reducir (1) E −→ E + EE $ ACEPTAR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 40 / 563
![Page 41: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/41.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Conflicto desplazamiento-reduccion 7 / 9)
id + id * id
E E
EE
E
Nota
Si se elige el desplazamiento entonces el arbol sintactico sı respetala precedencia de los operadores aritmeticos
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 41 / 563
![Page 42: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/42.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Conflicto desplazamiento-reduccion 8 / 9)
Ambiguedad: dos derivaciones por la derecha diferentes.
Primera derivacion
S ⇒2
E * E
⇒4
E * id
⇒1
E + E * id
⇒4
E + id * id
⇒4
id + id * id
Segunda derivacion
S ⇒1
E + E
⇒2
E + E * E
⇒4
E + E * id
⇒4
E + id * id
⇒4
id + id * id
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 42 / 563
![Page 43: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/43.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Conflicto desplazamiento-reduccion 9 / 9)
La gramatica utilizada es ambigua y no admite un analisissintactico ascendente.
Se pueden utilizar otras gramaticas que no sean ambiguas yque sı admiten un analisis sintactico ascendente.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 43 / 563
![Page 44: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/44.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Gramatica sin conflictos 1 / 4)
P = {(1) E −→ T + E(2) E −→ T(3) T −→ F * T(4) T −→ F(5) F −→ ( E )(6) F −→ id(7) F −→ numero
}
Nota
Esta gramatica no es ambigua.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 44 / 563
![Page 45: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/45.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Gramatica sin conflictos 2 / 4)
Pila Entrada Accionid + id * id $ desplazar id
id + id * id $ reducir (6) F −→ idF + id * id $ reducir (4) T −→ FT + id * id $ desplazar +T + id * id $ desplazar idT + id * id $ reducir (6) F −→ idT + F * id $ desplazar *
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 45 / 563
![Page 46: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/46.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Gramatica sin conflictos 3 / 4)
Pila Entrada AccionT + F * id $ desplazar idT + F * id $ reducir (6) F −→ idT + F * F $ reducir (4) T −→ FT + F * T $ reducir (3) T −→ F * TT + T $ reducir (2) E −→ TT + E $ reducir (1) E −→ T + EE $ ACEPTAR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 46 / 563
![Page 47: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/47.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Derivacion por la derecha 4 / 4)
E ⇒1
T + E
⇒2
T + T
⇒3
T + F * T
⇒4
T + F * F
⇒6
T + F * id
⇒6
T + id * id
⇒4
F + id * id
⇒6
id + id * id
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 47 / 563
![Page 48: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/48.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Creacion ascendente del arbol sintactico 1 / 9)
id + * idid
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 48 / 563
![Page 49: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/49.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Creacion ascendente del arbol sintactico 2 / 9)
id + * id
F
id
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 49 / 563
![Page 50: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/50.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Creacion ascendente del arbol sintactico 3 / 9)
T
id + * id
F
id
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 50 / 563
![Page 51: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/51.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Creacion ascendente del arbol sintactico 4 / 9)
T
id + * id
F
F
id
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 51 / 563
![Page 52: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/52.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Creacion ascendente del arbol sintactico 5 / 9)
id + * id
F
F
id
F
T
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 52 / 563
![Page 53: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/53.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Creacion ascendente del arbol sintactico 6 / 9)
T
id + * id
F
F T
id
F
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 53 / 563
![Page 54: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/54.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Creacion ascendente del arbol sintactico 7 / 9)
T
id + * id
F T
F T
id
F
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 54 / 563
![Page 55: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/55.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Creacion ascendente del arbol sintactico 8 / 9)
ET
id + * id
F T
F T
id
F
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 55 / 563
![Page 56: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/56.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Creacion ascendente del arbol sintactico 9 / 9)
ET
E
id + * id
F T
F T
id
F
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 56 / 563
![Page 57: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/57.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Nota (Conflicto desplazamiento-reduccion: else danzante)
Otro ejemplo clasico que genera un conflicto es el denominadoproblema del else danzante (V. Aho, A. et al, 2008).
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 57 / 563
![Page 58: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/58.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
1 IntroduccionDescripcion generalConcepto de pivoteConflictos
Tipos de conflictosConflicto desplazamiento-reduccionConflicto reduccion-reduccion
Tipos de analisis sintactico ascendenteGramaticas LRTabla de analisis sintactico ascendente LR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 58 / 563
![Page 59: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/59.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Conflicto reduccion-reduccion 1 / 2)
Pila Entrada Accionα β z $ reducir A −→ β o B −→ β
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 59 / 563
![Page 60: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/60.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionConflictos
Ejemplo (Conflicto reduccion-reduccion 2 / 2)
En Fortran, una gramatica mal disenada puede generar el siguienteconflicto
Pila Entrada Accion· · · id(E ) · · · $ reducir F −→ id(E ) o A −→ id(E )
donde F genera funciones y A, componentes de “array”.
Nota
La solucion es reescribir la gramatica que genera el lenguajeFortran para que tenga en cuenta el tipo del identificador
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 60 / 563
![Page 61: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/61.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
1 IntroduccionDescripcion generalConcepto de pivoteConflictosTipos de analisis sintactico ascendenteGramaticas LRTabla de analisis sintactico ascendente LR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 61 / 563
![Page 62: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/62.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
1 IntroduccionDescripcion generalConcepto de pivoteConflictosTipos de analisis sintactico ascendente
Metodos basados en reglas de precedenciaMetodos de analisis LRJustificacion de los metodos LR
Gramaticas LRTabla de analisis sintactico ascendente LR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 62 / 563
![Page 63: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/63.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTipos de analisis sintactico ascendente
Metodos basados en reglas de precedencia
Establecen reglas de precedencia entre los sımbolos de lagramatica.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 63 / 563
![Page 64: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/64.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTipos de analisis sintactico ascendente
Metodos basados en reglas de precedencia
Metodos de precedencia simple.
Metodos de precedencia debil.
Metodos de precedencia extendida.
Metodos de precedencia de estrategia mixta.
Metodos de precedencia de operadores.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 64 / 563
![Page 65: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/65.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
1 IntroduccionDescripcion generalConcepto de pivoteConflictosTipos de analisis sintactico ascendente
Metodos basados en reglas de precedenciaMetodos de analisis LRJustificacion de los metodos LR
Gramaticas LRTabla de analisis sintactico ascendente LR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 65 / 563
![Page 66: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/66.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTipos de analisis sintactico ascendente
Metodos de analisis LR
El significado de LR es el siguiente
L (left): se lee la cadena de entrada de izquierda a derecha.
R (right): se obtiene la derivacion por la derecha en ordeninverso.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 66 / 563
![Page 67: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/67.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTipos de analisis sintactico ascendente
Metodos de analisis LR
Metodo SLR.
Metodo LR-canonico.
Metodo LALR.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 67 / 563
![Page 68: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/68.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
1 IntroduccionDescripcion generalConcepto de pivoteConflictosTipos de analisis sintactico ascendente
Metodos basados en reglas de precedenciaMetodos de analisis LRJustificacion de los metodos LR
Gramaticas LRTabla de analisis sintactico ascendente LR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 68 / 563
![Page 69: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/69.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTipos de analisis sintactico ascendente
Justificacion de los metodos LR
1.- Se pueden construir analizadores sintacticos LR para lamayorıa de las gramaticas.
2.- El analisis LR es el metodo de desplazamiento-reduccion maseficiente.
3.- Si una gramatica admite un analisis descendente predictivo,tambien admite un analisis LR (lo contrario no es cierto).
4.- El analisis LR puede detectar un error tan pronto como seaposible, analizando la cadena de izquierda a derecha.
5.- Existen generadores automaticos de analizadores sintacticosLR (v.gr.: Yacc o Bison).
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 69 / 563
![Page 70: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/70.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
1 IntroduccionDescripcion generalConcepto de pivoteConflictosTipos de analisis sintactico ascendenteGramaticas LRTabla de analisis sintactico ascendente LR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 70 / 563
![Page 71: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/71.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionGramaticas LR
Definicion (Gramatica LR 1 / 3)
G = (VN ,VT ,P, S) es una gramatica LR(k) si se verifica;
1.- Se amplıa G de forma que el sımbolo inicial no este en laparte derecha de ninguna regla de produccion
G ′ = (V ′N ,V′T ,P
′, S ′)S ′ ∈ V ′N − VN
V ′N = VN ∪ {S ′}P ′ = P ∪ {S ′ −→ S}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 71 / 563
![Page 72: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/72.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionGramaticas LR
Definicion (Gramatica LR 2 / 3)
2.- si existen dos derivaciones por la derecha
S ′∗⇒D
α A w ⇒A→ β
α βw
S ′∗⇒D
γ B x ⇒B→ β
α βy
3.- donde los primeros k sımbolos de w y x son iguales.
w = σi1 . . . σik γ1 . . . γp
y = σi1 . . . σik η′1 . . . η
′q
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 72 / 563
![Page 73: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/73.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionGramaticas LR
Definicion (Gramatica LR 3 / 3)
entonces se verifica que
α A y = γ B x
es decir
α = γ
A = B
x = y
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 73 / 563
![Page 74: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/74.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionGramaticas LR
Nota (Gramatica LR)
Configuracion correspondiente a S ′∗⇒D
αAw ⇒A→β
αβw
Pila Entrada Accion. . . . . .α β w $ reducir A −→ βα A w $. . . . . .
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 74 / 563
![Page 75: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/75.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionGramaticas LR
Nota (Gramatica LR)
Configuracion correspondiente a S ′∗⇒D
γBx ⇒B→β
αβy
Pila Entrada Accion. . . . . .γ β y $ reducir B −→ βγ B y $. . . . . .
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 75 / 563
![Page 76: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/76.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionGramaticas LR
Nota (Gramatica LR)
LR(k): utiliza los k primeros sımbolos de la entrada paradeterminar que accion se debe realizar.
Generalmente k = 1 y se utiliza una tabla de analisissintactico LR.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 76 / 563
![Page 77: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/77.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
1 IntroduccionDescripcion generalConcepto de pivoteConflictosTipos de analisis sintactico ascendenteGramaticas LRTabla de analisis sintactico ascendente LR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 77 / 563
![Page 78: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/78.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Definicion (Tabla de analisis LR 1 / 2)
Permite comprobar si una gramatica de contexto libre admiteun analisis sintactico ascendente LR.
Consta de dos partes:
Parte accion.Parte ir a.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 78 / 563
![Page 79: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/79.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Definicion (Tabla de analisis LR 2 / 2)
accion ir aσ1 σ2 . . . σn $ A1 . . . Am
s0
s1
. . .
sk
donde
∀i ∈ {1, . . . , k} si es un estado del analizador sintactico
∀i ∈ {1, . . . , n} σi ∈ VT
∀i ∈ {1, . . . ,m} Ai ∈ VN
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 79 / 563
![Page 80: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/80.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Definicion (Tabla Accion: estructura 1 / 2)
ColumnasSımbolos terminales y $ (final de cadena).
FilasEstados generados a partir de la coleccion de elementos LR
Celdas: acciones que se pueden realizar
DesplazarReducirAceptarError
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 80 / 563
![Page 81: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/81.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Definicion (Tabla Accion: acciones 2 / 2)
1.- Desplazar:
Se desplaza el primer sımbolo de la entrada a la cima de la pilay se indica a que estado pasa el analizador.
2.- Reducir:
Se basa en el concepto de pivoteUtiliza una regla de produccion para sustituir, en la pila, laalternativa de la regla por el sımbolo de su parte izquierda
3.- Aceptar: la cadena de entrada es reconocida.
4.- Error: se llama a una funcion de control de errores.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 81 / 563
![Page 82: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/82.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Ejemplo (Gramatica de prototipos de funciones en C)
P’ = {(1’) S’ −→ S(1) S −→ T id ( L ) ;(2) T −→ T *(3) T −→ int(4) L −→ L , T(5) L −→ T
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 82 / 563
![Page 83: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/83.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Ejemplo (Tabla LR)
Accion Ir-aid ( ) ; * int , $ S T L
0 d3 1 21 Aceptar2 d4 d53 r3 r3 r3 r34 d65 r2 r2 r2 r26 d3 8 77 d9 d108 r5 d5 r59 d11
10 d3 1211 r112 r4 d5 r4
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 83 / 563
![Page 84: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/84.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Nota (Tabla Accion: abreviaturas)
d n
Se desplaza el primer sımbolo σ de la entrada a la pila y sepasa al estado n
r k
Se reduce con la regla de produccion numero k
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 84 / 563
![Page 85: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/85.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Definicion (Tabla Ir-a: estructura)
Columnas:
Sımbolos no terminales de la gramatica.
FilasEstados generados a partir de la coleccion de elementos LR
CeldasIndican las transiciones entre estados
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 85 / 563
![Page 86: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/86.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Nota (Ir-a)
La parte Ir-a solo se consultara cuando se produzca unareduccion.
Las celdas vacıas nunca se consultaran.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 86 / 563
![Page 87: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/87.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Ejercicio (Ir-a)
Demostrar que las celdas vacıas de la tabla Ir-a nunca seconsultaran.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 87 / 563
![Page 88: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/88.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Funcionamiento del analisis sintactico LR 1 / 4
1- Si accion[s, σ] = d j entonces
se desplaza el primer sımbolo de la entrada a la pilay se pasa al estado j
Pila Entrada Accion. . . s σ σ′ . . . $ desplazar j. . . s σ j σ′ . . . $ . . .
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 88 / 563
![Page 89: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/89.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Funcionamiento del analisis sintactico LR 2 / 4
2.- Si accion[s, σ] = r k entonces
se reduce con la regla numero k: A −→ β, dondeβ = Xi1 . . .Xih
y se pasa al estado indicado por ir-a[s ′,A] = j
Pila Entrada Accion. . . s’ Xi1sj1 . . .Xih−1
sjh−1Xih s
β
σ . . . $ reducir (k) A −→ β
. . . s’ A j σ . . . $ . . .
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 89 / 563
![Page 90: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/90.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Funcionamiento del analisis sintactico LR 3 / 4
3.- Si accion[s, $] = Aceptar entonces
la cadena de entrada es reconociday el analisis sintactico ascendente finaliza.
Pila Entrada Accion. . . s $ Aceptar
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 90 / 563
![Page 91: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/91.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Funcionamiento del analisis sintactico LR 4 / 4
4.- Si accion[s, σ] = E n entonces llama a la funcion de controlde errores numero n
Pila Entrada Accion. . . s σ . . . $ E n
Nota
Los metodos de recuperacion de errores se describiran al final deltema.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 91 / 563
![Page 92: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/92.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Comparacion de los metodos de analisis LR
Metodo Potencia Tamano de tablaSLR 3o 1o
LR-canonico 1o 2o
LALR 2o 1o
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 92 / 563
![Page 93: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/93.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Ejemplo (Gramatica de prototipos de funciones en C 1 / 4)
P = {(1’) S’ −→ S(1) S −→ T id ( L ) ;(2) T −→ T *(3) T −→ int(4) L −→ L , T(5) L −→ T}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 93 / 563
![Page 94: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/94.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Ejemplo (Tabla LR 2 / 4)
Accion Ir-aid ( ) ; * int , $ S T L
0 d3 1 21 Aceptar2 d4 d53 r3 r3 r3 r34 d65 r2 r2 r2 r26 d3 8 77 d9 d108 r5 d5 r59 d11
10 d3 1211 r112 r4 d5 r4
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 94 / 563
![Page 95: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/95.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Ejemplo (Analisis sintactico ascendente LR 3 / 4)
Pila Entrada Accion
0int * id ( int ) ; $ desplazar 3
0 int 3 * id ( int ) ; $ reducir 3 T → int0 T 2 * id ( int ) ; $ desplazar 50 T 2 * 5 id ( int ) ; $ reducir 2 T → T *0 T 2 id ( int ) ; $ desplazar 4O T 2 id 4 ( int ) ; $ desplazar 60 T 2 id 4 ( 6 int ) ; $ desplazar 30 T 2 id 4 ( 6 int 3 ) ; $ reducir 3 T → int
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 95 / 563
![Page 96: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/96.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Ejemplo (Analisis sintactico ascendente LR 4 / 4)
Pila Entrada Accion0 T 2 id 4 ( 6 int 3 ) ; $ reducir 3 T → int0 T 2 id 4 ( 6 T 8 ) ; $ reducir 5 L → T0 T 2 id 4 ( 6 L 7 ) ; $ desplazar 90 T 2 id 4 ( 6 L 7 ) 9 ; $ desplazar 110 T 2 id 4 ( 6 L 7 ) 9 ; 11 $ reducir 1 S → T id ( L ) ;
0 S 1 $ Aceptar
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 96 / 563
![Page 97: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/97.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Ejemplo (Derivacion por la derecha)
S ⇒1
T id ( L ) ;
⇒5
T id ( T ) ;
⇒3
T id ( int ) ;
⇒2
T * id ( int ) ;
⇒3
int * id ( int ) ;
Nota
La derivacion por la derecha se ha obtenido en orden inverso.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 97 / 563
![Page 98: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/98.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Ejemplo (Arbol sintactico asociado a la derivacion 1 / 6)
) ;int * id int(
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 98 / 563
![Page 99: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/99.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Ejemplo (Arbol sintactico asociado a la derivacion 2 / 6)
) ;int * id int
T
(
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 99 / 563
![Page 100: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/100.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Ejemplo (Arbol sintactico asociado a la derivacion 3 / 6)
T
) ;int * id int
T
(
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 100 / 563
![Page 101: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/101.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Ejemplo (Arbol sintactico asociado a la derivacion 4 / 6)
T
) ;int * id int
T
(
T
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 101 / 563
![Page 102: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/102.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Ejemplo (Arbol sintactico asociado a la derivacion 5 / 6)
T
) ;int * id int
L
T
(
T
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 102 / 563
![Page 103: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/103.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
IntroduccionTabla de analisis sintactico ascendente LR
Ejemplo (Arbol sintactico asociado a la derivacion 6 / 6)
T
S
) ;int * id int
L
T
(
T
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 103 / 563
![Page 104: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/104.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Seccion actual
1 Introduccion
2 Analisis sintactico ascendente SLR
3 Analisis sintactico ascendente LR-canonico
4 Analisis sintactico ascendente LALR
5 Metodos de recuperacion de errores
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 104 / 563
![Page 105: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/105.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
2 Analisis sintactico ascendente SLRIntroduccionColeccion canonica de elementos-LR(0)Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 105 / 563
![Page 106: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/106.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
2 Analisis sintactico ascendente SLRIntroduccion
CaracterısticasElemento-LR(0)Prefijo viableElemento-LR(0) valido para un prefijo viable
Coleccion canonica de elementos-LR(0)Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 106 / 563
![Page 107: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/107.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRIntroduccion
Metodo SLR
SLR: simple L R
Metodo basado en la estrategia de desplazamiento-reduccion
Es el mas sencillo.Es el menos potente: se puede aplicar a menos gramaticasque los metodos LR-canonico o LALR.Su tabla de analisis sintactico es la mas pequena.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 107 / 563
![Page 108: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/108.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRIntroduccion
Metodo SLR
Utiliza una coleccion canonica de elementos-LR(0) paraconstruir una tabla de analisis sintactico SLR.
La coleccion canonica de elementos-LR(0) se construyeutilizando dos funciones auxiliares:
Funcion clausuraFuncion Ir a
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 108 / 563
![Page 109: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/109.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
2 Analisis sintactico ascendente SLRIntroduccion
CaracterısticasElemento-LR(0)Prefijo viableElemento-LR(0) valido para un prefijo viable
Coleccion canonica de elementos-LR(0)Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 109 / 563
![Page 110: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/110.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRIntroduccion
Definicion (Elemento-LR(0))
Si A → X1 X2 · · · Xn ∈ P, sus elementos-LR(0) son:
A → • X1 X2 · · · Xn
A → X1 • X2 · · · Xn
A → X1 X2 · · · • Xn
A → X1 X2 · · · Xn •
Si A → ε ∈ P entonces su elemento-LR(0) es:
A → •
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 110 / 563
![Page 111: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/111.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRIntroduccion
Ejemplo (Elemento-LR(0))
Si S → T id ( L ) ; ∈ P, sus elementos-LR(0) son:
S → • T id ( L ) ;S → T • id ( L ) ;S → T id • ( L ) ;S → T id ( • L ) ;S → T id ( L • ) ;S → T id ( L ) • ;S → T id ( L ) ; •
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 111 / 563
![Page 112: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/112.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRIntroduccion
Significado de un LR(0) - elemento
A → X1X2 · · ·Xi−1︸ ︷︷ ︸β1
• Xi · · ·Xn︸ ︷︷ ︸β2
β1: parte ya analizada.β2: parte pendiente de analizar.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 112 / 563
![Page 113: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/113.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRIntroduccion
Acciones de analisis sintactico
La posicion del punto determina la accion que se debe realizar
Si el punto esta al final, A −→ X1X2 · · ·Xn•. entoncesse producira una reduccion.
- X1X2 · · ·Xn es el pivote que estara en la cima de la pila- El pivote sera sustituido por el sımbolo A
Si no esta al final, A → X1 · · · Xi−1 • Xi · · · Xn, entonces
- todavıa no se habra localizado el pivote- y habra que realizar desplazamientos
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 113 / 563
![Page 114: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/114.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
2 Analisis sintactico ascendente SLRIntroduccion
CaracterısticasElemento-LR(0)Prefijo viableElemento-LR(0) valido para un prefijo viable
Coleccion canonica de elementos-LR(0)Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 114 / 563
![Page 115: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/115.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRIntroduccion
Definicion (Prefijo viable)
La cadena de sımbolos αβ ∈ V + = (VN ∪ VT )+ es un prefijoviable si
S∗⇒Dα β γ
∗⇒D
x ∈ V ∗T
donde D indica que la derivacion es por la derecha.
Nota
Un prefijo viable aparece al principio de una derivacion por laderecha que genera una cadena de terminales.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 115 / 563
![Page 116: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/116.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRIntroduccion
Ejemplo (Prefijos viables 1 / 2)
P = {(1’) S’ → S(1) S → T id ( L ) ;(2) T → T *(3) T → int(4) L → L , T(5) L → T
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 116 / 563
![Page 117: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/117.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRIntroduccion
Ejemplo (Prefijos viables 2 / 2)
Derivacion por la derecha:
S’ ⇒1′
S
⇒1
T id ( L ) ;
⇒5
T id ( T ) ;
⇒2
T id ( T * ) ;
⇒3
T id ( int ) ;
⇒3
int id ( int ) ;
Prefijos viables:
T , T id, T id (, T id ( L , T id ( L ) , T id ( L ) ;, etc.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 117 / 563
![Page 118: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/118.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
2 Analisis sintactico ascendente SLRIntroduccion
CaracterısticasElemento-LR(0)Prefijo viableElemento-LR(0) valido para un prefijo viable
Coleccion canonica de elementos-LR(0)Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 118 / 563
![Page 119: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/119.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRIntroduccion
Definicion (Elemento-LR(0) valido para un prefijo viable)
A → β1 • β2 es valido para el prefijo viable αβ1 si
S∗⇒Dα A w ⇒
A→β1β2
α β1 β2 w
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 119 / 563
![Page 120: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/120.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRIntroduccion
Ejemplos (Elemento-LR(0) valido para un prefijo viable 1 / 4)
Primer ejemplo
P’ = {(1’) S’ → S(1) S → T id ( L ) ;(2) T → T *(3) T → int(4) L → L , T(5) L → T
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 120 / 563
![Page 121: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/121.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRIntroduccion
Ejemplos (Elemento-LR(0) valido para un prefijo viable 2 / 4)
Primer ejemploPrefijo viable: α β1 = T id (︸ ︷︷ ︸
α
T︸︷︷︸β1
elemento-LR(0) valido para el prefijo viable:T︸︷︷︸A
→ T︸︷︷︸β1
• *︸︷︷︸β2
Derivacion por la derecha
S’+⇒ T id (︸ ︷︷ ︸
α
T︸︷︷︸A
) ;︸︷︷︸w
⇒T−→T *
T id (︸ ︷︷ ︸α
T︸︷︷︸β1
∗︸︷︷︸β2
) ;︸︷︷︸w
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 121 / 563
![Page 122: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/122.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRIntroduccion
Ejemplos (Elemento-LR(0) valido para un prefijo viable 3 / 4)
Segundo ejemplo
P’ = {(1’) E’ → E(1) E → E + E(2) E → E + E(3) E → ( E )(4) E → identificador(5) E → numero
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 122 / 563
![Page 123: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/123.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRIntroduccion
Ejemplos (Elemento-LR(0) valido para un prefijo viable 4 / 4)
Segundo ejemploPrefijo viable: α β1 = (︸︷︷︸
α
E︸︷︷︸β1
elemento-LR(0) valido para el prefijo viable:E︸︷︷︸A
→ E︸︷︷︸β1
• + E︸︷︷︸β2
Derivacion por la derechaE’ ⇒
1′E ⇒
3(︸︷︷︸α
E︸︷︷︸A
)︸︷︷︸w
⇒E−→E+E
(︸︷︷︸α
E︸︷︷︸β1
+E︸︷︷︸β2
)︸︷︷︸w
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 123 / 563
![Page 124: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/124.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRIntroduccion
Nota
Un elemento-LR(0) puede ser valido para varios prefijosviables: solamente se debe modificar α.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 124 / 563
![Page 125: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/125.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
2 Analisis sintactico ascendente SLRIntroduccionColeccion canonica de elementos-LR(0)Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 125 / 563
![Page 126: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/126.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
2 Analisis sintactico ascendente SLRIntroduccionColeccion canonica de elementos-LR(0)
DefinicionFuncion clausuraFuncion Ir aAlgoritmo de construccion de la coleccion canonica deelementos-LR(0)Ejemplo de construccion de la coleccion canonica de elementos-LR(0)
Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 126 / 563
![Page 127: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/127.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Definicion (Coleccion canonica de elementos-LR(0))
Esta compuesta por los conjuntos de elementos-LR(0) que sonvalidos para los prefijos viables de la gramatica.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 127 / 563
![Page 128: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/128.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Coleccion canonica de elementos-LR(0)
Permite generar un automata finito determinista (AFD) quereconoce los prefijos viables de la gramatica.
Funciones auxiliares para construir la coleccion canonica.
Funcion clausura.Funcion Ir a.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 128 / 563
![Page 129: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/129.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
2 Analisis sintactico ascendente SLRIntroduccionColeccion canonica de elementos-LR(0)
DefinicionFuncion clausuraFuncion Ir aAlgoritmo de construccion de la coleccion canonica deelementos-LR(0)Ejemplo de construccion de la coleccion canonica de elementos-LR(0)
Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 129 / 563
![Page 130: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/130.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Definicion (Funcion clausura)
Sea I un conjunto elementos-LR(0):
1.- I ⊆ clausura(I)2.- Si A → α • B β ∈ clausura(I) y B → γ ∈ P
entonces B → • γ ∈ clausura(I)
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 130 / 563
![Page 131: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/131.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplos (Funcion clausura 1 / 4)
Primer ejemplo
P’ = {(1’) S’ → S(1) S → T id ( L ) ;(2) T → T *(3) T → int(4) L → L , T(5) L → T
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 131 / 563
![Page 132: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/132.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplos (Funcion clausura 2 / 4)
Primer ejemplo
clausura({S’ → • S}) = {S’ → • S,S → • T id ( L ) ;,T → • T *,T → • int}
= I0
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 132 / 563
![Page 133: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/133.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplos (Funcion clausura 3 / 4)
Segundo ejemplo
P’ = {(1’) E’ → E(1) E → E + E(2) E → E + E(3) E → ( E )(4) E → identificador(5) E → numero
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 133 / 563
![Page 134: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/134.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplos (Funcion clausura 4 / 4)
Segundo ejemplo
clausura({E’ → • E}) = {E’ → • E,E → • E + E,E → • E * E,E → • ( E ),E → • identificador,E → • numero}
= I0
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 134 / 563
![Page 135: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/135.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
2 Analisis sintactico ascendente SLRIntroduccionColeccion canonica de elementos-LR(0)
DefinicionFuncion clausuraFuncion Ir aAlgoritmo de construccion de la coleccion canonica deelementos-LR(0)Ejemplo de construccion de la coleccion canonica de elementos-LR(0)
Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 135 / 563
![Page 136: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/136.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Definicion (Funcion Ir a)
Sea I un conjunto elementos-LR(0) y X ∈ V = VN ∪ VT
Ir a(I, X) = clausura({A → α X • β | A → α • X β ∈ I})
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 136 / 563
![Page 137: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/137.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplos (Funcion Ir a 1 / 9)
Primer ejemplo
I0 = {S’ → • S,S → • T id ( L ) ;T → • T *T → • int
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 137 / 563
![Page 138: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/138.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplos (Funcion Ir a 2 / 9)
Primer ejemplo
Ir a(I0,S) = clausura({S’ → S •})= {S’ → S •}= I1
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 138 / 563
![Page 139: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/139.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplos (Funcion Ir a 3 / 9)
Primer ejemplo
Ir a(I0,T) = clausura({S → T • id ( L ) ;,T → T • * })
= { S → T • id ( L ) ;, T → T • * }= I2
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 139 / 563
![Page 140: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/140.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplos (Funcion Ir a 4 / 9)
Primer ejemplo
Ir a(I0,int) = clausura({T → int • })= {T → int • }= I3
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 140 / 563
![Page 141: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/141.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplos (Funcion Ir a 5 / 9)
Segundo ejemplo
I0 = {E’ → • E,E → • E + E,E → • E * E,E → • ( E ),E → • identificador,E → • numero
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 141 / 563
![Page 142: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/142.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplos (Funcion Ir a 6 / 9)
Segundo ejemplo
Ir a(I0,E) = clausura( { E’ → E •,E → E • + E,E → E • * E } )
= {E’ → E •, E → E • + E, E → E • * E}= I1
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 142 / 563
![Page 143: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/143.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplos (Funcion Ir a 7 / 9)
Segundo ejemplo
Ir a(I0,“ (”) = clausura({E’ → ( • E ) })= {
E’ → ( • E ),E → • E + E,E → • E * E,E → • ( E ),E → • identificador,E → • numero}
= I2
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 143 / 563
![Page 144: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/144.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplos (Funcion Ir a 8 / 9)
Segundo ejemplo
Ir a(I0,id) = clausura({E → id • })= { E → id • }= I3
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 144 / 563
![Page 145: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/145.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplos (Funcion Ir a 9 / 9)
Segundo ejemplo
Ir a(I0,numero) = clausura({E → numero • })= { E → numero • }= I4
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 145 / 563
![Page 146: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/146.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
2 Analisis sintactico ascendente SLRIntroduccionColeccion canonica de elementos-LR(0)
DefinicionFuncion clausuraFuncion Ir aAlgoritmo de construccion de la coleccion canonica deelementos-LR(0)Ejemplo de construccion de la coleccion canonica de elementos-LR(0)
Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 146 / 563
![Page 147: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/147.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Algoritmo (Construccion de la coleccion canonica)
InicioI0 ← clausura({S’ → • S})C ← {I0} ∧ I0 no marcadopara cada I ∈ C ∧ I no marcado hacer
marcar Ipara cada X ∈ V hacer
I’ ← Ir a(I, X)si ( (I’ 6= ∅) ∧ (I’ /∈ C) )
entonces C ← C ∪ {I’} ∧ I’ no marcadofin si
fin parafin para
fin
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 147 / 563
![Page 148: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/148.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Notas (Construccion de la coleccion canonica)
Genera un automata finito determinista (AFD) que reconocelos prefijos viables de la gramatica.
Los elementos-LR(0) se agrupan en conjuntos que secorresponden con los estados del automata.
Todos los estados del automata son finales.
Los estados del automata se corresponderan con los estadosde la tabla de analisis sintactico SLR.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 148 / 563
![Page 149: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/149.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
2 Analisis sintactico ascendente SLRIntroduccionColeccion canonica de elementos-LR(0)
DefinicionFuncion clausuraFuncion Ir aAlgoritmo de construccion de la coleccion canonica deelementos-LR(0)Ejemplo de construccion de la coleccion canonica de elementos-LR(0)
Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 149 / 563
![Page 150: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/150.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 1 / 20)
P’ = {(1’) S’ → S(1) S → T id ( L ) ;(2) T → T *(3) T → int(4) L → L , T(5) L → T
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 150 / 563
![Page 151: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/151.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 2 / 20)
Construccion del conjunto I0
I0 = clausura({S’ → • S})= {
S’ → • S,S → • T id ( L ) ;,T → • T *,T → • int}
I0 tendra transiciones Ir a con S, T e int
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 151 / 563
![Page 152: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/152.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 3 / 20)
Transiciones del conjunto I0
Ir a(I0,S) = clausura({ S’ → S • })= {S’ → S • }= I1
Ir a(I0,T) = clausura({S → T • id ( L ) ;,T → T • * })
= { S → T • id ( L ) ;, T → T • * }= I2
Ir a(I0,int) = clausura({T → int • })= {T → int • }= I3
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 152 / 563
![Page 153: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/153.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 4 / 20)
Transiciones del conjunto I1 = {S’ → S • }
Ir a(I1, X) = ∅ ∀X ∈ V
El conjunto I1 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 153 / 563
![Page 154: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/154.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 5 / 20)
Transiciones del conjunto I2
I2 = { S → T • id ( L ) ;, T → T • * }
Ir a(I2,id) = clausura({S → T id • ( L ) ; })= {S → T id • ( L ) ; }= I4
Ir a(I2,*) = clausura({T → T * • })= {T → T * • }= I5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 154 / 563
![Page 155: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/155.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 6 / 20)
Transiciones del conjunto I3 = {T → int • }
Ir a(I3, X) = ∅ ∀X ∈ V
El conjunto I3 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 155 / 563
![Page 156: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/156.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 7 / 20)
Transiciones del conjunto I4 = {S → T id • ( L ) ; }
Ir a(I4,“(”) = clausura({S →T id ( • L ) ;})= {
S → T id ( • L ) ;L → • L , T,L → • T,T → • T *,T → • int}
= I6
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 156 / 563
![Page 157: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/157.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 8 / 20)
Transiciones del conjunto I5 = {T → T * • }
Ir a(I5, X) = ∅ ∀X ∈ V
El conjunto I5 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 157 / 563
![Page 158: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/158.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 9 / 20)
Transiciones del conjunto I6
I6 = {S → T id ( • L ) ;, L → • L , T,L → • T, T → • T *,T → • int}
I6 tendra transiciones Ir a con L, T e int
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 158 / 563
![Page 159: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/159.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 10 / 20)
Transiciones del conjunto I6
Ir a(I6,L) = clausura({S → T id ( L • ) ;,L → L • , T })
= {S → T id ( L • ) ;, L → L • , T }= I7
Ir a(I6,T) = clausura({ L → T • , T → T • * })= { L → T • , T → T • * }= I8
Ir a(I6,int) = clausura({T → int • })= {T → int • }= I3
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 159 / 563
![Page 160: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/160.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 11 / 20)
Transiciones del conjunto I7
I7 = {S → T id ( L • ) ;, L → L • , T }Ir a(I7,”)”}) = clausura({S → T id ( L ) • ; })
= {S → T id ( L ) • ; }= I9
Ir a(I7,“,”) = clausura({L → L , • T})= {L → L , • T,
T → • T *, T → • int }= I10
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 160 / 563
![Page 161: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/161.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 12 / 20)
Transiciones del conjunto I8
I8 = { L → T • , T → T • * }
Ir a(I8,*) = clausura({T → T * • })= {T → T * • }= I5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 161 / 563
![Page 162: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/162.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 13 / 20)
Transiciones del conjunto I9
I9 = {S → T id ( L ) • ; }
Ir a(I9,“;”) = clausura( {S → T id ( L ) ; • })= {S → T id ( L ) ; • }= I11
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 162 / 563
![Page 163: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/163.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 14 / 20)
Transiciones del conjunto I10
I10 = {L → L , • T, T → • T *, T → • int }
Ir a(I10,T) = clausura({L → L , T •, T → T • * })= {L → L , T •, T → T • * }= I12
Ir a(I10,int) = clausura({T → int • })= {T → int • }= I3
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 163 / 563
![Page 164: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/164.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 15 / 20)
Transiciones del conjunto I11 = {S → T id ( L ) ; • }
Ir a(I11, X) = ∅ ∀X ∈ V
El conjunto I11 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 164 / 563
![Page 165: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/165.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 16 / 20)
Transiciones del conjunto I12
I12 = {L → L , T •, T → T • * }
Ir a(I12,*) = clausura({T → T * • })= {T → T * • }= I5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 165 / 563
![Page 166: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/166.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 17 / 20)
Coleccion canonica: primera parte
I0 = { S’ → • S, S → • T id ( L ) ;, T → • T *, T → • int }I1 = {S’ → S • }I2 = { S → T • id ( L ) ;, T → T • * }I3 = {T → int • }I4 = {S → T id • ( L ) ; }I5 = {T → T * • }I6 = { S → T id ( • L ) ;, L → • L , T, L → • T,
T → • T *, T → • int }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 166 / 563
![Page 167: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/167.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Gramatica de los prototipos 18 / 20)
Coleccion canonica: segunda parte
I7 = {S → T id ( L • ) ;, L → L • , T }I8 = { L → T • , T → T • * }I9 = {S → T id ( L ) • ; }I10 = {L → L , • T, T → • T *, T → • int }I11 = {S → T id ( L ) ; • }I12 = {L → L , T •, T → T • * }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 167 / 563
![Page 168: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/168.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Nota (Automata que reconoce prefijos viables)
Las transiciones entre los conjuntos de elementos-LR(0)permiten construir el automata finito determinista quereconoce los prefijos viables de la gramatica.
Todos los estados del automata son finales.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 168 / 563
![Page 169: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/169.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Automata que reconoce prefijos viables 19 / 20)
Representacion grafica
T2 4 6
(
5*
identificador
0
S
1T
8
*
*
L
3
int
int 7
int
12
10
,
T
9
11;
)
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 169 / 563
![Page 170: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/170.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejemplo (Automata que reconoce prefijos viables 20 / 20)
Representacion tabularid ( ) ; * int , S T L
0 3 1 212 4 534 656 3 8 77 9 108 59 11
10 3 121112 5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 170 / 563
![Page 171: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/171.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRColeccion canonica de elementos-LR(0)
Ejercicio (Gramatica de las expresiones aritmeticas)
Construccion de la coleccion canonica de elementos-LR(0)de la gramatica:
P’ = {(1’) E’ → E(1) E → E + E(2) E → E + E(3) E → ( E )(4) E → identificador(5) E → numero
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 171 / 563
![Page 172: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/172.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
2 Analisis sintactico ascendente SLRIntroduccionColeccion canonica de elementos-LR(0)Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 172 / 563
![Page 173: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/173.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRAlgoritmo de construccion de la tabla de analisis SLR
Definicion (Tabla de analisis sintactico SLR )
accion ir aσ1 σ2 . . . σn $ A1 . . . Am
s0
s1
. . .
sk
∀i ∈ {1, . . . , k} si es un estado del analizador sintactico
∀i ∈ {1, . . . , n} σi ∈ VT
∀i ∈ {1, . . . ,m} Ai ∈ VN
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 173 / 563
![Page 174: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/174.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRAlgoritmo de construccion de la tabla de analisis SLR
Ejemplo (Tabla de analisis sintactico SLR 1 / 2)
Gramatica de prototipos de funciones en C
P’ = {(1’) S’ → S(1) S → T id ( L ) ;(2) T → T *(3) T → int(4) L → L , T(5) L → T
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 174 / 563
![Page 175: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/175.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRAlgoritmo de construccion de la tabla de analisis SLR
Ejemplo (Tabla de analisis sintactico SLR 2 / 2)
Accion Ir-aid ( ) ; * int , $ S T L
0 d 3 1 21 Aceptar2 d 4 d 53 r 3 r 3 r 3 r 34 d 65 r 2 r 2 r 2 r 26 d 3 8 77 d 9 d 108 r 5 d 5 r 59 d 11
10 d 3 1211 r 112 r 4 d 5 r 4
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 175 / 563
![Page 176: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/176.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRAlgoritmo de construccion de la tabla de analisis SLR
Algoritmo (Construccion de la tabla SLR 1 / 10)
1.- Ampliar la gramatica con la regla de produccion S’ → S.
2.- Construir la coleccion canonica de Elementos-LR(0).
3.- Generar el automata que reconoce los prefijos viables.
4.- Completar la parte accion.
5.- Completar la parte ir a.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 176 / 563
![Page 177: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/177.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRAlgoritmo de construccion de la tabla de analisis SLR
Algoritmo (Construccion de la tabla SLR 2 / 10)
1.- Ampliar la gramatica con la regla de produccion S’ → S.
- Evita que el sımbolo inicial aparezca en la parte derecha deuna regla de produccion.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 177 / 563
![Page 178: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/178.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRAlgoritmo de construccion de la tabla de analisis SLR
Algoritmo (Construccion de la tabla SLR 3 / 10)
2.- Construir la coleccion canonica de Elementos-LR(0).
- Se debe comenzar por I0 = clausura ({S’ → • S })
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 178 / 563
![Page 179: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/179.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRAlgoritmo de construccion de la tabla de analisis SLR
Algoritmo (Construccion de la tabla SLR 4 / 10)
3.- Generar el automata que reconoce los prefijos viables.
- Los conjuntos de elementos-LR(1) se corresponden con losestados del automata.
- Todos los estados del automata son finales.
- El estado inicial se corresponde con el conjunto de elementosque contenga a S ′ → •S, que generalmente es I0
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 179 / 563
![Page 180: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/180.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRAlgoritmo de construccion de la tabla de analisis SLR
Algoritmo (Construccion de la tabla SLR 5 / 10)
4.- Completar la parte accion
4.1 Desplazar4.2 Reducir4.3 Aceptar4.4 Funcion de error
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 180 / 563
![Page 181: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/181.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRAlgoritmo de construccion de la tabla de analisis SLR
Algoritmo (Construccion de la tabla SLR 6 / 10)
4.- Completar la parte accion:
4.1 DesplazarSi A→ α • σβ ∈ Ii ∧ σ ∈ VT ∧ Ir a(Ii ,σ) = Ijentonces accion[i, σ] = d j
1.- se desplaza el sımbolo σ desde la entrada a la pila2.- y se pasa al estado j.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 181 / 563
![Page 182: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/182.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRAlgoritmo de construccion de la tabla de analisis SLR
Algoritmo (Construccion de la tabla SLR 7 / 10)
4.- Completar la parte accion:
4.2.- Reducir.Si A→ α• ∈ Ii entonces accion[i, σ] = r kdonde
σ ∈ Siguiente(A)y k representa la regla de produccion k: A→ α ∈ P
Nota
Se requiere el calculo del conjunto Siguiente(A) ∀A ∈ VN
Tambien se requiere calcular el conjunto Primero(A) ∀A ∈ VN
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 182 / 563
![Page 183: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/183.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRAlgoritmo de construccion de la tabla de analisis SLR
Algoritmo (Construccion de la tabla SLR 8 / 10)
4.- Completar la parte accion:
4.3.- AceptarSi S ′ → •S ∈ Ii entonces accion[i, $] = Aceptar
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 183 / 563
![Page 184: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/184.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRAlgoritmo de construccion de la tabla de analisis SLR
Algoritmo (Construccion de la tabla SLR 9 / 10)
4.- Completar la parte accion:
4.4.- Funcion de errorLas celdas vacıas de la parte accion se completaran confunciones de tratamiento de error.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 184 / 563
![Page 185: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/185.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRAlgoritmo de construccion de la tabla de analisis SLR
Algoritmo (Construccion de la tabla SLR 10 / 10)
5.- Completar la parte ir a
Si Ir a(Ii , A) = Ij ∧ A ∈ VN entonces ir a[i, A] = j
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 185 / 563
![Page 186: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/186.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRAlgoritmo de construccion de la tabla de analisis SLR
Ejercicio (Construccion de la tabla SLR)
Las celdas vacıas de la parte ir a nunca se consultaran:¡demuestralo!.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 186 / 563
![Page 187: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/187.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
2 Analisis sintactico ascendente SLRIntroduccionColeccion canonica de elementos-LR(0)Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 187 / 563
![Page 188: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/188.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
2 Analisis sintactico ascendente SLRIntroduccionColeccion canonica de elementos-LR(0)Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLR
Gramatica de los prototipos de funcionesGramatica de las enumeraciones
Conflictos en el analisis sintactico ascendente SLR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 188 / 563
![Page 189: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/189.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de los prototipos de funciones 1 / 12)
P = {(1) S → T id ( L ) ;(2) T → T *(3) T → int(4) L → L , T(5) L → T
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 189 / 563
![Page 190: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/190.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de los prototipos de funciones 2 / 12)
1.- Ampliacion de la gramatica
P’ = {(1’) S’ → S(1) S → T id ( L ) ;(2) T → T *(3) T → int(4) L → L , T(5) L → T
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 190 / 563
![Page 191: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/191.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de los prototipos de funciones 3 / 12)
2.- Coleccion canonica: primera parte
I0 = { S’ → • S, S → • T id ( L ) ;, T → • T *, T → • int }I1 = {S’ → S • }I2 = { S → T • id ( L ) ;, T → T • * }I3 = {T → int • }I4 = {S → T id • ( L ) ; }I5 = {T → T * • }I6 = { S → T id ( • L ) ;, L → • L , T, L → • T,
T → • T *, T → • int }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 191 / 563
![Page 192: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/192.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de los prototipos de funciones 4 / 12)
2.- Coleccion canonica: segunda parte
I7 = {S → T id ( L • ) ;, L → L • , T }I8 = { L → T • , T → T • * }I9 = {S → T id ( L ) • ; }I10 = {L → L , • T, T → • T *, T → • int }I11 = {S → T id ( L ) ; • }I12 = {L → L , T •, T → T • * }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 192 / 563
![Page 193: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/193.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de los prototipos de funciones 5 / 12)
3.- Automata que reconoce los prefijos viables
Representacion grafica
T2 4 6
(
5*
identificador
0
S
1T
8
*
*
L
3
int
int 7
int
12
10
,
T
9
11;
)
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 193 / 563
![Page 194: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/194.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de los prototipos de funciones 6 / 12)3.- Automata que reconoce los prefijos viables
Representacion tabularid ( ) ; * int , S T L
0 3 1 212 4 534 656 3 8 77 9 108 59 11
10 3 121112 5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 194 / 563
![Page 195: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/195.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de los prototipos de funciones 7 / 12)
4.- Completar la parte accion: conjuntos auxiliares
Primero Siguiente
S’ int $
S int $
T int id, *, “)”, “,”L int “)”, “,”
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 195 / 563
![Page 196: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/196.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de los prototipos de funciones 8 / 12)4.- Completar la parte accion
accion ir aid ( ) ; * int , $ S T L
0 d 31 Aceptar2 d 4 d 53 r 3 r 3 r 3 r 34 d 65 r 2 r 2 r 2 r 26 d 37 d 9 d 108 r 5 d 5 r 59 d 11
10 d 311 r 112 r 4 d 5 r 4
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 196 / 563
![Page 197: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/197.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de los prototipos de funciones 9 / 12)5.- Completar la parte ir a
accion ir-aid ( ) ; * int , $ S T L
0 d 3 1 21 Aceptar2 d 4 d 53 r 3 r 3 r 3 r 34 d 65 r 2 r 2 r 2 r 26 d 3 8 77 d 9 d 108 r 5 d 5 r 59 d 11
10 d 3 1211 r 112 r 4 d 5 r 4
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 197 / 563
![Page 198: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/198.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de los prototipos de funciones 10 / 12)
Analisis sintactico ascendente SLR: primera parte
Pila Entrada Accion0 int id ( int ) ; $ desplazar 30 int 3 id ( int ) ; $ reducir 3 T → int0 T 2 id ( int ) ; $ desplazar 4O T 2 id 4 ( int ) ; $ desplazar 60 T 2 id 4 ( 6 int ) ; $ desplazar 30 T 2 id 4 ( 6 int 3 ) ; $ reducir 3 T → int
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 198 / 563
![Page 199: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/199.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de los prototipos de funciones 11 / 12)
Analisis sintactico ascendente SLR: segunda parte
Pila Entrada Accion0 T 2 id 4 ( 6 int 3 ) ; $ reducir 3 T → int0 T 2 id 4 ( 6 T 8 ) ; $ reducir 5 L → T0 T 2 id 4 ( 6 L 7 ) ; $ desplazar 90 T 2 id 4 ( 6 L 7 ) 9 ; $ desplazar 110 T 2 id 4 ( 6 L 7 ) 9 ; 11 $ reducir 1 S → T id ( L ) ;
0 S 1 $ Aceptar
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 199 / 563
![Page 200: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/200.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de los prototipos de funciones 12 / 12)
Derivacion por la derecha obtenida en orden inverso
S ⇒1
T id ( L ) ;
⇒5
T id ( T ) ;
⇒3
T id ( int ) ;
⇒3
int * id ( int ) ;
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 200 / 563
![Page 201: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/201.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejercicio
Dibuja el arbol sintactico de forma ascendente a partir de laderivacion por la derecha obtenida en orden inverso.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 201 / 563
![Page 202: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/202.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
2 Analisis sintactico ascendente SLRIntroduccionColeccion canonica de elementos-LR(0)Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLR
Gramatica de los prototipos de funcionesGramatica de las enumeraciones
Conflictos en el analisis sintactico ascendente SLR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 202 / 563
![Page 203: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/203.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 1 / 24)
P = {(1) S → S D(2) S → ε(3) D → enum identificador { L } ;(4) L → identificador(5) L → L , identificador
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 203 / 563
![Page 204: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/204.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 2 / 24)
1.- Ampliacion de la gramatica
P’ = {(1’) S’ → S(1) S → S D(2) S → ε(3) D → enum identificador { L } ;(4) L → identificador(5) L → L , identificador
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 204 / 563
![Page 205: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/205.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 3 / 24)
2.- Construccion de la coleccion canonica
Construccion del conjunto I0
I0 = clausura({S’ → • S })= {
S’ → • S,S → • S D,S → •}
I0 tendra una transicion Ir a con S.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 205 / 563
![Page 206: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/206.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 4 / 24)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I0
Ir a(I0,S) = clausura({ S’ → S •, S → S • D})= {
S’ → S •,S → S • D,D → • enum identificador { L };}
= I1
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 206 / 563
![Page 207: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/207.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 5 / 24)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I1
I1 = { S’ → S •, S → S • D, D → • enum id { L }; }
Ir a(I1,D) = clausura({S → S D •})= {S → S D •}= I2
Ir a(I1,enum) = clausura({D → enum • id { L } ; })= {D → enum • id { L } ; }= I3
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 207 / 563
![Page 208: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/208.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 6 / 24)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I2 = {S → S D •}
Ir a(I2, X) = ∅ ∀X ∈ V
El conjunto I2 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 208 / 563
![Page 209: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/209.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 7 / 24)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I3 = {D → enum • id { L } ; }
Ir a(I3,id) = clausura({D → enum id • { L } ;})= {D → enum id • { L } ;}= I4
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 209 / 563
![Page 210: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/210.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 8 / 24)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I4 = {D → enum id • { L } ;}
Ir a(I4,{) = clausura({D → enum id { • L} ; })= {
D → enum id { • L} ;,L → • id,L → • L , id}
= I5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 210 / 563
![Page 211: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/211.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 9 / 24)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I5
I5 = { D → enum id { • L} ;, L → • id, L → • L , id }Ir a(I5,L) = clausura({ D → enum id { L • } ;,
L → L • , id } )= { D → enum id { L • } ;, L → L • , id }= I6
Ir a(I5,id) = clausura({L → id • })= {L → id • }= I7
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 211 / 563
![Page 212: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/212.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 10 / 24)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I6
I6 = { D → enum id { L • } ;, L → L • , id }
Ir a(I6,}) = clausura({D → enum id { L } • ; })= {D → enum id { L } • ; }= I8
Ir a(I6,“,”) = clausura({L → L , • id })= {L → L , • id }= I9
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 212 / 563
![Page 213: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/213.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 11 / 24)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I7 = {L → identificador • }
Ir a(I7, X) = ∅ ∀X ∈ V
El conjunto I7 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 213 / 563
![Page 214: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/214.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 12 / 24)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I8 = {D → enum id { L } • ; }
Ir a(I8,“;”) = clausura({D → enum id { L } ; • })= {D → enum id { L } ; • }= I10
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 214 / 563
![Page 215: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/215.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 13 / 24)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I9 = {L → L , • id }
Ir a(I9,id) = clausura({L → L , id • })= {L → L , id • }= I11
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 215 / 563
![Page 216: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/216.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 14 / 24)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I10
I10 = {D → enum id { L } ; • }
Ir a(I10, X) = ∅ ∀X ∈ V
El conjunto I10 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 216 / 563
![Page 217: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/217.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 15 / 24)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I11
I11 = {L → L , id • }
Ir a(I11, X) = ∅ ∀X ∈ V
El conjunto I11 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 217 / 563
![Page 218: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/218.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 16 / 24)
2.- Construccion de la coleccion canonica
Coleccion canonica: primera parte
I0 = { S’ → • S, S → • S D, S → • }I1 = { S’ → S •, S → S • D, D → • enum id { L }; }I2 = {S → S D •}I3 = {D → enum • id { L } ; }I4 = {D → enum id • { L } ;}I5 = { D → enum id { • L} ;, L → • id, L → • L , id }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 218 / 563
![Page 219: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/219.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 17 / 24)
2.- Construccion de la coleccion canonica
Coleccion canonica: segunda parte
I6 = { D → enum id { L • } ;, L → L • , id }I7 = {L → id • }I8 = {D → enum id { L } • ; }I9 = {L → L , • id }I10 = {D → enum id { L } ; • }I11 = {L → L , id • }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 219 / 563
![Page 220: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/220.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 19 / 24)
3.-Automata que reconoce los prefijos viables
Estado enum id { } ; , $ S D L
0 11 3 223 44 55 7 66 8 978 109 11
1011
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 220 / 563
![Page 221: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/221.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 18 / 24)
4.- Completar la parte accion: conjuntos auxiliares
Primero Siguiente
S’ enum, ε $
S enum, ε $, enumD enum $, enumL idntificador }, “,”
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 221 / 563
![Page 222: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/222.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 20 / 24)
4.- Completar la parte accion
Accion Ir-aEstado enum id { } ; , $ S D L
0 r 2 r 21 d 3 ACEPTAR2 r 1 r 13 d 44 d 55 d 76 d 8 d 97 r 4 r 48 d 109 d 11
10 r 3 r 311 r 5 r 5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 222 / 563
![Page 223: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/223.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 21 / 24)
5.- Completar la parte ir a
Accion Ir-aEstado enum id { } ; , $ S D L
0 r 2 r 2 11 d 3 ACEPTAR 22 r 1 r 13 d 44 d 55 d 7 66 d 8 d 97 r 4 r 48 d 109 d 11
10 r 3 r 311 r 5 r 5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 223 / 563
![Page 224: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/224.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 22 / 24)
P’ = {(1’) S’ → S(1) S → S D(2) S → ε(3) D → enum identificador { L } ;(4) L → identificador(5) L → L , identificador
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 224 / 563
![Page 225: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/225.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 23 / 24)
Analisis sintactico SLR: primera parte
Pila Entrada Accion0 enum id { id , id } ; $ r 2 S → ε0 S 1 enum id { id , id } ; $ d 30 S 1 enum 3 id { id , id } ; $ d 40 S 1 enum 3 id 4 { id , id } ; $ d 50 S 1 enum 3 id 4 { 5 id , id } ; $ d 70 S 1 enum 3 id 4 { 5 id 7 , id } ; $ r 4 L → id0 S 1 enum 3 id 4 { 5 L 6 , id } ; $ d 9
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 225 / 563
![Page 226: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/226.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de las enumeraciones 24 / 24)
Analisis sintactico SLR: segunda parte
Pila Entrada Accion0 S 1 enum 3 id 4 { 5 L 6 , 9 id } ; $ d 11
0 S 1 enum 3 id 4 { 5 L 6 , 9 id 11 } ; $ r 5 L → L , id0 S 1 enum 3 id 4 { 5 L 6 } ; $ d 8
0 S 1 enum 3 id 4 { 5 L 6 } 8 ; $ d 10
0 S 1 enum 3 id 4 { 5 L 6 } 8 ; 10 $ r 3 D → enum id {L} ;0 S 1 D 2 $ r 1 S → S D
0 S 1 $ Aceptar
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 226 / 563
![Page 227: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/227.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLREjemplos de analisis sintactico ascendente SLR
Ejercicios (2.- Gramatica de las enumeraciones)
Construccion del automata que reconoce prefijos viables
Representacion grafica.
Construccion de la derivacion por la derecha
Construccion del arbol sintactico de forma ascendente.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 227 / 563
![Page 228: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/228.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
2 Analisis sintactico ascendente SLRIntroduccionColeccion canonica de elementos-LR(0)Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 228 / 563
![Page 229: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/229.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
2 Analisis sintactico ascendente SLRIntroduccionColeccion canonica de elementos-LR(0)Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
DefinicionEjemplos
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 229 / 563
![Page 230: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/230.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Definicion (Conflicto en la tabla SLR)
Se presenta un conflicto en la tabla SLR cuando hay al menosuna celda de la parte accion con dos o mas accionesdiferentes.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 230 / 563
![Page 231: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/231.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Tipos de conflictos
Desplazamiento-reduccion.
Reduccion-reduccion.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 231 / 563
![Page 232: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/232.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Conflicto de desplazamiento-reduccion
Al menos una celda de la tabla accion tiene las opciones dedesplazar y reducir simultaneamente:
accion[i, σ] =
{d jr k
La opcion por defecto suele ser realizar el desplazamiento.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 232 / 563
![Page 233: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/233.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Conflicto de desplazamiento-reduccion
Este conflicto se genera si se cumplen las siguientescondiciones:
1.- Si ∃A→ α • σβ ∈ Ii ∧ Ir a(Ii , σ) = Ijentonces accion[i,σ] = d j
2.- Si ∃B → γ• ∈ Ii ∧ σ ∈ siguiente(B)entonces accion[i,σ] = r kdonde k es la regla B → γ ∈ P
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 233 / 563
![Page 234: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/234.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Conflicto de reduccion-reduccion
Al menos una celda de la tabla accion tiene la opcion dereducir con dos o mas reglas simultaneamente:
accion[i, σ] =
{r hr k
Para evitar este conflicto del analisis SLR, hay dos opciones:
1.- Disenar una nueva gramatica2.- Comprobar si el metodo LR-canonico no genera el conflicto.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 234 / 563
![Page 235: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/235.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Conflicto de reduccion-reduccion
Este conflicto se genera si se cumplen las siguientescondiciones:
1.- Si ∃A→ α• ∈ Ii ∧ σ ∈ siguiente(B)entonces accion[i,σ] = r hdonde h es la regla A→ α ∈ P
2.- Si ∃B → α• ∈ Ii ∧ σ ∈ siguiente(B)entonces accion[i,σ] = r kdonde k es la regla B → α ∈ P
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 235 / 563
![Page 236: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/236.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
2 Analisis sintactico ascendente SLRIntroduccionColeccion canonica de elementos-LR(0)Algoritmo de construccion de la tabla de analisis SLREjemplos de analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
DefinicionEjemplos
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 236 / 563
![Page 237: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/237.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplos (Conflictos en el analisis sintactico SLR)
Ejemplos de conflicto de desplazamiento - reduccion.
1.- Gramatica de las expresiones aritmeticas2.- Gramatica de sentencia de asignacion
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 237 / 563
![Page 238: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/238.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplos (Conflictos en el analisis sintactico SLR)
Ejemplos de conflicto de desplazamiento - reduccion.
1.- Gramatica de las expresiones aritmeticas2.- Gramatica de sentencia de asignacion
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 238 / 563
![Page 239: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/239.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 1 / 39)
P = {(1) E → E + E(2) E → E * E(3) E → ( E )(4) E → id(5) E → numero
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 239 / 563
![Page 240: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/240.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 2 / 39)
1.- Ampliacion de la gramatica
P = {(1’) E’ → E(1) E → E + E(2) E → E * E(3) E → ( E )(4) E → id(5) E → numero
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 240 / 563
![Page 241: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/241.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 3 / 39)
2.- Construccion de la coleccion canonica
Conjunto I0: primera parte
I0 = clausura({ E’ → • E }){E’ → • E,E → • E + E, E → • E * E,E → • ( E ), E → • id, E → • numero}
I0 tendra transiciones Ir a con E, +, *, (, id y numero
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 241 / 563
![Page 242: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/242.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 4 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I0: segunda parte
Ir a(I0,E) = clausura({ E’ → E •, E → E • + E, E → E • * E})= { E’ → E •, E → E • + E, E → E • * E}= I1
Ir a(I0,“(”) = clausura({ E → ( • E})= {
E → ( • E), E → • E + E, E → • E * E,E → • ( E ),E → • id, E → • numero}
= I2
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 242 / 563
![Page 243: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/243.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 5 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I0: tercera parte
Ir a(I0,id) = clausura({ E → id • })= { E → id • }= I3
Ir a(I0,numero) = clausura({ E → numero • })= { E → numero • }= I4
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 243 / 563
![Page 244: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/244.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 6 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I1: primera parte
I1 = { E’ → E •, E → E • + E, E → E • * E }
I1 tendra transiciones Ir a con + y *.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 244 / 563
![Page 245: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/245.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 7 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I1: segunda parte
Ir a(I1,+) = clausura({ E → E + • E })= {
E → E + • E, E → • E + E, E → • E * E,E → • ( E ), E → • id, E → • numero}
= I5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 245 / 563
![Page 246: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/246.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 8 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I1: tercera parte
Ir a(I1,*) = clausura({ E → E * • E })= {
E → E * • E, E → • E + E, E → • E * E,E → • ( E ), E → • id, E → • numero}
= I6
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 246 / 563
![Page 247: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/247.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 9 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I2: primera parte
I2 = { E → ( • E), E → • E + E, E → • E * E,
E → • ( E ),E → • id, E → • numero }
I2 tendra transiciones Ir a con E, (, id y numero.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 247 / 563
![Page 248: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/248.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 10 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I2: segunda parte
Ir a(I2,E) = clausura({ E → ( E • ), E → E • + E, E → E • * E} ){ E → ( E • ), E → E • + E, E → E • * E}
= I7
Ir a(I2,“(”) = clausura({ E → ( • E) })= {
E → ( • E), E → • E + E, E → • E * E,E → • ( E ), E → • id, E→ • numero }
= I2
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 248 / 563
![Page 249: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/249.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 11 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I2: tercera parte
Ir a(I2,id) = clausura({E → id • })= {E → id • }= I3
Ir a(I2,numero) = clausura({E → numero • })= {E → numero • }= I4
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 249 / 563
![Page 250: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/250.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 12 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I3 = {E → id • }
Ir a(I3, X) = ∅ ∀X ∈ V
El conjunto I3 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 250 / 563
![Page 251: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/251.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 13 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I4 = {E → numero • }
Ir a(I4, X) = ∅ ∀X ∈ V
El conjunto I4 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 251 / 563
![Page 252: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/252.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 14 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I5: primera parte
I5 = {E → E + • E, E → • E + E, E → • E * E,E → • ( E ), E → • id, E → • numero}
I5 tendra transiciones Ir a con E, (, id y numero.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 252 / 563
![Page 253: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/253.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 15 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I5: segunda parte
Ir a(I5,E) = clausura({E → E + E •,E → E • + E, E → E • * E} )
= {E → E + E •, E → E • + E, E → E • * E}= I8
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 253 / 563
![Page 254: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/254.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 16 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I5: tercera parte
Ir a(I5,“(”) = clausura({E → ( • E) })= {
E → ( • E), E → • E + E,E → • E * E, E → • ( E ),E → • id, E → • numero}
= I2
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 254 / 563
![Page 255: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/255.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 17 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I5: cuarta parte
Ir a(I5,id) = clausura({E → id •}){E → id •}
= I3
Ir a(I5,numero) = clausura({E → numero •}){E → numero •}
= I4
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 255 / 563
![Page 256: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/256.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 18 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I6: primera parte
I6 = {E → E * • E, E → • E + E, E → • E * E,E → • ( E ), E → • id, E → • numero}
I6 tendra transiciones Ir a con E, (, id y numero.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 256 / 563
![Page 257: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/257.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 19 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I6: segunda parte
Ir a(I6,E) = clausura({E → E * E •,E → E • * E, E → E • * E} )
= {E → E + E •, E → E • + E, E → E • * E}= I9
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 257 / 563
![Page 258: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/258.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 20 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I6: tercera parte
Ir a(I6,“(”) = clausura({E → ( • E) })= {
E → ( • E), E → • E + E,E → • E * E, E → • ( E ),E → • id, E → • numero}
= I2
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 258 / 563
![Page 259: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/259.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 21 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I6: cuarta parte
Ir a(I6,id) = clausura({E → id •}){E → id •}
= I3
Ir a(I6,numero) = clausura({E → numero •}){E → numero •}
= I4
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 259 / 563
![Page 260: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/260.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 22 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I7: primera parte
I7 = { E → ( E • ), E → E • + E, E → E • * E}
I7 tendra transiciones Ir a con ), + y *.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 260 / 563
![Page 261: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/261.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 23 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I7: segunda parte
Ir a(I7,“)”) = clausura({E → ( E ) •})= {E → ( E ) •}= I10
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 261 / 563
![Page 262: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/262.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 24 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I7: tercera parte
Ir a(I7,+) = clausura({E → E + • E } )= {
E → E + • E,E → • E + E, E → • E * E,E → • ( E ), E → • id, E → • numero}
= I5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 262 / 563
![Page 263: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/263.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 25 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I7: quinta parte
Ir a(I7,*) = clausura({E → E * • E } )= {
E → E * • E,E → • E + E, E → • E * E,E → • ( E ), E → • id, E → • numero}
= I6
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 263 / 563
![Page 264: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/264.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 26 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I8: primera parte
I8 = { E → E + E •, E → E • + E, E → E • * E}
I8 tendra transiciones Ir a con + y *.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 264 / 563
![Page 265: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/265.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 27 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I8: segunda parte
Ir a(I8,+) = clausura({E → E + • E } )= {
E → E + • E,E → • E + E, E → • E * E,E → • ( E ), E → • id, E → • numero}
= I5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 265 / 563
![Page 266: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/266.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 28 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I8: tercera parte
Ir a(I8,*) = clausura({E → E * • E } )= {
E → E * • E,E → • E + E, E → • E * E,E → • ( E ), E → • id, E → • numero}
= I6
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 266 / 563
![Page 267: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/267.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 29 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I9: primera parte
I9 = { E → E * E •, E → E • + E, E → E • * E}
I9 tendra transiciones Ir a con + y *.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 267 / 563
![Page 268: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/268.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 30 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I9: segunda parte
Ir a( I9,+) = clausura({E → E + • E }){E → E + • E, E → • E + E,E → • E * E, E → • ( E ),E → • id, E → • numero}
= I5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 268 / 563
![Page 269: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/269.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 31 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I9: tercera parte
Ir a( I9,*) = clausura({E → E * • E })E → E * • E), E → • E + E,E → • E * E, E → • ( E ),E → • id, E → • numero}
= I6
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 269 / 563
![Page 270: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/270.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 32 / 39)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I10 = {E ( → ) • }
Ir a(I10, X) = ∅ ∀X ∈ V
El conjunto I10 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 270 / 563
![Page 271: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/271.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 33 / 39)
2.- Construccion de la coleccion canonica
Coleccion canonica de elementos-LR(0): primera parte
I0 = { E’ → • E, E → • E + E, E → • E * E,
E → • ( E ), E → • id, E → • numero }I1 = { E’ → E •, E → E • + E, E → E • * E }I2 = { E → ( • E), E → • E + E, E → • E * E,
E → • ( E ),E → • id, E → • numero }I3 = {E → id • }I4 = {E → numero • }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 271 / 563
![Page 272: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/272.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 34 / 39)
2.- Construccion de la coleccion canonica
Coleccion canonica de elementos-LR(0): segunda parte
I5 = { E → E + • E, E → • E + E, E → • E * E,
E → • ( E ), E → • id, E → • numero }I6 = { E → E * • E, E → • E + E, E → • E * E,
E → • ( E ), E → • id, E → • numero }I7 = { E → ( E • ), E → E • + E, E → E • * E}I8 = { E → E + E •, E → E • + E, E → E • * E}I9 = { E → E * E •, E → E • + E, E → E • * E}I10 = {E ( → ) • }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 272 / 563
![Page 273: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/273.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 35 / 39)
3.- Automata que reconoce los prefijos viables
Estado + * ( ) id numero E0 2 3 4 11 5 62 2 3 4 7345 2 3 4 86 2 3 4 97 5 6 108 5 69 5 6
10
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 273 / 563
![Page 274: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/274.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 36 / 39)
4.- Completar la parte accion: conjuntos auxiliares
Primero Siguiente
E’ “(”, id, numero $
E “(”, id, numero $, “)”, +, *,
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 274 / 563
![Page 275: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/275.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 37 / 39)
4.- Completar la parte accion
accion ir aEstado + * ( ) id numero $ E
0 d 2 d 3 d 41 d 5 d 6 ACEPTAR2 d 2 d 3 d 43 r 4 r 4 r 4 r 44 r 5 r 5 r 5 r 55 d 2 d 3 d 46 d 2 d 3 d 47 d 5 d 6 d 108 d 5, r 1 d 6, r 1 r 1 r 19 d 5, r 2 d 6, r 2 r 2 r 2
10 r 3 r 3 r 3 r 3
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 275 / 563
![Page 276: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/276.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 38 / 39)
4.- Completar la parte ir a
accion ir aEstado + * ( ) id numero $ E
0 d 2 d 3 d 4 11 d 5 d 6 ACEPTAR2 d 2 d 3 d 4 73 r 4 r 4 r 4 r 44 r 5 r 5 r 5 r 55 d 2 d 3 d 4 86 d 2 d 3 d 4 97 d 5 d 6 d 108 d 5, r 1 d 6, r 1 r 1 r 19 d 5, r 2 d 6, r 2 r 2 r 2
10 r 3 r 3 r 3 r 3
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 276 / 563
![Page 277: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/277.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (1.- Gramatica de las expresiones aritmeticas. 39 / 39)
La gramatica genera conflictos de desplazamiento-reduccionen los estados 8 y 9.
Los metodos LR-canonico y LALR evitan que se generen estosconflictos.
Tambien se puede disenar otra gramatica que tenga en cuentala mayor precedencia de la multiplicacion (*) sobre la suma(+).
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 277 / 563
![Page 278: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/278.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejercicio (Nueva gramatica de las expresiones aritmeticas)
Dada la siguiente gramatica
P = {(1) E → E + T(2) E → T(3) T → T * F(4) T → F(5) F → ( E )(6) F → identificador(7) F → numero
}comprueba que su tabla de analisis SLR no tiene conflictos
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 278 / 563
![Page 279: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/279.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplos (Conflictos en el analisis sintactico SLR)
Ejemplos de conflicto de desplazamiento - reduccion.
1.- Gramatica de las expresiones aritmeticas2.- Gramatica de sentencia de asignacion
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 279 / 563
![Page 280: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/280.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 1 / 30)
P = {(1) S → L = R(2) S → R(3) L → * R(4) L → identificador(5) R → L
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 280 / 563
![Page 281: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/281.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (Prefijos viables 2 / 30)
Derivacion por la derecha
S ⇒1
L = R
⇒5
L = L
⇒3
L = * R
⇒5
L = * L
⇒4
L = * id
⇒4
id = * id
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 281 / 563
![Page 282: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/282.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 3 / 30)
SignificadoL: l-value, representa una ubicacion.R: r-value, representa un valor que puede almacenarse en unaubicacion.*: “contenido de”.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 282 / 563
![Page 283: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/283.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 4 / 30)
1.- Ampliacion de la gramatica
P = {(1’) S’ → S(1) S → L = R(2) S → R(3) L → * R(4) L → identificador(5) R → L
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 283 / 563
![Page 284: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/284.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 5 / 30)
2.- Construccion de la coleccion canonica
Conjunto I0: primera parte
I0 = clausura({S’ → • S })= {
S’ → • S,S → • L = R, S → • R,L → • * R, L → • identificador,R → • L}
El conjunto I0 tiene transiciones con S, L, R, * e identificador
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 284 / 563
![Page 285: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/285.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 6 / 30)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I0: segunda parte
Ir a(I0, S) = clausura({S’ → S • })= {S’ → S • }= I1
Ir a(I0, L) = clausura({S → L • = R, R → L • })= {S → L • = R, R → L • }= I2
Ir a(I0, R) = clausura({S → R • })= {S → R • }= I3
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 285 / 563
![Page 286: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/286.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 7 / 30)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I0: tercera parte
Ir a(I0, *) = clausura({L → * • R })= {
L → * • R, R → • L,L → • * R, L → • id}
= I4Ir a(I0, id) = clausura({L → id • })
= {L →id • }= I5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 286 / 563
![Page 287: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/287.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 8 / 30)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I1 = {S’ → S • }
Ir a(I1, X) = ∅ ∀X ∈ V
El conjunto I1 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 287 / 563
![Page 288: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/288.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 9 / 30)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I2 = {S → L • = R, R → L • }
Ir a(I2, “=”) = clausura({S → L = • R })= {
S → L = • R, R → • L,L → • * R, L → •id}
= I6
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 288 / 563
![Page 289: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/289.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 10 / 30)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I3 = {S → R • }
Ir a(I3, X) = ∅ ∀X ∈ V
El conjunto I3 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 289 / 563
![Page 290: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/290.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 11 / 30)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I4: primera parte
I4 = {L → * • R, R → • L, L → • * R, L → • id }
Ir a(I4, R) = clausura({L → * R • })= {L → * R • }= I7
Ir a(I4, L) = clausura({R → L • })= {R → L • }= I8
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 290 / 563
![Page 291: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/291.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 12 / 30)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I4: segunda parte
I4 = {L → * • R, R → • L, L → • * R, L → • id }
Ir a(I4, *) = clausura({L → * • R})= I4
Ir a(I4,id) = clausura({L →id • })= I5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 291 / 563
![Page 292: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/292.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 13 / 30)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I5 = {L →id • }
Ir a(I5, X) = ∅ ∀X ∈ V
El conjunto I5 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 292 / 563
![Page 293: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/293.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 14 / 30)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I6: primera parte
I6 = { S → L = • R, R → • L, L → • * R, L → •id }
Ir a(I6, R) = clausura({S → L = R • })= {S → L = R • }= I9
Ir a(I6, L) = clausura({R → L • })= I8
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 293 / 563
![Page 294: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/294.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 15 / 30)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I6: segunda parte
I6 = { S → L = • R, R → • L, L → • * R, L → •id }
Ir a(I6, *) = clausura({L → * • R})= I4
Ir a(I6,id) = clausura({L →id • }= I5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 294 / 563
![Page 295: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/295.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 16 / 30)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I7 = {L → * R • }
Ir a(I7, X) = ∅ ∀X ∈ V
El conjunto I7 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 295 / 563
![Page 296: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/296.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 17 / 30)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I8 = {R → L • }
Ir a(I8, X) = ∅ ∀X ∈ V
El conjunto I8 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 296 / 563
![Page 297: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/297.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 18 / 30)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I9 = {S → L = R • }
Ir a(I9, X) = ∅ ∀X ∈ V
El conjunto I9 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 297 / 563
![Page 298: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/298.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 19 / 30)
2.- Construccion de la coleccion canonica
Coleccion canonica de elementos LR(0): primera parte
I0 = { S’ → • S, S → • L = R, S → • R,
L → • * R, L → • identificador, R → • L }I1 = {S’ → S • }I2 = {S → L • = R, R → L • }I3 = {S → R • }I4 = {L → * • R, R → • L, L → • * R, L → • id }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 298 / 563
![Page 299: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/299.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 20 / 30)
2.- Construccion de la coleccion canonica
Coleccion canonica de elementos LR(0): segunda parte
I5 = {L →id • }I6 = { S → L = • R, R → • L, L → • * R, L → •id }I7 = {L → * R • }I8 = {R → L • }I9 = {S → L = R • }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 299 / 563
![Page 300: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/300.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 21 / 30)
3.- Automata que reconoce los prefijos viables
Estado = * id S L R
0 4 5 1 2 3
12 6
34 4 5 8 7
56 4 5 8 9
789
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 300 / 563
![Page 301: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/301.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 22 / 30)
3.- Automata que reconoce los prefijos viables(*)
0
1
2
3
4
5
8
7
6 9
S
L
R
*
id
*
id
L
L
R
*
= R
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 301 / 563
![Page 302: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/302.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 23 / 30)
4.- Completar la parte accion: conjuntos auxiliares
PRIMERO SIGUIENTE
S *, identificador $
L *, identificador $, =R *, identificador $, =
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 302 / 563
![Page 303: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/303.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 24 / 30)
4.- Completar la parte accion
Accion Ir-a
Estado = * id $ S L R0 d 4 d 5 1 2 3
1 ACEPTAR
2 d 6 r 5 r 5
3 r 2
4 d 4 d 5 8 7
5 r 4 r 4
6 d 4 d 5 8 9
7 r 3 r 3
8 r 5 r 5
9 r 1
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 303 / 563
![Page 304: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/304.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 25 / 30)
Pila Entrada Accion
0 id = * id $ d 5
0 id 5 = * id $ r L → id0 L 2 = * id$ Conflicto: d 6, r 5
Nota
En este caso, lo correcto es desplazar.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 304 / 563
![Page 305: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/305.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 26 / 30)
Si se desplaza: primera parte
Pila Entrada Accion
0 id = * id $ d 5
0 id 5 = * id $ r 4 L → id0 L 2 = * id $ d 6
0 L 2 = 6 * id $ d 4
0 L 2 = 6 * 4 id $ d 5
0 L 2 = 6 * 4 id 5 $ r 4 L → id0 L 2 = 6 * 4 L 8 $ r 5 R → L
0 L 2 = 6 * 4 R 7 $ r 3 L → * R
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 305 / 563
![Page 306: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/306.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 27 / 30)
Si se desplaza: segunda parte
Pila Entrada Accion
0 L 2 = 6 L 8 $ r 5 R → L
0 L 2 = 6 R 9 $ r 1 S → L = R
0 S 1 $ Aceptar
El analisis termina satisfactoriamente.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 306 / 563
![Page 307: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/307.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Ejemplo (2.- Gramatica de sentencia de asignacion 28 / 30)
Si se reduce
Pila Entrada Accion
0 id = * id $ d 5
0 id 5 = * id $ r 4 L → id0 L 2 = * id $ r 5 R → L
0 R 3 = * id $ Error
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 307 / 563
![Page 308: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/308.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Notas (2.- Gramatica de sentencia de asignacion 29 / 30)
Se intenta reducir
con la regla R → L en el estado 2y con todos los sımbolos de siguiente(R) = {=, $},
pero solamente deberıa reducir con el sımbolo $.
Se esta intentando una derivacion por la derecha que lagramatica no puede generar.
No existe ningun prefijo viable que empiece por R =.
(Vease el automata que reconoce los prefijos viables.)
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 308 / 563
![Page 309: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/309.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente SLRConflictos en el analisis sintactico ascendente SLR
Notas (2.- Gramatica de sentencia de asignacion 30 / 30)
La gramatica no es ambigua.
El analisis sintactico SLR no es lo bastante potente
Los metodos LR-canonico y LALR evitan que aparezca esteconflicto.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 309 / 563
![Page 310: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/310.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Seccion actual
1 Introduccion
2 Analisis sintactico ascendente SLR
3 Analisis sintactico ascendente LR-canonico
4 Analisis sintactico ascendente LALR
5 Metodos de recuperacion de errores
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 310 / 563
![Page 311: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/311.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
3 Analisis sintactico ascendente LR-canonicoIntroduccionColeccion canonica de elementos - LR(1)Algoritmo de construccion de la tabla de analisis LR-canonicoEjemplos de analisis LR-canonicoInconvenientes del metodo LR-canonico
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 311 / 563
![Page 312: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/312.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
3 Analisis sintactico ascendente LR-canonicoIntroduccion
DescripcionElemento-LR(1)Elemento-LR(1) valido para un prefijo viable
Coleccion canonica de elementos - LR(1)Algoritmo de construccion de la tabla de analisis LR-canonicoEjemplos de analisis LR-canonicoInconvenientes del metodo LR-canonico
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 312 / 563
![Page 313: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/313.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoIntroduccion
Metodo LR-canonico
Es el metodo de analisis mas preciso de los tres metodos LR
Mucho mas complejo debido a la construccion de su coleccioncanonica.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 313 / 563
![Page 314: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/314.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
3 Analisis sintactico ascendente LR-canonicoIntroduccion
DescripcionElemento-LR(1)Elemento-LR(1) valido para un prefijo viable
Coleccion canonica de elementos - LR(1)Algoritmo de construccion de la tabla de analisis LR-canonicoEjemplos de analisis LR-canonicoInconvenientes del metodo LR-canonico
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 314 / 563
![Page 315: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/315.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoIntroduccion
Definicion (Elemento-LR(1))
Si A → X1 X2 · · · Xn ∈ P y σ ∈ VT ∪ {$}, suselementos-LR(1) son:
[A → • X1 X2 · · · Xn, σ]
[A → X1 • X2 · · · Xn, σ]
[A → X1 X2 · · · • Xn, σ]
[A → X1 X2 · · · Xn •, σ]
Si A → ε ∈ P y σ ∈ VT ∪ {$}, su elemento-LR(1) es:
[A → •, σ]
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 315 / 563
![Page 316: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/316.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoIntroduccion
Definicion (Partes de un elemento-LR(1))
[A→ β1 • β2︸ ︷︷ ︸(1)
, σ︸︷︷︸(2)
]
1.- Centro o corazon
2.- Sımbolo de anticipacion o lookahead
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 316 / 563
![Page 317: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/317.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoIntroduccion
Nota (Agrupacion de elementos-LR(1))
Si los elementos-LR(1) tiene el mismo centro entonces sepueden agrupar:
[ A → β1 • β2, σ1 ][ A → β1 • β2, σ2 ]
⇓
[ A → β1 • β2, σ1, σ2 ]
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 317 / 563
![Page 318: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/318.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
3 Analisis sintactico ascendente LR-canonicoIntroduccion
DescripcionElemento-LR(1)Elemento-LR(1) valido para un prefijo viable
Coleccion canonica de elementos - LR(1)Algoritmo de construccion de la tabla de analisis LR-canonicoEjemplos de analisis LR-canonicoInconvenientes del metodo LR-canonico
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 318 / 563
![Page 319: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/319.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoIntroduccion
Definicion (Elemento-LR(1) valido para un prefijo viable)
[A → β1 • β2, σ] es valido para el prefijo viable αβ1 si
S∗⇒Dα A w ⇒
A→β1β2
α β1 β2 w
donde
w = σ w’
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 319 / 563
![Page 320: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/320.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoIntroduccion
Ejemplo (Elemento-LR(1) valido para un prefijo viable 1 / 2)
P = {(1’) S’ −→ S(1) S −→ C C(2) C −→ a C(3) C −→ d
}
Derivacion por la derecha
S ⇒1′
S
⇒1
C C
⇒2
C a C
⇒3
C a d
⇒2
a C a d
⇒2
a a C a d
⇒3
a a d a d
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 320 / 563
![Page 321: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/321.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoIntroduccion
Ejemplo (Elemento-LR(1) valido para un prefijo viable 2 / 2)
Prefijo viable: α β1 = a︸︷︷︸α
a︸︷︷︸β1
Elemento-LR(1) valido para el prefijo viable:
C︸︷︷︸A
→ a︸︷︷︸β1
• C︸︷︷︸β2
Derivacion por la derecha
S’+⇒ a︸︷︷︸
α
C︸︷︷︸A
a d︸︷︷︸w
⇒C−→aC
a︸︷︷︸α
a︸︷︷︸β1
C︸︷︷︸β2
a d︸︷︷︸w
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 321 / 563
![Page 322: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/322.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
3 Analisis sintactico ascendente LR-canonicoIntroduccionColeccion canonica de elementos - LR(1)Algoritmo de construccion de la tabla de analisis LR-canonicoEjemplos de analisis LR-canonicoInconvenientes del metodo LR-canonico
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 322 / 563
![Page 323: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/323.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
3 Analisis sintactico ascendente LR-canonicoIntroduccionColeccion canonica de elementos - LR(1)
DefinicionFuncion clausuraFuncion ir aAlgoritmo de construccion de la coleccion canonicaEjemplo de construccion de la coleccion canonica
Algoritmo de construccion de la tabla de analisis LR-canonicoEjemplos de analisis LR-canonicoInconvenientes del metodo LR-canonico
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 323 / 563
![Page 324: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/324.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Definicion (Coleccion canonica de elementos-LR(1))
Esta compuesta por los conjuntos de elementos-LR(1) que sonvalidos para los prefijos viables de la gramatica.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 324 / 563
![Page 325: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/325.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Coleccion canonica de elementos-LR(1)
Permite generar un automata finito determinista (AFD) quereconoce los prefijos viables de la gramatica.
Funciones auxiliares para construir la coleccion canonica.
Funcion clausura.Funcion Ir a.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 325 / 563
![Page 326: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/326.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
3 Analisis sintactico ascendente LR-canonicoIntroduccionColeccion canonica de elementos - LR(1)
DefinicionFuncion clausuraFuncion ir aAlgoritmo de construccion de la coleccion canonicaEjemplo de construccion de la coleccion canonica
Algoritmo de construccion de la tabla de analisis LR-canonicoEjemplos de analisis LR-canonicoInconvenientes del metodo LR-canonico
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 326 / 563
![Page 327: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/327.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Definicion (Funcion clausura)
Sea I un conjunto elementos-LR(1):
1.- I ⊆ clausura(I)2.- Si [A → α • B β, σ] ∈ clausura(I) y B → γ ∈ P
entonces [B → • γ, σ′] ∈ clausura(I)donde
σ′ ∈ primero(βσ)
Nota
Si β = ε entonces σ′ = σ.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 327 / 563
![Page 328: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/328.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Funcion clausura 1 / 2)
P = {(1’) S’ −→ S(1) S −→ C C(2) C −→ a C(3) C −→ d
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 328 / 563
![Page 329: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/329.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Funcion clausura 2 / 2)
clausura({ [S’ → • S, $] }) = {[S’ → • S, $],[S → • C C, $],[C → • a C, a, d],[C → • d, a, d]}
= I0
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 329 / 563
![Page 330: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/330.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
3 Analisis sintactico ascendente LR-canonicoIntroduccionColeccion canonica de elementos - LR(1)
DefinicionFuncion clausuraFuncion ir aAlgoritmo de construccion de la coleccion canonicaEjemplo de construccion de la coleccion canonica
Algoritmo de construccion de la tabla de analisis LR-canonicoEjemplos de analisis LR-canonicoInconvenientes del metodo LR-canonico
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 330 / 563
![Page 331: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/331.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Definicion (Funcion Ir a)
Sea I un conjunto elementos-LR(1) y X ∈ V = VN ∪ VT
Ir a(I, X) = clausura({ [A → α X • β, σ] | [A → α • X β, σ] ∈ I})
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 331 / 563
![Page 332: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/332.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Funcion Ir a 1 / 4)
P = {(1’) S’ −→ S(1) S −→ C C(2) C −→ a C(3) C −→ d
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 332 / 563
![Page 333: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/333.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Funcion Ir a 2 / 4)
I0 = clausura({ [S’ → • S, $] })= {
[S’ → • S, $],[S → • C C, $],[C → • a C, a, d],[C → • d, a, d]}
El conjunto I0 tiene transiciones Ir a con S, C, a y d.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 333 / 563
![Page 334: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/334.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Funcion Ir a 3 / 4)
Transiciones del conjunto I0: primera parte
Ir a(I0, S) = clausura({ [S’ → S •, $] })= { [S’ → S •, $] }= I1
Ir a(I0, C) = clausura({ [S → C • C, $] })= { [S → C • C, $],
[C → • a C, $], [C → • d, $] }= I2
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 334 / 563
![Page 335: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/335.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Funcion Ir a 4 / 4)
Transiciones del conjunto I0: segunda parte
Ir a(I0, a) = clausura({ [C → a • C, a, d] })= {
[C → a • C, a, d],[C → • a C, a, d], [C → • d, a, d]}
= I3
Ir a(I0,d) = clausura({ [C → d •, a, d] })= { [C → d •, a, d] }= I4
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 335 / 563
![Page 336: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/336.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
3 Analisis sintactico ascendente LR-canonicoIntroduccionColeccion canonica de elementos - LR(1)
DefinicionFuncion clausuraFuncion ir aAlgoritmo de construccion de la coleccion canonicaEjemplo de construccion de la coleccion canonica
Algoritmo de construccion de la tabla de analisis LR-canonicoEjemplos de analisis LR-canonicoInconvenientes del metodo LR-canonico
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 336 / 563
![Page 337: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/337.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Algoritmo (Construccion de la coleccion canonica)
InicioI0 ← clausura({ [S’ → • S, $] })C ← {I0} ∧ I0 no marcadopara cada I ∈ C ∧ I no marcado hacer
marcar Ipara cada X ∈ V hacer
I’ ← Ir a(I, X)si ( (I’ 6= ∅) ∧ (I’ /∈ C) )
entonces C ← C ∪ {I’} ∧ I’ no marcadofin si
fin parafin para
fin
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 337 / 563
![Page 338: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/338.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Notas (Construccion de la coleccion canonica)
Genera un automata finito determinista (AFD) que reconocelos prefijos viables de la gramatica.
Los elementos-LR(1) se agrupan en conjuntos que secorresponden con los estados del automata.
Todos los estados del automata son finales.
Los estados del automata se corresponderan con los estadosde la tabla de analisis sintactico LR-canonico.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 338 / 563
![Page 339: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/339.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
3 Analisis sintactico ascendente LR-canonicoIntroduccionColeccion canonica de elementos - LR(1)
DefinicionFuncion clausuraFuncion ir aAlgoritmo de construccion de la coleccion canonicaEjemplo de construccion de la coleccion canonica
Algoritmo de construccion de la tabla de analisis LR-canonicoEjemplos de analisis LR-canonicoInconvenientes del metodo LR-canonico
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 339 / 563
![Page 340: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/340.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 1 / 23)
Gramatica de contexto libre
P = {(1) S −→ C C(2) C −→ a C(3) C −→ d
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 340 / 563
![Page 341: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/341.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 2 / 23)
Amplicacion de la gramatica de contexto libre
P’ = {(1’) S’ −→ S(1) S −→ C C(2) C −→ a C(3) C −→ d
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 341 / 563
![Page 342: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/342.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 3 / 23)
Construccion del conjunto I0
I0 = clausura({ [S’ → • S, $] })= {
[S’ → • S, $],[S → • C C, $],[C → • a C, a, d],[C → • d, a, d]}
I0 tiene transiciones con S, C, a y d.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 342 / 563
![Page 343: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/343.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 4 / 23)
Transiciones del conjunto I0: primera parte
Ir a(I0, S) = clausura({ [S’ → S •, $] })= { [S’ → S •, $] }= I1
Ir a(I0, C) = clausura({ [S → C • C, $] })= {
[S → C • C, $],[C → • a C, $], [C → • d, $]}
= I2
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 343 / 563
![Page 344: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/344.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 5 / 23)
Transiciones del conjunto I0: segunda parte
Ir a(I0, a) = clausura({ [C → a • C, a, d] })= {
[C → a • C, a, d],[C → • a C, a, d], [C → • d, a, d]}
= I3
Ir a(I0, d) = clausura({ [C → d •, a, d] })= { [C → d •, a, d] }= I4
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 344 / 563
![Page 345: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/345.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 6 / 23)
Automata que reconoce los prefijos viables
Transiciones de I0
0
1
2
3
4
S
a
d
C
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 345 / 563
![Page 346: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/346.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 7 / 23)
Transiciones del conjunto I1 = { [S’ → S •, $] }
Ir a(I1, X) = ∅ ∀X ∈ V
El conjunto I1 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 346 / 563
![Page 347: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/347.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 8 / 23)
Transiciones del conjunto I2: primera parte
I2 = { [S → C • C, $], [C → • a C, $], [C → • d, $] }
Ir a(I2, C) = clausura({ [S → C C •, $] })= { [S → C C •, $] }= I5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 347 / 563
![Page 348: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/348.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 9 / 23)
Transiciones del conjunto I2: segunda parte
I2 = { [S → C • C, $], [C → • a C, $], [C → • d, $] }Ir a(I2, a) = clausura({ [C → a • C, $] })
= {[C → a • C, $],[C → • a C, $], [C → • d, $]}
= I6Ir a(I2, d) = clausura({ [C → d •, $] })
= { [C → d •, $] }= I7
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 348 / 563
![Page 349: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/349.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 10 / 23)
Automata que reconoce los prefijos viables
Transiciones de I2
0
1
2 6
5
7
3
4
S
a
d
C
C
d
a
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 349 / 563
![Page 350: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/350.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 11 / 23)
Transiciones del conjunto I3
I3 = { [C → a • C, a, d], [C → • a C, a, d], [C → • d, a, d] }
Ir a(I3, C) = clausura({ [C → a C •, a, d] })= { [C → a C •, a, d] }= I8
Ir a(I3, a) = clausura({ [C → a • C, a, d] })= I3
Ir a(I3, d) = clausura({ [C → d •, a, d] })= { [C → d •, a, d] }= I4
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 350 / 563
![Page 351: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/351.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 12 / 23)
Automata que reconoce los prefijos viables
Transiciones de I3
0
1
2
3
4
6
5
8
7
S
d
aa
d
C
C
C
d
a
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 351 / 563
![Page 352: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/352.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 13 / 23)
Transiciones del conjunto I4 = { [C → d •, a, d] }
Ir a(I4, X) = ∅ ∀X ∈ V
El conjunto I4 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 352 / 563
![Page 353: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/353.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 14 / 23)
Transiciones del conjunto I5 = { [S → C C •, $] }
Ir a(I5, X) = ∅ ∀X ∈ V
El conjunto I5 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 353 / 563
![Page 354: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/354.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 15 / 23)
Transiciones del conjunto I6
I6 = { [C → a • C, $], [C → • a C, $], [C → • d, $] }
Ir a(I6, C) = clausura({ [C → a C • , $]})= { [C → a C •, $] }= I9
Ir a(I6, a) = clausura({ [C → a • C, $] })= I6
Ir a(I6, d) = clausura({ [C → d •, a] })= I7
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 354 / 563
![Page 355: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/355.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 16 / 23)
Automata que reconoce los prefijos viables
Transiciones de I6
0
1
2
3
4
6
5
8
7
S
d
aa
d
C
C
C
a
dd
aC
9
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 355 / 563
![Page 356: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/356.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 17 / 23)
Transiciones del conjunto I7 = { [C → d •, $] }
Ir a(I7, X) = ∅ ∀X ∈ V
El conjunto I7 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 356 / 563
![Page 357: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/357.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 18 / 23)
Transiciones del conjunto I8 = { [C → a C •, a, d] }
Ir a(I8, X) = ∅ ∀X ∈ V
El conjunto I8 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 357 / 563
![Page 358: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/358.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 19 / 23)
Transiciones del conjunto I9 = { [S → C C •, $] }
Ir a(I9, X) = ∅ ∀X ∈ V
El conjunto I9 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 358 / 563
![Page 359: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/359.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 20 / 23)
Coleccion canonica de elementos - LR(1): primera parte
I0 = { [S’ → • S, $], [S → • C C, $],
[C → • a C, a, d], [C → • d, a, d] }I1 = { [S’ → S •, $] }I2 = { [S → C • C, $], [C → • a C, $], [C → • d, $] }I3 = { [C → a • C, a, d], [C → • a C, a, d], [C → • d, a, d] }I4 = { [C → d •, a, d] }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 359 / 563
![Page 360: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/360.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 21 / 23)
Coleccion canonica de elementos - LR(1): segunda parte
I5 = { [S → C C •, $] }I6 = { [C → a • C, $], [C → • a C, $], [C → • d, $] }I7 = { [C → d •, $] }I8 = { [C → a C •, a, d] }I9 = { [C → a C •, $] }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 360 / 563
![Page 361: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/361.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 22 / 23)
Automata que reconoce los prefijos viables
Estado a d S C
0 3 4 1 212 6 7 53 3 4 8456 6 7 9789
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 361 / 563
![Page 362: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/362.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoColeccion canonica de elementos - LR(1)
Ejemplo (Construccion de la coleccion canonica 23 / 23)
Automata que reconoce los prefijos viables
0
1
2
3
4
6
5
8
7
S
d
aa
d
C
C
C
a
dd
aC
9
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 362 / 563
![Page 363: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/363.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
3 Analisis sintactico ascendente LR-canonicoIntroduccionColeccion canonica de elementos - LR(1)Algoritmo de construccion de la tabla de analisis LR-canonicoEjemplos de analisis LR-canonicoInconvenientes del metodo LR-canonico
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 363 / 563
![Page 364: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/364.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoAlgoritmo de construccion de la tabla de analisis LR-canonico
Algoritmo (Construccion de la tabla LR-canonica 1 / 10)
1.- Ampliar la gramatica con la regla de produccion S’ → S.
2.- Construir la coleccion canonica de Elementos-LR(1).
3.- Generar el automata que reconoce los prefijos viables.
4.- Completar la parte accion.
5.- Completar la parte ir a.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 364 / 563
![Page 365: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/365.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoAlgoritmo de construccion de la tabla de analisis LR-canonico
Algoritmo (Construccion de la tabla LR-canonica 2 / 10)
1.- Ampliar la gramatica con la regla de produccion S’ → S.
- Evita que el sımbolo inicial aparezca en la parte derecha deuna regla de produccion.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 365 / 563
![Page 366: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/366.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoAlgoritmo de construccion de la tabla de analisis LR-canonico
Algoritmo (Construccion de la tabla LR-canonica 3 / 10)
2.- Construir la coleccion canonica de Elementos-LR(1).
- Se debe comenzar por I0 = clausura ({ [S’ → • S, $] })
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 366 / 563
![Page 367: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/367.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoAlgoritmo de construccion de la tabla de analisis LR-canonico
Algoritmo (Construccion de la tabla LR-canonica 4 / 10)
3.- Generar el automata que reconoce los prefijos viables.
- Los conjuntos de elementos-LR(1) se corresponden con losestados del automata.
- Todos los estados del automata son finales.
- El estado inicial se corresponde con el conjunto de elementosque contenga a [S’ → • S, $], que generalmente es I0
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 367 / 563
![Page 368: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/368.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoAlgoritmo de construccion de la tabla de analisis LR-canonico
Algoritmo (Construccion de la tabla LR-canonica 5 / 10)
4.- Completar la parte accion
4.1 Desplazar4.2 Reducir4.3 Aceptar4.4 Funcion de error
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 368 / 563
![Page 369: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/369.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoAlgoritmo de construccion de la tabla de analisis LR-canonico
Algoritmo (Construccion de la tabla LR-canonica 6 / 10)
4.- Completar la parte accion:
4.1 DesplazarSi [A→ α • σβ, σ′] ∈ Ii ∧ σ ∈ VT ∧ Ir a(Ii ,σ) = Ijentonces accion[i, σ] = d j
1.- se desplaza el sımbolo σ desde la entrada a la pila2.- y se pasa al estado j.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 369 / 563
![Page 370: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/370.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoAlgoritmo de construccion de la tabla de analisis LR-canonico
Algoritmo (Construccion de la tabla LR-canonica 7 / 10)
4.- Completar la parte accion:
4.2.- Reducir.Si [A→ α•,σ] ∈ Ii entonces accion[i, σ] = r kdonde
k representa la regla de produccion k: A→ α ∈ P
Nota
No es necesario calcular el conjunto Siguiente(A)
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 370 / 563
![Page 371: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/371.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoAlgoritmo de construccion de la tabla de analisis LR-canonico
Algoritmo (Construccion de la tabla LR-canonica 8 / 10)
4.- Completar la parte accion:
4.3.- AceptarSi [S’ → • S, $] ∈ Ii entonces accion[i, $] = Aceptar
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 371 / 563
![Page 372: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/372.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoAlgoritmo de construccion de la tabla de analisis LR-canonico
Algoritmo (Construccion de la tabla LR-canonica 9 / 10)
4.- Completar la parte accion:
4.4.- Funcion de errorLas celdas vacıas de la parte accion se completaran confunciones de tratamiento de error.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 372 / 563
![Page 373: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/373.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoAlgoritmo de construccion de la tabla de analisis LR-canonico
Algoritmo (Construccion de la tabla LR-canonica 10 / 10)
5.- Completar la parte ir a
Si Ir a(Ii , A) = Ij ∧ A ∈ VN entonces ir a[i, A] = j
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 373 / 563
![Page 374: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/374.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoAlgoritmo de construccion de la tabla de analisis LR-canonico
Ejercicio (Construccion de la tabla LR-canonica)
Las celdas vacıas de la parte ir a nunca se consultaran:¡demuestralo!.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 374 / 563
![Page 375: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/375.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
3 Analisis sintactico ascendente LR-canonicoIntroduccionColeccion canonica de elementos - LR(1)Algoritmo de construccion de la tabla de analisis LR-canonicoEjemplos de analisis LR-canonicoInconvenientes del metodo LR-canonico
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 375 / 563
![Page 376: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/376.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
3 Analisis sintactico ascendente LR-canonicoIntroduccionColeccion canonica de elementos - LR(1)Algoritmo de construccion de la tabla de analisis LR-canonicoEjemplos de analisis LR-canonico
Gramatica que reconoce L(a∗da∗d)Gramatica de sentencia de asignacionGramatica de las enumeraciones
Inconvenientes del metodo LR-canonico
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 376 / 563
![Page 377: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/377.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (Gramatica que reconoce L(a∗da∗d) 1 / 10)
P = {(1) S −→ C C(2) C −→ a C(3) C −→ d
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 377 / 563
![Page 378: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/378.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (Gramatica que reconoce L(a∗da∗d) 2 / 10)
1.- Ampliacion de la gramatica
P’ = {(1’) S’ −→ S(1) S −→ C C(2) C −→ a C(3) C −→ d
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 378 / 563
![Page 379: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/379.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (Gramatica que reconoce L(a∗da∗d) 3 / 10)
2.- Coleccion canonica: primera parte
I0 = { [S’ → • S, $], [S → • C C, $],
[C → • a C, a, d], [C → • d, a, d] }I1 = { [S’ → S •, $] }I2 = { [S → C • C, $], [C → • a C, $], [C → • d, $] }I3 = { [C → a • C, a, d], [C → • a C, a, d], [C → • d, a, d] }I4 = { [C → d •, a, d] }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 379 / 563
![Page 380: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/380.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (Gramatica que reconoce L(a∗da∗d) 4 / 10)
2.- Coleccion canonica: segunda parte
I5 = { [S → C C •, $] }I6 = { [C → a • C, $], [C → • a C, $], [C → • d, $] }I7 = { [C → d •, $] }I8 = { [C → a C •, a, d] }I9 = { [C → a C •, $] }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 380 / 563
![Page 381: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/381.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (Gramatica que reconoce L(a∗da∗d) 5 / 10)
3.- Automata que reconoce los prefijos viables
Representacion grafica
0
1
2
3
4
6
5
8
7
S
d
aa
d
C
C
C
a
dd
aC
9
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 381 / 563
![Page 382: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/382.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (Gramatica que reconoce L(a∗da∗d) 6 / 10)
3.- Automata que reconoce los prefijos viables
Representacion tabularEstado a d S C
0 3 4 1 2
12 6 7 5
3 3 4 8
456 6 7 9
789
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 382 / 563
![Page 383: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/383.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (Gramatica que reconoce L(a∗da∗d) 7 / 10)
4.- Completar la parte accion
Accion Ir-aEstado a d $ S C
0 d 3 d 4
1 ACEPTAR
2 d 6 d 7
3 d 3 d 4
4 r 3 r 35 r 16 d 6 d 7
7 r 38 r 2 r 29 r 2
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 383 / 563
![Page 384: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/384.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (Gramatica que reconoce L(a∗da∗d) 8 / 10)
5.- Completar la parte ir a
Accion Ir-aEstado a d $ S C
0 d 3 d 4 1 2
1 ACEPTAR
2 d 6 d 7 5
3 d 3 d 4 8
4 r 3 r 35 r 16 d 6 d 7 9
7 r 38 r 2 r 29 r 2
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 384 / 563
![Page 385: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/385.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (Gramatica que reconoce L(a∗da∗d) 9 / 10)
Analisis sintactico ascendente LR-canonico: primera parte
Pila Entrada Accion
0 a d a a d $ d 3
0 a 3 d a a d $ d 4
0 a 3 d 4 a a d $ r 3 C → d0 a 3 C 8 a a d $ r 2 C → a C
0 C 2 a a d $ d 6
0 C 2 a 6 a d $ d 6
0 C 2 a 6 a 6 d $ d 7
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 385 / 563
![Page 386: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/386.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (Gramatica que reconoce L(a∗da∗d) 10 / 10)
Analisis sintactico ascendente LR-canonico: segunda parte
Pila Entrada Accion
0 C 2 a 6 a 6 d 7 $ r 3 C → d0 C 2 a 6 a 6 C 9 $ r 2 C → a C
0 C 2 a 6 C 9 $ r 2 C → a C
0 C 2 C 5 $ r 1 S → C C
0 S 1 $ Aceptar
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 386 / 563
![Page 387: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/387.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
3 Analisis sintactico ascendente LR-canonicoIntroduccionColeccion canonica de elementos - LR(1)Algoritmo de construccion de la tabla de analisis LR-canonicoEjemplos de analisis LR-canonico
Gramatica que reconoce L(a∗da∗d)Gramatica de sentencia de asignacionGramatica de las enumeraciones
Inconvenientes del metodo LR-canonico
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 387 / 563
![Page 388: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/388.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 1 / 40)
P = {(1) S −→ L = R(2) S −→ R(3) L −→ * R(4) L −→ identificador(5) R −→ L
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 388 / 563
![Page 389: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/389.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 2 / 40)
1.- Ampliacion de la gramatica
P’ = {(1’) S’ −→ S(1) S −→ L = R(2) S −→ R(3) L −→ * R(4) L −→ identificador(5) R −→ L
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 389 / 563
![Page 390: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/390.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 3 / 40)
2.- Construccion de la coleccion canonica
Conjunto I0
I0 = clausura({ [S’ → • S, $] })= {
[S’ → • S, $],[S → • L = R, $], [S → • R, $],[L → • * R, =, $], [L → • identificador, =, $],[R → • L, $]}
I0 tiene transiciones con S, L, R, * e identificador.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 390 / 563
![Page 391: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/391.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 4 / 40)
2.- Construccion de la coleccion canonica
Automata que reconoce prefijos viables: estado inicial I0
0
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 391 / 563
![Page 392: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/392.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 5 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I0: primera parte
Ir a(I0, S) = clausura({ [S’ → S •, $] })= { [S’ → S •, $] }= I1
Ir a(I0, L) = clausura({ [S → L • = R, $], [R → L •, $] })= { [S → L • = R, $], [R → L •, $] }= I2
Ir a(I0, R) = clausura({ [S → R •, $] })= { [S → R •, $] }= I3
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 392 / 563
![Page 393: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/393.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 6 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I0: segunda parte
Ir a(I0, *) = clausura({ [L → * • R, =, $] })= {
[L → * • R, =, $], [R → • L, =, $],[L → • * R, =, $], [L → • id, =, $]}
= I4Ir a(I0, id) = clausura({ [L → id •, =, $] })
= { [L → id •, =, $] }= I5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 393 / 563
![Page 394: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/394.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 7 / 40)
2.- Construccion de la coleccion canonica
2.- Construccion de la coleccion canonica: transiciones de I0
0
12
3
4
5
S L
R
*
id
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 394 / 563
![Page 395: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/395.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 8 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I1 = { [S’ → S •, $] }
Ir a(I1, X) = ∅ ∀X ∈ V
El conjunto I1 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 395 / 563
![Page 396: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/396.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 9 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I2 = { [S → L • = R, $], [R → L•, $] }
Ir a(I2, =) = clausura({ [S → L = • R, $] })= {
[S → L = • R, $],[R → • L, $],[L → • * R, $], [L → • id, $]}
= I6
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 396 / 563
![Page 397: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/397.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 10 / 40)
2.- Construccion de la coleccion canonica: transicion de I2
0
12
3
5
6
4
S L
R
*
id
=
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 397 / 563
![Page 398: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/398.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 11 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I3 = { [S → R •, $] }
Ir a(I3, X) = ∅ ∀X ∈ V
El conjunto I3 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 398 / 563
![Page 399: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/399.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 12 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I4: primera parte
I4 = {[L → * • R, =, $],[R → • L, =, $],[L → • * R, =, $], [L → • id, =, $]}
I4 tiene transiciones con R, L, * e id
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 399 / 563
![Page 400: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/400.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 13 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I4: segunda parte
Ir a(I4, R) = clausura({ [L → * R •, =, $] })= { [L → * R •, =, $] }= I7
Ir a(I4, L) = clausura({ [R → L •, =, $] })= { [R → L •, =, $] }= I8
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 400 / 563
![Page 401: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/401.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 14 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I4: tercera parte
Ir a(I4, *) = clausura({ [L → * • R, =, $] })= I4
Ir a(I4, id) = clausura({ [L → id •, =, $] }= I5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 401 / 563
![Page 402: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/402.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 15 / 40)
2.- Construccion de la coleccion canonica transiciones de I4
0
1
8
7
2
3
4
5
6
S L
R
**
id
L
R
id
=
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 402 / 563
![Page 403: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/403.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 16 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I5 = { [L → id •, =, $] }
Ir a(I5, X) = ∅ ∀X ∈ V
El conjunto I5 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 403 / 563
![Page 404: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/404.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 17 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I6: primera parte
I6 = {[S → L = • R, $],[R → • L, $],[L → • * R, $], [L → • id, $]}
I6 tiene transiciones con R, L, * e id
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 404 / 563
![Page 405: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/405.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 18 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I6: segunda parte
Ir a(I6, R) = clausura({ [S → L = R •, $] })= { [S → L = R •, $] }= I9
Ir a(I6, L) = clausura({ [R → L •, $] })= { [R → L •, $] }= I10
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 405 / 563
![Page 406: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/406.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 19 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I6: tercera parte
Ir a(I6, *) = clausura({ [S → L = • R, $}])= {
[L → * • R, $], [R → • L, $],[L → • * R, $], [L → • id, $]}
= I11
Ir a(I6, id) = clausura({ [L → id •, $] }= { [L → id •, $] }= I12
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 406 / 563
![Page 407: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/407.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 20 / 40)
2.- Construccion de la coleccion canonica
Automata que reconoce prefijos viables: transiciones de I6
0
1
8
7
2
3
4
5
6 9
10
12
11
S L
R
**
id
L
R
id
R
L
id*
=
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 407 / 563
![Page 408: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/408.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 21 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I7 = { [L → * R •, =, $] }
Ir a(I7, X) = ∅ ∀X ∈ V
El conjunto I7 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 408 / 563
![Page 409: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/409.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 22 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I8 = { [R → L •, =, $] }
Ir a(I8, X) = ∅ ∀X ∈ V
El conjunto I8 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 409 / 563
![Page 410: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/410.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 23 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I9 = { [S → L = R •, $] }
Ir a(I9, X) = ∅ ∀X ∈ V
El conjunto I9 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 410 / 563
![Page 411: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/411.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 24 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I10 = { [R → L •, $] }
Ir a(I10, X) = ∅ ∀X ∈ V
El conjunto I10 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 411 / 563
![Page 412: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/412.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 25 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I11: primera parte
I11 = {[L → * • R, $],[R → • L, $],[L → • * R, $], [L → • id, $]}
I11 tiene transiciones con R, L, * e id
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 412 / 563
![Page 413: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/413.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 26 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I11: segunda parte
Ir a(I11, R) = clausura({ [L → * R •, $] })= { [L → * R •, $] }= I13
Ir a(I11, L) = clausura({ [R → L •, $] })= I10
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 413 / 563
![Page 414: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/414.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 27 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I11: tercera parte
Ir a(I11, *) = clausura({ [S → L = • R, $] })= I11
Ir a(I11, id) = clausura({ [L → identificador •, $] }= I12
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 414 / 563
![Page 415: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/415.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 28 / 40)
2.- Construccion de la coleccion canonica
Automata que reconoce prefijos viables: transiciones de I11
0
1
8
7
2
3
4
5
6 9
10
11
13
12
S L
R
**
id
L
R
id
R
R
L
L
id
id
*
*
=
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 415 / 563
![Page 416: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/416.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 29 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I12 = { [L → id •, $] }
Ir a(I12, X) = ∅ ∀X ∈ V
El conjunto I12 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 416 / 563
![Page 417: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/417.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 30 / 40)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I13 = { [L → * R •, $] }
Ir a(I13, X) = ∅ ∀X ∈ V
El conjunto I13 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 417 / 563
![Page 418: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/418.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 31 / 40)
2.- Construccion de la coleccion canonica
Coleccion canonica de elementos - LR(1): primera parte
I0 = { [S’ → • S, $], [S → • L = R, $], [S → • R, $],
[L → • * R, =, $], [L → • id, =, $], [R → • L, $] }I1 = { [S’ → S •, $] }I2 = { [S → L • = R, $], [R → L •, $] }I3 = { [S → R •, $] }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 418 / 563
![Page 419: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/419.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 32 / 40)
2.- Construccion de la coleccion canonica
Coleccion canonica de elementos - LR(1): segunda parte
I4 = { [L → * • R, =, $], [R → • L, =, $],
[L → • * R, =, $], [L → • id, =, $] }I5 = { [L → id •, =, $] }I6 = { [S → L = • R, $], [R → • L, $],
[L → • * R, $], [L → • id, $] }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 419 / 563
![Page 420: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/420.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 33 / 40)
2.- Construccion de la coleccion canonica
Coleccion canonica de elementos - LR(1): tercera parte
I7 = { [L → * R •, =, $] }I8 = { [R → L •, =, $] }I9 = { [S → L = R •, $]
I10 = { [R → L •, $] }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 420 / 563
![Page 421: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/421.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 34 / 40)
2.- Construccion de la coleccion canonica
Coleccion canonica de elementos - LR(1): cuarta parte
I11 = { [L → * • R, $], [R → • L, $],
[L → • * R, $], [L → • id, $] }I12 = { [L → id •, $] }I13 = { [L → * R •, $] }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 421 / 563
![Page 422: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/422.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 35 / 40)
3.- Automata que reconoce los prefijos viables
0
1
8
7
2
3
4
5
6 9
10
11
13
12
S L
R
**
id
L
R
id
R
R
L
L
id
id
*
*
=
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 422 / 563
![Page 423: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/423.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 36 / 40)
3.- Automata que reconoce los prefijos viables
Estado = * id S L R
0 4 5 1 2 312 634 4 5 8 756 11 12 10 9789
1011 11 12 10 131213
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 423 / 563
![Page 424: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/424.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 37 / 40)
4.- Completar la parte accion
Accion Ir-a
Estado = * id $ S L R0 d 4 d 51 ACEPTAR2 d 6 r 53 r 24 d 4 d 55 r 4 r 46 d 11 d 127 r 3 r 38 r 5 r 59 r 1
10 r 511 d 11 d 1212 r 413 r 3
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 424 / 563
![Page 425: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/425.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 38 / 40)
5.- Completar la parte ir a
Accion Ir-a
Estado = * id $ S L R0 d 4 d 5 1 2 31 ACEPTAR2 d 6 r 53 r 24 d 4 d 5 8 75 r 4 r 46 d 11 d 12 10 97 r 3 r 38 r 5 r 59 r 1
10 r 511 d 11 d 12 10 1312 r 413 r 3
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 425 / 563
![Page 426: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/426.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 39 / 40)
Analisis sintactico LR-canonico: primera parte
Pila Entrada Accion
0 id = * id $ d 5
0 id 5 = * id $ r 4 L → id0 L 2 = * id $ d 6
0 L 2 = 6 * id $ d 11
0 L 2 = 6 * 11 id $ d 12
0 L 2 = 6 * 11 id 12 $ r 4 L → id0 L 2 = 6 * 11 L 10 $ r 5 R → L
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 426 / 563
![Page 427: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/427.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (2.- Gramatica de sentencia de asignacion 40 / 40)
Analisis sintactico LR-canonico: segunda parte
Pila Entrada Accion0 L 2 = 6 * 11 R 13 $ r 3 L → * R
0 L 2 = 6 L 10 $ r 5 R → L
0 L 2 = 6 R 9 $ r 1 S → L = R
0 S 1 $ Aceptar
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 427 / 563
![Page 428: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/428.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
3 Analisis sintactico ascendente LR-canonicoIntroduccionColeccion canonica de elementos - LR(1)Algoritmo de construccion de la tabla de analisis LR-canonicoEjemplos de analisis LR-canonico
Gramatica que reconoce L(a∗da∗d)Gramatica de sentencia de asignacionGramatica de las enumeraciones
Inconvenientes del metodo LR-canonico
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 428 / 563
![Page 429: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/429.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 1 / 25)
P = {(1) S → S D(2) S → ε(3) D → enum identificador { L } ;(4) L → identificador(5) L → L , identificador
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 429 / 563
![Page 430: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/430.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 2 / 25)
1.- Ampliacion de la gramatica
P’ = {(1’) S’ → S(1) S → S D(2) S → ε(3) D → enum identificador { L };(4) L → identificador(5) L → L , identificador
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 430 / 563
![Page 431: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/431.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 3 / 25)
2.- Construccion de la coleccion canonica
Construccion del conjunto I0
I0 = clausura({[S’ → • S, $] })= {
[S’ → • S, $],[S → • S D, $, enum][S → •, $, enum]}
I0 tendra una transicion Ir a con S.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 431 / 563
![Page 432: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/432.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 4 / 25)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I0
Ir a(I0,S) = clausura({ [S’ → S •, $],[S → S • D, $, enum]})
= {[S’ → S •, $],[S → S • D, $, enum],[D → • enum id { L } ;, $, enum]}
= I1
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 432 / 563
![Page 433: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/433.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 5 / 25)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I1
I1 = { [S’ → S •, $], [S → S • D, $, enum],
[D → • enum id { L } ;, $, enum] }
Ir a(I1,D) = clausura({[S → S D •, $, enum]})= {[S → S D •, $, enum] }= I2
Ir a(I1,enum) = clausura({[D → enum • id { L } ;, $, enum] })= {[D → enum • id { L } ;, $, enum] }= I3
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 433 / 563
![Page 434: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/434.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 6 / 25)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I2 = {[S → S D •, $, enum] }
Ir a(I2, X) = ∅ ∀X ∈ V
El conjunto I2 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 434 / 563
![Page 435: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/435.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 7 / 25)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I3
I3 = {[D → enum • id { L } ;, $, enum] }
Ir a(I3,id) = clausura({[D → enum id • { L } ;, $, enum]})= {[D → enum id • { L } ;, $, enum] }= I4
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 435 / 563
![Page 436: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/436.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 8 / 25)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I4
I4 = {[D → enum id • { L } ;, $, enum] }
Ir a(I4,{) = clausura({[D → enum id { • L } ;, $, enum]})= {
[D → enum id { • L } ;, $, enum],[L → • id, }, “,”][L → • L , id, }, “,” ]}
= I5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 436 / 563
![Page 437: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/437.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 9 / 25)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I5: primera parte
I5 = { [D → enum id { • L } ;, $, enum],
[L → • id, }, “,”] , [L → • L , id, }, “,” ] }
Ir a(I5,L) = clausura({[D → enum id { L • };, $, enum],[L → • L , id, }, “,” ] } )
= { [D → enum id { L • } ;, $, enum],[L → L • , id, }, “,” ] }
= I6
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 437 / 563
![Page 438: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/438.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 10 / 25)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I5: segunda parte
I5 = { [D → enum id { • L } ;, $, enum],
[L → • id, }, “,”] , [L → L • , id, }, “,” ] }
Ir a(I5,id) = clausura({ [L → id •, }, “,”] })= { [L → id • , }, “,”] }= I7
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 438 / 563
![Page 439: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/439.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 11 / 25)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I6
I6 = { [D → enum id { L • } ;, $, enum],
[L → • L , id, }, “,” ] }Ir a(I6,}) = clausura({[D → enum id {L} • ;, $, enum]})
= {[D → enum id { L } • ;, $, enum]}= I8
Ir a(I6,“,”) = clausura({[L → L • , id, }, “,” ]})= {[L → L • , id, }, “,”]}= I9
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 439 / 563
![Page 440: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/440.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 12 / 25)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I7 = { [L → id • , }, “,”] }
Ir a(I7, X) = ∅ ∀X ∈ V
El conjunto I7 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 440 / 563
![Page 441: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/441.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 13 / 25)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I8
I8 = {[D → enum id { L } • ;, $, enum]}Ir a(I8,“;”) = clausura({[D → enum id {L}; • , $, enum]})
= {[D → enum id { L } ; • , $, enum]}= I10
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 441 / 563
![Page 442: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/442.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 14 / 25)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I9
I9 = {[L → L • , id, }, “,”]}
Ir a(I9,id) = clausura({[L → L , id •, }, “,”]})= {[L → L , id •, }, “,”]}= I11
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 442 / 563
![Page 443: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/443.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 15 / 25)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I10
I10 = {[D → enum id { L } ; • , $, enum]}
Ir a(I10, X) = ∅ ∀X ∈ V
El conjunto I10 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 443 / 563
![Page 444: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/444.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 16 / 25)
2.- Construccion de la coleccion canonica
Transiciones del conjunto I11
I11 = {[L → L , id •, }, “,”]}
Ir a(I11, X) = ∅ ∀X ∈ V
El conjunto I11 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 444 / 563
![Page 445: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/445.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 17 / 25)
2.- Construccion de la coleccion canonica
Coleccion canonica: primera parte
I0 = { [S’ → • S, $],
[S → • S D, $, enum] [S → •, $, enum] }I1 = { [S’ → S •, $], [S → S • D, $, enum],
[D → • enum id { L } ;, $, enum] }I2 = {[S → S D •, $, enum] }I3 = {[D → enum • id { L } ;, $, enum] }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 445 / 563
![Page 446: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/446.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 18 / 25)
2.- Construccion de la coleccion canonica
Coleccion canonica: segunda parte
I4 = {[D → enum id • { L } ;, $, enum] }I5 = { [D → enum id { • L } ;, $, enum],
[L → • id, }, “,”] , [L → L • , id, }, “,” ] }I6 = { [D → enum id { L • } ;, $, enum],
[L → • L , id, }, “,” ] }I7 = { [L → id • , }, “,”] }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 446 / 563
![Page 447: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/447.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 19 / 25)
2.- Construccion de la coleccion canonica
Coleccion canonica: tercera parte
I8 = {[D → enum id { L } • ;, $, enum]}I9 = {[L → L • , id, }, “,”]}I10 = {[D → enum id { L } ; • , $, enum]}I11 = {[L → L , id •, }, “,”]}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 447 / 563
![Page 448: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/448.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 20 / 25)
P’ = {(1’) S’ → S(1) S → S D(2) S → ε(3) D → enum identificador { L } ;(4) L → identificador(5) L → L , identificador
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 448 / 563
![Page 449: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/449.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 21 / 25)
3.-Automata que reconoce los prefijos viables
Estado enum id { } ; , $ S D L
0 11 3 223 44 55 7 66 8 978 109 11
1011
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 449 / 563
![Page 450: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/450.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 22 / 25)
4.- Completar la parte accion
Accion Ir-aEstado enum id { } ; , $ S D L
0 r 2 r 21 d 3 ACEPTAR2 r 1 r 13 d 44 d 55 d 76 d 8 d 97 r 4 r 48 d 109 d 11
10 r 3 r 311 r 5 r 5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 450 / 563
![Page 451: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/451.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 23 / 25)
5.- Completar la parte ir a
Accion Ir-aEstado enum id { } ; , $ S D L
0 r 2 r 2 11 d 3 ACEPTAR 22 r 1 r 13 d 44 d 55 d 7 66 d 8 d 97 r 4 r 48 d 109 d 11
10 r 3 r 311 r 5 r 5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 451 / 563
![Page 452: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/452.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 24 / 25)
Analisis sintactico LR-canonico: primera parte
Pila Entrada Accion0 enum id { id , id } ; $ r 2 S → ε0 S 1 enum id { id , id } ; $ d 30 S 1 enum 3 id { id , id } ; $ d 40 S 1 enum 3 id 4 { id , id } ; $ d 50 S 1 enum 3 id 4 { 5 id , id } ; $ d 70 S 1 enum 3 id 4 { 5 id 7 , id } ; $ r 4 L → id0 S 1 enum 3 id 4 { 5 L 6 , id } ; $ d 9
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 452 / 563
![Page 453: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/453.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoEjemplos de analisis LR-canonico
Ejemplo (3.- Gramatica de las enumeraciones 25 / 25)
Analisis sintactico LR-canonico: segunda parte
Pila Entrada Accion0 S 1 enum 3 id 4 { 5 L 6 , 9 id } ; $ d 11
0 S 1 enum 3 id 4 { 5 L 6 , 9 id 11 } ; $ r 5 L → L , id0 S 1 enum 3 id 4 { 5 L 6 } ; $ d 8
0 S 1 enum 3 id 4 { 5 L 6 } 8 ; $ d 10
0 S 1 enum 3 id 4 { 5 L 6 } 8 ; 10 $ r 3 D → enum id {L} ;0 S 1 D 2 $ r 1 S → S D
0 S 1 $ Aceptar
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 453 / 563
![Page 454: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/454.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
3 Analisis sintactico ascendente LR-canonicoIntroduccionColeccion canonica de elementos - LR(1)Algoritmo de construccion de la tabla de analisis LR-canonicoEjemplos de analisis LR-canonicoInconvenientes del metodo LR-canonico
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 454 / 563
![Page 455: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/455.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LR-canonicoInconvenientes del metodo LR-canonico
Inconvenientes del metodo LR-canonico
La construccion de la coleccion canonica de elementos LR(1)es un proceso largo y tedioso.
La tabla de analisis LR-canonico tiene muchos estados.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 455 / 563
![Page 456: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/456.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Seccion actual
1 Introduccion
2 Analisis sintactico ascendente SLR
3 Analisis sintactico ascendente LR-canonico
4 Analisis sintactico ascendente LALR
5 Metodos de recuperacion de errores
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 456 / 563
![Page 457: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/457.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
4 Analisis sintactico ascendente LALRDescripcionColeccion canonica de elementos-LALR(1)Conflictos
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 457 / 563
![Page 458: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/458.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRDescripcion
Metodo LALR
LALR: Look Ahead Left to Right
Analisis sintactico con sımbolo de anticipacion.
EstrategiaSe basa en la unificacion de conjuntos de elementos-LR(1)que tienen los mismos centros.
PotenciaMas potente que el metodo de analisis SLRMenos potente que el metodo de analisis LR-canonico
Tamano de la tablaLa tabla LALR tiene el mismo tamano que la tabla SLR.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 458 / 563
![Page 459: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/459.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRDescripcion
Metodo LALR: estrategia
Unificacion de conjuntos de elementos-LR(1) con los mismoscentros
Ii = {[ A1 → α1 • β1, σ1 ], · · · , [ AN → αN • βN , σN ]}Ij = {[ A1 → α1 • β1, σ′1 ], · · · , [ AN → αN • βN , σ′N ]}
⇓
Ii−j = {[ A1 → α1 • β1, σ1, σ′1 ], · · · , [ AN → αN • βN , σN , σ
′N ]}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 459 / 563
![Page 460: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/460.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRDescripcion
Nota (Metodo LALR: estrategia)
Si dos estados se unifican entonces
- tambien se unifican los estados que se alcanzan con lastransiciones de la funcion Ir a,
- porque dicha funcion solamente depende de los centros.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 460 / 563
![Page 461: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/461.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRDescripcion
Metodo LALR: estrategia
La unificacion de conjuntos de elementos - LR(1) provoca
la unificacion de estados del automata que reconoce losprefijos viablesy la unificacion de estados de la tabla de analisis LR.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 461 / 563
![Page 462: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/462.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
4 Analisis sintactico ascendente LALRDescripcionColeccion canonica de elementos-LALR(1)Conflictos
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 462 / 563
![Page 463: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/463.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
4 Analisis sintactico ascendente LALRDescripcionColeccion canonica de elementos-LALR(1)
DefinicionMetodos de construccionEjemplos de analisis sintactico LALR
Conflictos
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 463 / 563
![Page 464: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/464.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Definicion (Coleccion canonica de elementos-LALR(1))
Esta compuesta por la unificacion de los conjuntos deelementos LR(1) que tiene los mismos centros.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 464 / 563
![Page 465: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/465.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
4 Analisis sintactico ascendente LALRDescripcionColeccion canonica de elementos-LALR(1)
DefinicionMetodos de construccionEjemplos de analisis sintactico LALR
Conflictos
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 465 / 563
![Page 466: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/466.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Metodos de construccion
1.- Construccion completa de la coleccion canonica LR(1) yunificacion final de los conjuntos de elementos-LR(1) con losmismos centros.
2.- Construccion paulatina de la coleccion canonica LR(1) yunificacion en cada paso de los conjuntos deelementos-LR(1) con los mismos centros (*).
3.- Construccion de los nucleos de los conjuntos de elementos -LR(0) y posterior propagacion de los sımbolos deanticipacion (*).
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 466 / 563
![Page 467: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/467.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Nota (Metodos de construccion)
1.- Solamente se van a mostrar ejemplos del primero metodo.
2.- La descripcion del segundo metodo se puede consultar en ellibro de A. B. Pyster.
3.- La descripcion del tercer metodo se puede consultar en el librode A. V. Aho.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 467 / 563
![Page 468: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/468.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Contenido de la subseccion
4 Analisis sintactico ascendente LALRDescripcionColeccion canonica de elementos-LALR(1)
DefinicionMetodos de construccionEjemplos de analisis sintactico LALR
Conflictos
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 468 / 563
![Page 469: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/469.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplos (Analisis sintactico LALR)
1.- Gramatica que genera el lenguaje L(a∗ d a∗ d)
2.- Gramatica de la sentencia de asignacion
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 469 / 563
![Page 470: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/470.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplos (Analisis sintactico LALR)
1.- Gramatica que genera el lenguaje L(a∗ d a∗ d)
2.- Gramatica de la sentencia de asignacion
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 470 / 563
![Page 471: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/471.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 1 / 19)
P = {(1’) S’ −→ S(1) S −→ C C(2) C −→ a C(3) C −→ d
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 471 / 563
![Page 472: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/472.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 2 / 19)
Coleccion canonica de elementos LR(1): primera parte
I0 = {[S’ → • S, $], [S → • C C, $],
[C → • a C, a , d], [C → • d, a , d]}I1 = {[S’ → S •, $]}I2 = {[S → C • C, $], [C → • a C, $], [C → • d, $]}I3 = {[C → a • C, a , d], [C → • a C, a , d],
[C → • d, a , d]}I4 = {[C → d •, a , d]}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 472 / 563
![Page 473: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/473.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 3 / 19)
Coleccion canonica de elementos LR(1): segunda parte
I5 = {[S → C C •, $]}I6 = {[C → a • C, $], [C → • a C, $], [C → • d, $]}I7 = {[C → d •, $]}I8 = {[C → a C •, a , d]}I9 = {[C → a C •, $]}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 473 / 563
![Page 474: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/474.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 4 / 19)
Se unifican los conjuntos de elementos LR(1) que tengan losmismos centros
Al unificar los estados, tambien se unifican los estados que sealcancen mediante transiciones con la funcion Ir a.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 474 / 563
![Page 475: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/475.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 5 / 19)
Unificacion de los conjuntos I3 e I6
I3 = {[C → a • C, a , d], [C → • a C, a , d],[C → • d, a , d]}
I6 = {[C → a • C, $], [C → • a C, $],[C → • d, $]}
I3−6 = {[C → a • C, a , d, $], [C → • a C, a , d, $],[C → • d, a , d, $]}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 475 / 563
![Page 476: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/476.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 6 / 19)
Unificacion de los conjuntos I4 e I7
I4 = {[C → d •, a , d]}I7 = {[C → d •, $]}
I4−7 = {[C→ d •, a , d, $]
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 476 / 563
![Page 477: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/477.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 7 / 19)
Unificacion de los conjuntos I8 e I9
I8 = {[C → a C •, a , d]}I9 = {[C → a C •, $]}
I8−9 = {[C → a C •, a , d, $]
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 477 / 563
![Page 478: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/478.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 8 / 19)
Coleccion canonica LALR(1): primera parte
I0 = {[S’ → • S, $], [S → • C C, $],[C → • a C, a , d], [C → • d, a , d]}
I1 = {[S’ → S •, $]}
I2 = {[S → C • C, $], [C → • a C, $], [C → • d, $]}
I3−6 = {[C → a • C, a , d, $], [C → • a C, a , d, $],[C → • d, a , d, $]}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 478 / 563
![Page 479: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/479.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 9 / 19)
Coleccion canonica LALR(1): segunda parte
I4−7 = {[C → d •, a , d, $]}
I5 = {[S → C C •, $]}
I8−9 = {[C → a C •, a , d, $]}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 479 / 563
![Page 480: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/480.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 10 / 19)
Automata que reconoce los prefijos viables
Antes de la unificacionEstado a d S C
0 3 4 1 2
12 6 7 5
3 3 4 8
456 6 7 9
789
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 480 / 563
![Page 481: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/481.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 11 / 19)
Automata que reconoce los prefijos viables
Despues de la unificacion
Estado a d S C
0 3-6 4-7 1 212 3-6 4-7 5
3-6 3-6 4-7 8-94-75
8-9
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 481 / 563
![Page 482: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/482.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 12 / 19)
La unificacion ha permitido reducir el numero de estados de10 a 7.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 482 / 563
![Page 483: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/483.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 13 / 19)
Automata que reconoce los prefijos viables
Antes de la unificacion.
0
1
2
3
4
6
5
8
7
S
d
aa
d
C
C
C
a
dd
aC
9
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 483 / 563
![Page 484: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/484.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 14 / 19)
Automata que reconoce los prefijos viables
Despues de la unificacion.
0
1
2
4−7
3−6
5
8−9
S
d
a
d
C
a a
d
C
C
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 484 / 563
![Page 485: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/485.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 15 / 19)
Tabla de analisis sintactico LALR
Accion Ir-a
Estado a d $ S C0 d 3-6 d 4-7 1 21 Aceptar2 d 3-6 d 4-7 5
3-6 d 3-6 d 4-7 8-94-7 r 4 r 4 r 45 r 2
8-9 r 3 r 3 r 3
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 485 / 563
![Page 486: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/486.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 16 / 19)
Tabla de analisis sintactico LALR: estados renombrados
Accion Ir-a
Estado a d $ S C0 d 3 d 4 1 21 Aceptar2 d 3 d 4 53 d 3 d 4 64 r 4 r 4 r 45 r 26 r 3 r 3 r 3
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 486 / 563
![Page 487: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/487.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 17 / 19)
Automata que reconoce los prefijos viables
Estados renombrados.
0
1
2
2
S
d
a
d
C
a a
d
C
C6
4
3
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 487 / 563
![Page 488: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/488.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 18 / 19)
Analisis sintactico usando la tabla LALR: primera parte.
Pila Entrada Accion
0 a d a a d $ d 30 a 3 d a a d $ d 40 a 3 d 4 a a d $ r 3 C → d0 a 3 C 6 a a d $ r 3 C → a C
0 C 2 a a d $ d 30 C 2 a 3 a d $ d 30 C 2 a 3 a 3 d $ d 4
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 488 / 563
![Page 489: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/489.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (1.- Gramatica que genera L(a∗da∗d) 19 / 19)
Analisis sintactico usando la tabla LALR: segunda parte.
Pila Entrada Accion
0 C 2 a 3 a 3 d 4 $ r 3 C → d0 C 2 a 3 a 3 C 6 $ r 2 C → a C
0 C 2 a 3 C 6 $ r 2 C → a C
0 C 2 C 5 $ r 1 S → C C
0 S 1 $ Aceptar
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 489 / 563
![Page 490: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/490.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplos (Analisis sintactico LALR)
1.- Gramatica que genera el lenguaje L(a∗ d a∗ d)
2.- Gramatica de la sentencia de asignacion
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 490 / 563
![Page 491: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/491.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (2.- Gramatica de la sentencia de asignacion 1 / 10)
P = {(1’) S’ −→ S(1) S −→ L = R(2) S −→ R(3) L −→ * R(4) L −→ identificador(5) R −→ L
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 491 / 563
![Page 492: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/492.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (2.- Gramatica de la sentencia de asignacion 2 / 10)
Coleccion canonica de elementos - LR(1): primera parte
I0 = { [S’ → • S, $], [S → • L = R, $], [S → • R, $],
[L → • * R, =, $], [L → • id, =, $], [R → • L, $] }I1 = {[S’ → S •, $]}I2 = {[S → L • = R, $], [R → L •, $]}I3 = {[S → R •, $]}I4 = {[L → * • R, =, $], [R → • L, =, $],
[L → • * R, =, $], [L → • id, =, $]}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 492 / 563
![Page 493: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/493.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (2.- Gramatica de la sentencia de asignacion 3 / 10)
Coleccion canonica de elementos - LR(1): segunda parte
I5 = {[L → id •, =, $]}I6 = {[S → L = • R, $], [R → • L, $],
[L → • * R, $], [L → • id, $]}I7 = {[L → * R •, =, $]}I8 = {[R → L •, =, $]}I9 = {[S → L = R •, $]
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 493 / 563
![Page 494: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/494.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (2.- Gramatica de la sentencia de asignacion 4 / 10)
Coleccion canonica de elementos - LR(1): tercera parte
I10 = {[R → L •, $]}I11 = {[L → * • R, $], [R → • L, $],
[L → • * R, $], [L → • id, $]}I12 = {[L → id •, $]}I13 = {[L → * R •, $]}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 494 / 563
![Page 495: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/495.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (2.- Gramatica de la sentencia de asignacion 5 / 10)
Unificacion de los conjuntos I4 e I11
I4 = { [L → * • R, =, $], [R → • L, =, $][L → • * R, =, $], [L → • id, =, $] }
I11 = { [L → * • R, $], [R → • L, $],[L → • * R, $], [L → • id, $] }
I4−11 = { [L→ * • R, =, $], [R→ • L, =, $],[L→ • * R, =, $], [L→ • id, =, $] }
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 495 / 563
![Page 496: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/496.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (2.- Gramatica de la sentencia de asignacion 6 / 10)
Unificacion de los conjuntos I5 e I12
I5 = {[L → id •, =, $]}I12 = {[L → id •, $]}
I5−12 = {[L→id•, =, $]}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 496 / 563
![Page 497: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/497.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (2.- Gramatica de la sentencia de asignacion 7 / 10)
Unificacion de los conjuntos I7 e I13
I7 = {[L → * R •, =, $]}I13 = {[L → * R •, $]}
I7−13 = {[L→ * R•, =, $]}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 497 / 563
![Page 498: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/498.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (2.- Gramatica de la sentencia de asignacion 8 / 10)
Unificacion de los conjuntos I8 e I10
I8 = {[R → L •, =, $]}I10 = {[R → L •, $]}
I8−10 = {[R→L•, =, $]}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 498 / 563
![Page 499: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/499.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (2.- Gramatica de la sentencia de asignacion 9 / 10)
Tabla de analisis sintactico LALR
Accion Ir-aEstado = * id $ S L R
0 d 4-11 d 5-12 1 2 31 Aceptar2 d 6 r 5 1 2 33 r 2
4-11 d 4-11 d 5-12 8-10 7-135-12 r 4 r 4
6 d 4-11 d 5-12 8-10 97-13 r 3 r 38-10 r 5 r 5
9 r 1
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 499 / 563
![Page 500: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/500.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Ejemplo (2.- Gramatica de la sentencia de asignacion 9 / 10)
Tabla de analisis sintactico LALR: estados renombrados.
Accion Ir-aEstado = * id $ S L R
0 d 4 d 5 1 2 31 Aceptar2 d 6 r 5 1 2 33 r 24 d 4 d 5 8 75 r 4 r 46 d 4 d 5 8 97 r 3 r 38 r 5 r 59 r 1
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 500 / 563
![Page 501: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/501.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRColeccion canonica de elementos-LALR(1)
Nota (2.- Gramatica de la sentencia de asignacion 10 / 10)
La tabla LALR tiene el mismo tamano que la tabla SLR.
Sin embargo, la tabla LALR no presenta el conflicto dedesplazamiento - reduccion que posee la tabla SLR.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 501 / 563
![Page 502: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/502.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
4 Analisis sintactico ascendente LALRDescripcionColeccion canonica de elementos-LALR(1)Conflictos
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 502 / 563
![Page 503: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/503.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Conflictos en el metodo LALR
Conflicto de desplazamiento-reduccion
Conflicto de reduccion-reduccion
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 503 / 563
![Page 504: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/504.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Conflictos en el metodo LALR
Conflicto de desplazamiento-reduccion
El metoco LALR no genera nuevos conflictos dedesplazamiento-reduccion.Si aparece este tipo de conflicto entonces tambien eragenerado por el metodo LR-canonico.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 504 / 563
![Page 505: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/505.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Teorema (Conflicto de desplazamiento-reduccion)
Si el metodo LALR genera un conflicto dedesplazamiento-reduccion
entonces el metodo LR-canonico tambien lo generaba.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 505 / 563
![Page 506: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/506.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Demostracion (Conflicto de desplazamiento-reduccion 1 / 2)
Supongase que la tabla LALR presenta un conflicto:
accion[i, σ] =
{d jr k
El desplazamiento d j se genera porque
1.- [A → α • σ β, σ′] ∈ Ii2.- Ir a(Ii ,σ) = Ij
La reduccion r k se genera porque
1.- [B → γ •, σ] ∈ Ii2.- k es la regla B → γ ∈ P
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 506 / 563
![Page 507: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/507.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Demostracion (Conflicto de desplazamiento-reduccion 2 / 2)
Origen de IiCaso 1
Ii pertenecıa a la coleccion canonica de elementos LR(1)Por tanto, el metodo LR-canonico tambien tenıa el conflicto dedesplazamiento-reduccion.
Caso 2Ii = Ip ∪ Iq, donde Ip e Iq son conjuntos elementos LR(1) conlos mismos centrosSe verifica que [A → α • σ β, σ′ ], [ B → γ •, σ] ∈ Ip (o Iq)Por tanto, el metodo LR-canonico tambien tenıa el conflicto dedesplazamiento-reduccion en el estado p (o en q).
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 507 / 563
![Page 508: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/508.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Conflictos en el metodo LALR
Conflicto de reduccion-reduccion
El metodo LALR puede provocar nuevos conflictos dereduccion-reduccion que no eran generados por el metodoLR-canonico.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 508 / 563
![Page 509: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/509.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Conflicto de reduccion-reduccion 1 / 2
Supongase que la coleccion canonica LR(1) contiene a:
Ip = {[A → α •, σ], {[B → β •, σ′]Iq = {[A → α •, σ′], {[B → β •, σ]
que generan las siguientes acciones:
accion[p,σ] = reducir con A → α
accion[p,σ′] = reducir con B → β
accion[q,σ′] = reducir con A → α
accion[q,σ] = reducir con B → β
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 509 / 563
![Page 510: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/510.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Conflicto de reduccion-reduccion 2 / 2
Al unificar Ip e Iq que se verifica que
Ip−q = {[A → α •, σ,σ′], {[B → β •, σ,σ′]que generan los siguientes conflictos de reduccion-reduccion
accion[p-q,σ] = reducir con A → α
accion[p-q,σ] = reducir con B → β
accion[p-q,σ′] = reducir con A → α
accion[p-q,σ′] = reducir con B → β
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 510 / 563
![Page 511: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/511.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 1 / 23)
P = {(1’) S’ −→ S(1) S −→ a A d(2) S −→ b B d(3) S −→ a B e(4) S −→ b A e(5) A −→ c(6) B −→ c
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 511 / 563
![Page 512: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/512.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 2 / 23)
Conjunto I0
I0 = clausura({[S’→ • S, $]})= {
[S’→ • S, $], [S → • a A d, $],[S→ • b B d, $], [S→ • a B e, $ ],[S→ • b A e, $]}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 512 / 563
![Page 513: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/513.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 3 / 23)
Transiciones del conjunto I0: primera parte
Ir a(I0, S) = clausura({[S’→S•, $]})= {[S’ → S •, $]}= I1
Ir a(I0, a) = clausura({[S → a • A d, $], [S → a • B e, $]})= {
[S→ a • A d, $], [S → a • B e, $],[A → • c, d], [B → • c, e]}
= I2
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 513 / 563
![Page 514: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/514.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 4 / 23)
Transiciones del conjunto I0: segunda parte
Ir a(I0,b) = clausura({[S→ b •B d,$], [S → b • A e, $]})= {
[S → b • B d, $], [S→ b • A e, $],[B → • c, d], [A→ • c, e]}
= I3
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 514 / 563
![Page 515: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/515.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 5 / 23)
Transiciones del conjunto I1 = {[S’ → S •, $]}
∀ X ∈ V Ir a(I1, X) = ∅
El conjunto I1 no tiene transiciones.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 515 / 563
![Page 516: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/516.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 6 / 23)
Transiciones del conjunto I2
Ir a(I2, A) = clausura({[S → a A • d, $]})= {[S → a A • d, $]}= I4
Ir a(I2, B) = clausura({[S → a B • e, $]})= {[S→ a B • e, $]}= I5
Ir a(I2, c) = clausura({[A → c •, d], [B→ c •, e]})= {[A→ c •, d], [B→ c •, e]}= I6
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 516 / 563
![Page 517: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/517.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 7 / 23)
Transiciones del conjunto I3
Ir a(I3, A) = clausura({[S → b A • e, $]})= {[S → b A • e, $]}= I7
Ir a(I3, B) = clausura({[S → b B • d, $]})= {[S→ b B • d, $]}= I8
Ir a(I3, c) = clausura({[B → c •, d], [A→ c •, e]})= {[B → c •, d], [A → c •, e]}= I9
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 517 / 563
![Page 518: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/518.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 8 / 23)
Transiciones del conjunto I4 = {[S → a A • d, $]}
Ir a(I4, d) = clausura({[S→ a A d •, $]})= {[S → a A d •, $]}= I10
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 518 / 563
![Page 519: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/519.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 9 / 23)
Transiciones del conjunto I5 = {[S→ a B • e, $]}
Ir a(I5, e) = clausura({[S → a B e •, $]})= {[S → a B e •, $]}= I11
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 519 / 563
![Page 520: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/520.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 10 / 23)
Transiciones del conjunto I6 = {[A→ c •, d], [B→ c •, e]}
∀ X ∈ V Ir a(I6, X) = ∅
El conjunto I6 no tiene transiciones
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 520 / 563
![Page 521: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/521.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 11 / 23)
Transiciones del conjunto I7 = {[S → b A • e, $]}
Ir a(I7, d) = clausura({[S→ b A e •, $]})= {[S→ b A e •, $]}= I12
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 521 / 563
![Page 522: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/522.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 12 / 23)
Transiciones del conjunto I8 = {[S→ b B • d, $]}
Ir a(I8, e) = clausura({[S→ b B d •, $]})= {[S→ b B d •, $]}= I13
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 522 / 563
![Page 523: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/523.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 13 / 23)
Transiciones del conjunto I9 = {[B → c •, d], [A → c •, e]}
∀ X ∈ V Ir a(I9, X) = ∅
El conjunto I9 no tiene transiciones
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 523 / 563
![Page 524: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/524.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 14 / 23)
Transiciones del conjunto I10 = {[S → a A d •, $]}
∀ X ∈ V Ir a(I10, X) = ∅
El conjunto I10 no tiene transiciones
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 524 / 563
![Page 525: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/525.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 15 / 23)
Transiciones del conjunto I11 = {[S → a B e •, $]}
∀ X ∈ V Ir a(I11, X) = ∅
El conjunto I11 no tiene transiciones
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 525 / 563
![Page 526: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/526.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 16 / 23)
Transiciones del conjunto I12 = {[S→ b A e •, $]}
∀ X ∈ V Ir a(I12, X) = ∅
El conjunto I12 no tiene transiciones
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 526 / 563
![Page 527: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/527.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 17 / 23)
Transiciones del conjunto I13 = {[S→ b B d •, $]}
∀ X ∈ V Ir a(I13, X) = ∅
El conjunto I13 no tiene transiciones
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 527 / 563
![Page 528: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/528.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 18 / 23)
Coleccion canonica de elementos-LR(1): primera parte
I0 = { [S’→ • S, $], [S→ • a A d, $] [S→ • b B d, $],
[S→ • a B e, $], [S→ • b A e, $] }I1 = {[S’→S•, $]}I2 = { [S→ a•A d, $], [S→ a • B e, $],
[A → • c, d], [B → • c, e] }I3 = { [S→ b •B d, $], [S → b • A e, $],
[B → • c, d], [A → • c, e] }I4 = {[S → a A • d, $]}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 528 / 563
![Page 529: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/529.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 19 / 23)
Coleccion canonica de elementos-LR(1): segunda parte
I5 = {[S → a B • e, $]}I6 = {[A → c •, d], [B→ c •, e]}
I7 = {[S → b A • e, $]}I8 = {[S → b B • d, $]}I9 = {[B→ c •, d], [A→ c •, e]}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 529 / 563
![Page 530: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/530.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 20 / 23)
Coleccion canonica de elementos-LR(1): tercera parte
I10 = {[S→ a A d •, $]}I11 = {[S→ a B e •, $]}I12 = {[S→ b A e •, $]}I13 = {[S→ b B d •, $]}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 530 / 563
![Page 531: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/531.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 21 / 23)
Unificacion de los conjuntos de elementos LR(1) con losmismos centros
Solamente se pueden unificar los conjuntos I6 e I9
I6 = {[A → c •, d], [B→ c •, e]}I9 = {[B→ c •, d], [A→ c •, e]}
I6−9 = {[A→ c •, d, e], [B→ c •, d, e]}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 531 / 563
![Page 532: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/532.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Ejemplo (Conflicto de reduccion-reduccion 22 / 23)
Tabla de analisis sintactico LALR
Accion Ir-a
Estado a b c d e $ S A B0 d 2 d 3 11 Aceptar2 d 6 4 53 d 9 7 84 d 105 d 11
6-9 r 5, r 6 r 5, r67 d 128 d 13
10 r 111 r 312 r 413 r 2
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 532 / 563
![Page 533: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/533.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Analisis sintactico ascendente LALRConflictos
Nota (Conflicto de reduccion-reduccion 23 / 23)
Conclusion: el metodo LALR puede generar nuevos conflictosde reduccion - reduccion
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 533 / 563
![Page 534: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/534.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Seccion actual
1 Introduccion
2 Analisis sintactico ascendente SLR
3 Analisis sintactico ascendente LR-canonico
4 Analisis sintactico ascendente LALR
5 Metodos de recuperacion de errores
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 534 / 563
![Page 535: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/535.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
5 Metodos de recuperacion de erroresIntroduccionMetodo de panicoMetodo de nivel de fraseSimplificacion del metodo de nivel de frase
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 535 / 563
![Page 536: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/536.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresIntroduccion
Deteccion del error
Solamente se detecta un error cuando se consulta una celdavacıa de la parte accion de la tabla LR.
¡Las celdas vacıas de la parte Ir-a nunca se consultaran!.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 536 / 563
![Page 537: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/537.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresIntroduccion
Metodos de recuperacion de errores
Metodo de panico.
Metodo de nivel de frase.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 537 / 563
![Page 538: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/538.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresIntroduccion
Nota (Metodos de recuperacion de errores)
Estos metodos se pueden aplicar a los tres tipos de analisissintactico LR:
SLRLR-canonicoLALR
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 538 / 563
![Page 539: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/539.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
5 Metodos de recuperacion de erroresIntroduccionMetodo de panicoMetodo de nivel de fraseSimplificacion del metodo de nivel de frase
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 539 / 563
![Page 540: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/540.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresMetodo de panico
Metodo de panico: pasos
1.- Se busca en la pila algun estado s que tenga alguna transicionir a con algun sımbolo no terminal.
Por ejemplo: ir a[s,A] = s’
2.- Se eliminan todos los sımbolos y estados que esten porencima del estado s.
3.- Se introduce en la pila el sımbolo A
4.- Se introduce en la pila el estado s’
5.- Se eliminan sımbolos de la entrada hasta que se encuentre unsımbolo σ ∈ siguiente(A).
6.- Continua el analisis.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 540 / 563
![Page 541: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/541.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresMetodo de panico
Metodo de panico: ventajas e inconvenientes
Ventajas
Es muy facil de aplicar.Aısla el error detectadoPermite que continue el analisis.
InconvenientesNo es capaz de detectar todos los errores sintacticosexistentes.
Puede eliminar sımbolos incorrectos de la entrada que noserıan detectados.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 541 / 563
![Page 542: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/542.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
5 Metodos de recuperacion de erroresIntroduccionMetodo de panicoMetodo de nivel de fraseSimplificacion del metodo de nivel de frase
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 542 / 563
![Page 543: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/543.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresMetodo de nivel de frase
Metodo de nivel de frase: descripcion
Las celdas vacıas de la parte accion son completadas confunciones especıficas de tratamiento de errores.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 543 / 563
![Page 544: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/544.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresMetodo de nivel de frase
Ejemplo (Recuperacion de errores de nivel de frase 1 / 13)
P = {(1’) E’ −→ E(1) E −→ E + T(2) E −→ T(3) T −→ T * F(4) T −→ F(5) F −→ ( E )(6) F −→ identificador(7) F −→ numero
}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 544 / 563
![Page 545: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/545.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresMetodo de nivel de frase
Ejemplo (Recuperacion de errores de nivel de frase 2 / 13)
Conjunto canonica de elementos LR(0): primera parte
I0 = { E’ → • E, E → • E + T, E → • T,
T → • T * F, T → • F,
F → • ( E ), F → • id, F → • numero}I1 = {E’ → E •, E → E • + T }I2 = {E → T •, T → T • * F }I3 = {T → F •}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 545 / 563
![Page 546: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/546.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresMetodo de nivel de frase
Ejemplo (Recuperacion de errores de nivel de frase 3 / 13)
Conjunto canonica de elementos LR(0): segunda parte
I4 = { F → ( • E), E → • E + T,
E → •, T, T → • T * F, T → • F,
F → • ( E ), F → • id, F → • numero }I5 = { F → id • }I6 = { F → numero • }I7 = { E → E + • T, T → • T * F, T → • F,
F → • (E), F → • id, F → • numero}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 546 / 563
![Page 547: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/547.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresMetodo de nivel de frase
Ejemplo (Recuperacion de errores de nivel de frase 4 / 13)
Conjunto canonica de elementos LR(0): tercera parte
I8 = {T → T * • F, F → • (E),F → • id, F → • numero}I9 = {F → (E •), E → E • + T }I10 = {E → E + T •, T → T • * F }I11 = {T → T * F • }I12 = {F → (E) •}
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 547 / 563
![Page 548: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/548.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresMetodo de nivel de frase
Ejemplo (Recuperacion de errores de nivel de frase 5 / 13)
Automata que reconoce los prefijos viables
Estado + * ( ) id num E T F0 4 5 6 1 2 31 72 834 4 5 6 9 2 3567 4 5 6 10 38 4 5 6 119 7 12
10 81112
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 548 / 563
![Page 549: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/549.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresMetodo de nivel de frase
Ejemplo (Recuperacion de errores de nivel de frase 6 / 13)
Accion Ir-aEstado + * ( ) id num $ E T F
0 d 4 d 5 d 6 1 2 31 d 7 Aceptar2 r 2 d 8 r 2 r 23 r 4 r 4 r 4 r 44 d 4 d 5 d 6 9 2 35 r 6 r 6 r 6 r 66 r 7 r 7 r 7 r 77 d 4 d 5 d 6 10 38 d 4 d 5 d 6 119 d 7 d 12
10 r 1 d 8 r 1 r 111 r 3 r 3 r 3 r 312 r 5 r 5 r 4 r 4
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 549 / 563
![Page 550: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/550.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresMetodo de nivel de frase
Ejemplo (Recuperacion de errores de nivel de frase 7 / 13)
Se completan las celdas vacıas de la parte accion confunciones de tratamiento de error.
Las funciones de error dependen de cada gramatica.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 550 / 563
![Page 551: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/551.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresMetodo de nivel de frase
Ejemplo (Recuperacion de errores de nivel de frase 8 / 13)
Funciones de tratamiento de error
E 1:
Sımbolo inesperado.Falta identificador, numero o parentesis izquierdo.Accion: insertar un identificador en la entrada.
E 2:
Parentesis derecho inesperado.Accion: eliminar el parentesis derecho de la entrada.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 551 / 563
![Page 552: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/552.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresMetodo de nivel de frase
Ejemplo (Recuperacion de errores de nivel de frase 9 / 13)
Funciones de tratamiento de error
E 3:
Final inesperado de la cadena de entrada.Accion: el analisis finaliza.
E 4:
Sımbolo inesperado.Se esperaba + o el final de la entrada.Accion: eliminar sımbolo de la entrada.
E 5:
Sımbolo inesperado.Se esperaba +, *, ) o el final de la entrada.Accion: eliminar sımbolo de la entrada.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 552 / 563
![Page 553: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/553.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresMetodo de nivel de frase
Ejemplo (Recuperacion de errores de nivel de frase 10 / 13)
Accion Ir-aEstado + * ( ) id num $ E T F
0 E 1 E 1 d 4 E 2 d 5 d 6 E 3 1 2 31 d 7 E 4 E 4 E 2 E 4 E 4 Aceptar2 r 2 d 8 E 5 r 2 E 5 E 5 r 23 r 4 r 4 E 5 r 4 E 5 E 5 r 44 E 1 E 1 d 4 E 2 d 5 d 6 E 3 9 2 35 r 6 r 6 E 5 r 6 E 5 E 5 r 66 r 7 r 7 E 5 r 7 E 5 E 5 r 77 E 1 E 1 d 4 E 2 d 5 d 6 E 3 10 38 E 1 E 1 d 4 E 2 d 5 d 6 E 3 119 d 7 E 4 E 4 d 12 E 4 E 4 E 3
10 r 1 d 8 E 5 r 1 E 5 E 5 r 111 r 3 r 3 E 5 r 3 E 5 E 5 r 312 r 5 r 5 E 5 r 5 E 5 E 5 r 5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 553 / 563
![Page 554: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/554.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresMetodo de nivel de frase
Ejemplo (Recuperacion de errores de nivel de frase 11 / 13)
Pila Entrada Accion
0 + id * + n id) $ E 1: insertar id0 id + id * + n id) $ d 50 id 5 + id * + n id) $ r 6 F → id0 F 3 + id * + n id) $ r 4 T → F0 T 2 + id * + n id) $ r 2 E → T0 E 1 + id * + n id) $ d 70 E 1 + 7 id * + n id) $ d 50 E 1 + 7 id 5 * + n id) $ r 6 F → id0 E 1 + 7 F 3 * + n id) $ r 4 T → F0 E 1 + 7 T 10 * + n id) $ d 8
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 554 / 563
![Page 555: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/555.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresMetodo de nivel de frase
Ejemplo (Recuperacion de errores de nivel de frase 12 / 13)
Pila Entrada Accion
0 E 1 + 7 T 10 * 8 + n id) $ E 1: insertar id0 E 1 + 7 T 10 * 8 id + n id) $ d 50 E 1 + 7 T 10 * 8 id 5 + n id) $ r 6 F → id0 E 1 + 7 T 10 * 8 F 11 + n id) $ r 3 T → T * F0 E 1 + 7 T 10 + n id) $ r 1 → E + T0 E 1 + n id) $ d 70 E 1 + 7 n id) $ d 60 E 1 + 7 n 6 id ) $ E 5: eliminar id
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 555 / 563
![Page 556: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/556.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresMetodo de nivel de frase
Ejemplo (Recuperacion de errores de nivel de frase 13 / 13)
Pila Entrada Accion
0 E 1 + 7 n 6 ) $ r 7 F → n0 E 1 + 7 F 3 ) $ r 4 T → F0 E 1 + 7 T 10 ) $ r 1 E → E + T0 E 1 ) $ E 2: eliminar )0 E 1 $ Aceptar
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 556 / 563
![Page 557: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/557.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Subseccion actual
5 Metodos de recuperacion de erroresIntroduccionMetodo de panicoMetodo de nivel de fraseSimplificacion del metodo de nivel de frase
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 557 / 563
![Page 558: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/558.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresSimplificacion del metodo de nivel de frase
Metodo de nivel de frase: simplificacion
Si un estado realiza al menos un reduccion
entonces se pueden completar todas sus celdas vacıas conuna de sus reducciones.
Nunca se desplazara un sımbolo incorrecto desde la entrada ala pila.Puede que sı se realicen mas reducciones antes de detectar elerror.Se pospone la deteccion del error: el error sera detectado porotro estado.
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 558 / 563
![Page 559: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/559.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresSimplificacion del metodo de nivel de frase
Ejemplo (Metodo de nivel de frase: simplificacion 1 / 4)
Accion Ir-aEstado + * ( ) id num $ E T F
0 E 1 E 1 d 4 E 2 d 5 d 6 E 3 1 2 31 d 7 E 4 E 4 E 2 E 4 E 4 Aceptar2 r 2 d 8 r 2 r 2 r 2 r 2 r 23 r 4 r 4 r 4 r 4 r 4 r 4 r 44 E 1 E 1 d 4 E 2 d 5 d 6 E 3 9 2 35 r 6 r 6 r 6 r 6 r 6 r 6 r 66 r 7 r 7 r 7 r 7 r 7 r 7 r 77 E 1 E 1 d 4 E 2 d 5 d 6 E 3 10 38 E 1 E 1 d 4 E 2 d 5 d 6 E 3 119 d 7 E 4 E 4 d 12 E 4 E 4 E 3
10 r 1 d 8 r 1 r 1 r 1 r 1 r 111 r 3 r 3 r 3 r 3 r 3 r 3 r 312 r 5 r 5 r 5 r 5 r 5 r 5 r 5
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 559 / 563
![Page 560: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/560.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresSimplificacion del metodo de nivel de frase
Ejemplo (Metodo de nivel de frase: simplificacion 2 / 4)
Pila Entrada Accion0 + id * + n id) $ E 1: insertar id0 id + id * + n id) $ d 50 id 5 + id * + n id) $ r 6 F → id0 F 3 + id * + n id) $ r 4 T → F0 T 2 + id * + n id) $ r 2 E → T0 E 1 + id * + n id) $ d 70 E 1 + 7 id * + n id) $ d 50 E 1 + 7 id 5 * + n id) $ r 6 F → id0 E 1 + 7 F 3 * + n id) $ r 4 T → F0 E 1 + 7 T 10 * + n id) $ d 8
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 560 / 563
![Page 561: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/561.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresSimplificacion del metodo de nivel de frase
Ejemplo (Metodo de nivel de frase: simplificacion 3 / 4)
Pila Entrada Accion
0 E 1 + 7 T 10 * 8 + n id) $ E 1: insertar id0 E 1 + 7 T 10 * 8 id + n id) $ d 50 E 1 + 7 T 10 * 8 id 5 + n id) $ r 6 F → id0 E 1 + 7 T 10 * 8 F 11 + n id) $ r 3 T → T * F0 E 1 + 7 T 10 + n id) $ r 1 E → E + T0 E 1 + n id) $ d 70 E 1 + 7 n id) $ d 60 E 1 + 7 n 6 id ) $ r 7 F → n
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 561 / 563
![Page 562: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/562.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
Metodos de recuperacion de erroresSimplificacion del metodo de nivel de frase
Ejemplo (Metodo de nivel de frase: simplificacion 4 / 4)
Pila Entrada Accion0 E 1 + 7 F 3 id ) $ r 4 T → F0 E 1 + 7 T 10 id ) $ r 1 E → E + T0 E 1 id ) $ E 4: eliminar id0 E 1 ) $ E 2 : eliminar )0 E 1 $ Aceptar
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 562 / 563
![Page 563: PROCESADORES DE LENGUAJES · 2019. 7. 18. · Procesadores de Lenguajes Tema V.- An alisis Sint actico Ascendente Programa 1 Introducci on 2 An alisis sint actico ascendente SLR 3](https://reader036.fdocument.pub/reader036/viewer/2022062403/5fe079891b653a08403bbcae/html5/thumbnails/563.jpg)
Procesadores de Lenguajes Tema V.- Analisis Sintactico Ascendente
PROCESADORES DE LENGUAJESTEMA V: ANALISIS ASCENDENTE
Prof. Dr. Nicolas Luis Fernandez Garcıa
Departamento de Informatica y Analisis NumericoEscuela Politecnica Superior de Cordoba
Universidad de Cordoba
Universidad de Cordoba: Escuela Politecnica Superior Ingenierıa Informatica 563 / 563