ntac11co descenden1e.¡lisis... · 2012-04-12 · 1. anal\s\s descenden te recursivo.. pred\ciivo....

32
, .. TEMA G; ANAlIS\S I , S\NTAC11CO DESCENDEN1E . Le.. idea. 3enernl de es te tema. es 3ene mr un a.na:Usis a ra ra u.nQ. c aden a. de entra.da dad a. , es decir I el'lcoot.ra.r lo. derivación por- lo i M¡u.í e rd a.. El drhd se ob1ieoe e>l.pandienclo el no te.rrn·lna.l por la. I es de cir , d d.rbc! se en pre orden =-) Se eS:Uldia un nodo lueso su subc{rbol com pl e to , Posteriormet1te I el S\4bc{r 1d derecho. (;'e.R\ lo : Tenemos lo.s S S -+ AB /\ A a.. A B B 6 (1) 1 a. b H c:lue. deril/M rnmero A 'l",e no o. cC\.be eco todo. su ra.mo., 110 se denl/o. el símbol o no terminal B. » ANÁlisis SiNTÁCTico DESCENDENTE RECURSi'Jo .: Se b asa. en v.no. s e.t le de procedimi.entos a los se "o. fta.m an do de mo."eru. recu.rsllfa.. para re al..it.a.r el aoá.Usis de. la cade nCl de entr a..cl a. Cada. 1400 de estos c or res ponde a. un no te.rm 'lOo.I de la wa má. ti ca. . Los pro c.eclimíen te lO: . , Ilam a.n d o eotre. , d orde n de es tos ,\l o. m o.d as determ·,nQ.. se Iro.n y ei o.nñ.Li sis de la cadena. . E 'em lo : GCWf\ c\. :\\cQ. : Árbol siotQ.. c:nco: S ..., AB S A -. a. /"" B CD A B I /\ a.. e D Trcn.o. de lo. de procs . S A o •• o.. B e D r Lo. c1eJine. el tLri:lo\ sinteí..c:nc.o . Cristina Bueno F. (2010) 129/290 Tema 6: Análisis sintáctico descendente 1/32

Upload: others

Post on 02-Apr-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

, ..

TEMA G ; ANAlIS\S• I ,

S\NTAC11CO DESCENDEN1E.

Le.. idea. 3enernl de este tema. es 3enemr un a.na:Usis a i~quierdas rara

u.nQ. cadena. de entra.da dada. , es decir I el'lcoot.ra.r lo. derivación por- lo iM¡u.í e rd a..

El drhd se ob1ieoe e>l.pandienclo el ~:mbolo no te.rrn·lna.l

por la. i ~~uierd.a. I es decir , d d.rbc! se ~enerCl en

pre ~ orden =-) Se eS:Uldia un nodo ~ lueso su subc{rbol

i~~"ierdc com pl e to , Posteriormet1te I el S\4bc{r1d derech o.

(;'e.R\ lo : Tenemos lo.s ~la.s : S

S -+ AB / \A ~ a.. A B

B ~ 6 (1) 1 I®a. b

H~ c:lue. deril/M rnmero A ~ ha.s~ 'l",e no o.cC\.be ec o todo. su ra.mo. ,

110 se denl/o. el símbolo no terminal B .

» ANÁlisis SiNTÁCTico DESCENDENTE RECURSi'Jo .:

Se basa. en v.no. s e.t le de procedimi.entos a los ~ue. se "o. fta.m ando de

mo."eru. recu.rsllfa.. para real..it.a.r el ao á.Usis de. la cade nCl de ent ra..cla . Cada. 1400

de estos r roced..imie()t~ corres ponde a. un s ~rnbol o no te.rm'lOo.I de la wamá.tica. .

Los proc.eclimíente lO:. ,

Ilam a.ndo eotre.,

d orde n de es tos ,\lo.mo.das determ·,nQ..se Iro.n s~ y

ei o.nñ.Lisis de la cadena. .

E 'em lo : GCWf\c\.:\\cQ. : Árbol siotQ..c:nco:

S ..., AB S

A -. a. /""B ~ CD A B

I /\a.. e D

Trcn.o. de lo. ~ec.M.ciól'I de procs .

S

A o •• o..

B

eD

rLo. tra.~a. c1eJine. el tLri:lo\

sinteí..c:nc.o .

Cristina Bueno F. (2010) 129/290

Tema 6: Análisis sintáctico descendente 1/32

Page 2: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

, .1. ANAL\S\S DESCENDEN TE RECURSIVO

. .PRED\CIIVO.

Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~li si!.

es ~ue., 5nbendo el si31.liente s;m\>olo de l~ codena de entrod..a., se puede deterrro;na.r

sin o.mbi~üedacL el cal'l'lIno a se~u¡r en el an¿'lisis sintn.dlco descendente . Es\o '.f'iere

decir ~v.e, dado un s;mkclo 1)0 terh\lnal CCI'l diferentes producc4ones., se sabe c uca de

ellas ho.y e;¡ue o.plic.a.r .

Este. a.ná.üsi~ no -nene re~o, por lo ~ue ha.y ~ue Q.Certar a la. primera.

en la elec.c.ión de la. producc.io'n.

¿ Qué. problemas I'rte puedo encontrar para. la. eleecjo~ de la. produc{lo~ a.

a.pkc.ar '?

Producáones $le empiec.en de lo. mis.mo. Jorma :

B.~ c. DF

B .. cCD }.

*

B -+ Ba..

'* Ré.GL.AS, .

DE LA GRAMATICA I

Cual~uier ~rarn~'¡;ca debe cumplir los si~en'\es r~las pa.ra ~ue Se.

puedo. u+ili~r en Iln a.nlÍ.Us's. sintd.c;ti<.o descendente:

1 .- No recur.stva por lo. i~uierdo. .

Fa.c.ton~r 3enera.ndo

\U\ nuevo s¡;mholo

no termina.\.

- --

_..- -- ... ,t ~ -._ c¡CD

; ..5'z: : ,D6

2.. - las r~lClS tienen ~lle esto.r J~don¡,o.cla.s por la. ii;~·lerda. (asr

evlta.rnos \:ener mO:s de I.lna resla. ~ue empiece de la. mismo.

Jorrna.) .

E·en. lo :

Cristina Bueno F. (2010) 130/290

Tema 6: Análisis sintáctico descendente 2/32

Page 3: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

1.1. D'lAGRAMAS DE 1RANS·\CioN.

Po..ra cada. s l'm bo lo no term;na.1 de IQ ' 3ra rn~\i ca. se const.ruye Wl

Sormo.cio por nodos y o.rcoS . los nodot represeota.n estQdos ~

eti~\,Ie.tQdos con un s ímbolo terrnino.l, l'IO termino.l O x.

O~ni3rQ.l'I\Q

del procedi miento .

Jde procedimien1os.

dia.~ra.M C\ ele. b-an~ición

les nrccs ~rán

lo. coostru,ci~npo.ra.Se. trato. de

8 esta.do inicial

a. \0. en~dQ. del mismo . El

del diaSra.mo..

esto.dc Sinal

corres, pende a lo. "amada e1el procedimiento J

indico. la. sa.lido.. del proce.ó,ry\¡ento. e.a. ..de'lolllciÓ'l del control al pr ocedimiento ~U~ lo hab~a. lIa.mado.

Da.da lo, producc¡o'n A -+ ~"1 Xl. .. ' Xn J en el dia<Jrcl'l'lCl de t.ra.n.s;c..ion

ele A me l:en~ ~ue ase::iura.r ele ~ue hay \lna. suces iÓn de estados (nodos) CiliOS

ar(.OS estÁt1 e.b~uetndos con la. pa.rte derecha. de la. procluccioíl.

E'ern lo :

A "*

A -+

.. X, }

-ARc.o .si::in~i<.a. ~eCMta.r

(es una lIo.fY'IadA alno terminal

NO TERMiNALsímbolo

Q dichócorr~pondiel'lteel procedimiento

proe.e.clim',ellto ) .

~ ~ tokel'l

Un ~ e.n~ue.tad.o COn un S:mbolo TERMiNAL Incli CCl ~ue. ha~ ~ue.

~aLit.Qr las !>iguienies acciones:

Comprobar Que es ese terminal el ~e. tel'\~O en ea. posición actual

ele la cadena de ent ro. da. .

Vo..lid.a.r el terminal (col'\Sumir el toke.n) ,

Leer el si~u.¡en1e token (pQSo..r 0.\ si~uien+e elet\'\e.n+o) .

Cristina Bueno F. (2010) 131/290

Tema 6: Análisis sintáctico descendente 3/32

Page 4: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

.' , E:em lo. Dacl.a. la ~rQ.ll\c\.tica. :

E ..., E+\ I T 1 I 2

T ..., T-F I F B I l¡

F ~ ( E ) I id.. 5 16

Const.rlAir los dia.~tClma.s de t.rQ1l~ cior"

~ e lo. $J ...a.m~ti ca. cu.rnple las ~Ias neceso.rias ?

Esta ~ro.mn.-lic.a -belle

~uc. mocGJic.o.rla. paro.. poder

2 reslo..s reCU1'SIIIo.s por la i l.<;luierda ( 1 ~ 3 ) . \-la'}

usar -el anó'Lisis sintá.c.nc.o clesc.e.nclen1e predic:hllo .

¿ Cómo elim ino la. rec.ursividacl por lo. i~!\uierda.?

E ..,@ot(i)(E+j)+(J)E+T+T otT

Po.ra. s.aLir del b",de ~o ~ue de,.;vor E ~ T . As:, c.ual~uiera de

las pl'"od\lwones se convierte en T + T + T ."

E ..., TE'

El ~ + TE I I ). } Pril'/\e.ro scUso cen In. 'r ~ Il.Ie30 ha30 1",

íecu.rsivicla.d. . Pa.ro. po.ro.r1o. us e )¡.

- 1" -+ 6). (f)(i~F)7@

Para s;o..lir del bucle teoso C:¡l.4e derivar T ~ F . Así I cual ~\.tiera de

las pl'"oduc.e.iones se convierte en F'" ¡: .. ¡: ..'

Cristina Bueno F. (2010) 132/290

Tema 6: Análisis sintáctico descendente 4/32

Page 5: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

Lo. O(leva. 3ra.má..b CA ~ :

E .., TE.1

\1-TE' I AE ...

T ~ F",+ FT' I ).T ~

F ... ( E) I id.

" ¡_ _ _ o • • , • - - _. ••

... Ahora. s, p(ledo hacer lo!:> dia..wa.Mas ele trCll\sicic'l) (uno por cada. 00 termi nal) .

E

PROCEI>\)RE E i

BEG'IN

Ti

E" •I

Elllt>

El: -+ Represent.a. u.oa. condicioQ 1\::

T ;

I

cz=,@F~ Representa. 1AnQ. ~ndición I~ :T , --+o esC:OJo " .. " o escojo "xQ .

>.

F: ~e~¡el

El =) &:T ::B- >. 0Uniendo E coo E :+

I

Vniend.o ,. COn" =-) T :

F ~ueclC\. i~ua.1 -) F

Cristina Bueno F. (2010) 133/290

Tema 6: Análisis sintáctico descendente 5/32

Page 6: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

Dada la 1O;~uien\:e situacio~ en un dia'3rama de -lra.nsicióo:

T~o ~ue saber ~u~ CAmino ele~ ir ~ sin e~jl/oca.rme . ¿ Co~o 'o de eldo ?lo únlco ~ue ceoescc es la cnc::Ieno. de entrada. I en concreto el si~lliente t.oken el

ana~ ~ur .

IIJ = ! o.bc,a..d -. Sabe ~ue el elemento ~\1e tielle <;lue enC:ootra.r es "0.'1.

Para decidir c;¡ué uunioo e1e~ir se u+itiiA la Juncio'o FiRST de los

' s ímbolos no terrninoJes;, ~L el S:mbolo terminal a la entrado. perienece a.J FiltST

de '.~ ,de!.erMino.do · símbolo no ierminal, tenso e;¡ue ir por ese cn.mino.

La p~unta «;Jue debo c.ontes.tar es,

. ) .!

¿ a. €. FiRST(A) ?s ,

e e, e: FiRST (B) "?

E.I ú.nic:o pro,blema es ~e

~ue s;ólo

• a" pe.rlenaco.

pod.r:a. reseiver

a ambos FiRS. I en c:u,/o caso

mod.¡gica.odo ~a. <aramc{ticC1. .

Paro.. Sa.ber SI. L4n~ re31Cl. opo A 4 ~ es la c:fe se deb-e uhU't.a.r se

de."'e mirar si el cc.rocter a. la entrnda pede.nece al FOLLOW (A) . En caso de

<ilue s.í pe.rtene~ I se podrá.. ",ti U't.c:u· dicha regla...

Cristina Bueno F. (2010) 134/290

Tema 6: Análisis sintáctico descendente 6/32

Page 7: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

E'ero lo: Ahora vamos a cons truir los procedirniel1to~ correspondientes a les

ciia8ro.tno.s de tmnsició" de lo. p<i:.:}il"la Cl.nluior .

PROCEDlJRE E i

BEGiÑ

T',IF si~u;ente. _token = ' ... I T\iEÑ

BEGiÑ

_. ~i~ui~l1+e _ to.\<eo ~ sean () i

E ¡

END

ELSE

-- A"an~ en lA led \lfG. ele \0. Co.dtna de entrado. .

END

BEGiN

tNO} Corresponda o.. lo. ro..Mo.. x~ No ~ ~ ha.c.er nado.. , as: ~

~ta. ro.mo.. SO~ro.., se. pue.de ol'llitir.

PRoc EDURE T i

BEGiN

~j

IF si~uiente _ token = ' .' IHEN

BEC;;Ñ

:Sisu',ente - token ~ ~cnn ( ) j

i;

tND

' , -

END

PROCE I>URE

BE6iÑ

IF

F '1

. ' t t Le • 1 ( 1 T"C.'S1 Su,en e _ o .. n "'"''''

BEGiN

sisuiente. - token = SCCln () ;

E i

iF sisuiente _ token = ') 1 IWE'"

BEGiN

o¡i~uie"te- token = SCQ.n () i

ENO

Cristina Bueno F. (2010) 135/290

Tema 6: Análisis sintáctico descendente 7/32

Page 8: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

ELSE iF si~l.\iente._ token = •id} TI-t€N

BE6iÑ

Si3u.4e..,te - to\<en = s.co.n () j

EtJD

ELSE

ER¡;ZoR ( sím'bolo ·Incorrecto) ./

END

. Ademels , necesito UI'I . proceci',m'le.,\:o priooE l c¡¡ue. se encal"~~ de. obtener el primer

tokeo » eje.c..utal" el a ...ioroa ':

PROCEDURE Comp- Dese _ Rec. j

BEe:.iN

I si~lliente _ token . ~ .seo.ll"(') j

E¡END

' ..

... To.OIbién h Clkt'a e;¡ue año.cL r al i nol del procedimiento E ea. Jino.Lil.ación con ¿,,,'it a

;:} reconocer e.1 S~mbolo especial s (gin de lo. cadena.) .

'e.m lo:

Recallocer la ca dena. -+ id -t- id. ~ id

F -t id.

T

EEmpie.~o Q.. .--.

eJec.l.\t a.r por

E I axioma. ele

lel. ~ro.O\c1.o~ . +

E ,.F ..,. id

>

E

/I~T 1" E

I 1F ,.

I /1\i~ F · "

IT

F -'> id.

id F

Iid.

Cristina Bueno F. (2010) 136/290

Tema 6: Análisis sintáctico descendente 8/32

Page 9: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

I • .

2 . ANAL"SIS DESCENDENTE. PREDICTI\lQ

/\JO RECURSivO "" A. D. POR I ABLAS '= LL.

Es~uema de trabo.jo del Qtla.{jtador :

BUFFER DE ENTRADA

-

Pro~rClma. A. S.ntc\.ctito

XDe~c:.el')dente con Tablas .

B

0.1 TAe.LA DE DEcisióN

AM

$

pilA DE

TRABAJ"O

BUFFER DE EÑTRADA -+ \;\ pl'O:}ruma. es ~enérico I vá..Lido p<\ro. cual~er ~rClmá.bc.a.

no recursivo, por la. j ~ <il u ierda. .

piLA DE TRABAJ"O -+ lo. pila. .se inic.ia.liea. ceo el OAloma . En ella. puede hClber

lOíMloolos l.ermina.les :-J no i:ermina.les.

. . 'TA B l A DE DEClSIOÑ ~ La. l:a.bla.. del a.ná.l.isis descel1de l'lt e es b;d imens icncJ ~ el)

ello se toma.n IClS ekcislones. en 8u.nci~o de un s;,.,\'olo

no te.rm ·lOa.I ::t de un s:1\'1bolo terminal , M ( A, a)

.. Si,.UAC.ioNE& POSi8lES 1

~\ pf"O~rama. púede torna.r

de. la pHa.. ~ el elemento s;aviente

2. decisiones ~ lo hace eo Sunc.ión de la cabe~

de la. cadena. de entrada:

<D Si. X = a.~ =->i- ~

pilo.. ell\:ra.d.Q.

Quita.r X de la pila. .

Leer siSuieo1e. token : a.~..1J ,

CASO ESPECiAL : Si. X = a~ ,; $ ~> Aceptar la cadena . I=io.

Cristina Bueno F. (2010) 137/290

Tema 6: Análisis sintáctico descendente 9/32

Page 10: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

@ S~ X. E. N => Consulto.r la.. TClbIa.. de Decisio'h :

• S i M( 1.. • Q~) 0= ~ (~sillo. Vo.óo..) =) brror .

• 5. M(X, o.d -= X -+ X'1 '" Xn (res\o. de lo.. ~"o.má"hc.a.) =>

=) Quaar X de In pilo. . }

Meier en la. pila. lo. pnrte der ecbu Oeri\lQ.t' por, e,a. nt9\a. .

de la. prod14ccion.

la. SOr rno. correcto. ~ deja.ndo X1 en la.

la. pila.. I pues lo pnme.ro ~ue ~uiero

clerl11o.r es X1 (estcu'nos en derilladón por lo..

i!t:luie.rdo..) .

,J

íeCómo introducirlo en lo. pila. ?

,Esto.. es

XIIc.lmo. de

B

0..,

A

$

ANALIZADOR SINTÁCTICO DESCENDENTE LL

Algoritmo:

JI Can~lt.o. to..IolCL de 'dec.i aio'n . · "

} DeriVal" por eso. re~o.

Entrada: Cadena de entrada: w=al, a2, ... a"

Tabla de decisión MSalida: Si w E L(O) se obtiene el análisis a izquierdas para w; en otro caso, errorProcedimiepto:1. Pila de trabajo S inicial: $

Buffer de entrada inicial: w$2. siguiente_token = al (Primer elemento de w)

REPETIRX = Cima de la pilaSi X E T ó {$} entonces

Si X = siguiente_tokenQuitar X de la pila } V to.liclo.r o"enAvanzar siguiente_token

SinoError

Si no ' /1xe ~ ,Si M(X, siguiente_token) = X - X, ...X,

Quitar X de la pilaIntroducir X¡ ...X, en la pila

Si no /1 CQ~iIlCl "CLeLa. .Error

HASTA X = $Aceptar cadena (si X = $)

Cristina Bueno F. (2010) 138/290

Tema 6: Análisis sintáctico descendente 10/32

Page 11: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

E'em lo:

Dada \o. ~ra.m~oc.a :

E -'» TE'

E' ~ ~ TE' I x ( Ve.rnos~"'e lo. aro.má.-hca. no

T ~ FT ' '=lene reclArsividad.) ,

T' ...., * FT ' 1>.F -. (E) I id.

Dada. la ta.lolo. del Q.naLi'l.o.dor dese;.endente (tAbla. de decÁsión ) :

oZ

M id. + • ( ) sE E ...., 'TE I E...., 'TE'

E" E"~-+'TEI E ' ..... A E' .... ).

,. T~ FT' T~ FTI

T" T· ..... >. T' ~ lt F'T ' T'''''' ). T'...., A

~ ¡:: ..... ¡el F"" (E)

Terll'lioQ \es -t $

( Yo.. vereMOS

Comproba.r ~I la. si8\4iente. codeoc pertenece ni leo 3uo..je ~ene,.ndo por

dicha. s....o..m~-bca :

1I

I

II,

'+

II,

II

-t

\\\\

\

F

\

\\\~

W _ id.1 T

E

/~T E'

/\ /I~,.1 0 T El

I I : /\ \@ G I F T ' Q.s ~~T'

: I I" G Q/ I

I I/ I

..., /V'

¡eh +' id 3

Cristina Bueno F. (2010) 139/290

Tema 6: Análisis sintáctico descendente 11/32

Page 12: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

Alsoribno:

piLA SiG _ TOKEN REGLA

$ id.1 ®~E~$€!) id.1 T -+ FT I

$ EIT I~ icl1 F ~ id.. Ascende.C'lre \/6. Descendenk:

$ E 'i~ 0 • Redilar es ancra.

$ E' ¡ 'I

+ T ~ >. e.ll.pa.ocr,r .

$ El + E' ~ + TE I • Deos.pla¡'(lr e~ ahol'Q.

$ EIT + + co~u.mir el terminaJo$ EIT id.z T~ F,'

. , $ EITIFid~ F .., id.

$1 ,

E T iel id.zE'T

ITl~ .... FT's JI¡

$ E'T'F ~ .-$ E'T'F jd..a F-+ id.

$ E'T' ic! id l

~ E"T'I

$ T ~ A

$ El $1

E ~ xe @ Aceptar

2 .1 . CONSTRUCCION. . '

DE LA "TABLA DE DECISION.

Entro.clo. : Gramc\.nc.ct 1)0 re C\.lrs",a po r lo. i ~~l.lierdu. , Jad.ori%ada ¡ c.ondiciÓn LL.

To.blCl de d ecisioó M ( A , 0..) " A e N

Q.ET U {$}

Me:todo: ,. pQ..rQ cad o. produ.cc.i~ A ~ el( E: Gi-a.IYl ~ -\ic. a. J¡ 01. E. ( N \.l T ) "

1) \lt e First(o<) > M(A,t) = A ~ 0< '

2) Si. x e. First (0\) ) \ft ' E , FolloLU (A) I t € T U {$}

', M ( A , t.) = A-'t '¡¡(

.... Casi 11(\5 =-> Errar. '

Cristina Bueno F. (2010) 140/290

Tema 6: Análisis sintáctico descendente 12/32

Page 13: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

~ En lo. tabla no puede haber ni Ji las ni colu.rnnas complet a mente en

blanco . Uno.. columna en blo..nco s,s'" ig ico. <::jl.le el term ino.l nunca se obl1 e ne i por

lo $e. lo. sro.má.cica estcrio, mo.l CDflstruida. o el termincJ sería ¡MeceSQ.rl o . Unu.

S ilo. eo hlo.nc.o si3niSico. ~e el símbolo no ter mína.l no Si! puede derivar.

B..., a.C

B .... bC

e ~ ).

Pa.ro.. lo. relJl~ B"" be tenerno~ ~

First ( bC) = {lo}

~M(B, lo) = B.., bC

E'em o: Coos b-\.lcc.ión de lo. tabla. de decisioó .

E ~ E+T \"T

}T ..., T"'F I F MocLSi carnos lo.. 3ra\"'tlá.~ca. paro. ~ue

F -+ ( E ) I iel CUM pla ea s condic.ione~ necesarios.

E ..., TE'El.., +TE' I AT-» F'T' Gro..má \lea. vo..\ick

TI.., ,. FT ' I A

F -+ ( E ) I id.

Cristina Bueno F. (2010) 141/290

Tema 6: Análisis sintáctico descendente 13/32

Page 14: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

T :: { id. , + , - , ( , ) }

N :: { E, El , T I 1" ", F }

.. Calcu.lamos los First ~ Follo"" :

First ( E) :: { ( , i d. }

I=irst (T ) :: { ( , id }

Fi rst ( F) :: {( ¡ iel}I=¡rst (E ') :: { +,X}First (T') :: {j,>'}

~ por ser E el cu\orna. .

I=oll ow ( E) = { $, ) }

1=01101.\1 (T) = { + ,$ ,)}FolloUl (F) ::: { ~ , t, s . ) }Follol.U (El) " { $ , ) }Follow (T ') ::: {+,$ ,)}

• Coostrllccion de la t a.bl a de dedsi~t1:

M id. + 11 ( ) $

E E~IE' E~ TE'

El E' -l tTE' E'~ ~ E' ~ >. - -4

T T 4 FI' ,. -'> F1 '

T' ,.'-,> ~ "T" ~ ..FI' "T''''' ~ ,.'.." x

F F~icl F"" (e)

E ~ First (TE') = First C"T) :: { (, id. }

El-. First (+T€ ') ;: {+}

Follow (E') = { $ , i ] (>. e First. (g())

T -. First ( FTI

) :: First (F) :: { ( , id.}

" ~ First ( • i=T ') • {.¡.}

Follow (,1) :: t -+, $ ,)} ( xE tirst.(<A»)

F -... f=irst ( ( E) ;: {elFirst ( ¡el) :: { i d. }

'\.\

IFoUow de E.

Cristina Bueno F. (2010) 142/290

Tema 6: Análisis sintáctico descendente 14/32

Page 15: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

2.2 . GRAMAT\CA LL (1)

lo.s ~ramQ.iicas LL(1) son I(\s <:re se pueden uhha.r paro. conStru.ír

los ano.l..ii.adores predid1\1os .

Lc:\S propie.dades. de esrcs ~ro.m¿tiUls son lo s si~uientes :

e No ambisua (.sólo W\ á,.bol de

lleva a la CQdena

der¡vacioó a i ~ l:1u i er d o.s

a. análi~r ) .

nos

€) No recurswo por la. ie quie rd a. ( eJ irninc.r sie'"pre esta rec~rsi"ida(l

pare. no eotra.r en AA bude. inJ in;to) .

€J FaC+orieada. por lo. i t ~uierd a. ( sólo \.lila re~l a <;tue empiece de lo.

""isn¡a jorma.) .

e \rJ A € N , si "

=) First(o<) n First (~) == ~,.

r+ c( =>).

Ademó.s, Sl >. E. Flrst (gI,) -)

-') Foil OUl (A) () First ((3) = r¡,Ec:\u¡"o.le.nte pa.ro. m¿S

de 2. re9\o.s ·

First (0/1) n FólloUJ ( A) = t/J

First (01. 0-1) n Follow (A) -= r)

E 'em 10 .- Dada uno sentencio. IF, ten~o dcc po~',biüdades:

Concl THEN Sent. ELSE. Sent }

Concl Tt-te N Sent,IF ~ ...I_F ..

IF ~ IF,Sent

Sent

} Oboe caso

Cristina Bueno F. (2010) 143/290

Tema 6: Análisis sintáctico descendente 15/32

Page 16: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

PCln\ el miStrlo símbolo no terrninaJ tenao 2 derivaciones ( N?~las) ~u-e.

cemien~W'1 COIl el ",,¡smo gmbolo =:;) No estcl. Jactori~acl~ lo. 8ramá.h ca. =>

-) Lo. ~rnM~\ico. no es ur1};

En CCnsec.ueocio.., c.uC\ndo tengo.. el símbolo \1 A· en la (.i~a - de la pila.

-~ el S-:m'oolo r.erh'\incd · .... • como si311iente token a la en\:racla, 00 sa.bré c:\ué

~\o. a.pli car.

¿ Dicferencia. enhe el método pN?dic::h llo recur.sivo ~

el método predidl\1o no recursivo?

Con el NO RE~'\JO_ ten3° ~e c.alY'lbia.r la ~ramá. ~ca.1

necesito ~u.e sea uno, 3ramel.+ica u, (1) ./

Con el RECUR.SivO es. conveniente combiar la ~ramQJic.a

po~Ue. me QW \:0 problema.s, pero se puede no ca.rnbiar

'él hacer un .~CLño ..

Método Precliatvo Rec:.ursi\lo ~

A

PROCEDuRE A i

BEGilll

If sicau.iente_loken::. 1....1 TI-IEN

sisuiente- token -= sea.n () j - - Leer oUo ca.ro.et~r . No decido por '.' porgue

IF si3uienie _ token €. Fírst (B) TI-tEN es \lO ¡ndor COM~ .

B;

ELSE

D 'J

END A'J

Cristina Bueno F. (2010) 144/290

Tema 6: Análisis sintáctico descendente 16/32

Page 17: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

A

El a.pa.ño consiste en retrClSo,r ~ decisión de: ~é proced imiento e.j.ecutClf':

vnlide el loken ' +1 ~ torno la. , dec.is io~ en Ju.n ció ll del si~uierrle l:..oken . Así.,

en &l3Clr de cQl'r1 b i a r la. 8m.~bc.a. J o..l ~ero_ .~ . . P'~o~!~lYI ic:nio po ro. scce,r gC1dor,

CCIYII.lf\ .

. ---- ---

A -'t -t Al }

A'~ BID

A:~D

E 'ercicio \ AnQlÚ.ador S intó'dlco Descendente Predic.h\lO Recurs"\Io .

"Tipo -+ S imple Arroy [Simple] oS Tipo

S imple. ~ inte3er I c.helr I num ,. num

T = { Arro.,!J I [ j ] I oS I integel" , c.nar , Ol4m ., num }

N e { T;po , Simple.}

PROCEDvRE Vellida. ( t : token)

BE6iN

I~ sis uiente _ token = t nlEI'Il

siSl.liente _ token = sco.o () i

ELSE

El'TOr ;

E~D i¡;

END

Va.rnos o. calcular lo¡ p rocedimie nt os del AnClliz.odor $ínt<:lctico Descendeo~

Pre.didi"o Re.cu.r~\Io (e.s \.lno por cad..o.. S:mbolo no i:erm"nClI) .

Cristina Bueno F. (2010) 145/290

Tema 6: Análisis sintáctico descendente 17/32

Page 18: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

PROCEDURE Tipo

BE6iN ~ Cl.lQJ\QO el sisv.ie.nte. s{""bolo es un no I:ermitIQe .

I¡; !Oisuiente. _ token E. First ( Simple ) TH EN

5Lm ple j

E LSe. 11: s isuie.nte _ token = 1 A rra.,! I THEN

BE6i N '-, C\4o.ndo el siau;enle .síl'f'lbolo es u.n te.rminat

VcJida ( I Array ,) i

Vo.lida ( ' ( ,) ;

Simple ;

\lal; ela (']');

Vo.lid a (lOS') i

íipo;

END

ENO I¡;

E"-JD

PROCEDURE Simple

BEGilll

Ir sisuiente _toKen = I tote~er 1 TItEN

Vellida. ( I inteser') ;

ELSE IF sisuiente _ token -= I char 1 THEIII

Vo.l ido. (' char ' ) i

EL~E

Vo.lida (' num .. nl.U'tJ·) i

END l~

ENO

ANÁLisis SiÑT . DESCENDENTE PREDiCT¡\I0 RECURSi\lo ~ t>i~8rQ.l'I\QS de.

mns',ciÓtI ~ procedi m~"to.s.

AÑÁL.isis sieJT. DESCE.t..IDEIIITE PREDicTI\lO NO RfcURsi\lO (PoR TABLAS

O LL) z:&) To.bla. ele decisión ~ ~or¡tmo .

J

Cristina Bueno F. (2010) 146/290

Tema 6: Análisis sintáctico descendente 18/32

Page 19: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

Ana..Ü~dor Sintádico Descendeote PredicJivo Re.C\.Lrsi\fo.

Blo~ue. -:¡. b~in Sent {. Se.nt} e.nd.

Sent_ ig -+ iS Ccnd then Sent [ else Sent]

Cond.. -+ id. > id

s'ent - ClSiS -" id. : = id. { + ie!.}Sent -+ SenL ~ SeoL a.~i~ Bloe:¡ue. I x

N = { Blo~lÁe, Sent _~ I Cond , Sent - asis I .s~t}

T - { be~in, ; , end, I ¡S, then , e.Isc. , id.. , > I : =

Cale.u.\o.mos los prOcedimi e"to~:

PRQCEDlJRE Blo~ue j

BE(:;'Ñ

VoJida. ( 'b~in') ;

5eot;

""Hil E. siauiente _ token :: l.' DOJ

BEGiÑ

VoJida. ( , .') .~ I

Se.l\t i

END

VcJida. ('end ')¡

ENO

PROCE DURE 5enL ij j

BEGil'l

Vo.lida. (\f);

Cood..;

Va.lido. (' tnen " ) ;

Sent¡

~ sicauic.ote-I:oken = "eíse' THEN

BE6iN

Valido. ( 'else') i

Sent j

ENO

ENO

Po..ro.. lo. repetición ele ~ o Más

'Jece.s : {} en notación E~NF .

Po.,.o. lo. repetición de ~ o 1 \la :

(] en notación E8NF=.

Cristina Bueno F. (2010) 147/290

Tema 6: Análisis sintáctico descendente 19/32

Page 20: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

PROCEDURE Sent j

BEGiN

IF si31.liente_ token :: • ¡3 1::H.E_~_ ...._.

Se.nt - i3;ELSE IF si~",iente _ token = 'id I -mE'"

Se.nt - asis j

ELSE IF siau;ente _ token ::' b~inl THEIIl

Blo~ue. ;

EI\lD IF ;

END

PROCEt>U~E Cood..;

BEGiI'J

Valida ( ';d. I);

"a.lid o. ( 1 > ' )¡

Valido. (' id..')¡

END

PROCEDURE Sent, a.sig;

BEGiÑ

V~ ida (' ¡d') ;

v« ..'d a ( ' : =') i

\/o.licla ( 'i~') ; . . ,

""HilE si:}l.liente_ token = 1 ... I Do

BEGilll

VaJida ( ' +');

Valido. C ;d.') ;

END

ENO

HeMOS tra.b~o..do con fu aramñh<:.a en notacioó EBNF . S; la. hllbiéramos

ca.mbiado paro.. posarlo.. o..J jorma.to normal J sería.:

Blo~ue ~ b~in Seot A

A ~ end, I j Sent A

SenLiS ~ iS Ceod, -lheo Sent B

8 ~ ~ I else Sent

Cristina Bueno F. (2010) 148/290

Tema 6: Análisis sintáctico descendente 20/32

Page 21: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

E'ercic.io : Con s.tnAc.eión de lo. tnbla. de decisión .

F es el a.ltiolYla. (u:nico símbolo no term·",Q.\ gue no Clpo.rece

en la. pClrle derec\-¡o. de ICl'i producciones.) .

F ~ ( id. A )

A ~ PO R

O ~ p O I n\lll

R ~ rest, O 1 >..p ~ ( iel O)

.. Caku.lClmos: lo~ Firs1. ~ Follow ;

First ( F) = { ( }First (A) ; { ( }F,rst (O) ;: { (. mlll}

Firsl ( R) ;: { re.st , >. }~¡rst (P) " «}

,.....­Fcllow ( F) = { s }Follow (A) = { ) }

FoHow (O) ;: { re.st I ) }

FoUow (R) ;: { ) }

Follow (p) = { ( , nlAll }

.. Construcción de lo, ta.blo. de decisión:

T '" { ¡d., (, ) , null, re st 1

N={F,A,O,R,pl

M ¡el ( ) nl.lll rest $F F~(icl..A)

A A~ PoR

O O ~ PO O ~ nllll

R R~A R~ rest O

p P ..·d id O)

.,.

F _ First ( ( id A)) = { ( }

A -p Fir-st, ( POR) :: {(}

o -. Fi rst, (P O) :: {( }

Fi est (n I.lII ) { nu 11 J

t

R _ First (rest O) = { rest}

First (X) ;: ,\ => Follow (R) == {)}

P _ First ( (id O)) :: { ( }

.... Que.dan coll.lmno.s en blanco =->

S ímbolos. ter""na.le~ inne.ceso. r ics o

Cristina Bueno F. (2010) 149/290

Tema 6: Análisis sintáctico descendente 21/32

Page 22: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

Si a. la. 8r a.rn <i.-bca anterio r le aña.dirnos lo. producción : P ~ >. J t.eoerncs

\os si8v..ien+e~ camb ios:

First ( A) ,. { ( • nu.1\ 1Firs.t (p ) " { ( I >.. J

M id. ( ) nu.1I rest $

F F ~ lid.. A)

A A-'POR A .:, POR.

O~ PO I! ~ P~I\O O~n

R. f<-), Ro, -est O

p p~ l iel o) p-) >.P~A

A -+ First l POR ) := { ( I nV \1 }

-,

, ~ ) .. ,

: . ..0 ~ J=irst" ( PO) ' '':1_{{J nu.ll}

Fi rst (nu.\1 ) " {n.u..l1}

E'ercicio:

F ~ ( id. A)

A -) P O R

O -) P O nu.11

R -'t rest O I ).p -+ ( id O ) 1 >.

"i( Mira.m os~

O :

o ~ PO

O -) nu ll }

First ( PO) n First (nll U) :: {( , nu.l\1n { 1l1.l11 1*q

No e s ~ =) No se cl.lmp\e la. co ndic.ioo Ll .

Cristina Bueno F. (2010) 150/290

Tema 6: Análisis sintáctico descendente 22/32

Page 23: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

'lo. so.kemo~ !:Iue lo. 3ra.m~tica. no es LL, pero COtn p"'ob a.01o s los

demclS pa.res de. reSlas simplemente. por prC\.dico..r .

• Mira.mos R.

R ~ rest,O }

First (rest O) n First (~) = {rest 1n { ), } = ~•R ." x ~

Follo"", (R) n First ( rest, O) :: { ) } () {rest 1 ;:rJ>

.!J,

R no cIa. problemo.s.

.. Mira.mos p ,

p ~ ( id o) } First. ( (id O) (\ First ( A) = {( \ () {A \ :: l/J

p ~ A ~.)

Follow ( p) () ':-i rst ( (i do)) ;: { (, nlA\1 1n { ( l ::f:-r)

~La.s res la,c;. de P da.n prokleOlQs ,

E ' e n::i ci o ~ Comp"'obQc¡o~ ~tUlY\cl.ticas LL (1).

S .,. OAAO I 1 A 1 I A

A ." B I eB ." 01 I '1 oe ..... o o \ 1 1

6ramáh<.a no recursivo, pol" la. it:<;¡uierd~ .

- GmM~-n<.~ gadori~a.da. .

- Comprobar eondkiéo LL,

First ( S) ;: {O,1, >t} Follow (S) = { $}

Fir-st, CA) = { 0 11 } Fo1I0w ( ,,) = { 0 1 1 }

First ( B) '" { 0,1 l Follow (B) -s, { O I 1 ~

I=itst (e) = { O 1 1 } Follow (e) ={ o ,1 1

Cristina Bueno F. (2010) 151/290

Tema 6: Análisis sintáctico descendente 23/32

Page 24: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

.. Cornproba.mos S :

{ o} n {$~ =fJ

{1\n {$l=91

{ol(){1\ -:1/>

= { o}n {>.\:: t>

:: {1\(){}..} =~

First (OAAO) () Fi rst (1A1) ::

First (O AAO) n Firsl (x)

Fir st (1 A1) n First (}..)

«:'Fir~t (OAAO) () Fo\low (S) :

First (1 A1) () I='oll ow ( s) =

.JJ,

S -+

s ~ 1 A 1

S no dQ. r roblel\'\C1S.

'* Comprobamos A:

A ..., B¡A ..., e

First (B) () First (e) = {o ,1 1n { o, 1 } 1: rJ

~No se cu~ple la coodic.ión U .

• Comprobamos B I

B ~ 01 }B ....., 10

I=irst (01) () First (10) = {O} " {1} = r/J

B no da. problemas.

11 Comprcba.mos e :

First (0 0) n First (11) ;: { O } n {1\ = 9

~e no do. preblern ClS .

Cristina Bueno F. (2010) 152/290

Tema 6: Análisis sintáctico descendente 24/32

Page 25: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

E'ercicío :

s ....., ABC

A >./A.

B e B I +

e ~ -

a. Comprobar coodic..iones: Ll.

- Es rec.ursiva. por la ¡c"luierda . l-!a.y ~ue. a.rre3Iarla.;

s ~ A BC

A ~ ~1f'A

B .... cBI +

e .... -

~ Ca.rnbi(lndo el orden de erlos s{t'/\bolos:

~(l no es rec14~i"a. por la. i~5f'LierdC1. '

- la ~rc.má:n<:.a yo. es;ta: SaC+ori~ada..

- Comproba.r Co~ó'() LL:

First ( s) :: {.,-+, -}First (A) = {X,.}

First(B)= { T , - }

First (e) = { - }

Fo lIoUJ (S):: { .t}FolloUJ (A) . {+ .> }Follow ( B)::> {-}

Follow (e) = { + , _ I $ }

* M'-ro..mos A ;

First ( l' A) n First (~) :. {-\l } () {).} -; f¡

«:"Follow ( A) n Fir-st ( ;o A) :: {+ ,- 1 () {A, .... } = si

""L.o.s r~\as de A na da.n proble.mas.

.. M·lrc.moS B :

B.... CB}B~ +

Firs:t ( e B) () Fi..5.-t. ( +) = { -} n {+} :: '"

~Las te~'as de B no do.n problemas.

Cristina Bueno F. (2010) 153/290

Tema 6: Análisis sintáctico descendente 25/32

Page 26: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

b) Ca.lc.u.IQr lot proc.edil'rlieo-tos (Có'di80) de\ A. S . Descenden"te Pred.ic.t\"o Recu.rú"o .

# Vo.lida.

PROCEtlvRE En'\po.~ja.. (e: token)

8E6i""

IF siSuienre _ token .. t THEIIl

si~ui eote. - token .. Sean () i

ELSE

error (e);

EtJD iF' j

ENO

PROCEDllRE

BE6i/IJ ,, '

si~uiente - token" sea" Oj

END

PROCEDORE S;

BE6iN

A ',

B i

C ',EIIID

PROCEDURE A ¡

BE6iN

¡F si9uiente _ token

Empa.rejo. ( .... ) j

Aj

END

, ,.. .... THEtJ

Ro.mo. para. A~ >. .

Cristina Bueno F. (2010) 154/290

Tema 6: Análisis sintáctico descendente 26/32

Page 27: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

B 'I

I • TWEtJ=-

PROC.EDORE

BEGiN

iF siSlliente _ token

Cj

B ',

ELSE

Empo.reJo.. ( ... ) j

END i~

EN\)

PRO CEDURE C 'I

BE6iN

ElY\po.r~ o.. (-) j

END

cJ Conshuccióo to..bla.. de dec.isióo ( A.S . Desc.e..ndente Pre.dic-h"o no ReCu.rs ·IVO = LL) .

1 = {'t<,i',-}

tJ={S,A,B¡C}

M .. + - $

S S~ABe S .., ABe s -'t ABe

A A "+... A A""" ). A -'t )..

B B-»+ B -t> C. B

e c ~ -

s -.... First (A Be):: { .. , T , - }

A -t' First (;< A) '" { .. }

First (>.) = A -> follo llJ (A) :: {-+,-}

B -t> First(CB) '" {- }

First (+) • { ... 1

e _ 1=irst ( - ) :: { - }

Cristina Bueno F. (2010) 155/290

Tema 6: Análisis sintáctico descendente 27/32

Page 28: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

d, J"us\iSic.a.r si la. ~rnma:tlCQ es de ¡ recWeocia de,....... P~.35

cpera.dor .

tilo , la. 3ra.l'rlá.bco. no cumple las re31as necesarias para. ser de precedencia..

de Opera.dor: hay r~llU Con ma:s de LU'l oc terrninnJ se~ido ~ hay ~I~ >..

Se CAMbia. Ict. Sra.má.tic.a :

5-'> A. B

A""" ..

B-" B+C- 1+c. -'> -

1) Head. (S) = {.}Head.(A): {.}Hecd, (a) : {-tJ

Head (c}» {- }

Ahora paro.. ver SI es vO:Gda hay

~e constru.ir la tabla.

Tail ts) = { ... I -t I - }

Ta.il (A) = {.)

Tail(B)= {"t,- !

To.iICC): {-}

2.) ... S ~ A ... B,¡, .¿. .J.

111 T N

1(1 ;(1 X3

L::: 1 -. T a.iI (A) ~ 't =) { ... } ~ ..

.: = 2 -. ... ~ Hea.d. (B) - > ,,~ {+}

.. B .... B+C-,¡..¿..¿. +IIlT N T

x,X1X,lI.~

í. = 1 --. 1 aí I (B) ~... => {+ I - 1 ~ ...í. .,. 2 _ ... :1 - -+ ~ Heacl (e) ::.) +,,-L =3 -. T (ti 1(c.) ) - => {- ! ~ -

... c.....,- (NO hago na elo. )

Cristina Bueno F. (2010) 156/290

Tema 6: Análisis sintáctico descendente 28/32

Page 29: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

3) $ ~ Hecul (S)

'ra.i1 ( S ) ~ $

') $ ~ {.}

- > {" '''', -l~$

T. ~ . .... + - $

;,. ~ é I/'l'~ ~ ....,+ v0/ ~ ~ ~

- V/A ~ ~ :;.

s ~ % //// /--0

E1 método no es de

precede ncia.. de ope rad or.

e. A/\c{ü~s. ClScen de.,t e LR . Aulo'ma.ta .

s ~ ABe

A ~ x I A ti

B ~ CB I +

e ~ -

s' ~ s

En lus ar de. ha.cer t odo el proceso I hacemos el autómata. d irecta.ment e .

.Io1.1- .:I3

s ' -+ . S 8A

S ~ . ABe A~ A."

A ~ . B ... . es

A ~ . A't B~ . +

e

No h~ c.onJ'ic:t-os. Red.u.ccio~ - Reducdoñ .

No ~ cOl'\g \i C+o~ Reducc.io;' - Desp la.Com ie-nto.

Cristina Bueno F. (2010) 157/290

Tema 6: Análisis sintáctico descendente 29/32

Page 30: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

E."AMEfIJ FEBRERO 2008.

La Biblioteca de la Facultad de Informática quiere crear una aplicación para almacenar en su Basede Datos toda la informaciónsobre los Trabajos Fin de Carrera que tiene almacenados en un ficheroXML. El formato de los datos en este fichero es el siguiente:

<tfc><autor>Luis Gómez y Villalonga de Pi</autor><fecha_nac> 18/05/85</fecha_nac><titulo_tfc>Diseño 30 de un Reconocedor de TFC's </titulo_tfc><tutor> Mariam Heras</tutor><nota>sobresaliente 9</nota>

</tfe>

Deben tenerse en cuenta las siguientes características del formato del fichero :• El título admite todo tipo de caracteres excepto el signo menor (" <") . El título de un TFC

siempre empieza por una letra.• La nota numérica puede ir de Oa 10 Ypuede estar escrita con un decimal.• La nota no numérica será una de las palabras: {"matrícula", "sobresaliente", "notable",

"aprobado", "suspenso"}.• En un TFC puede aparecer solo un tipo de nota o ambas y, en este caso, en cualquier orden.

Las etiquetas XML son de dos tipos: de apertura y de cierre. Cada etiqueta contiene unapalabra encerrada entre "<" y ">"; las de cierre llevan, además , el símbolo "I",

• Existe una tabla que contiene todas las palabras clave de las etiquetas XML válidas: {"tfe","autor", "feeha_nac"...}. Las palabras sólo contienen letras y subrayados.

• Las fechas deben tener dos dígitos para el día, dos para el mes y dos para el año, y debe seruna fecha correcta. En la Base de Datos se almacenará como cadena.

Se pide construir un Analizador Léxico para este lenguaje (tokens, gramática, autómata finitodeterminista y acciones semánticas).

( e.+íC;l- ¡nic. J pos)

(e.h~ -J;nal, pos)

( nota _ num I v(llor)

( nota - simb J eÓ~30)

(Jeeha I c.adena)

(c.Cld , ca.dena )

, .

Cristina Bueno F. (2010) 158/290

Tema 6: Análisis sintáctico descendente 30/32

Page 31: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

s ~ e E I ~c id. tJ I del S

E ~ e.A I lB

A ~ eA I _Al ">

B ~ e.B I _ B 1>e ~ ee I ac I ce I xN ~ d,ll .N" I ).1\)1..., / "" I . N" I AN" ~ el

!VI ..., cl!VI t

MI ~ dM "

M il ~ IYy ~ el y '

I

Y ~ eL

/ e

Cristina Bueno F. (2010) 159/290

Tema 6: Análisis sintáctico descendente 31/32

Page 32: NTAC11CO DESCENDEN1E.¡lisis... · 2012-04-12 · 1. ANAL\S\S DESCENDEN TE RECURSIVO.. PRED\CIIVO. Es v.n bl'0 de o.n~lis:l$ descencienie recurs'"0. la c~mder;shw. de este. al\~lisi!

• Lee en toda!o; las. transiciones excepto en las de o.e. (ob·o CQ.ro.cter) .

• e = Co"cateno.r .

• Pa m las ¡echas :

0-8 ~ Nu.rn := d. ;

8 -t¡ ~ tJurn :: Nllm.,,10 +d ¡

11 -12 ..., Mes .= d¡

12 -13 ~ Mes :: Mes" 10 + el .I

1't - 15 -.. Año : = d.;

1S -16" Añ o ~ = Año • 10 teL ·I

ig ~t Es _Correcta. (Norn , Mes, Año) then

e.rrorj

else

Ge,, _ \:.0 Icen (jecha., "fIlum + 1.. Mes + I + Año~) ;

9 - 10 ~

g -1CJ ~

ii (N um '> 10) t:heo

error (~ota '> 10") ;

d~e

6~n - token ( nota- nwn ¿ Num) i

1'¡ -18 ~ N\l.""' : = Num + d /10 .'"

iS. (Nurn s 10) ~eo

Gen _token (nola _num, Nl.lm);

else

"t ")error- ( No a ~ 10 ;

• Po.ra lo.s d:i~uehs ,

2 -3 ~ p ,= Busca (po..l);

Lt - 5" 7' iJ (p =nuu) -t:hen

error (" E+l c;¡ue.to. no vc{tjd o." ) ¡

else

• Tod,,- tra.M¡W;n no

pre.visd:.a -'t Error.

2,-3

• Pa.rQ Io.~ co.denas ,

'-------..,~---

'\-5

6 - T ~ p : = Busco, ( paJ);

i8 (p t null) then éen., tokeo ( nota _ simb I p) ;

else. betl_ token (cad J pul);Cristina Bueno F. (2010) 160/290

Tema 6: Análisis sintáctico descendente 32/32