Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. :...

22
; .' ; . TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior I éx.i c.o es el rnmer mÓdu.lo ,.diGi:a. I el c.cmien't;a Lo. co mpilación I Q\.lfl<;jue es el s in1á.d i c. o el la d ir i<¿Je . ¡;I 0. . li",'c.o es el responsalo\e de en contro.r las un idades :3 pa.s¿r seJns 0.1 sinta ..d-ic.o : lee. el c.a.r ader a co.r oc ter de a derecha. I i clenh8i c. o. lo!. toke.ns se los pasa al sinta:dlco si son correctos . El ;.ic.o es el ú.t'Iic.o rnó duJo lee el pr08ro.ma J uente. . Diche de olv' Q gorma. I tro..nsJorma. pre3roma JUente en IJJ'\ de toktnS. 8 anaLl ü:\dor lúic.o detecto.. errores lúic.os . t=br %iefl\plo : Idel1tiJ ic. ad 0(' demL\siado larao ( excede la lona ítud I perm'll-ida.) . - rna.l(ltllO - Co.raete.,. no perm iado en el El 0. . léll. ic.o reconoce los tokens Il'lediante uno, 3ramáh'ca. re s u.la (' o e. lI.pres icne.s .. PROPosicioNES Eqo iVALE.Nl'ES : 1) L es u.n re3u..1nr. 2) L se denoto. pOr U.na ell.presloÓ 3) L puede s er degin id.o po r u.n AFN ( a.u+Óma.to. Jin;to no determinis ta.) . AFN puede !.ra.t\SJo rm o.d o en 11/\ AFD ( de.tel"min 's\a.) . oc..u.rri r <:\ue. eotradQ. . c.omp ; lado(' oo de un paso ClI o.dmi+e o.mbi 8üedad. =) un AF D -> No puede. sia uiente te,,? va.ria.s opciones con lo. misl'l'\ CI.. AFD AFN Cristina Bueno F. (2010) 13/290 Tema 2: Análisis léxico 1/22

Transcript of Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. :...

Page 1: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

; . ' ; .TEMA 2. : ANALlSIS LEXICO .

El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e ,.diGi:a. I el ~Ile

c.cmien't;a Lo. compilación I Q\.lfl<;jue es el onaLi~ador s in1á.d i c. o el ~ue la d iri<¿Je .

¡;I 0.. li",'c.o es el responsalo\e de encontro.r las unidades :3 pa.s¿rseJns

0.1 s int a ..d-ic.o : lee. el p~ra.mCl c.a.rader a co.rocte r de i~~úieroo a derecha. I

iclenh8i c.o. lo!. toke.ns ~ se los pasa al sinta:dlco si son IbicQm~nte correct os . El

lé;.ic.o es el ú.t'Iic.o rnóduJo ~ue lee e l pr08ro.ma J uente. . Diche de olv'Q gorma. I

tro..nsJorma. eí pre3roma JUente en IJJ'\ co~u.nto de toktnS.

8 anaLl ü:\dor lúic.o detecto.. errores lúic.os . t=br %iefl\plo :

Idel1tiJic.ad 0(' demL\siado larao ( excede la lona ítud I • perm'l l-ida.) .- rna.l(ltllO

- Co.raete.,. no permiado en el l~uc~ie .

El 0.. léll.ic.o reconoce los tokens Il'lediante uno, 3ramáh'ca. re s u.la (' o

e.lI.presicne.s ~u.\a.re.s ..

PROPosicioNES EqoiVALE.Nl'ES :

1) L es u.n co~un+o re3u..1nr.

2) L se denoto. pOr U.na ell.presloÓ ~II.1nr .

3) L puede ser degin id.o por u.n AFN ( a.u+Óma.to. Jin;to no determinista.) .

Cuo.l~¡er AFN puede ~,.. !.ra.t\SJor m o.do en 11/\ AFD ( de.tel"min's\a.) .

oc..u.rri r <:\ue.

eotradQ. .

c.omp;lado(' oo

de un paso ClI

o.dmi+e o.mbi 8üedad. =) Nece~;+O un AF D - > No puede.

siauiente te,,? va.ria.s opciones con lo. misl'l'\ CI..

AFD AFN

Cristina Bueno F. (2010) 13/290

Tema 2: Análisis léxico 1/22

Page 2: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

Q = CO~i.ln~o de estados del autómata .

le. ;: A\Sabe.to de en '=md.", .

S :- Fu.ncion de tral'\Sición .

~G = Estado inic.iae .

F = Conju.nto de es.tad~ Jinales .

A F D =) J. : Q x "le ~ Q

AFN =) J : Q 'Á le ~ P(G) -;:. SUbc.onju.nto de Q .

El le,,~ua.je. <:¡ue. reconoce un autómata Jin;to es. i~ua.1 0.1 len~lJ~e ~ue

~el\era u.oa W'Q.m~hCC\ re8Í\,I~r :

L(AF) { t J t E le· I (~I t)..

t-

AUTóMATA RECONOCE. LEN6VA~E.

GRAMÁTicA GENERA LEN6uA;JE.

OJ\o.G wdor s inh ( d ic.o tenso ~ue pasarle ¡"Jor moción, decirle.

encontrado (tok.en + ¡dentiSi cado,.. ) . Por +0.0+0 I el QMlicador

Fi,,;to (TF) .

au\:ómal:a. reccnece IQS tokens I

se si sen c..orrec.tas, pero ni

e:Jué. es lo c.¡ue. he

I¿xic.o es Uf) lrocludor

1::\ Il= rec.i be une cadena de entradQ, va. ho..nsi rondo de. un edado

olonene (bnduce) lo cadena de salida .

IF N =r) S: Q" (Te U x) ~ P ( Q Ir. I s" )

TFD =) J : Q 1. (1"e U x) ~ Q 1. T s"

Cinta. de.-en\:JUdo. .

1,.. ('F) "" {(e/s) / t e. le·, S e.Ts" I ( ~Ol ti>')~ +

c..nt $C.l

.-Y (<;¡FI A, s)}~ ~

ent. Sal-¡

T rociut(ic;' de.la Oldena. eleentrada.

Cristina Bueno F. (2010) 14/290

Tema 2: Análisis léxico 2/22

Page 3: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

_____{ AFO +

Acciones semd."fica.s

r"c..teresl

(;

Aoalii;.Qdor

l¿xiCO

k.eo!O

Al'lllüeaclor

sintddico

T o.eeos sec.u.ndcuio.s del analiwdor léll.ico :

- Mo.n~a

- 8irnina

el Jkhero JUen+e

¡nJormación in~-hl

(lo o.bre, lo lee, lo cierro.) o

e.spa<.ios, ccmento..rios., saltos de lífleo) o

Cuen~o. el nú-mero de l{neo.. por el ~e "Q para ~ve, en co.so de error,

se. pueda. moslvo. r en ~ué lJnea se produjo).

TOKEÑ :'1

U,,;dad rl'lI'n ilWlQ, con ingormoc.ió" en el pre~ra.ma =) Componente

léllic.o O'l;nimo con sisn°'gicado.

¿ Cuá.les SOn los tokens eo W\ le.n3u~e de pro~rarnacÁón? SOn idenbJ;cadores,

palabra§. re.se,.."adas, nWneros (~t.e.r()5, reAles), eperodore.s, s~no5 de. pu.ntuaci~n,

consl:o.ntes. o, .

¡;°e.m lo :

El token es el símbolo kmi"a.1 de la 3romc{.h"c..o.. de C<lm-e...d-o Libre

(..01\ la c:¡ue ~ro..baja. el Clnalil.Cldor sinl:a:.chco .

... PATRÓN DE UÑ TOlr-E.1'J I Re~la ,-\ue dese..; loe el c.o1JWl~O de. IOeJ'l"\ClS (c.adena.s de

~\rodo.) c:¡ue podríClO constt-uir ese. I:.o~n (c:¡ue produ(..Qn VJlQ.

rnismo. rodeno. de, salida) o =) Re3'a paro. saber SI lUl l::olen

e.stá.. .bien jorl"l\a.do.

los deliMitGdores no sen tokens . Seo co.raeter~ . rara se,)Qli~(" el Si."la.I de! +oke.n . Es

J'rec.uente ~e sea. el p..;~e... cQ.rclcier del token sisui ente.

(Cristina Bueno F. (2010) 15/290

Tema 2: Análisis léxico 3/22

Page 4: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

4f LEI(EMA DE u"¡ TOKE"¡ . Co~v..nto de cnrocteres del pro~ra.mn (cadCl'lC\ de. entroJa.)

~U~ es ~irC\mdo ce:n el patrón de UI'I token.

TOKeN LEllE.MA PATRÓN

palClbra. ~erVClcla. iS ¡SI "¡F iSiel cont t(eJcl/-)- :o> Lt.+ro. seSVi do de

°rerodor relo.c.iono\ > >lE!4-ras, I'lúme.ro.s , - '

nUM _ ~nt 5 d..+

pCllo.bra. reservada. l:.hef'I then -l:hen

iel Imprime. e.Ce./d.)-

pa.réntesi~ a.6ierto (

tte.ro.e lo Fin ~

loe(t./d.)"~

pClrintesi S ce.r ra.elo )

pu.nte~

Como. ;

Al Meno.& W\a e.igra ente.rQ.

l " I L: 1 " i. L_ ' d.t' , el1' "./' u otro deo:m,o.l.O$. ov.merc$. reo, es oenen e SI31J1l~n\e palTon : ti

S no ten50 e.¡ue. d'1eren cia.c- Jos tokens de. los n~",eros enteros ~ reales,

el po.tro'n será.. : d..+[.d.+J (Los [] inJ.;cQIl ':ll.le -es cUso opcional) ,

¿ CÓfYlO representaJ eocL9ic.a. el o.no.li.¡,.ador lé....ico !.ln tol<en '?

Cado token .se. repres.Cl'\ta por un pa.r (_, _) . Dicho par e..:t¿ ¡formado

1) Pnme.ra componente =) Códiao del t~ken -:kl c;¡ue se l::ro.l:o.. (po.labro..

.' reservada., i de.n-hJi ca.dor, 0re.rador .. .)

2) Se~v."d" comro"~nt-e. => Insta.ncia. del toL<e.n C lel(ern Q o po~i c.ió,.. del lelCemo.

en la t<uolo. de ...ímboloS) . Aporta IY'IcLS inJ0r mQUoó

en los. CASOS c:¡ue. ~a. oecescoie (ca' : dentro de IQS

po.lCl.loras re.~er liadas J Le dhe ~!.lé pa.lab ra r-eservoda. es) .

Dos tipos ,

lOKE./\/ COMPLEJ'O ; (-,-) =) Se coclicfico como I.lf\ po..r de nlLmeros.

Tol<EN SiMPLe. , (-) " .\ \\

nÚtn~ro.-) I.U'I solo

Cristina Bueno F. (2010) 16/290

Tema 2: Análisis léxico 4/22

Page 5: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

E·e.m lo:

• T OKE.N iJ ' Códiso palabra re.serVQdQ =:Jo (comu."n pa.rn todes lo.s pa.!cü>rQS res.erllado.s) ,

Códiao ;3 = 3 (dentro de las palClbras reservado.s, el ii es el 3).

TOKE.N iJ = (:¡., 3)

ti TOKEN Lcnl . Códi80 idenh81co.dor = 5 (común puro todos 105 ;de.nhS; co.clores) .

CódiijO cont = 10 (deniro de los ¡d " el ccnt, es el 10) ,

ToKEN conl" (5 I '\0)

.. l'OKE.N >

~ TOKE.N 5 ,

.. TOKEN ~he.n .

TOI(EN> = (L¡)

Códi~o 'llime.ro = 2 (Común pCL ....O' lodos los nW-Oeros.) .

Vedo r nJ.li\~o = S

TOKEN 5 = (2,5)

Códiao palobra. rese.rva.d..n. :: 1-

CódiaO tne.n = L.j (de.ntro de Io.s po.loloros reselVodos, e.\ lhV\ es el i.¡ ).

TOI(EN the.o = ( l , <.4 )

.. TOI(EN imprime. . Códiao idenl1g;c..odor =.sCócL<00 'lmp'; me = 13

ToKEN imp,;me = (5 I 13)

~ TOKEN ( . Códi?}o pare~tes i~ -:: 8

Cócliao paréntesis a.loie.rto = 1

.. TOI<EcN ¡'Fin 01 • Có~'cao L4~erC\.e. = 3

Códicao Fin = =f-

TOKEN ·'Fin· = (3.lo)

(com~n para

( ind.i ca c;¡ue es

bdos los literales).

lo c.adel\o' "FIn") .

Cristina Bueno F. (2010) 17/290

Tema 2: Análisis léxico 5/22

Page 6: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

... "TOl(EN ) . Códicoo po. r-éntesis =8

Códiao po.ré"tes.is ce.rrado = 2-

TOKEN ).= (8,2)

'" TOI{Ef\I Códi~o :- G/ ./

TOl\EN = ( ~)

"TOKEN CÓD. T OIICEN

po.\o.brQ. reservada. ("1,-)

idenbS¡c.aclor (S 1-)

"Wl"\e.ro (2 ,-)

°r· o.ntmine.o ('1,_)

si~nQ$ p~ntl1ocio~

:

Es tos tokel\s,

s ernn

1;1 ~llJ\d.o c.o..mpo es. un nÚ.mero del '1 ot 4 po.ro. pode.r ~c;.+i"8u.i...

los 0re-rnclores:

+ ,..., 1

- IV 2.

... "TOI(EN,

OIAtl'\~ro :

cAmro e.s -el vtl.l0 r de.!,

"u.mero.

Cristina Bueno F. (2010) 18/290

Tema 2: Análisis léxico 6/22

Page 7: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

~ TOKEN identiJka do r : (5 ,_)

a . lé.,.¡ <.o nc

s inO ~1J e. eso

El S~\,l"do CAmpo es 1

- le.ll.ernQ. del ide.n+;J;c.ador --. Esto es as; cuQndo el

Ios ideobgic.ado res en la TS (Tablo de S ímbolos) ,

la reo..li~a el Q. . s i nt¡{c h' (. 0 .

PO!li c.io'n del ·.denh8 icad or en lo. 'S -+ ~ esre caso ~ es el 0. . I¿",¡(.o

el ~ve. me.+e los ld e.n+igicado res 1:.0 la ,S ,

.. iOK&I\J pcJabr a reservada : (1- 1 _ )

rese.r-vodc, ell

d e pa.la.loro.s reservadO/) .

1as pa.laJoccu;

pos'lb; li d c eles .~rllado.s . Para sa be r ho.sta dónde. I\e(}a.n -és~~ en IQ. 1$ h~ 2-

. I , 1 J ... - Se: hasta. dónde. h~ paJ o reservadas en la. .,.S.

" .: - .El'-iS te. j u.n c.o.mpo PR et\ la. TS C:lue. marce a 1 SI es pa.l . rc.serva.cla. .

.Norma..lrne.ote. 'se LlFliSica la TS (ldenh8ico.dores ) ~ la t a.bla de pa \. rese.f"l(\.da.s .

El ses undo CD.1npo es lo. pOSic.io't1 c;¡ue. ocupa eso palab ro..

W\a. t<tb\a. I c:¡ue puede ser la "Tabla de SLmbolos o lLl\a. t.o.bla

SL se .... tiLiU\ la. IS, al pr-inc.ipio hG\Y ~1Ae iniu a.\ii.a.rlG\ con COMs

! . I

r

@Re.cono cer :1- traduci r un Único token ~ue sea u.n nu.mero entero o

rea.! sin s is no ..,

~ot~ ,- CIolQ.!\do I!\d pidaA el Q,1IQ,\i1.Qoor lélliCl) ~ un U~

~aot q..e nQ(Qr, 9ro..l'/\Á.~CQ. I Id.D. ~ o.uio~e.s ¡etná.c-.nCQ.$ .

Pa.hón del token ~oe. ha~ ~ue reconocer: eL+ [ . d..t ] [ e. [si~llo] d.-+J-,

nUmJt 10exP

~--v-v--v-~------..AFD o) Re~Ol\oc.er el tOk4a1 , \ter si es correcto . )

Ac.cioNES SEMÁNTI c.AS =) Traducir el token ~ se"er'Q,1"

)

.Jel rok-t.n (c.od_i-o\ctll, IIaJor)

'-..-_J.~~A-/

Cristina Bueno F. (2010) 19/290

Tema 2: Análisis léxico 7/22

Page 8: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

N ~ d..RN

RN -) d.RN I .F\ eE.l~

F ~ dR~

RF ~ d.RF I e.E 1)..~ ..., siSI'\O /\lE I clRE

NI:- .... clRE

RE ~ dRE 1)...

el ~ 011/ .., /9 }-s- ~ +1 -

En lo. 3\'"o.ty\ ~tiC. o. re~ulQ.r "abría. ~ue sus~ tv¡ r

"el" ~ ·.si~no" for co.do. " 1'1 0 de S;l.4S va.lores posibles; ,

11 a" re.presento. todos los d:S;tos .

el e.

Co.ra.eter deliMita.dor del

to1cen , En este coso puede ser un

\:.Io.n Ce I opero.dor I o+ro ca.rá.der '"

( FRACc'lo "'ARIOS)

CUALq u i ER N ÚMERO DE LOS Ml1'fR.IORES .

, ..

A cc.iones s~mc:{nh'cas :

En le, ""mera. tral\sic..ion lo meJor es i,,;cio.liuu- /

~odQ.s. \as \I(u';cJoles , f\sl OC) ha.y ~~e hQce rlo más (\ddQ.J\\'e ~ belsta.rc{

C.On mocLgic.u.r su va.lor cl.4al'ld.o sea nec.csano.

A : nu.m : = el ;

sl~no : ;:: + 1 i

dec : "" O

e. ~p : = O I

e~ .;: e)l,p '" 10 "t d. ¡

..

B I num ::: nurn iI 10 + d i

c . dec: : .= elec-» 1 i

o: ii Co.r =1 - I -lhen

siano = -1 i

+end.n'Q. <:\ue hacer

esfc , pero es

peo.- :

Ie l cle.c..:=1 ¡

DI : d d 1ec., = ec + i

Cristina Bueno F. (2010) 20/290

Tema 2: Análisis léxico 8/22

Page 9: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

I : ~~ _ token ( c c:'d ia o , num) j

l... nú.mero <.otu-o

-> Enlr&3Q.\"lo aJ aAClli lador 5i"tQ.c.+ic.o.11

~ero.r token

;)' : ( - dec)~~ - tokec"l CÓdiSO, nurn .. 10 j

~ "ú'rnero reaJ

En el es tado S ina.l 9, para.

COmprobox lo s" ~lLi enk :

( sisoo l' ~ J(. p) - dec. -+"a

d..igerenc.i a.r si ~en9° \A1'\ entero o ren! , ho.~ ",ue

s', < O =>,

r e Q\' @Nu...me.ro

Si q O => Nú,r(luo e nt e ro .

K, ca..nt := (,5;800 t eAp) - dec. ;

ii ccot ~ O then

8er\ - t.oken (códi80 , num .. 10 cant) i

e l~e l; nl.lll\trO ~n-le.ro

tak ( 'd ' cant) .Ser¡ - en c.o 180 ' I'Il.lm'" 10 I

'-. n~mero reo.!

A veces en un est e cle

Jil\ClI puedo tener IIo."OS

bpOS de tokens ~e

pl.ledo clish0<au.if med.ifulte

les acciones sema:nh cas o

Ho.cer ..r"e~l.U'\tQ.s· pa.r a.

cL~tin~uir Los tokens .

Si ur.En otro

es lOa.yor

CASO , nWnero reae .

,numero de d eci ma..les , entonce.s. es

,numero e nt ero

2.5 => (1 . o ) - O ,. O ""> E.ntero.

21.¡'15 .101 -=> ( '1 ~1) - 2 = -1 =) ReQ.e .

2t¡ 'lS .1Ó3 => · ( -1 ~ 3) -2 = -5 = ) ' Reae.

U"a. puede ser muy simple o muy compl i cada. .

Ma.bü. de tra.l\Sic ión del AFD :

( Cl) Punto in~perado .

O,) Pllnto inespe ra.d o .

(e) ForM a.to inc.orred o

¡ d. . e + - de.l

o 1 A

'1 1B 3 <D 2I

3 QBC (a.)

Lt I.¡ BC (O 5J'

(; SE (h) ~ D 'TD

T SE Ce.)

8 8F C¡K

Cristina Bueno F. (2010) 21/290

Tema 2: Análisis léxico 9/22

Page 10: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

Al . ~e.rCIC.lO • ant~tior (.1), e;¡Ule.ro añadir los eperaclore.s relaciona.les «ttu c.ompa.racl~:

OPERADOR CÓI>¡ eo

):. O

> 1

<= 2

<. 3

== 4

!= 5

s ~ >AI<.Bj =c I !o

A ....,. = I >.

B ....,.= 1>-

c ~

D ~ '=

o

p

R

(Fol"ma. parte. del AH> a.nle.rior) .

M : 3en- t.oke.n (ucL op_rd. , o) ;

N: ~eJl_toke..n (c.ed..-op-I"'e€.,1)¡

o: ~e.n_ tol.<eo (cocL op _rct , 2);

P: Sen - 1:0 l<e.n (cocl - op .-r&.,3) ;

~: ~en - boke.n (c.ed _ 0p _re.t, I.¡) ;

R: gen_ token (cocL op-rd , s)¡

".,

Cristina Bueno F. (2010) 22/290

Tema 2: Análisis léxico 10/22

Page 11: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

E'ec.icio : Ahora. t:.arnbie.h c:¡wero recooocer el =

'3

OPEAAI>QR CÓDi~

= ce.

C:. ramc:ltico, r~u.Ja.r :

S ~ ;?AI<.B I :: e I i o

A ~ = 1 A

8 -+ :; I x

e ~ -= J ~ Clñadido

D ~ =

AFD :

AU-iones semMnc.a.s r '=' : el si~uiel\~e. CllJ'oc:rer pertenece a) si8uiente 1.o1.<en

(si "" es LVI c!elirn',tador ) .

L : Leer el s i$.luiente cco-octer del Jichero de enh-adn . HQ::J l.:¡lle "lSQreO en el AFD

cada ve~ <:¡Ile. .se censume u.n cn.ra.c1er .

Lh En la. tra.f\sic.iÓ", de ~ no hCl.t¡i ~ue poneC" lo. nccio~~el'/lCÚ\lic.a L pOl"~ue 1\0 he consumido el cOJá.cte.r . No lo <:luiero 1€eI'

a..horn ~ue. lo perder:o ~ es necesetric poro el sicauie-nte. to~ .

Al poner >. en los trol\Sic.iones I tomarnos A como el ceoJu.nto de. cco-octeres

'.¡'le. permiten lo. trnn siu~ en c.u~oón. En el 0050 t'ná.s. ~enera~ ..epre!»enl:o.. \:od.os-&s

caracteres ~xc.e.pto cJ de. las o*ro,s opciones de +rnns.i cio~ .

Podemos sUSo+-; lui r lo por ~ o.c." (otro ca.ra.cter) o· ~" (carac.teres delimi ta.dores

del bol.cen ) .

Cristina Bueno F. (2010) 23/290

Tema 2: Análisis léxico 11/22

Page 12: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

Indl.lir a.hora:

- Po.\a\'ras reservadas ~ e. {ee deJim; tador

- IJen-hJicac!ore.s ~ e. { 2.1 eL}: clelim;rodor

- Opera.dor ~illbrlic.acio;" ~ •

Existen 3 pos;bles SOlilciones:

s ~ tR 1• I :A

R"" tR I d.R 1 ).

A ~ =

AFD :

> paJa.bra reservado, o idenbgic.odor .

necesita. delim·,tador).

ProhkmQ. I R~(ono~o las palabms reservadas ~ ~os. icl.enb3'w.dores I pero no

los cliShf\80 ' Para. <:l~erencia..rlos ha..bña ~ue uS(l.r acciones s.em¿n¡';cQ~ roo~ c.ompl~.

b AFD:

1h>b1~ma. \ .,-e'1)0 el

mismo problemq ~ue

untes . A~ 00 los

puedo dis-ti "811.ir s;

esttÚl compuestos so1o

por ~s . Necesí +0Qet.lC'1es semc\.nfic.o.s parQ.

d.is.tio~u.;r\os .

Cristina Bueno F. (2010) 24/290

Tema 2: Análisis léxico 12/22

Page 13: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

AFI): &i este, solución detecto les pa..la.bl'"Q.s resenlaclos uno, por una , ~o ~e

provoco. lo. necesidad de muc.hos ~sia.dos.

R:Lra el cose de ';fe todos lo.s palabrcu; reservadas sean . be3in , encL, iS,~het\. eJse· \:enell'las- el siSl.lienle AFD~

=) end..

=) else.

~) l:he.n

T Q. 0'1bien

e.o.. a.si~nac.\.ón : = .

Solución : Nos vamos Q. ~uedQ" con eu soe.ución Q.) ~ Vo.moS o, n QCer sus

a.c¿ooe~ se mcÚl-tlco.s .

L,CAFD :

\-----'""-->0 D

B

A : sen_token ( 01'- muet) ;

B : Sen - token lor - Q.si~) ;

e C.ol'lccdeno.r =) Voy Jormando el le.<emC\ a.l c.onca.teno.r lo ~l.Ie voy

leyendo.

L : leer el si3",;e.rte co.raeter del gi che..ro de entrQd.a. .

®Cristina Bueno F. (2010) 25/290

Tema 2: Análisis léxico 13/22

Page 14: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

~§ El UlMpi lador soJ.e desde el principio ~ue.' fXl\oJ.>r~ son reservad o.s. Po m.

~ elo diSeren<inr lcu palo bras r-eservadas de los iden4,"cfic.adore.s t.enao c:¡ue. mim.r1----. ~8nr donde las. tenao almacenadCLS . Si )0. encuentro ah;, e.nionCE'5 sé pe lo ':lue

~ l1e el\cooi;rndo es una palahra r-e.senada. o, en caso contrario, es LU1 ide n-hg ;ca cJ or.

8

Ac:.c.ión sema'nbca D => Pa.ro. hacerla. SUponemos <:tue el o.not,;e.ador l¿..uco

introduce las idellbJi cadores (con sus lel'.emos) en la tabla de s(rn bolas (TS) .

As~ I ~i e.m pl"€. <;jue o.pa~e u.n iden\fieaclor I ,s; no este{ eo ea "S lo in-VOdul.co

(si estoy en le¡ ~n(\ de dec.\or"cio'o de voriables) . Las pa.labro.s r-eserva.das

esta'o en \.V\a. '!.Onu pfeJijad a.. de la 'TS o bien hQ~ AA campo PR en ~Q TS

pa.ro ident1gic.a.rlG\S . Si tuviera. 2 tablas ('TS ~ Ta..bla. de. Po..labr a.s Reserva.das)

pnmero mira.r¡'a en lo, "'PR ~ SI a.h: no lo.. encuentro

iden6gicad or ) .

se lro.ta. de un

. 7¿ Es fa.labra reservada .

... sí : sen- token (coeL PR I cód.j~t);

~ NO: ES "0 iden-bJk a d or.

¿ Estoy en \o ~na. de dec.1a.ra.c.i~r) eJe vo.ri a.~\es?

-+ s; ~ ¿ Esic{, en la.. l:a.bla. de. símbolos?

... NO : ~_ token (cocL idenbS I posición);

Inser l:a.r en lo I'S .

-+ S; : Error =) Du.p~e.idacl de.. va.A.ia.Io\e .

-+ NO: ¿ Está. en la ta.blo de s~bolos '?

.-. st . ~~_token ( c.ocL ideobs I pos.ioón);

-+ NO : Error => Ije~t:\8ic.a.dor no decJarado .

D \ P:= Buscar (le1.erno.);

iS p=::O then

p ::. Añad.ir (Iel'-erna.) ;

iS p == PR then

3en - to\<eo ( c.od - PR, p) i

el se

Cristina Bueno F. (2010) 26/290

Tema 2: Análisis léxico 14/22

Page 15: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

Solucio~,

Dz => lde.nbgic..o.dor.

D1 : P'" Buscar ( lell.ema) i

iS P == O -tnenf : ;: Añad..ir ( lel'.ema.) ; .

ji p :: = PR then

~en _ toi<en (c:ocL PR, p) ;

else

sen _token (cocL id., p) ;

IJ Pala.bra. reservacl.a..

/1 'detlhJ;cCldor ~ue yo. está: en la IS .

~ MéÑSAJES DE ERROR :

Durante el ·-aneÍ.Llsis.

~"rores , no ~

producen .

Es necesario cOl'lsiderar lo. tra.nsicjon de error en cucJ ~u.ier

estado del autómata . Los mens"j5 de erro r pl.lede.n s:'l2.r,

men o !> deta.llados .ma.s o

Es1ado de error = ) Si rec.ibo 0.180 d istinto de.

~, el, .,. . '" entooc.e.s Senero LU'l error.

• ESPAcios : ¿ qui haso con los: -espa t.ios ~n blanco c.acto. "el. ';lue voy a ~mrelO.r

a. obtene.c \lt\ token '? El QutÓll\a.to. va ~l.m·l nCll\do estos es pa (.ios en el

estado lol.tiol.

Cristina Bueno F. (2010) 27/290

Tema 2: Análisis léxico 15/22

Page 16: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

.., CoMEtJTARios :

~.,e.mplo : Su.poniendo ~ue

~~

los COlYlentcuios sean de

1 •

lo. · Jorma ( 'ti ' " .)

fn los CAmento.tios sólo hay ~ue. ho.cer lo. nccion .setncl.nhc.o.. L =) Sólo

l:.e.nao ~ue. ir cons\Iol'I\ie.ndo los <.o.ro.c..te.re.s .

.....--. ¡;I c.omentarlo se e:,uito.. I

pero como el 'l . I¿",ico +ie.ne.

c.¡u~ deuolver IAn l-()~ll, debe.

IIOlier al es1Qdo inio al tCClYle.n 'lar o. re.c.orrocer el

Ahora Va.mos a ver el autómata

de ma.nero. MeÚ completa.

visto po.ra eJ ~ o.."te.rior

Diseiia.r \.lO anQlieo.do.- léxic.o para PR, id., . - , « .

'Tenemos t, tokens :

- PRo =) e. {n"- ID:) e{e. I d,r- Op_ MUL'T => l'

s ~ fR \ .. I : Al del 1 A

R ~ tRI d..R I delz

A'" =

DiSE~AR UN A .L.

• IdenhJiear to~ens.

• Constrwr ea ~ya.m á.\lca. (bR) .

• Coostruir el outomato. (AFO) .

• Incorpora.r las ace.tones !o;emO:n­

6ros f'lecesa.rias. .

• Con1em pla.r los casas de error.

• Implementar.

Cristina Bueno F. (2010) 28/290

Tema 2: Análisis léxico 16/22

Page 17: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

Autómata (AFI» :

-1.1 dd~LEERc~c

e

Aaiol\es semW1hcas :

LEEIl.fieL CONC

LE.ER : Tomw y conSLLrrll( el carocte" ~\.Ie este{ a. la e"trada. .

CONe , Cotls-\-n,ye el le~rna. concatenando les carac.teres le~d.os.

GEN_ TOKEr-I : Ger.e.tn · eJ token encc:nb-ado.

BUSC.A , Bus~ el lexemo en la TS . Devuelve, la. rosi c.ión SI lo e.ocuent:.,.o.o ~ ~ no.

AÑADE . IncL~e el le"e~C\. -e" la 'rs. Devuelve 1(\ pos;c.io~ en la <:fe. s,;~ ha ·,/\sed a cl o.

I'I!UM : valor , = veJor ... 10 ~ el ·,

puecbl ind icarse .

' a notocio'n ~ med.ia.n~e los ~iJos el t-lfo..

E·ereiuo . Dishn+os bipos de,

nUJ'l'>€ras '.feMeclia.n~e los pre.S~os se indica

Pre.Jijo Notació.,

nada. Decima.tO Oda!

Ox Hexadeiunae

nad(l

L

~ro

Enteronorrr.o.{

EnteroQ.lto...rreci~ié

To.rno.ño

2.

Cristina Bueno F. (2010) 29/290

Tema 2: Análisis léxico 17/22

Page 18: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

Tokens 1

- En+ero oormae .

- Entero alto.. predsión . . . :• {.. ~ f

· ,

r en

'- de

G

AFD :

S -+ el, AI oB d .¡- : { 1 .. q 1A ~ . eLo A 1@1 ( terMino.! SUJlijo) .

d.o :: {O .. 9 }•

&~ x H I eLle IQ l(j) ( pQ.rQ el o tl) dl. · : { -1 . ' 1 }

e -t d:z.C I I • precisión nonncll d.3 = {1..91

A.. F}H ~ d3E

~ 0.1+0. ) (dec.AMo.l)

f. .., d3 E' 1 x 1

\--..Jr.--'t-+ Gf.~-"TOK EN (e"l L1 own)

c : nu.m ~= d.;

base ~ -= 10 i

D : t"lllm := nu.m. b~e ... eL;

K : OI.lfl1 ;= dz;

base. , -= g j

H , num ::: d3 ;

basE : = 16;

D': ig ca.r = I Al then el : 10;

¡g co.r =•8 I theo el: 11 ;

nu.m = nllrn 11 bMe. id. ;

1'")E l 19 ( num ~ 2 bhe.n error

:t. 1 iS(OUt1'\) 2n.) l:hen eH'Of'"

"nU:rntro

• Inwnero

Suera de

<fUera de

Cristina Bueno F. (2010) 30/290

Tema 2: Análisis léxico 18/22

Page 19: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

PClra tl\c/wr cOlyitl1as de ntro

de \.lOa cetdena se antepone.

uno, barra inve rtido -. \.,

Petra indu ir la

d enn-o de W"Ia cadena se

a"te pone oho. barra -...., \\

-

T odas las lrCUlsi<..iones no

representndas Son ce sos

d e error."

. ..

~en _I:.oken ( CAd.., p) i

~ '--. pos¡ ción .lo ced_,-tri l'I3'-,

Tenemos c:¡ue. receoccer ideo hJk Ad ores c:re ernpie~Q.Il por u.na lebro, ~ de

eol'l i t.ud fl'\ClJUma. 1- .

TCln1ble.'n tenemos. Cetde.tlClS c:¡ue empie~an ~ oca ban COI'I corn·II\QS .

11stril'lSS

(;rcuncUic.a re~~"'ar:

A ~ e.B I Ole I del A

G.R .• , . ., B .... e.S I clB I A- e. C.e I \D I 11

~;mbolo t.e~ - ~I . . ,

mi nal T [ j;íl'rl- D~ \C I "ebolo nc te. rm;ncd]

AFD :

L , Leer . Avnn'la un ca.ruc.te.r en la entr'Cl.dct.

c . Concatenar.

0-1 : <:.aJlt : =1 i

C. + : Canca tena.- e. incrementar , cantidad (cant ++)

'1 -2. : ig c.a.ot ~ 1 ""'en{p : -= BUSoca(' ''5 ( F) ;ig P== Nu ll cneo

p : = INse.rt:ar TS (roJ) ;

e'se

e\se

3-5 : p : :: Nueva Mernori~ ( pa') i

~ 1-. sbin9posición

'la (O/\catenado (y ya. le ne",os ~l/itCldo las

(.()rftll\os y seeuenciQS de. esc.<lpe) .

Cristina Bueno F. (2010) 31/290

Tema 2: Análisis léxico 19/22

Page 20: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

E'ercioo: 'flJNiO 2.002, .

cs.

\. Re.tol'l\O de cMb

11

SaJ~ de tinell ,

por 2 B~k.s .

esto:. _30 rmaclo por :

,,\ue se represen I.:arán

,-, " ,/).

de I.ln

enter(lS

Un 8rasmenfo

- N¡{me.ros

- Operadores- a.nbné:l-icos (t-

- Comentarios de dos. tipos :

- Coment:o.rio.s d e línea : Cornien~(l. por 1I • Termina. por

- ComentCl.rio.s de b1oC4ue.: Corniel\!.a. /.. . ,.er mina. '" I.:Ind.ico.r lodos. los. accESOS a ea. ta.lolo. de S: I' m'ilola.s.

T okens :

- l'J¡{rnero!> enteros ,

Ope.radores añtméticos.

','

• eKc.epto /:} 'ti •

"

eLB l /e I del A 1+ I .. I -elB I >. COtl\entQri o de. e.lnea..,.- ...,/ D I .... E 10 di v',sióll -

C1 O Ia-;CDmentorio de. b1o~C"2.E I"" F A, ~~ I cgE I 'If.F\

~ N,O _ se. . ~ene.ra \::ok!.n. .Se. vu.e\l/e al .pr ioc.i:.pio .

Con los CoMentarios se salto. pro~rarn C\ h o.sta.

'C.ncu.en~ el Sino.\ del comento.no.

A ~

B ~

C-+

O -)

o Podrío. sepo.rnrlo

e.n 3 estados

(W\O por opero.dor).

del 1 = Deli mit.ador del entero .

d.eJ 2. = CucJc:\uier ca..-acte.- e "apto 1 'a . ,

X : ~en_ lokw (op_arit ., c.cd.i 3o)¡. '-? -;-I-} "

ex" 28 = '1'bits

'1 -2 : ig nLlm ~ P l~ll

erro r ( n~me,.o Suero de ran~o) ;

e1se

~ - token ( entero , nurn ) i

Cristina Bueno F. (2010) 32/290

Tema 2: Análisis léxico 20/22

Page 21: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

I-to.blaoclo ",\loro. ele la acs-hón de les icl.eot.:iJkadores, 1\05 encontramos eco

~e a.\l'YIl1uno..r el le1-erno. puede pro\lOco. r Ul\ pl"Obl"(.JYIa de espado. Si en el leo3"'~e

f\O hl1'Y restricción en c\4onto cJ t:amoj;o del le...elYlo¡ e c.ómo tintemos \o.. 1$ farQ.

poder al /YlaGe.nario!> ?TetleO'los 2. opc.iones:

- R~e,...,(lr \U'I esPQc.Ío muy ~r",ode po.ra. poder me.ter los id e.n-\lg ic.ad ores

m\)y lo.r~o.1 =} NO ES RE.COMEÑDABI.E.

- Poner en el c.o.mpo de la. "1'S lAIl puntero hacia el identí g ic.a dor ( h a ciu

e l "e.c.tor dende esto..o a.Il'l"loceno.dos. los leA.erna.s).

luemo.

/í,/~ [ 'ldenhJioad or _ lo.r~uí.s;moJ:.. [ NlO)l,.$J

j. .

TS

Cristina Bueno F. (2010) 33/290

Tema 2: Análisis léxico 21/22

Page 22: Tema 2: Análisis léxico 1/22 TEMA 2. : ANALlSIS LEXICO .¡lisis... · 2012-04-12 · TEMA 2. : ANALlSIS LEXICO . El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e,.diGi:a.

Cristina Bueno F. (2010) 34/290

Tema 2: Análisis léxico 22/22