Upload
lucita287
View
216
Download
0
Embed Size (px)
Citation preview
8/8/2019 Gramaticas_Ascendentes_Descendentes
1/35
GRAM TICADESCENDEN
Laboratorio de OrganCompiladores 1Universidad de San
ASCENDENTES YES
i
zacin de Lenguajes y
arlos de Guatemala.
8/8/2019 Gramaticas_Ascendentes_Descendentes
2/35
- Gramticas
- Gramticas Ascendentes. Funcionamiento. Implementar de una pila por Uso de precedencia de Ope
-Gramticas Descendentes Funcionamiento. Reescritura de Gramticas
o Supresin de la Ambigeo Factorizacin por la izquio Eliminacin de la recursivi
desplazamiento y reduccin.adores.
a
d.rda.dad por la izquierda.
8/8/2019 Gramaticas_Ascendentes_Descendentes
3/35
Las ventajas de las gramticas: Las gramticas son espprecisas de lenguajes de progr A partir de una gramautomticamente un analizador
El proceso de construccinambigedades. Una gramtica proporciona ude programacin, siendo mdetectar errores. Es ms fcil ampliar/modificacon una gramtica.
cificaciones sintcticas ymacin.tica se puede generarsintctico.
puede llevar a descubrira estructura a un lenguaje
s fcil generar cdigo y
el lenguaje si est descrito
8/8/2019 Gramaticas_Ascendentes_Descendentes
4/35
= Vocabulario finito de s
smbolos terminales son loslenguaje.N =Conjunto finito de smb
otras producciones.S = Un smbolo terminal b
principal que describir oraP = Conjunto de reglas quegenerar como parientes del
bolos terminales. Los
smbolos validos en unlos No Terminales los
ico. Este ser el smbolo
ciones enteras.nos dicen que se puedeaxioma.
8/8/2019 Gramaticas_Ascendentes_Descendentes
5/35
Es tambin conocido como:
1. Gramticas por desplazami2. Gramticas por precedenci
Las gramticas ascenun rbol de anlisis sintcticoque comienza por las hojas (focima).Se puede considerar este proccadena w al smbolo inicial de l
nto y reduccin.de operadores.
ente intenta construirpara una cadena de entradado) y avanza hacia la raz (la
so como de "reducir" unaa gramtica.
8/8/2019 Gramaticas_Ascendentes_Descendentes
6/35
Gramtica Entrada para la
S-->L uno,dos,tres
L-->L,id| id
ramtica
,cuatro,cinco
8/8/2019 Gramaticas_Ascendentes_Descendentes
7/35
Se basa en una mquina de pil El alfabeto de la pilaest for
terminales y no terminales. El alfabeto de entradaest fterminales.
La funcin de transicinse dacciones sobre la pila:{ Desplazar, Reducir, Ac
El proceso de anlisis consistepila y los elementos siguientessubcadena que coincida con lproduccin dada A .
donde:ado por los smbolos
rmado por los smbolos
efine en base a las si uientes
ptar, Error }
n ir explorando el cima de lan la pila hasta encontrar unaparte derecha de una
8/8/2019 Gramaticas_Ascendentes_Descendentes
8/35
8/8/2019 Gramaticas_Ascendentes_Descendentes
9/35
GRAMTICASPOR P
OPERADORESResuelve la accin alternativa (conflictos desplaza/reduce) enprecedencia entre operadores.
El anlisis de precedencia de o
lenguajes definidos por gramtirestricciones:
1. No podrn aparecer dos smconsecutivos en las produccion2. No podrn existir produccion
ECEDENCIADE
nte posiblesbase a criterios de
erador es aplicable a
as con las siguientes
olos no terminaless.s a la cadena vaca.
8/8/2019 Gramaticas_Ascendentes_Descendentes
10/35
EJEMPLOPRECEDENCIA DEOPERADORES, CONSTRUCCI
precedence left or;precedence left and;
INICIA::=C:value {:System.out.
C::=C:ee1 or C:ee2{:RESULTCrearHoja(RESULT,ee1);CrearHoja(RESULT,ee2);:}
| C:e1 and C:e2{:RESULTCrearHoja(RESULT,e1);CrearHoja(RESULT,e2);:}
| true:TRUE{:RESULT=Cr
| false:FALSE {:RESULT=Cr
N DE RBOL SINTCTICO.
println(value.valor);:};
CrearNodo(or","OPER");
CrearNodo(and","OPER");
arNodo(TRUE,TRUE");:}
earNodo(FALSE,FALSE");:};
8/8/2019 Gramaticas_Ascendentes_Descendentes
11/35
EJEMPLO:
or
true false
andfalse
or
false true
and
or
false
or true true
and
false
or
true
false false
and true
and
8/8/2019 Gramaticas_Ascendentes_Descendentes
12/35
MTODOS A SC
SB c E F
27/09/2010
A
a
b d D
C
e f
NDENTES
Partiendo del rbol dederivacin se compruebala siguiente cadena
Partiendo de abajo haciaarriba utilizando la pilay reduciendo lasproducciones
12
8/8/2019 Gramaticas_Ascendentes_Descendentes
13/35
MTODOS A SC
SB c E F
A b d D
C
e f
NDENTES
Ingresa a la pila
a
El anlisis se hace dearriba hacia abajo.
8/8/2019 Gramaticas_Ascendentes_Descendentes
14/35
MTODOS A SC
SB c E F
27/09/2010
b d D
C
e f
NDENTES
Reduce en la produccin A a
Cambia el valor en la pila
14
A
8/8/2019 Gramaticas_Ascendentes_Descendentes
15/35
MTODOS A SC
SB c E F
27/09/2010
d D
C
e f
NDENTES
Ingresa el valor de b a lapila.
15
8/8/2019 Gramaticas_Ascendentes_Descendentes
16/35
MTODOS A SC
Sc E F
27/09/2010
d D
C
e f
NDENTES
Reduce en la produccinB Ab
Cambia el valor en la pila
16
B
8/8/2019 Gramaticas_Ascendentes_Descendentes
17/35
MTODOS A SC
SE F
27/09/2010
d D
C
e f
NDENTES
Se moviliza en el rbol eingresa c.
e agrega c a a p a
17
B c
8/8/2019 Gramaticas_Ascendentes_Descendentes
18/35
MTODOS A SC
SE F
27/09/2010
D
C
e f
NDENTES
Se moviliza en el rbol eingresa d.
e agrega a a p a
18
B c d
8/8/2019 Gramaticas_Ascendentes_Descendentes
19/35
MTODOS A SC
SE F
27/09/2010
D
C
f
NDENTES
Se moviliza en el rbol eingresa e.
e agrega e a a p a
19
B c d e
8/8/2019 Gramaticas_Ascendentes_Descendentes
20/35
MTODOS A SC
SE F
27/09/2010
D
C
NDENTES
Se moviliza en el rbol eingresa f.
e agrega a a p a
20
B c d e f
8/8/2019 Gramaticas_Ascendentes_Descendentes
21/35
MTODOS A SC
SE F
27/09/2010
D
NDENTES
Reduce en la produccinC e f
Cambia el valor en la pila
21
B c d C
8/8/2019 Gramaticas_Ascendentes_Descendentes
22/35
8/8/2019 Gramaticas_Ascendentes_Descendentes
23/35
8/8/2019 Gramaticas_Ascendentes_Descendentes
24/35
MTODOS A SC
27/09/2010
NDENTES
Reduce en la produccinS B c E F
Cambia el valor en la pila
24
S
EJEMPLO
8/8/2019 Gramaticas_Ascendentes_Descendentes
25/35
EJEMPLO
c --> c || C| c && c| ! c
| (c)| E == E
E --> E| E -| E *| E / | (E)| NU
| E = E
| E < E| E > E| TRUE
| FALSE;
| CA
+ E
E
ENA
8/8/2019 Gramaticas_Ascendentes_Descendentes
26/35
GRAMTICASDESCE
Son reconocedores de estructu
la derecha. Se conocen como1. Parser Up Botom
Las gramticas descendente aintenta utilizan un reconocedocomienzan por la raz y se deri
Se puede considerar este proccadena hasta al final y a contin
DENTES
ras sintcticas derivables por
l contrario de las ascendentesde cadenas de entrada que
a hasta las hojas.
so como de desplazar unaacin empezar a reducirla.
F
8/8/2019 Gramaticas_Ascendentes_Descendentes
27/35
FUNCIONAMIENTOGramticaS-->L
L-->id,L| id
L
L
L
r5
r4
uno , dos , tres
d1 d2 d3 d4 d5 d
Entrada para la gramticauno,dos,tres,cuatro,cinco
r3
, cuatr
o
, cinco
6 d7 d8 d9
L
L
r2
r1
R
8/8/2019 Gramaticas_Ascendentes_Descendentes
28/35
REESCRITURA DE GR
Las gramticas descendentes dcondiciones
o Supresin de la Ambigedo Eliminacin de la recursivio Factorizacin or la iz uie
1. Es por ello que una gramtireescritura de una gramticlas tres reglas enunciadas a
MATICAS
eben cumplir con tres
ad.dad por la izquierda.rda.
a descendente puede ser unaascendente que cumpla conriba.
S
8/8/2019 Gramaticas_Ascendentes_Descendentes
29/35
SUPRESION DE LA AMLa supresin de la ambigedadformas diferentes:
1. Por precedencia de oper2. Por factorizacin por la iz
Para eliminarla or recedencia
1. Creando un nuevo no terminaloperadores que tienen la
2. Sustituir en la gramtica dnuevo terminal creado y umismo no terminal.
BIGUEDAD
puede ser realizada de dos
doresuierda
de o eradores se rocede:
por cada operador o conjunto demisma precedenciae operador del lado derecho elna produccin alternativa con el
SUPRESIN DE LA AMBIE
DAD(EJEMPLO)
8/8/2019 Gramaticas_Ascendentes_Descendentes
30/35
SUPRESIN DE LA AMBI
Partiendo de un ejemplo de unaexpresiones condicionales.Producion
S--> CC--> C &&
C--> C ||
--
Donde se acuerda que el smboprecedencia seguido por el smle sigue y por ultimo las palabra
C --> ( CC --> TRU
C --> FAL
C-->E==
EDAD(EJEMPLO)
gramtica ascendente para las
s
C
C
lo || es el de menorolo &&, el smbolo !
s reservadas TRUE Y FALSE.
E
E
SUPRESIN DE LA AMBIEDAD
8/8/2019 Gramaticas_Ascendentes_Descendentes
31/35
SUPRESIN DE LA AMBI
(NUEVO NO TERMINAL)Lista de no terminales en ord
mayor.
Operador
||
&&!
TRUE,FALSE
EDAD
n de precedencia de menor a
Nuevo Terminal
X
V Y
Z
SUPRESIN DE LA AMBIEDAD
8/8/2019 Gramaticas_Ascendentes_Descendentes
32/35
SUPRESIN DE LA AMBI
(SUSTITUCIN DEL NO TGramtica final
ProducciS -->
C --> C
C --> X -->X &
X -->V
V -->!Z V -->ZZ -->(C
Z -->TR
Z --> FAL
EDAD
ERMINAL)
nes
X
X V
E
SE
FACTORIZACIN PORLA IZQUIERDA
8/8/2019 Gramaticas_Ascendentes_Descendentes
33/35
FACTORIZACIN POR
La factorizacin por la izquierdacomunes y los agrupara, eliminfactorizada la gramtica. Un ejeanterior.
Produccio
S--> C
C-->CCC-> &&
(factorizad
C--> ||
(factorizadC --> ! C
C --> ( C
C --> TRU
C --> FAL
LA IZQUIERDA
, encontrara todos los smbolosndo la ambigedad al quedar
mplo a partir de la gramtica
es
a)
a)
E
E
ELIMINACIN DE LA RECURSIVIDAD
8/8/2019 Gramaticas_Ascendentes_Descendentes
34/35
ELIMINACIN DE LA R
La eliminacin de la recursividaregla que se ilustra a continuaci
Recursiva por laizquierda
Apl
-->
A--> A 2 A
A
A--> A n
A A A
ECURSIVIDAD
es realizada en base a unan:
cando la Regla
1A
2A
nA
ELIMINACIN DE LA RE
URSIVIDAD(EJEMPLO)
8/8/2019 Gramaticas_Ascendentes_Descendentes
35/35
ELIMINACIN DE LA RE
Siguiendo con el ejemplo nos drecursividad por la izquierda poesta regla para quitarla.
ProduccioS --> C
C --> X --
C --> X -->V V
V--> && V V -->
V -->!Z V -->Z
Z -->(C)Z -->TRU
Z --> FAL
URSIVIDAD(EJEMPLO)
mos cuenta que aun tienelo que procedemos a aplicar
es
V
E
E