CO. :3 a.Jaontrno¡lisis_sintáctico.pdf · Secceocro, {€ L(6) tokens. ff-L (6) (=>Correcto...
Transcript of CO. :3 a.Jaontrno¡lisis_sintáctico.pdf · Secceocro, {€ L(6) tokens. ff-L (6) (=>Correcto...
I • •
TEMA 4 : ANALlSIS• I •
SINl"I\C1\ CO.
lEMA Cf • - As:pectos 3ellerales :3 o.lsor;i:mos.
lEMA 5. - A. S. Asc.endente : a.Jaontrno LR ~ precedencia..
de . ope.ro~~~ _ ~ --", ::.I _
lEMA 6 .- A. S. Descendente. : rec.ursivo lj. LL (o bo.sadc
en tAblas).
. . /
1 . INTRODUCCION.
El o.n(lü~ador· sintó:cti~o I!S el motor del c.ompi/a.dor : va recibiendo los
tokeJ\s del 0. . lé1.ic.o~
cuando termina de trato.r un token I entonces pide el
s.¡~l.liente al ~. 'é~ic.o.
Resto delCOtnri Indor
.,.s
A. Sintdc:-I-----~Hco ÁR.BOL
si"'~c1'¡c.o .......-'W"'-.....
A . lé~icoProsra.ma..Fuente (PF)
8 obJehvo de este modulo es
COl""T'ecto en guncioó de la. sinta.xis del
e.~ CCI'"~ sint~cn'Mente .
determina.r si el prosrama guente es
len8u~e ¡ es decir ¡ c.cmprue.ba s i el P¡:
Petra. deginir .'0. . sin1aiis · ·del 'e~ua.je.~ utilil.o r'lUla. de8inj (j()~ ' 80rmae ~ ,determinista.. de la mismo. . Esto. deginidón se bace a No.vés de uno, ~rClmá.hc.o. .
Si e.\ PF Se puede 3enero.r mediante dicha. ~ra.mdh(Cl. . serc{ correcto i en roso
ccotrQ.t1·O ~rci: it\co rrecto.
La. 3rQ.rn~tíc.a. utilj~da en el a. siniC{dico debe ser ele
Tipo 2. (independientes de con te.do),
"Produccicl)es ~ A ~ oC / AE N
o< E. (NUT)-k
Cristina Bueno F. (2010) 53/290
Tema 4: Análisis sintáctico 1/14
Secceocro,{
€ L(6) <=>
tokens
. ff- L (6) (=>
Correcto
Incorrecto
n.rbol de deri vación ~el
trcwés de las re~1 as
tol.cen~ Q.no.!.ii,C\da.. Si esto
~ a
de
~ no se 8enero..
sesuif" a.no.li~Q..fIdo el rest,e del proaro.rna
~a. no se caeneraro: l\ ins\Án cóclica-0'
de tokens' pertenece. cU len<Jvll.Je w~nerac:lo
co'diao correspondiente o la sentet\.cLa.
adecu'C\.do o. la situación
pero
de la 8ro.rncí.tica.
he¿ja.s la. secuencio
-erroreS,
se ~enera el erro r
sentencia . Es posible
busca.r maseso.
po r he..ndo de.! o..:-..tOfllo. ¡ni cial
t proeluccicnes J obtenao en lo..s
se c..cnsisut. se dice ~e lo secu.eoero,
por lo, ara.mcilico. I pudiendo ~enera.r el
~ caso contrnri o ,
El resulbxdc ~ue dehe devolver el a. sintO:ctico como cense cue.o ciC\ del
aoó'Lisis de uno, sec..u.~cia es 4d ÁRSOL siNTÁCTico correspondieote . Se trQ.tn de
""na secuencio. de derivo.e.tones ~ue nos Uevo.n o. obtener lo secuencia qe. tokens
orvo,Lt l;.Oda. .
. Por to.nto, anoláo.r sinltÍcticoMente \.LOa secuencia de +ol.ceos ccnscste en
enc.onho..r pa.ro. d.ic......o secueocic, un drbcl s¡"tO:dico o
el cócU'So de
Suente. po.ro..
lo. COO'lpleJidClcl de cae.nerar el a:rbol de 1.V\0. senteilcin. de. n tol.cens
es O (n l) . Es muy costoso po~ue tenernos en cuenla. Q'tí< lo ~ro.mc\;hca puede
ser cua\<:\werC\. de bpo 2 . Por eüo , lo <:fue se. hace €S e1eSir u.n su.b cc~\.1.f\to de.
es-te tipo de ~ro.rnc\.hCClS de mo..nera ~ p0da..mos enConvo..r proceclimientos ~\..I.e
Claili~a.n lo. sen(!JC\.cio'o del d.rbd I o\oteniendo o.sí una complejidod menor o.. ~
o..nterior.
'It "Tipos DE MÉ"TODOS PARA GENERAR LOS A . siNTÁCTicos :
- UNiVERSALES ~ Vc:{lidos raro. cucJ~uie.r tipo de ~ra.mc{tic..a.. de ccntew-to
G1.re . Complejidad O ( 1'1 3) .
- DE.SCEÑOE.ÑiES .
(el. i~ui8rdQS)
6romó.+ica. L.l..
( "Top - down) COllSbyen el drbol pcuhel\do del alliomo..
de la. 3ra.mático.. ~ a.plicando re~las pa.ro.. ~nerClr (las
h~as, ~ ser~ la. secuencia. de tokenS'.
Aplican derivació" (siempre derlvnción el. la i ~~uierda.) .
- AseENl>Et-lTES ~
(a. derechas)
Gro.Mcilica. ~ .
( Bottom - up) Ccnstev)'en el a:rbd partie.ndo de las 'nojo!> '} a.f'li(.o.ndo
las resl4S de producció.... hosb \Iesar al nll.ioma. de la ~rQfll~tica .
ApliCQII reducciof. _ despicaamiento , no denvo..cio....es por ~a elerecaa .
Cristina Bueno F. (2010) 54/290
Tema 4: Análisis sintáctico 2/14
los o . s.nt á.dicos ClScen<:ieo1es ~ de.scendeJl~es ~cn md s seno'os ~u~ los.
UtlIVe.rsuJes . .Imponen c.ierto.s coodiclcoel; SOb re la ~r"Q.m~bc~ I ,,\ue ..:e puede. adapt:a.r
si" vCl..l-ia.r el len3uoJe .
• REPRESr.t.I1'AÓÓÑ DEL ÁRBOL SIÑTÁC.íi ro :
- ESTRUC.TURA J'f.RÁR~uic.A I donde cado. nodo I:etIdrá. sus. desc.endentes . El probletnC\
de este, nota~éo es ~U~ no Impone ninaLtn orden
crono lógico de n.pl¡ca.cior, de bs rc:~IC1S .
- SECUEÑciA DE NÚMe.¡OS "Jue representan el orden de aplicacioó de las reslas o,
par fir del a"¡ oma pora. obtener el ¿rbol correspondiente
a. la secueoeio de tokens .
, . -2 . ANAl\SIS SiNTÁCl"i CO DESCENDEN1E.
Un . 1 a.na:Üsis a i ~g\lÍerdas; " paro. una rodeno terminae T es la. lista de n¡[meros
ele la s re~las de denlloción o. i ~~uierdas ( reslC1S de produ cción) uli~i.adas p<lra ~en~a.r
T o, r ar-hl'" del ox icmc, S de. la. 8ram~+ica. .
U/\a derillO.ción el. i ~~ulerdas cons·,ste en a.p1icnr ",na. r~'Q de .prod u cció n aJ
símbolo s.tun.do más a. la i 'l.~uierda..
Un a.nc(üs~ sintá.dico de~dente de Una. sentencia. consiste en
t ra tar de encontrur I.lt\ ~lisi!. a i~~uie.rda.s pnm ~a ca de na
qe .. entrad..a. .
Si dada. \.loa. 3ra.rnn~ca I 0.1 a.plica.r las re~las (producciones) obteJI80 uno,
sentencio. ~ al .vol~r eL upIicnr IClS re3\o.s. en dis.tinto orden obtenso ea. misma ~entencia.;
eo tonces ~ algo rncJ e n la s ramá.+ica. . Para 'fIe eJ compilador J..ulciooe ccrredQ./Oen+e
es necescric ase~l.'ra.r ~Lle. pa m cada. cadena. de eobnda.. .se obtiene o..V\a ÓNi CA
CiaU({.a. . Se. neces; tu. U.f\a grn.mó..-hCA (autómato..) determinista. por5f-e. al ir a.J\aLleo..ndo Qu
se ntencia. se l/el" reaLieOlldo to.lnbten otras opere.c ie nes ( a cciones !iemc{n+ic.as, ~eneraúo¡'
de c.óctiac I . . • )
Cristina Bueno F. (2010) 55/290
Tema 4: Análisis sintáctico 3/14
E'em lo ", A"á.li~is descendeo~.
bramó.bcn tipo 2 :
N={E/T,F}
T :: { + , * I ( ¡ ) I iel }
P ;{E~E+T 1
E""'" 2-
i~"ltF a
.. ~ F li
&=~(E) sF ..., ¡el b
}Sentencia- a. o.oo.Lii.~r ·, ieL'" ( Id + id.)
E.
12.T
Esta, wnm~ \lea. respe.to.. .
(obliSo. o. 'fle s e c.lolmpi0..) ea..prece denc io ,( priorida.d) de eosoperadores arÍ"tmenco~ .
/I~T .. F
14 /1~5F ( f )
I ~ /1\ 1Id. E -t- ..
I2. I Lt
E\eSlf'Y\O& p~-l_~. • -----.<>c:nVQj" se Inpre
e.1 s{""bolo de.
lo. j~ !tuierdQ.
T
I L¡
F
lbid
F
¡el
ANÁLisis DESCENDENTE
(o. i ~~uierdQ.s)
Orden de. aelic.acio~ :
23 e:, c.; 512'1 " L¡~.
t--.#".~---...~
AI\ei.Usis descendente :
del Ql(lotno.. e, la.s hoi QS .
J , . '
Cristina Bueno F. (2010) 56/290
Tema 4: Análisis sintáctico 4/14
• Produc:c.;one.s. de la ~ramá.i\c(\ : E -? T + "T
T ~ E
T ~ iel
• S entencÁa. ', a. + b ;. e
Pri mera Sarilla :
,S~u.nda Jo(",el :
1 4 3 2- ~
E ==) T+T =) iel + T => ieL 1- E => id. + T 11 T '=.)
id + id. " T =) Id. + id. JI id.t¡
2. 3 1 4 l.¡
E => T "'T =) E.. T => T +T "T => id. T T .. "T = ;>
id. T id.. ... T => ¡el + iel .,. i el~
Lo. wnmá.-tlca es ambis,¡(\ porQUe las dos Jbr mas \lQ\idQ.o la. sentenda..
El ccmp·,lo.dor no acepta esto. a m biaüedn cl .
Nec.es;ta.rnos u.n proceso de.ter minista. . Pa ra ello:
- Uhlit-amos I.\.M 8ramá.~ca no ambiaua.
- Ha cer ~ue el anali~a.dor sea determi nis ta. . Por EO'emplo, hac.er Ci:lue
siempre. has a derivaciones o. i'l. <'¡l.li erdas (~ue siempre. COjo. el
no termina.! más a. la i~uierda..) . A veces. esto, SlOlución nO b(\~Ja .
No pedemos tener 1.1.0(\ ~ro.mñ.ficn reC\lrSIIIQ po r la i~~uierdo. .
'em l e : ReciU"s;vidad por In i~uierda .
Sentencla: w" a.b
S =) 5b = ) Sbb - > ... =) S bbb..b
Como .!>ie.mfre lIa.. ma.s eJi:¡}iendo el pnroer no terminae por ea. i"i.flwerda.,
Ilecaariamos. a. u na. sduacióo de bucle i n8i ndo ~ nO se podría a ec.ani.ar nunco,
\0. 'i~do.Uó l'l de la. se ntenc.iQ..
".
\-Io.bn:A. ~ue e.Iimil'lClr lo. rec"rs;vidad PO'" lo. it:c;¡uierdA. o hc cer \Ul
l\J)c{lisi!> ClScendente .
Cristina Bueno F. (2010) 57/290
Tema 4: Análisis sintáctico 5/14
· .úRAMA"TICA l.L \ Con este tipo de 3rcuná:hca. puedo ccos-truir un o..naU ~QdOf
sOntetetico descendente ~ue Q.nC\l!'tCl IQ cadeno. de entrQclQ. de i~~erdQ a derecha. 'ir
produce \.ltl Cl1\~Lisis ' a i't.~ierdas correcto . po.ro. did'lQ cQdeOQ. de entro. da. .
; . • • I •
3. ANALlSIS S\NTACTICD ASCENDEN"TE.
U I "
Un o.no..üsis a. derechQS PQro UnQ cadenCl term',nat T es ~ ~isto. deI
de la,s; re~las de derivación derecha en orden inl/erso u+lLi~o.da paru.
ea cadeJ'la T o. partir del o xiomo S de la. 3ra.má.tica .
Una derivacicn derecho. consis.te en aplico.r u..nQ l'e$j\Q de Froduc.uén 0..\
sjmbolo situado rncí.s a. ea. derechc .
Un a.nclüsi!> sintC{dico Q.~l\denh~ de ...na secuencio ocnsiste, en
hal:o.r de encontrar un Clná.üsis a derechas (a:rbol a derechQS)
pnrQ. la rodeno. de entrad.a
Anó'üsis eucendente :
E
/1~1E + T
12. /1\3T T .. F
Iy14 I ~
F f= .'eL
1, l'¡ei id.
Orden de a.piieacío,; ~
G li 2 b 4 <;; 3 1
derec1\0. 1 del
hojQ.s e il\lleÑ ir
la. lista.. . ~
~
Sentenua.: id + id..¡, id
e.\ arden de
derillo.r pOr lo.
Q.xiolYlo. e, las
E'em lo: Aná.lisis ascendente.
G Ji! (N I ,.. PI E)
p:: { E ...., ETT 1
E ~ T 2
T ~ T'IoF aT ~ F q
F ~ ( E ) 5
F ~ iet. e
}
Cristina Bueno F. (2010) 58/290
Tema 4: Análisis sintáctico 6/14
' .' 1'" .'
. . ,, ' . . . "
ParQ. comprobar le. cc¡r,-ecc.ión del an~U!.is asceodente anterior hacemos -el
.. o..nó-lisi::. CA der-ec.has ~escenC!ente n y , b ,ene. "Iue soLir el , m IS m o ,-esi.Jtado, pero en
orde.l\ in\le(so .
1 3 '" E +@ ...l.¡
-} E+ => E+T • F => id.. =)
"""'---" -...J
E +\É}1Ie; 2. <¡
iet. =) ~ T id. ... id. => + id. lo id =)
'-' ~ ......,
F " id..t; ¡d i id,• ieL ..) id. +-
'-"
Orden de aplicacíc'n : 1 3 6 't 6 2 q G
(;;\ orden de aplícacic~ es ;"verso => El ' o..nc{lisis, ' ascendente obtenido
es correcto.
, . ,. , .6R.~Mt\T\CA LR :. Se et:t-raeterÜ.a. por~ . pe~mae . crear UJ\ OJ'IQ.li~Qdor
Sintó..c.+ico . Q.Scenclente ario.li'i:ando " lo: Ct\dena de entradQ. de i~c;:ruierdo.. a derecoo I
produe.Íe.ndo \.lO an~üs¡s¡ o. derechQS.
p' r
I • •
4. ANALISIS DESCEI'JDENl"E CON RETROCESO.
El rebrocese de este cJaorítrno sirve pa.ra hacer determinista lo.
~Jl"amcltic.Cl . E~te mé +odo Sv.nciona para t:oda. ~rorná..4ica. de. tipo 2 (de
contell.to Libre) no rec'-I.rsivo. por la i'i:~ujerdq" pues s; lo Juera f'od..r ía entrcU"
en UJ\ bucle ¡nsin;t o.
Este aJaoritmo no es eg1ciente a. causa del retroceso I por lo ~ue 00
se suele uhÜ~ar pa.ra constrU-ir c«opi Ia dores.
-..
Cristina Bueno F. (2010) 59/290
Tema 4: Análisis sintáctico 7/14
PARSE = ANÁUsiS RESULTANTE = SECU~cil\ DE U\S RE~LAS APUCAOAS .~
ANALIZADOR SINTÁCflCO DESCENDENTE CON RETROCESO
Algoritmo:
Entrada: Gramática de contexto libre no recursiva por la izquierdaCadena de entrada; MFa¡ , a2,... an , ~o .
Salida: Un arse a' uierdas w si existe; en otro caso, error
frocedimiento:1. Ordenar y numerar todas y cada una de las reglas de la gramática2. Comenzar la generación del árbol con el axioma de la gramática, Éste será el nodo activo,
inicialmenteEjecutar:
a. Si el nodo activo es un no terminal A ;
• Escoger la primera alternativa para A Ycrear sus descendientes• Hacer el de más a la izquierda el nodo activo• Si A no tiene más descendientes, hacer como nodo activo el siguiente a la
derecha deAb. Si el nodo activo es un terminal a:
• Comparar el token de entrada con aSi son iguales, el nodo activo será el siguiente a lad~.ha'dee /Si no lo son, regresar al nodo donde se aplicó la regla anteriorpreviamente, y tratar la siguiente alternativa (otra derivaciónj x (RetroceSo)
• Si no hay más alternativas, volver al nodo anterior y seguir así )1,
Hasta llegar al final de w (si no se puede llegar a construir el árbol, error)3. El parse será la secuencia de los números de las reglas utilizadas-
E 'e rn lo: AI~oritmo de ana'.Lisi~ descendiente con rehoceso .
G :; ( NI T I P I lIpo) vJ = arra.y [ nU.M .. OIlM J oS c.ha.r
P : 1 Tipo ~ S'I/'nple
2- '-;po ~ cura::i [ Sil\'lple] aS Tipo3 SimpJe ~ tnteaer
9 S imple ~ ehar
5 Simple 4 nu.m .. nl.LM
v-npo~
t)/:i5'~ Q~~ ; J(í~~in~et" cho.r nUM..oum int ese.l' c.ha..r num .,nu.m
X X X X X V
Parse =- 251 q-Aná.Qisis o-
i~~ui erdQ/) o 'btenido.
Cristina Bueno F. (2010) 60/290
Tema 4: Análisis sintáctico 8/14
I • •
5. ANALlSIS ASCENDENTE CON RE1"ROCESO.
Este método .g""l\ciona pa.ra. ~ram~t cas Sin ci clos ~ si" reSlas >. (excep
tuo.ndo I a veces, \~ re~\as del "Xiorna) .
C.1C.I.O : A ~ A _ Jo---, Vuelvo a ob lener el
serie de der;va.c.iones.
símbolo no termioa..\ A h a s uno,
.' , Este a.\a0ritrno no se utiLi~ .
En aene rae I lo!. alaoribnos Con retroceso oc son "ia.loles.
ANALIZADOR ASCENDENTE CON RETROCESO
I oritmo:
DUCCIÓN.,DESPLAZAMIENTO
.'
Entrad~: Gramática de contexto libre sin reglas A. y sin ciclosCadena de entrada: .w=a;l, a2,... a¿ n~1Las reglas de la gramática están "itumeradas . r ,
Salida: Un parse a derechas para w, si existe; en otro caso, error
"
1 ,
Procedimiento:l. Se considera que la cadena a analizar se encuentra en una pila de entrada2. Explorar la cabeza de la pila de trabajo
a. Comprobar si hay un lado derecho de alguna regla que pueda equipararse con lossímbolos de la cabeza• Si es así:
~ Hacer una reducción , esto es, reemplazar estos símbolos por el lado izquierdo de laproducción
~ Si puede hacerse más de una reducción, éstas estarán ordenadas de algunaforma para determinar cuál aplicar primero
• Si no es posible la reducción :~ Desplazar el siguiente token a la pila de trabajo y volver al paso 2 eL
b. Si se llega al final de la cadena w y no ha sido posible una reducción , retroceder hasta rel último movimiento en el cual se hizo una reducción. Si hay otra reducción posibleen este punto, hacerla y volver al paso 2. Si no la hay, seguir retrocediendo
c. Sí se llega a un punto en que no se puede seguir avanzando, errord. Si se ha leído toda la cadena w y en la pila de trabajo sólo está el axioma, entonces el
parse será la secuencia de los números de las reglas utilizadas en las reducciones
piLA
I>EEIIITR .
~"
piLADETRAB.
.!¡-/
Cristina Bueno F. (2010) 61/290
Tema 4: Análisis sintáctico 9/14
E -e o:
P : 1 E ~ E +T
Z E ~ T
.3 T ~ T .... F
(¡ T ~ F
5 F ~ ( E ), F ~ id
Po la de +rnb o:
Se escose r3 ror"~ve es ~
primera de ltU. ~ue se pueden
~r\¡CDJ' ·
d ~ r~ rZ d, d. r d d d rlO re¡ r2 d.l( i) ~
~ ,-F\ , - ,,i~_ I , :T:'- - 1 ,e + ' I tOS\... ' ... 1
(~,.-.. , I \
X X X ... - "',E E E :E: E lE:\ J: 1 \~ .... E,.
O <O,-' \ - ' I I , -,
( ( ( ( ( ( ( ( ( 1 ( I I f 'I ,
'-' I I0 * 0 '" '" .. + .. .. ,. .. ~ .. ,. I w 'I I
~. "F"" .;:" E E E i T T T T T T T T T ,. T T \T' T f _\ ' _/ .. -' -- ', \:/, d re; rL¡ r1 d. r5 ra r2 FIN +i===
lnicia.l mentel/~tÍC1 ---.
® PO r" este ~mino "eso a..l Jinal de la secllenc.iQ. ~ no ob+en80 .solucion "ñe¡ek
(n u.n ca encoovaré E .. en una. pa rle derecha) . fb r ello retrocedo ~stéC -IQ.-
rechlce.ión r Z,
Despl(l'ioo pO~l.Ie ()() hay nlOSLlna reducc:.ioÍ'l posi ble, e Ácep+o r2 I c:¡ue 'lo. he.mos vis \ 0
~ue no conduce Q. la solucion.
Pa rse. (a.ná.Li s i s a. derechos obte.nido) " lO 4 b q 2 C; i¡ 1 5 3 2 .
Cristina Bueno F. (2010) 62/290
Tema 4: Análisis sintáctico 10/14
E"ero lo: Alsorit mo de an~lisis
P: 1 E -') E ... T
2 E ~ T
3 T ~ T .. F
L¡ T ...., F
5 F ~ ( E )
b F ~ id.
o.sce ncient e ceo retrecese (Redu , cióo - Desplo'i,a.mie.o\o).
Pila de. tra. o :
Se escoae- -s por~ es lo.
primera de la.s !fe se pueden ap~car "
~
tiempo=,.(6 r3 rz FI Nel "6 r'l r2 r eL d.
JC x · JI t (j)
retrocede hllSto. r2
d.~ r4 r 2.X
el.
-\JA X X x
" X Xe
~~r»: ,,-
t~,-,
I ' E. 'F '' F' ,1"'I ,,_, , '~" I IA 0 • ... -t- G> • l . :..... 't 1 I
~,--\ -~ , I --,,I F, 'TI E E E E E E T T 'T 'TI ,:t' E
~- ' '--' '- ' ' _1 ...7'
@ Desplato porc;¡ue 00 ha~ oin~una red ucción ('os i b\e I uc.epto r 2. 1 C4ue ~Q. hemos
v i5.to ~ no co nduce ~ la soluciono
Pa.rse ( QI\~li s¡~ a derechas obtenid o) = 6 Lf G .3 2-
Cristina Bueno F. (2010) 63/290
Tema 4: Análisis sintáctico 11/14
·' l '
i -,
•
Cristina Bueno F. (2010) 64/290
Tema 4: Análisis sintáctico 12/14
ANALIZADOR AsCENDENTE CON RETROCESO (REDUCCIÓN-DESPLAZAMIENTO)
Algoritmo:
Entrada: Gramática de contexto libre sin reglas A. y sin ciclosCadena de entrada: w=a¡, a2,... an , ~1Las reglas de la gramática están numeradas
Salida: Unparsea derechas para w, si existe; en otro caso, error
Procedimiento:1. Se considera que la cadena a analizar se encuentra en una pila de entrada2. Explorar la cabeza de la pila de trabajo
a. Comprobar si hay un lado derecho de alguna regla que pueda equipararse con lossímbolos de la cabeza• Si es así:
o Hacer una reducción, esto es, reemplazar estos 'símbolos por el lado izquierdode la producción
o Si puede hacerse más de una reducción, éstas estarán 'ordenadas de algunaforma para determinar cuál aplicar primero
• Si no es posible la reducción: .o Desplazar el siguiente token a la pila de trabajo y volver al paso 2
b. Si se llega al :final de la cadena w y no ha sido posible una reducción, retroceder hastael último movimiento-en el cual se hizo una reducción. Si hay otra reducción posibleen este punto; hacerla y volver.al paso 2. Si no la hay, seguir retrocediendo .
c. Si se llega a un punto enque no se puede seguir avanzando, error .d. Si se ha leído toda la cadena w y en la pila de trabajo sólo está e.l axioma, entonces el
parse será la secuencia de los números de las reglas utilizadas en las reducciones
Cristina Bueno F. (2010) 65/290
Tema 4: Análisis sintáctico 13/14
ANALIZADOR SINTÁCflCO DESCENDENTE CON RETROCESO
Algoritmo:
Entrad~ Gramática de contexto libre -no recursiva por la izquierdaCadena de entrada: w=al, a2,... an, 1120
Salida: Un parse a izquierdas para w, si existe; en otro caso, error
Procedimiento:l. Ordenar y numerar todas y cada una de las reglas de la gramática2. Comenzar la generación del árbol con el axioma de la gramática. Éste será el nodo activo,
inicialmenteEjecutar:
a. Si el nodo activo es un no terminal A:• Escoger la primeraalternativa para A Ycrear sus descendientes• Hacer el de más a la izquierda el nodo activo• Si A no tiene más descendientes, hacer como nodo activo el siguiente a la
derecha deAb. Si el nodo activo es un terminal o:
• Comparar el token de entrada con oSi son iguales, el nodo activo será el siguiente a la derecha de aSi no "lo son, regresar al nodo donde se aplicó . la regla anteriorpreviamente, y tratar la siguiente alternativa (otra derivación)
• Si no hay más alternativas, volver al nodo anterior y seguir asíHasta llegar al final de w (si no se puede llegar a construir el árbol, error)
3. El parse será la secuencia de los números de las reglas utilizadas
Cristina Bueno F. (2010) 66/290
Tema 4: Análisis sintáctico 14/14