• No se han encontrado resultados

Generación de evaluadores estáticos de gramáticas de atributos bien definidas

N/A
N/A
Protected

Academic year: 2017

Share "Generación de evaluadores estáticos de gramáticas de atributos bien definidas"

Copied!
12
0
0

Texto completo

(1)

de atributos bien denidas

Marelo Arroyo, Jorge Aguirre, Niolás Florio *

Dpto.deComputaión-Fa.deCs.Exatas,Fo-QasyNat.

UniversidadNaionaldeRíoCuarto

Resumen

En elpresente trabajo sedesribe unaherramienta degeneraión estátiade

evaluadores de gramátias de atributos (GA) para la familia de GA bien

de-nidas (GABD), denominada wag. Las GABD imposibilitan la derivaión de

árboles sintátios on dependenias irulares entre las instanias de los

atri-butos. wag se basa en los oneptos desarrollados por Wuu Yang en[7℄ para

la omputaión estátia de planes de evaluaión on algunas mejoras omo por

ejemplola prevenión de lageneraión de planes espúreos, loual afeta

signi-ativamente altamañodelevaluadorgeneradoyeltiempoyespaioutilizadoen

su generaión. El desarrollode wagonrma elresultado de Riisy Skyum[6℄

quienes estableieron que todas las GABD permiten eldesarrollo de un

evalua-dorestátiomulti-visita.Hastaelmomento,noseonoenherramientassimilares

basadas enésta familia deGA.

Palabraslave:GramátiasdeAtributos,Compiladores-Compiladores,

Len-guajes, Gramátias deAtributos biendenidas.

1. Introduión

Desde queD.Knuth en1968[4℄introdujolaideade lasGramátiasde Atributos,éstas

han sido de gran interés en las ieniasde la omputaióny en ingenieríade software

yaque permiten desribiromputaiones en lenguajes libresde ontexto y sehan

uti-lizado ampliamente para el desarrollo de herramientas de generaión de proesadores

de lenguajes basados en espeiaiones, onoidos generalmente omo ompilador

es-ompiladores o sistemas de generaión de ompiladores o tradutores.

Unagramátiadeatributosesunaextensióndelasgramátiaslibresdeontexto,alas

uales se les inluyen valores asoiados a los símbolos de la gramátia (denominados

*

(2)

tosenunárbolsintátioderivadoapartirdelagramátialibredeontextosubyaente.

Laseuaiones induen lasdependeniasentre lasinstanias de losatributos delárbol

sintátio. El orden de evaluaión debe ser onsistente on las dependenias, es deir,

el atributo a debe ser evaluado luego que hayan sido evaluados las instanias de los

atributos de los que depende en la euaión orrespondiente. Una dependenia

iru-lar en el árbol sintátio hará generalmente imposible la evaluaión, lo que suguiere

la siguiente pregunta: dada una GA, existe algún árbol sintátio, derivado a partir

de la GA, que ontenga dependenias irulares?. Esta pregunta es onoido omo el

problema deirularidad,elualsehaprobado queesun problemaomplejoquetoma

tiempoexponenial en base al tamañode la gramátia[5℄.

UnaGABD tieneomoaraterístiaquenoesposiblequesegenerenárboles

sintáti-oson dependenias irularesyeslafamiliamasamplia(onmenosrestriiones)en

lalasiaióntradiionaldeGA.Lasherramientasmas omunesqueseutilizanestán

basadasen sublases deGABDomolasANCAG(absolutamentenoirulares)oaún

en subfamilias omo las OAG (ordenadas)[2℄ y reientemente las EOAG (ordenadas

extendidas) [9℄.

Para éstasfamiliasde GA,esposiblegenerarun únioplan(orden)de evaluaiónpara

ada produión, mientras que en las GABD 1

pueden tener más de un plan asoiado

por produión y el evaluador deberá realizar la seleión dinámiamente (lookahead

behavior). Poreste motivopertenen alas GAdenominadas multiplan.

2. Gramátias de Atributos

En esta seión se denen los prinipales oneptos a ser utilizados en las seiones

siguientes.

DEFINICIÓN 2.1 Una gramátia de atributos es una tupla GA =< G;A;R >

donde Ges una gramátia libre de ontexto, A esun onjunto nitode atributos

y R es un onjunto nito de reglas semántias.

G =< N;T;P;S > donde N es un onjunto de símbolos no terminales, T es el

onjunto de símbolos terminales, V = N S

T, P es un onjunto de pares de la

forma X ! denominadas produiones, donde X 2V , 2 V

(se denotará a la

adena vaía omo ".), S 2N es elsímbolo se omienzo.

EnunaGAseasoiaunonjuntodeatributosA(X)=H(X) S

S(X),(H(X) T

S(X)=

;),on adasímboloX 2V.El onjunto H(X)es elonjuntode atributos heredados

de X y S(X) es el onjunto de atributos sintetizados de X, H(S) = ; y S(X) =

;; 8X 2T. 2

1

WDAG(WellDenedAttributeGrammars),porsussiglaseninglés.

2

wag permite que los símbolos terminales tengan un únio atributo sintetizado denominado

(3)

0 1 n

X

i

:a sia2A(X

i

), 0in.

Unonjuntodereglassemántias R

p

de laformaX

i

:a:=f(y

1 :::y

k

) seasoiaonuna

produiónp on las siguientes restriiones:

1. i=0si a2S(X

i

), o 1in si a2H(X

i ).

2. ada y

j

; 1ik, es un atributoque ourre en p.

3. f esunafunión(denominadafuniónsemántia)quemapeavaloresdey

1 ;:::;y

k

alvalorde X

i :a.

En una regla de la forma X

i

:a :=f(y

1 :::y

k

), se die que la ourrenia X

i

:a depende

de las ourrenias y

i

; 1ik.

R es el onjunto de reglas semántias R = S

p2P R

p .

DEFINICIÓN 2.2 Un árbol de derivaión para una adena , generado por G =<

N;T;P;S >, es un árbol donde:

1. Cada nodo tiene rótulo X o ".

2. El rótulo de la raízes S.

3. Si un nodo uyo rótulo es X y tiene sus hijosrotulados X

1

;:::;X

n

(de izquierda

a dereha), entones X !X

1 :::X

n

es una produión en P.

4. Los rótulos de las hojas, onatenados de izquierda a dereha forman .

DEFINICIÓN 2.3 Un árbol atribuido para una adena es un árbol de

deri-vaión donde ada nodo n, rotulado X, ontiene instanias que orresponden a los

atributos de X.Por adaatributo a2A(X) lainstania orrespondiente ontenida en

n se denotará n.a.

3. La jerarquía NC

Reientemente, en [7℄, Wuu Yang propuso una nueva lasiaión de GA's basadas

en dependenias de losontextos inferiores (look-ahead behavior). Laidea se basa en

onstruir grafos de dependenias para los atributos que ourren en una produión

para ada posible ontexto inferior. Un evaluador de esta familia de GA, deberá

se-leionarelplanadeuadoenbasealainspeióndelontextoinferiorde adasímbolo.

La jeraquíaNCse basa en el númerode pasos desendentes tomadosen uentaporel

evaluador para seleionar un plan. Así por ejemplo, la familia NC(0) es equivalente

a lafamiliaANCAG y la familiaNC(1) se orresponde alas GAbien denidas.

Para evaluar las instanias de los atributos en un árbol sintátio, orrespondientes a

(4)

las dependenias entre las instanias de los atributos del símbolo de la parte

izquierda de p, lasuales están determinadaspor suontexto superior.

lasdependeniasentrelasinstaniasdeatributosdelossímbolosnoterminalesde

laparte derehade p,lasuales están determinadas porsus ontextos inferiores

(las produiones apliadas en el subárbol uya raíz está rotulada por ese no

terminal).

3.1. La familia NC(0)

La familia NC(0) se orresponde on la familia ANCAG, la que está araterizada

por lasiguientedeniión:

DEFINICIÓN 3.1 Sea p una produión de P de la forma

X

0

!

0 X1

1

X2:::X

k

k

(1)

IDP(p)=DP(p) k

[

i=1

Down(X

i )

Down(X)=

[

q2PjX=l hs(q)

IDP(q)k

A(X)

dondeIDP(q)k

A(X)

denotalaproyeióndelgrafoIDP(q)onteniendosólolas

depen-denias (transitivas)de los atributos de X, siendo X elsímbolode la parte izquierda

de la produiónq ( lhs(q) ).

Los grafos Down(X) son una aproximaión segura al grafo de dependenias de los

atributos de X en elsentido queinluyen todas lasposiblesdependeniasen ualquier

árbol sintátio, pero además puede ontener algunas dependenias espúreas

(depen-denias queno pueden ourrir simultáneamenteen ningún árbolsintátio).

Los grafosIDP(q) 3

son los grafosde dependenias induidas porada produión.

DEFINICIÓN 3.2 Una GA es ANCAG o ( NC(0) ) si ada grafo IDP(p), 8p 2 P

es no irular.

Un evaluador para GA's NC(0) utiliza el orden de evaluaión (orden topológio)

(5)

P3:

i2 s2 Y i3 s3

n

P4:

i1 X s1

P5:

Z s4

i2 s2 Y i3 s3

m

1

2

3

i1 X s1

Z s4

S s0

i2 s2 Y i3 s3

i1 X s1

Z s4

S s0

i2 s2 Y i3 s3

ADP(P1|P4,P2,P5)

ADP(P1|P4,P3,P5)

b)

a)

P1:

i1 X s1

Z s4

S s0

i2 s2 Y i3 s3

P2:

i2 s2 Y i3 s3

m

Figura1: GANC(1) pero noANCAG

3.2. La familia NC(1)

Enlagura1a) 4

semuestraunaGAquenoesANCAG,yaqueIDP(P1)esirular 5

,

aunquelaGAnoloes. EstosedebeaquelosgrafosDown(X)representan lasposibles

dependeniasenualquierárbolsitátio,perolasproduionesP2yP3nunapueden

apliarsesimultáneamentey ésta es laausa de lairularidad.

Si setomanen uenta losposibles diferentes ontextos inferiores sería posible

diferen-iar las dependenias en diferentes grafos y se podrían asoiar a ada produión un

onjuntode grafosposibles(uno poradaontexto inferior).Si ningunode esos grafos

es irular, la GA no es irular y un evaluador podría seguir el plan de evaluaión

generado apartir de ada grafo.Elevaluadordebería seleionar(en tiempode

ejeu-ión) elplan adeuado para adaproduión (inspeionando su ontexto inferior).

DEFINICIÓN 3.3 Sea q una produión omo en (1), y sean p

i

, (1i k)

produ-iones uyo lhs(p

i ) es X

i ,

DCG

X (q)=

[

q2PjX=l hs(q)

ADP(qjp

1 ;p

2 ;:::;p

k )k

A(X)

3

InduedDependeniesGraphs

4

Lasehasgruesasdenotanlasproduionesylasnaslasdependenias entre losatributos.

5

(6)

ADP(qjp

1 ;p

2 ;:::;p

k

)=DP(q) [ i=1 DCG Xi (p i )

Un grafo DCG

X

(q) se denomina el downward harateristi graph de X en los

subár-boles derivados a partir de la produión q y denotan las dependenias (transitivas)

entre los atributos de X en algún subárbol derivado a partir de la apliaión de la

produiónq.

Un grafo ADP(qjp

1 ;p

2 ;:::;p

k

) se denomina augmented dependeny graph de la

pro-duión q on los subárboles derivados a partir de la apliaión de p

1 ;p

2 ;:::;p

k .

DEFINICIÓN 3.4 Una GA es NC(1) si ada grafo delonjunto

SADP(q)=fADP(qjp

1 ;p

2 ;:::;p

k )g

es aílio, 8q2P.

Lagura1b)muestraquelaGAesNC(1)(sólosemuestranlosgrafosdelaproduión

que ausaba la irularidadpara las ANCAG).

Se debe notar que los grafos DCG

X

(q) son estimaiones más exatas que los grafos

Down(X) ya que esfáil demostrar que

[

qjX=l hs(q) DCG

X

(q)Down(X)

3.3. La familia NC(m)

LosgrafosADP(qj:::)tienenenuentaunageneraión dedesendentes de la

produ-ión q. Si extendemos la idea para tener en uenta más generaiones se puede denir

unanuevafamiliadelasesde GA:lasGANC(m):nonirularAGwithm-generation

lookahead.

DEFINICIÓN 3.5 Sea q una produión de la forma (1), =< X;m > un árbol de

profundidad m, uya raíz está rotulada X y es un subárbol de algún árbol sintátio

derivado por la GA 6

y sean

i

=< X

i

;m >, para 1ik,

DCG X ()= [ ADP <m> (qj 1 ; 2 ;:::; k )k A(X) ADP <m> (qj 1 ; 2 ;:::; k

)=DP(q) k [ i=1 DCG Xi ( i )

DEFINICIÓN 3.6 Una GA es NC(m) si ada grafo del onjunto

SADP

<m>

(q)=fADP

<m> (qj 1 ; 2 ;:::; k )g

es aílio, 8q2P y 8

i

=< X

i

;m > , 1ik.

6

(7)

(y por ende en NC(1)). El resultado sólo tiene interés teório, ya que el número de

produiones se puedeinrementaren formaexponenial.

3.4. La familia NC(1)

i2 s2 Y i3 s3

i5 s5 Q i6 s6 a

i5 s5 Q i6 s6

i2 s2 Y i3 s3

P6:

P7:

Figura2: Produiones adiionales quehaen que laGA sea NC(1)

Existen GAs que no son NC(m), para ningún m. Si a la GA de la gura 1 a)le

adi-ionamos dos produiones omo las de la gura 2, ésta última no es NC(m) (para

ningún m nito),ya que ontiene produiones mutuamente reursivas.Un árbol

sin-tátiopodríaontenerderivaionesY !Q!Y ualquiernúmerode vees.Además,

se puedeobservarque lanueva AGno esirular (es GABD).

UnevaluadorparalasGANC(1)neesitateneren uentaun númeropotenialmente

(no atualmente) innito de desendientes. En términos de un árbol sintátio, lo

anterior signia que el evaluador neesitará mirar hasta las hojas para seleionar

un plan para una instaniade una produión.

Para realizar la seleión el evaluador neesitará realizar un reorrido asendente del

árbol sintátio para marar los nodos on la informaión sobre las dependenias

a-tuales transitivasen base al subárbol.

AadanoterminalXseleasoiaunonjunto(X)deposiblesgrafosdedependenias

entresusatributos.Elalgoritmo1omputatodoslosposiblesgrafos.SialgúnÆ2(X)

es ílio,entones la GAno esNC(1).

Sean p una produiónomo en (1) el algoritmoInniteLookAhead,además,

onstru-ye la funión [qjÆ

1 ;Æ

2 ;:::;Æ

k

℄, la ual representa el grafo de dependenias entre los

atributos de X

0

uandoseaplia laproduiónp ylas dependenias transitivasde los

símbolosX

i son Æ

i

, (1ik), respetivamente.

La informaión denotada por será utilizada por el evaluador para la seleión de

planesElalgoritmo1esbásiamenteeltestde irularidad de Knuth[5 ℄ onlaadiión

delómputo de lafunión y losonjuntos (X).

La omplejidad del algoritmo es O(jNjjPj(h!) l +1

l 3

h 3

), donde h es el número máximo

de atributos de lossímbolosy l es elnúmero máximo de noterminales de laparte

de-reha de las produiones. El análisis de omplejidadse basa en que j(X)j=O(h!).

(8)

(X) ;,8X 2V

repeat

hange false

for adaq: X

0

!

0 X

1

1 :::X

k

k do

for ada Æ

i

2(X

i

),1ik do

G DP(q) S

k

i=1 Æ

i

Æ Gk

X

0

if Æ es irularthen error(CirularAG)

[qjÆ

1 ;:::;Æ

k ℄ Æ

if Æ2= (X

0

) then

hanged true

(X

0

) (X

0 )[Æ

end if

endfor

end for

until not hanged

el número de vees máximo que se ejeuta el ilo repeat, ya que en ada iteraión se

debeagregaralmenosun nuevoÆ).lasentenia for másexterna seejeutajPjveesy

elfor másinternoseejeutaalosumo(h!) l

.Laoperaiónde uniónG DP(q) S

k

i=1 Æ

i

tomaO(l)(k l)ylaoperaióndeproyeión(k

X

0

tieneO(h 3

(l+1) 3

),yaquesedebe

realizarla lausuratransitiva.

Sibienelordendeomplejidadesexponenialonrespetoal,éstevalorgeneralmente

nosuperaa4en laprátia(unaGAon numerosos noterminales en laparte dereha

de lasproduiones es muy inusual,ya que sería poolegible e indiaríaque nose ha

modularizado omo orresponde). Si bien se pueden llegar a realizar un gran número

de operaiones y las funiones omputadas pueden tener un número onsiderable de

entradas,elproblemaesperfetamentetratableonlapoteniaomputaionalquehoy

brinda ualquierPC de esritorio.

3.4.1. Generaión de planes de evaluaión

Unavezqueseapliaelalgoritmo1ysehadetetadoquelaGAesNC(1),segeneran

losplanes de evaluaiónasoiados aada produión.

El algoritmo 2 realiza la generaión de planes y es una modiaión del algoritmo

propuesto en [7℄. Una de las modiaiones es la lista de trabajo WL, que ontiene

pares de símbolos y ordenes en lugar de sólo ordenes omo propone Wuu Yang y el

uso de un ltro para evitar lageneraiónde planes espúreos quepueden ser generados

(aunque algunosposteriormentedesartados)inútilmenteporelalgoritmooriginal.El

ltro es lafunión (boolean) appliable, la ual sedene omo laexpresión lógia:

appliable(q;!;Æ

1 ;:::;Æ

k

)[qjÆ

1 ;Æ

2 ;:::;Æ

k ℄=Æ

0

(9)

!

0

ualquier orden de A(S)

WL f(S;!

0 )g

repeat

(X

0

;!) un elemento de WL; WL WL f(X

0 ;!)g

sea q :X

0 ! 0 X 1 1 :::X

k

k

y appliable(q;!;Æ

1 ;:::;Æ

k )

for adaADP(qjÆ

1 ;:::;Æ

k

)2SADP(q) do

TSort(ADP(qjÆ

1 ;:::;Æ

k )[!)

[q;!;Æ

1 ;:::;Æ

k ℄

for ada X

i

2rhs(q)do

! i k A(X i )

[q;!;i;Æ

1 ;:::;Æ k ℄ ! i if (X i ;! i

)=undefined then

(X

i ;!

i

) defined;WL WL[f(X

i ;! i )g end if endfor end for

until WL=;

donde Æ 0

i

es talque ! =[q;! 0

;i;:::;Æ 0

i ;:::℄

Elusode lafuniónappliable reduesigniativamenteelnúmerodeplanesagenerar

evitandolageneraiónde planesespúreos. En[7℄plantea desartarlosplanesespúreos

si es que éstos son irulares (ya que en ésta etapa la AG obviamente no esirular).

El uso de ésta funión redue signiativamenteel aso promedio de omplejidaddel

algoritmo.

Para lagramátia de lagura 2el algoritmo1 omputa 7

:

(S) =fÆ

1

=[s0℄ },(Y)=fÆ

2

= [i2!s2s3s4℄, Æ

3

=[i2 s2i3!s3℄ },(X)=fÆ

4

=[i1!s1℄ },

(Z)=fÆ

5

=[s4℄},(Q)=fÆ

6

=[i5!s5i6s6℄,Æ

7

=[i5s5i6!s6℄}.

[P1℄=[s0℄,[P2℄=[i2!s2i3s3℄,[P3℄=[i2s2i3!s3℄,[P4℄=[i1!s1℄,[P5jÆ

2 ℄=[P5jÆ 3 ℄=[s4℄, [P6jÆ 6

℄=[i2!s2i3s3℄,[P6jÆ

7

℄=[i2s2i3!s3℄, [P7jÆ

2

℄=[i5!s5i6s6℄,[P7jÆ

3

℄=[i5s5 i6!s6℄.

y el algoritmo2omputa:

[P1,<s0>,Æ 4 ;Æ 2 ;Æ 5 ℄=<s3,i1,s1,i2,s2,i3,s4,s0>, [P1,<s0>,Æ 4 ;Æ 3 ;Æ 5 ℄=<s2,i3,s3,i1,s1,i2,s4,s0>,

[P2,<s3,i2,s2,i3>℄=<s3,i2,s2,i3>, [P3,<s2,i3,s3,i2>℄=<s2,i3,s3,i2>, [P4,<i1,s1>℄=<i1,s1>,

[P5,<s4>,Æ 2 ℄=<s3,i2,s2,i3,s4>, [P5,<s4>,Æ 3 ℄=<s2,i3,s3,i2,s4>, [P6,<s3,i2,s2,i3>,Æ 6 ℄=<s6,s3,i2,i5,s5,s2,i3,i6>, [P6,<s2,i3,s3,i2>,Æ 7 ℄=<s5,s2,i3,i6,s6,s3,i2,i5>, [P7,<s6,i5,s5,i6>,Æ 2 ℄=<s3,s6,i5,i2,s2,s5,i6,i3>, [P7,<s5,i6,s6,i5>,Æ 3 ℄=<s2,s5,i6,i3,s3,s6,i5,i2>.

3.4.2. Un evaluador para la familia NC(1)

Elproedimientoeval(T)delalgoritmo3evalúalosatributosde un árbolsintátioT.

La primerfase (mark y selet seleiona el plan a utilizaren ada nododel árbol

uti-lizando lainformaiónomputada estátiamentepor los algoritmosenterioresy luego

7

(10)

proeduremark(n)

fori=1tokdo

mark(n.hild[i℄)

endfor

n:mark [n:qjn:hild[1℄:mark;:::;hild[k℄:mark℄

proedureselet(n,!)

n:plan [n:q;!;m

1

:mark;:::;m

k :mark℄

fori=1tokdo

selet_plan(n.hild[i℄,[n:q;!;i;n:hild[1℄:mark;:::;n:hild[k℄:mark℄)

endfor

proedurevs_eval(n)

r n

whilevs[r.plan℄[r.op℄6=LEAVEdo

asevs[n.plan℄[n.op++℄do

VISIT(i):n n:hild[i℄

COMPUTE(j):ompute(j)

LEAVE:n n.parent

endase

endwhile

proedureeval(T)

mark(T);selet(T,);vs_eval(T)

invoa alevaluador basadoen seuenias de visitas.

Enrealidadlosplanesdeevaluaiónnosealmaenanomouna seueniade atributos

sino quese transforman en seueniasde operaiones denominadasseuenias de

visi-ta. Existen tres operaiones: visit(i)que signiavisitar alhijo i-ésimo,ompute(j)

que es omputar la funión semántia j y leave que es visitar al nodo padre. Cada

seuenia de visitadebenalizar on una operaiónleave.

La transformaión de un plan en seuenias de visitaes simple: ada subseuenia de

atributosheredadosdelsímbolodelaparteizquierdadelaproduiónsereemplazapor

una operaión leave, ada subseuenia de atributos sintetizados del símbolo X

i de la

partederehasereemplazaonunaoperaiónvisit(i) yadaourreniade unatributo

sintetizadodel símbolode laparte izquierda oun atributoheredado de un símbolode

la parte dereha, se reemplaza por una operaión ompute(j), donde j es en número

(asignado por elgenerador) de la funión semántia quedene adiho atributo.

4. wag

El generadorwag toma omoinput una deniión de una gramátiade atributos y

generaunaespeiaiónlex-ya laualsintetizaun árbolsintátioT yluegoinvoa

a eval(T). La gura 4 muestra gráamente la generaión del evaluador. El produto

(11)

semantic

functions

(user defined)

WDAG

specification

lex−yacc

specification

wagcc

lex−yacc

yyparse()

yylex()

eval(T)

lexer−parser

ag−evaluator

Figura3: Esquema de uso de wag

(yyparse())y la funión de evaluaión de losatributos (eval()).

LagramátiasubyaentedeberíaserLALR(1),yaqueelparserserágeneradoporya.

Laespeiaiónlex-ya generadainluyelosalgoritmosdesriptosy lasfuniones,

, y (representadas omo arreglosde enteros). Lasseuenias de visitageneradas

están representadas por un arreglo vs[plan℄[℄ donde ada la representa un plan el

ual onsistede un vetorde operaiones (odiadas omoenteros: ipara VISIT(i),

j para COMPUTE(j) y 0para LEAVE).Además segenera lafunión ompute(j)

que ontiene las invoaiones (en una sentenia swith(j)) alasfuniones semántias

provistasporel usuario.

Se haelegido implementarelevaluador basadoen seuenias de visitasomo un

autó-mataporqueesmasompatoquelasténias alternativaspropuestasen[3℄,laualse

basaen lageneraiónde proedimientosreursivospero noeslaténiamasadeuada

para un evaluador multi-plan.

Los nodos del árbol sintetizado ontienen los siguientes ampos: (prod) (ontiene el

número de produión que seaplió en el nodo), hildrens (ontiene elnúmero hijos),

hild[℄ (vetor de punteros anodos hijos),op (número de operaiónde laseuenia de

visita orrespondiente al nodo), plan (plan seleionado), mark (usado para la

sele-ión) y además ontiene los ampos orrespondientes alos atributos delsímbolo.

5. Conlusiones y futuras extensiones

Sehapresentadounaherramientadegeneraióndeproesadoresdelenguajes

(general-menteonoidos omo ompiladores de ompiladores) uyo lenguaje de espeiaión

está basadoen gramátiasde atributos bien denidas.Esta familiade GAeslamayor

familiapara laqueesposiblegenerarevaluadoresestátios. Losevaluadoresgenerados

son ompatos ya que toda la informaióngenerada se odia en arreglos de enteros

y no es neesario generar grafos de dependenias omo lo requieren los evaluadores

(12)

la generaión de planes espúreos. Hasta el momento no se onoe otra herramienta

basada en los oneptos desarrolladosen este trabajo.

Es neesario realizar mayores experimientos on gramátias mas reales (omo las de

algún lenguaje de programaión)para analizarlos requerimientosde espaioutilizado

por lasfuniones desriptas y el número de planes generador porproduión.

En éstos momentosse está desarrollando una versión para C++ on un diseño

orien-tadoaobjetoselualpermitirádesarrollarversionesparaotroslenguajesomúnmente

usados omo porejemplo Java.

Referenias

[1℄ M.Arroyo,J.Aguirre,N.Florio.2002.NCEval,ungenerador deevaluadoresonurrentespara

gramátiasde atributosnoirulares.CACIC2002.BuenosAires.

[2℄ U. Kastens.1980.OrderedAttributeGrammars.AtaInformatia,vol.13,pag:229-256.

[3℄ U. Kastens. 1991, Implementation of Visit-Oriented Attribute Evaluators. Pro. International

SummerShoolSAGA, vol.545,pág:114-139.

[4℄ D. Knuth. 1968. Semantis of ontext free languages. Math Systems Theory 2, June 2.Pag:

127-145.

[5℄ D. Knuth. 1971. Semantis of ontextfree languages. Math SystemsTheory Vol5, no1. Pag:

95-96.(orretion)

[6℄ H.Riis,S.Skyum.1981.K-VisitAttributeGrammars.MathSystemsTheory,vol.15,pág:17-28.

[7℄ Wuu Yang. Marh 2002. A Classiation of Non-Cirular Attribute Grammars Based on the

Look-AheadBehavior.IEEETransationsonSoftwareEngineering,vol.28,No3.Pag:210-227.

[8℄ WuuYang.1999. A FinestPartitioning Algorithm for AttributeGrammars. SeondWorkshop

onAttributeGrammarsandtheirAppliations-WAGA99.

[9℄ WuuYang.1998.SSCC:ASoftwareToolBasedonExtendedOrderedAttributeGrammars.Pro.

National SieneCounil (Rep.ofChina), ParteA, PhysialSiene and Engineering,vol.23,

Referencias

Documento similar

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

La siguiente y última ampliación en la Sala de Millones fue a finales de los años sesenta cuando Carlos III habilitó la sexta plaza para las ciudades con voto en Cortes de

Además de aparecer en forma de volumen, las Memorias conocieron una primera difusión, a los tres meses de la muerte del autor, en las páginas de La Presse en forma de folletín,

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

Después de una descripción muy rápida de la optimización así como los problemas en los sistemas de fabricación, se presenta la integración de dos herramientas existentes

por unidad de tiempo (throughput) en estado estacionario de las transiciones.. de una red de Petri

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la