• Nenhum resultado encontrado

Publicações do PESC Um Gerador de Analisadores Sintáticos LL (1)

N/A
N/A
Protected

Academic year: 2021

Share "Publicações do PESC Um Gerador de Analisadores Sintáticos LL (1)"

Copied!
125
0
0

Texto

(1)

UM GERADOR DE ANALISADORES

SINTATICOS

L L 11)

A n g e l a M a r i a C a r v a l h o S o u z a

T E S E SUBMETIDA A 0 CORPO DOCENTE DA COORDENACAO DOS PROGRA -

MAS DE P ~ S - G R A D U A C A O DE ENGENHARIA DA UNIVERSIDADE FEDERAL DO R I 0 DE J A N E I R O COMO PARTE DOS R E Q U I S I T O S N E C E S S A R I O S P A -

RA A OBTENCAO DO GRAU DE MESTRE EM

CIENCIAS

( M . S C . )

A p r o v a d a p o r : ~ o s k ) L u c a s ~ o u r a o R a n g e l N e t t o ( P r e s i d e n t e ) S u e l i M e n d e s d o s S a n t o s

JMqwwkJa,

L u l s F e r n a n d o L o u r e r o L e g e y R I 0 DE J A N E I R O , R J - B R A S I L JULHO 1 9 8 0

(2)

FICHA CATALOGRAFICA

SOUZA, ANGELA MARIA CARVALHO

Um Gerador de A n a l i s a d o r e s S i n t á t i c o s LL(1)

1

~ i o de ~ a n e i r o

1

1980.

V,120 p . , 2 9 , 7 cm (COPPE-UFRJ, M.Sc. E n g e n h a r i a d e S i s t e m a s e Computaqao, 1980)

Tese

-

U n i v e r s i d a d e F e d e r a l d o Rio de J a n e i r o , Faculdade de E c g e n h a r i a .

1. A n á l i s e ~ i n t á t i c a I .COPPE/UFRJ I 1 .Um Gerador de A n a l i s a -

(3)
(4)

iii RE SUMO E s t e t r a b a l h o d e s c r e v e um g e r a d o r d e t a b e l a s d i r e t o

-

r a s d o a n a l i s a d o r s i n t á t i c o LL(1) p a r a g r a m á t i c a s l i v r e de c o n - t e x t o . Se a g r a m á t i c a f o r LL(1) o r e s u l t a d o f o r n e c i d o p e l o g e r a d o r

6

a t a b e l a d i r e t o r a do a n a l i s a d o r s i n t á t i c o da g r a m á t i c a dada ou da g r a m á t i c a t r a n s f o r m a d a q u e s e obtem p o r e l i m i n a ~ a o de r e c u r s a o

2

e s q u e r d a e f a t o r a g a o . Caso c o n t r á r i o o g e r a d o r i n d i c a t o d o s os c o n f l i t o s e n c o n t r a d o s . E s t 5 o i n c l u í d o s exem -

p l o s e o modo d e u t i l i z a g a o d o programa e s c r i t 0 em A l g o l Exten

-

d i d o B 6 7 0 0 do N C E da UFRJ.

(5)

ABSTRACT

We d e s c r i b e h e r e a n LL(1) p a r s e r g e n e r a t o r f o r c o n t e x t - f r e e grammars. I f t h e i n p u t grammar i s LL(1) , t h e o u t p u t i s t h e p a r s i n g t a b l e . I f n e c e s s a r y , t h e g e n e r a t o r w i l l p e r f o r m grammar modif i c a t i o n s s u c h a s e l i m i n a t i o n o f l e f t r e c u r s i o n a n d f a c t o r i n g . I f t h e t r a n s f o r m e d grammar i s n o t LL(1) y e t , t h e gen - e r a t o r w i l l p r o d u c e a l i s t i n g o f a l l e x i s t i n g c o n f l i c t s . I n c l u d - ed a r e examples a n d d e s c r i p t i o n o f u s e o f t h e g e n e r a t o r , w r i t - t e n i n E x t e n d e d A l g o l o f t h e

NCE-UFRJ B6700

c o m p u t e r .

(6)

capítula

I . INTRODUCAO

...

1 C a p i t u l o I 1 . D E F I N I C O E S E C O N C E I T O S 3 FUNDAMENTAIS

...

c a p i t u l o I11 . LINGUAGENS E G R A M T I C A S LL

...

9 C a p i t u l o I V . D E S C R I C A 0 DO S I S T E M A

...

26 I V . 1 . C O D I F I C A D O R

...

2 8 I V

.

2 . TESTADOR DA CONDICAO L L (1)

...

33 I V

.

2 . 1 . C o n j u n t o de s í m b o l o s i n i c i a d o r e s

...

3 5 I V . 2 . 2 . C o n j u n t o de s í m b o l o s s e g u i d o r e s

...

3 7 I V . 2 . 3 . C o n j u n t o de s í m b o l o s d i r e t o r e s

...

3 9 I V

.

3 . TRANSFORMACA0 DE G R A M T I C A S EM EQUIVALENTES L L ( 1 )

...

4 0 I V . 3 . 1 . E l i m i n a g a o d e r e c u r s 5 0

2

e s q u e r d a

...

4 1 . I V . 3 . 2 . F a t o r a g a o

...

4 5

capitulo

V . EXEMPLO E MODO DE U T I L I Z A C A O

...

4 9

...

Capítula

V I . CONCLUSOES 5 3

B I B L I O G R A F I A

...

54

...

(7)

I

-

INTRODUCAO

E s t a t e s e d e s c r e v e um g e r a d o r de a n a l i s a d o r e s s i n t á t i -

c o s que u s a t é c n i c a s L L (1) p a r a c o n s t r u g a o d e a n a l i s a d o r e s "t op-down"

.

A s t é c n i c a s L L (1) foram a p r e s e n t a d a s p o r FOSTE& em

3 1968 e receberam um t r a t a m e n t o t e Ó r i c o de KNUTH em 1971. Normalmente, a p r i m e i r a c o i s a a s e r e s p e c i f i c a d a no p r o j e t o de um compilador

é

o método de a n á l i s e s i n t á t i c a a s e r u t i l i z a d o . I s s o s e deve a o f a t o de que v i a de r e g r a , o a n a l i s a - dor s i n t á t i c o d i r i g e o c o m p i l a d o r , s o l i c i t a n d o " t o k e n s " a o ana

-

l i s a d o r l é x i c o , e em linguagem p i t o r e s c a " s e r v i n d o de c a b i d e p a r a p e n d u r a r a s e m i n t i c a " , O f a t o

é

que a a n á l i s e s i n t á t i c a

6

uma d a s f a s e s de compilagáo mais u s a d a s e m e l h o r compreendidas e p a r a a qua 1 e x i s t e m t e o r i a s e s p e c í f i c a s bem c o n s t r u í d a s

.

Por e s s a r a z h , r a r a m e n t e s e u t i l i z a m h o j e em d i a , p a r a o p r o j e t o de c o m p i l a d o r e s , t é c n i c a s manuais p a r a a cons -

t r u c a 0 do a n a l i s a d o r s i n t á t i c o , p r e f e r i n d o - s e em g e r a l t r a n s f e -

r i r p a r a um programa d e computador a c a r g a de d e s c o b r i r como a s d i v e r s a s c o n s t r u g o e s e s p e c í f i c a s d a g r a m á t i c a de uma l i n g u a -

gem de programagao podem s e r r e c o n h e c i d a s

.

Ao a n a l i s a d o r s i n t á t i c o a s s i m c o n s t r u í d o , (em g e r a l c o n s t i t u í d o p o r um programa-padriío e t a b e l a s e s p e c í f i c a s da g r a m á t i c a ) a c r e s c e n t a m o s a s chamadas do a n a l i s a d o r l é x i c o e d a s r o t i n a s s e m i n t i c a s , e o que mais s e t o r n e n e c e s s á r i o p a r a f o r m a r o c o m p i l a d o r . O t e x t o d e s t a t e s e f o i d i v i d i d o em c a p í t u l o s c u j o con -

(8)

tefido descrevemos a s e g u i r .

Neste p r i m e i r o c a p i t u l o fazemos uma pequena a p r e s e n t a -

~ $ 0 e a s e g u i r mostramos o que pode s e r e n c o n t r a d o nos o u t r o s c a p í t u l o s .

No c a p i t u l o I 1 i n t r o d u z i m o s d e f i n i g o e s b á s i c a s e n o t a -

s o e s que s e fazem n e c e s s á r i a s p a r a a compreensao do d e s e n v o l v i -

mento t e Ó r i c o do p r o c e s s o g e r a l de a n á l i s e s i n t á t i c a , e das l i n

-

guagens e g r a m á t i c a s LL a p r e s e n t a d a s no c a p i t u l o 111.

O s i s t e m a r e s p o n s á v e l p e l a c o n s t r u s a o do g e r a d o r e s u a o r g a n i z a g a o g e r a l

s50

d e s c r i t o s no c a p i t u l o IV. P a r a melhor com -

p r e e n s a o o c a p i t u l o f o i d i v i d i d o em módulos, onde cada mÓdulo

6

t r a t a d o em s e p a r a d o .

No c a p i t u l o V mostramos por meio de uma ~ r a m á t i c a e s c 0 -

l h i d a como exemplo, como pode s e r u t i l i z a d o o s i s t e m a e o que e l e pode o f e r e c e r a o u s u á r i o .

A s c o n c l u s 6 e s e e x t e n s g e s p o s s í v e i s

s50

a p r e s e n t a d a s no

capitulo

VI.

(9)

I 1

-

DEFINICUES E CONCEITOS FUNDAMENTAIS

E s t e c a p i t u l o p r o c u r a i n t r o d u z i r d e f i n i g o e s b á s i c a s da t e o r i a d e g r a m á t i c a s e l i n g u a g e n s de programagso bem como a l -

gumas n o t a g o e s a s s o c i a d a s com a t e o r i a matemática de l i n g u a g e n s f o r m a i s .

Alguns c o n c e i t o s e n o t a s o e s , t a i s como a l f a b e t o , s e -

quGncia d e s í m b o l o s , s e r s o c o n s i d e r a d o s como p r i m i t i v o s p a r a n o s s o s f i n s .

Um a l f a b e t o

é

normalmente d e n o t a d o por uma l e t r a g r e g a m a i ú s c u l a ; a s m a i s comuns s a o E, N, A ,

r

.

D e f i n i s s o 1: O c o n j u n t o de t o d a s a s s e q u e n c i a s c o n s t r u í d a s com s í m b o l o s d e um a l f a b e t o q u a l q u e r C s e r ; d e n o t a d o p o r C * . A - s e q u g n c i a v a z i a E

6

a s e q u e n c i a d e z e r o símbo - 10s. O c o n j u n t 0 d e t o d a s a s s e q u e n c i a s nao v a z i a s c o n s - t r u í d a s com s í m b o l o s de um a l f a b e t o q u a l q u e r C s e -

+

r á

d e n o t a d o p o r C

.

D e f i n i g a o 2 : O

-

comprimento 1x1 de uma s e q u g n c i a

x

é

o número d e s í m b o l o s que compóem x .

Por exemplo, s e j a C = {A,

...,

Z ) entrio

BEG GIN^

= 5 . Se p o r o u t r o l a d o c o n s i d e r a r m o s C como s e n d o o a l -

f a b e t o do ALGOL { b e g i n , e n d ,

- -

c a s e , . . . , A,

...,

Z , O ,

(10)

D e f i n i g a o 3 : Uma - linguagem s o b r e o a l f a b e t o C

6

um s u b c o n j u n t o de I * , i s t o

6 ,

um c o n j u n t 0 d e s e q u e n c i a s de simbo - 10s d e C . A s l i n g u a g e n s podem s e r v a z i a s , nao v a z i a s , f i n i - t a s , i n f i n i t a s . S e j a C = {O, 1 ) . E n t a o

cP

C

*

C + { E

1

{O, 1)

+

(x

c C

I

o Último s í m b o l o d e x

6

1 ) s a o l i n g u a - gens s o b r e {O,

11.

A d e f i n i g a o 3 i n t r o d u z um c o n c e i t o d e linguagem que po - de modelar l i n g u a g e n s n a t u r a i s ou l i n g u a g e n s a r t i f i c i a i s

.

E n t r e e s t a s Ú l t i m a s s e s i t u a m a s l i n g u g e n s d e programagao. A e s c o l h a do a l f a b e t o a p r o p r i a d o

é

f u n d a m e n t a l .

Um dos d i s p o s i t i v o s usados p a r a e s p e c i f i c a r uma l i n g u a -

gem f i n i t a

6

a g r a m a t i c a . Vejamos a g o r a a d e f i n i s a 0 d e g r a m á t i - c a . D e f i n i s a 0 4 : Uma g r a m á t i c a

6

uma q u á d r u p l a G =

(N,C

, P , S )

,

on - de: - N

é

um

a l f a b e t o , c u j o s s r m b o l o s s a o o s

-

n a o - t e r m i n a i s de G . --

-

C

6

um a l f a b e t o , c u j o s sfmbolos s 2 0 os t e r m i n a i s d e G .

(11)

-

N

n

I =

4

ou s e j a , N e C s20 a l f a b e t o s d i s t i n

-

t o s .

-

S

6

um n a o - t e r m i n a l de G(S E N), o símbolo

-

i n i c i a 1 de G .

-

P

6

um c o n j u n t 0 f i n i t o de producces ( r e g r a s ) da forma a -+

B

onde a e B

s50

s e q u g n c i a s de s í m - b o l o s t e r m i n a i s e n á o - t e r m i n a i s , sendo o b r i g a t 6 - r i a a p r e s e n c a d e p e l o menos um n á o - t e r m i n a l em Convencao: Usaremos a s s e g u i n t e s n o t a g o e s p a r a r e p r e s e n t a r s í m - b o l o s e s e q u e n c i a s :

-

l e t r a s m a i ú s c u l a s do comego do a l f a b e t o , t a i s como, A, B ,

...

r e p r e s e n t a m s í m b o l o s n á o - t e r m i n a i s (N)

.

-

l e t r a s m i n ú s c u l a s do comeco do a l f a b e t o , t a i s como, a , b , .

..

r e p r e s e n t a m slmbolos t e r m i n a i s ( I ) .

-

l e t r a s maiÚsculas prÓximas do fim do a l f a b e t o , t a i s como, X , Y ,

...

r e p r e s e n t a m símbolos da g r a m á t i c a , i s t o

6 ,

t e r m i n a i s e / ou n a o - t e r m i n a i s (C U N)

.

-

l e t r a s minÚsculas prÓximas do f i m do a l f a b e t o , t a i s como, u , v ,

. . .

, z , r e p r e s e n t a m s e q u e n c i a s de t e r m i n a i s ( I * )

.

-

l e t r a s g r e g a s minÚsculas, t a i s como, a , B,

u,...

r e p r e s e n t a m s e q u e n c i a s de símbolos da g r a m á t i c a , i s t o

6 ,

s e q u g n c i a s de t e r m i n a i s e / o u n á o - t e r m i n a i s (C U N ) *

.

A s s i m una produc50 ge -

n é r i c a pode a p a r e c e r como A -+ a , i n d i c a n d o que há um n á o - t e r

-

(12)

uma s e q u g n c i a d e s í m b o l o s da g r a m á t i c a a

5

d i r e i t a d a s e t a (o l a d o d i r e i t o d a p r o d ~ s i í o ) .

-

Se A + a l , A + a ~ , . . . , A i a ~ s a o t o d a s produqGes c o m A como l a d o e s q u e r d o , podemos e s c r e v e r A + a l l a 2

1

. .

.

1

a k e c h a - mar a l , a 2 , .

.

.

, a k de - a l t e r n a t i v a s d e A .

-

o l a d o e s q u e r d o da p r i m e i r a produgao

6

sempre o s í m b o l o i n i - c i a l d a g r a m á t i c a .

D e f i n i g a o 5 : S e j a G = ( N , Z , P , S ) . Dizemos que uma s e q u i n c i a y a 6

--

d e r i v a d i r e t a m e n t e em G a s e q u z n c i a y

B

6 s e P contém a r e g r a a +

B .

Em s í m b o l o s : y a 6 = > G y 6 6 Dizemos que a s e q u e n i c a a d e r i v a em G, em z e r o ou mais p a s s o s a s e q u z n c i a

B

s e e x i s t e m um i n t e i r o n - > O e s e q u 6 n c i a s a o , a l , .

.

, an t a i s q u e : a. = a =

B

=> a p a r a i = 1 ,

...,

n a i - l G i

*

E m s í m b o l o s : a = > B G

Dizemos que uma s e q u g n i c a a d e r i v a em G

,

em um ou mais p a s s o s a s e q u g n c i a 13 s e a => B, sendo n > 1 -- G - na d e f i n i s 5 0 acima. Caso n a o s e j a n e c e s s á r i o e s p e c i f i c a r a g r a m á t i c a G,

*

+

o s s í m b o l o s =>, => , => s e r 3 0 u s a d o s .

(13)

Podemos a g o r a i n t r o d u z i r formalmente o c o n c e i t o de linguagem d e f i n i d a por urna g r a m á t i c a .

D e f i n i g a o 6 : S e j a G = ( N , C , P , S ) . A linguagem L(G) d e f i n i d a como :

DefinigZo 7 : Urna -- forma

--

s e n t e n c i a 1 de G = (N,

I

,P ,S)

é

urna s e

-

*

quGncia a t a l que S => a . G Vamos agora i n t r o d u z i r a h i e r a r q u i a de g r a m á t i c a s e de l i n g u a g e n s , d e v i d a o r i g i n a l m e n t e a Chomsky. D e f i n i s 5 0 8 : Uma g r a m á t i c a G

6 :

t i p 0 O s e simplesmente s a t i s f a z a d e f i n i g g o 4 . t i p o 1 ( s e n s í v e l ao c o n t e x t o ) s e t o d a s a s s u a s

-

- -

produqoes slao da forma a + B onde

1

al

5

1

6

1

.

t i p 0 2 ( l i v r e

de

c o n t e x t o ) s e t o d a s a s s u a s p r o d u

-

goes sZo d a forma A + B , onde

I B (

2 1

e A E N .

t i p 0 3 ( r e g u l a r ) s e t o d a s a s s u a s p r o d u s o e s sZo da forma A -t aB ou A + a onde A e B E N e a e C .

D e f i n i c a 0 9 : Uma linguagem L

6

do t i p o i = 0 , 1 , 2 , 3 , s e e - x i s t e urna g r a m á t i c a G do mesmo t i p o i t a l que

L = L ( G )

.

(14)

s e q u e n c i a v a z i a niio pode p e r t e n c e r a nenhuma linguagem t i p 0 1 ,

2 ou 3 . P a r a i n c l u i r a s e q u g n i c a v a z i a , a s d e f i n i g o e s de grams -

t i c a s t i p 0 1 , 2 e 3 s a o m o d i f i c a d a s n a forma a b a i x o :

-

p e r m i t i r e m o s em uma g r a m á t i c a t i p 0 1 ( s e n s í v e l a o c o n t e x t o ) uma produgao da forma S + E , onde S

6

o s í m b o l o

i n i c i a l , com a c o n d i g a o d e que S n a o a p a r e g a em nenhum l a d o d i -

r e i t o de p r o d u g a o .

-

l i b e r a r e m o s o u s o de r e g r a s d a forma A + E em grams - t i c a s l i v r e d e c o n t e x t o e r e g u l a r e s ( t i p o 2 e 3 ) . Das q u a t r o c l a s s e s de g r a m á t i c a s n a h i e r a r q u i a de Choms - k y , a s g r a m á t i c a s l i v r e de c o n t e x t o s 5 0 a s m a i s i m p o r t a n t e s em termos de a p l i c a g o e s de l i n g u a g e n s d e programagao. Uma g r a m á t i c a l i v r e de c o n t e x t o pode s e r u s a d a p a r a e s - p e c i f i c a r a m a i o r i a d a s e s t r u t u r a s s i n t á t i c a s de uma linguagem de programagao. Daqui p a r a f r e n t e , linguagem i n d i c a r ; l i n g u a -

(15)

I11

-

- LINGUAGENS E GRAMTICAS L L

Antes d e e n t r a r m o s em d e t a l h e n o e s t u d o do g e r a d o r de a n a l i s a d o r e s s i n t á t i c o s que

6

o o b j e t i v o p r i n c i p a l d e s t a t e s e , vamos a p r e s e n t a r a q u i a s nogóes f u n d a m e n t a i s p a r a a compreen - s a o do p r o c e s s o de a n á l i s e s i n t á t i c a .

P o r a n á l i s e s i n t á t i c a , compreendemos o problema d e , (dadas uma g r a m á t i c a l i v r e d e c o n t e x t o G e uma s e q u e n c i a x de s u a linguagem) , d e t e r m i n a r como a s e q u h c i a x pode s e r d e r i v a -

d a a p a r t i r d o s í m b o l o i n i c i a l de G . Frequentemente c o n s i d e r a - s e também em a n á l i s e s i n t á t i c a , o problema d e m o s t r a r que uma d a d a s e q u e n c i a x nao p e r t e n c e

2

linguagem d a g r a m á t i c a G .

Uma d i s t i n g a o f u n d a m e n t a l e x i s t e e n t r e o método d e a n á l i s e s i n t á t i c a L L ( l ) , que

6

um método top-down, e o u t r o s

-

t o d o s f r e q u e n t e m e n t e e n c o n t r a d o s , que s 5 0 métodos bottom-up. No método top-down, a a n á l i s e

6

f e i t a p r o c u r a n d o em c a d a p a s s o d e t e r m i n a r q u e produgao deve s e r usada a s e g u i r . Se a s e n t e n c a x

é

examinada da e s q u e r d a p a r a a d i r e i t a , normalmen - t e o p r o c e s s o s e g u e uma d e r i v a g a o

2

e s q u e r d a . Exemplo 1. Sejam a g r a m á t i c a G . E - t E + T 1 E + T 2 T + T * F 3 T - t F 4 F + ( E ) 5 F + a 6

(16)

e a s e n t e n q a x = ( a + a )

*

a . A á r v o r e d e d e r i - v a c a 0

6

m o s t r a d a n a f i g u r a 111.1 e a s i m u l a q a o do p r o c e s s o d e a n á l i s e

6

m o s t r a d o n o q u a d r o d a f i g u - r a 1 1 1 . 2 , onde p

6

a s e q u 6 n c i a de números de p r o - duqoes u s a d a s na d e r i v a g a o e s q u e r d a . O s números e n c o n t r a d o s n a á r v o r e i n d i c a m a ordem em que a s e x p a n s o e s s a o r e a l i z a d a s d u r a n t e a a n á l i s e . F i g . 111.1

(17)
(18)

No método bottom-up procuramos em c a d a p a s s o d e t e r m i

-

n a r que redugao d e v e s e r e f e t u a d a , p a r t i n d o d a s e n t e n s a x , e p r o c u r a n d o o b t e r o s í m b o l o i n i c i a l d e G . N e s t e c a s o , mantendo- s e o s e n t i d o de exame d a s e n t e n s a x d a e s q u e r d a p a r a a d i r e i

-

t a , obteremos uma d e r i v a q h

5

d i r e i t a c o n s t r u i d a em ordem i n -

v e r s a .

A f i g u r a 111.3 m o s t r a na z r v o r e d e d e r i v a s i o da s e n

-

t e n s a

x ,

do exemplo 1 , usando o método bottom-up, a ordem em que a s r e d u s o e s s % e f e t u a d a s .

(19)

Vejamos, a g o r a , com d e t a l h e s , o que a c o n t e c e com a a n á l t s e top-down. Exemplo 2 : Consideremos a g r a m g t i c a a b a i x o q u e d e s c r e v e um b l o c o t i p o ALGOL. C - t c

1

c ; C (onde b , C, D, e c o r r e s p o n d e m a b e g i n , "comando", " d e c l a r a g Z o " ,

--

e n d ) . Consideremos tarnhGm a s e n t e n s a : b d ; d ; c ; c e como e n t r a d a do a n a l i s a d o r

.

A a n c < l i s e

6

f e i t a comparando a s p o s s i b i l i d a d e s , ou f o r m a s s e n t e n c i a i s p o s s í v e i s , com a s e n t e n g a ou t e x t o f o n t e . A p r i m e i r a p o s s i b i i i d a d e o s i m b o i o i n i c i a l da g r a m á t i c a , e a s n o v a s p o s s i b i l i d a d e s

s50

p r o d u z i d a s p o r s u b s t i t u i g 2 0 d o s simbo - 10s n a o - t e r m i n a i s m a i s

2

e s q u e r d a p o r s u a s p o s s i v e i s expan- s o e s . A q u e l a s p o s s i . b i l i d a d e s que n a o correspond.em ao t e x t o sZo r e j e i t a d a s , d e i x a n d o a s o u t r a s p a r a comparagoes f u t u r a s , e a s

-

sim ? o r d i . a n t e . O s e s t a d o s s u c e s s i v o s da a n s l i s e sZo dados n o q u a d r o da f i g w a 111: . 4 .

Resumindo, a s r e g r a s d a a n á l i s e venos q u e :

-

o e s t a d o i n i c i a l . tern o s";mbolo i n i c i a l como forma s e n t e n . c i a 1 Única e o t e x t o f o n t e .

- q u a l q u e r forma s e n t e n c i a 1 que comece com um s í m b o l o nau-

t e r m i n a l

ep

s u b s t i t u - I d a p o r t a n t a s q u a n t a s forem n e c e s s a r i a s , c a d a urna s e n d o a forma s e n t e n c i a l o r i g i n a l com o s í m b o l o nZo

(20)

- t e r m i n a l s u b s t i t u í d o p o r -urna de s u a s e x p a n s o e s

.

-

s e t o d a s a s formas s e n t e n c i a i s p o s s s í v e i s comegam com um s í m

-

bo10 t e r m i n a l , c a d a um d e s s e s s i m b o l o s

6

comparado com o s i m -

bo10 m a i s

5

e s q u e r d a d o t e x t o . Se o s í m b o l o n5o p e r t e n c e a o t e x t o , a forma s e n t e n c i a 1 c o r r e s p o n d e n t e

6

r e j e i ta d a , s e n s o o s í m b o l o

6

r e t i r a d o d a mesma e p a s s a - s e p a r a o prÓximo e s t a

-

d o , onde o t e x t o também p e r d e s e u p r i m e i r o c a r á t e r .

-

a a n á l i s e t e r m i n a quando uma p o s s i b i l i d a d e e o t e x t o tornam- s e v a z i o s s i m u l t 2 n e a m e n t e . Se v á r i a s p o s s i b i l i d a d e s tornam- s e v a z i a s n e s t e p o n t o a linguagem

é

ambí'gua, e s e nenhuma p o s s i b i l i d a d e t o r n a - s e v a z i a , o t e x t o

SO

6

da linguagem. E s -

t e tembém

6

o c a s o s e nenhuma p o s s i b i l i d a d e e x i s t e em algum moment o .

-

r e c u r s 5 0 e s q u e r d a a c a r r e t a "loop" a o a n a l i s a d o r , uma vez que t o r n a - s e i m p o s s í v e l d e i x a r de o b t e r formas s e n t e n c i a i s comegando com um símbolo n 5 o - t e r m i n a l .

(21)

POSSIBILIDADES

(22)

Consideremos o e s t a d o 4 da f i g u r a 1 1 1 . 4 . A a g a o d e t e r - m i n a n t e p a r a o e s t a d o 5 f o i o p r i m e i r o s í m b o l o d e c a d a uma d a s duas p o s s i b i l i d a d e s e o s í m b o l o do t e x t o . E s t a c o r r e s p o n d h c i a ,

no e n t a n t o , n a o

6

um p r o c e s s o i n s t a n t g n e o , uma vez que uma de -

c l a r a c a o c o n s i s t e d e v á r i o s c a r a c t e r e s . A s duas p o s s i b i l i d a d e s permanecem d u r a n t e a a n á l i s e da d e c l a r a s 5 0 c o m p l e t a , que

6

por c o n s e g u i n t e a n a l i s a d a d u a s v e z e s . Cada comando

6

também a n a l i s a -

do d u a s v e z e s e e s t e número

6

dobrado c a d a vez que os comandos s a o r e f e r e n c i a d o s . E s t e d e s p e r d í c i o pode m u i t a s v e z e s s e r e l i m i - nado e s c o l h e n d o - s e uma p a m á t i c a d i f e r e n t e , p a r a a q u a l

s6

e x i s - t e uma p o s s i b i l i d a d e por v e z . Exemplo 3 : S e j a a g r a m á t i c a a b a i x o : B - t b D ; C e D + d G G + E

1

; D C + c H H - t E

I

; C Se o a n a l i s a d o r f o r m a n t i d o , e l e t r a b a l h a r á com e s s a g r a m á t i c a d a s e g u i n t e m a n e i r a : P o s s i b i l i d a d e s T e x t o B b d ; d ; c ; c e b D ; C e b d ; d ; c ; c e e a s s i m p o r d i a n t e . A d e c l a r a q a o

6

a n a l i s a d a somen

-

t e uma v e z .

(23)

E!

p o s s i v e l o b t e r uma g r a m á t i c a p a r a a q u a l o a n a l i s a -

dor pode sempre r e d u z i r o número de formas s e n t e n c i a i s

passí

-

v e i s p a r a uma. I n f o r m a l m e n t e , s e o a n a l i s a d o r p u d e r tomar uma d e c i - s a o i n s p e c i o n a n d o somente um c a r a c t e r do t e x t o de e n t r a d a , o c a r a c t e r mais

5

e s q u e r d a , dizemos q u e , a g r a m á t i c a e o a n a l i s a - d o r sZo LL(1). Se k c a r a c t e r e s

s50

n e c e s s á r i o s p a r a o b t e r a d e - c i s a 0 a g r a m á t i c a e o a n a l i s a d o r s e r a o LL(k). O a n a l i s a d o r p a r a e s t e t i p 0 de g r a m á t i c a

6

top-down e d e t e r m i n i s t i c o .

E s t e s a n a l i s a d o r e s sZo chamados LL porque pesquisam a e n t r a d a da e s q u e r d a p a r a d i r e i t a ( L e f t - t o - r i g h t ) e constroem uma d e r i v a s a 0

5

e s q u e r d a (Leftmost)

.

Neste ponto passaremos a a p r e s e n t a r a s condigoes p a r a que uma g r a m á t i c a s e j a LL ( I ) , a n t e s porém d e f i n i r e m o s a l g u n s c o n c e i t o s .

Consideremos a s s e g u i n t e s pordug5es p a r a um n a o - t e r m i -

n a l A .

D e f i n i ~ a o 1: O c o n j u n t 0 de símbolos que podem o c o r r e r

5

e s - q u e r d a de q u a l q u e r s e q u e n c i a g e r a d a p o r uma s e - q u e n c i a nZo v a z i a a de t e r m i n a i s e n a o - t e r m i -

n a i s

6

chamada de "simbolos

--

i n i c i a d o r e s " d e a e

é

d e f i n i d o como:

(24)

D e f i n i c a 0 2 : O c o n j u n t o de s í m b o l o s que podem o c o r r e r i m e d i a - t a m e n t e

5

d i r e i t a de

um

n Z o - t e r m i n a l A em alguma forma s e n t e n c i a 1

é

chamado d e "símbolos

-

s e g u i d o r e s " d e A . Se A

é

o s l m b o l o mais d i r e i t a em uma forma s e n t e n c i a l e n t a o $ (um s i m b o l o novo)

é

i n c l u i d o no c o n j u n t o de s I m b o l o s s e g u i d o r e s de A . ( $ r e p r e s e n t a n a p r a t i c a um i n d i c a d o r de f i m de a r q u i v o ) S (A) = { a ~ C u { $ )

I

X$ =>* B A a 6 , B e (CUN)", 6 E. (C U N U ( $ 1 ) " , A e

N)

D e f i n i q a o 3 : O c o n j u n t 0 de s í m b o l o s d i r e t o r e s p a r a uma expan - sZo a d e um n a o - t e r m i n a l A

é

d e f i n i d o como: A c o n d i g a o n e c e s s á r i a e s u f i c i e n t e p a r a urna g r a m á t i c a s e r LL(1)

6

q u e os s í m b o l o s d i r e t o r e s c o r r e s p o n d e n t e s a d i f e - r e n t e s expansoes d e c a d a nZo t e r m i n a l e s t e j a m em c o n j u n t o s d i s - j u n t o s . A j u s t i f i c a t i v a d e s t a c o n d i c 5 0

6

a s e g u i n t e :

-

a c o n d i ~ a o

6

n e c e s s á r i a porque s e um s l m b o l o a p a r e c e em d o i s c o n j u n t o s d e s í m b o l o s d i r e t o r e s o a n a l i s a d o r nZo pode d e c i -

d i r que expansao a p l i c a r sem informaqao f u t u r a .

-

a c o n d i q a o

é

s u f i c i e n t e , p o r q u e o a n a l i s a d o r pode sempre e s -

c o l h e r uma e x p a n s á o em fungao do s í m b o l o dado e e s t a

é

sem -

(25)

j u n t o s de símbolos d i r e t o r e s , o t e x t o nao

é

da linguagem e há um e r r o .

A n a l i s a d o r L L (1)

Uma g r a m á t i c a LL(1) p e r m i t e o uso de formas e s p e c i a i s de a n a l i s a d o r e s . Uma d e s s e s

6

o método de d e s c i d a r e c u r s i v a , , n o -

--

q u a l c a d a n a o - t e r m i n a l c o r r e s p o n d e a um p r o c e d i m e n t ~ d o a n a l i - s a d o r s i n t á t i c o . Exemplo 4 : C o n s i d e r e a g r a m á t i c a LL(1) B - t b d ; X c Y e X - t d ; X I & Y + ; c Y ( E Um a n a l i s a d o r p a r a e s t a g r a m á t i c a s e r i a :

(26)

p r o c e d u r e B ; b e g i n check ( ' b ' ) ; check ( ' d ' ) ; check ( ' ; ' ) ;

x

; check ( ' c ' ) ; c h e c k ( ' e ' ) ; end ; -- p r o c e d u r e X ; b e g i n - i f c a r a c t e r = ' d ' t h e n b e g i n check ( ' d ' ) ;

- -

check ( ' ; ' ) ;

X

end ; - end ;

-

p r o c e d u r e Y ; b e g i n i f c a r a c t e r =

' ; '

-

-

t h e n b e g i n check ( ' ; ' ) ; check ( ' c ' ) ; end ;

-

e n d ; --

(27)

onde check

é

uma macro que confirma s e o c a r a c t e r c o r r e n t e ( o

A

c a r a c t e r mais

5

e s q u e r d a do t e x t o f o n t e )

é

o mesmo que o p a r a - m e t r o a t u a l e d e s l o c a um c a r a c t e r do t e x t o f o n t e . Se o c a r a c -

t e r c o r r e n t e n s o

6

c o n f i r m a d o , o a n a l i s a d o r a c u s a um e r r o . Uma o u t r a e s t r u t u r a p o s s í v e l p a r a o a n a l i s a d o r LL (1)

6

um programa p a d r a o , que tem a c e s s o a uma t a b e l a , onde ficam r e u n i d a s a s informagoes s o b r e a g r a m á t i c a . N e s t e c a s o , uma a l - t e r a c s o na g r a m á t i c a c o r r e s p o n d e apenas a uma a l t e r a c s o nos dados c o n s t a n t e s da t a b e l a . Normalmente e s t e t i p 0 de a n a l i s a -

d o r

6

chamado d i r i g i d o p e l a t a b e l a ( t a b l e - d r i v e n p a r s e r ) . O a n a l i s a d o r p r e d i t i v o d e s c r i t 0 a s e g u i r

6

d e s t e t i p o , d e s s a f o r

--- -

ma, a n e c e s s i d a d e de uma linguagem que p e r m i t a chamadas r e c u r -

s i v a s de procedimentos

é

a f a s t a d a . O a n a l i s a d o r p r e d i t i v o mantém uma p i l h a , (e

6

p o r e s - t e motivo que s e d i s p e n s a a r e c u r s i v i d a d e ) e s u a e s t r u t u r a b á s i

-

c a e s t ; na f i g u r a 111.5.

I

a + b

...

$

(

+- E n t r a d a P i l h a F i g . 1 1 1 . 5

(28)

A e n t r a d a contém a c a d e i a p a r a s e r a n a l i s a d a , s e g u i d a d e $ , a marca d e f i m . A p i l h a contém uma s e q u s n c i a d e s í m b o l o s d a g r a m á t i c a , p r e c e d i d a de $ , a marca d e f i n a l d a p i l h a . I n i c i -

a l m e n t e , a p i l h a contém o s í m b o l o i n i c i a l d a g r a m á t i c a p r e c e d i

-

do d e $ . A t a b e l a de a n á l i s e , d e f i n i d a como:

TIA,^^

= j s e e somente s e j : A + a e SD(A,a) = a ,

6

uma m a t r i z , onde A

6

um n a o - t e r m i n a l e - a

6

wn t e r m i n a l ou o s í m b o l o $ . O a n a l i s a d o r

é

c o n t r o l a d o p e l a s a s s e s que seguem. O programa d e t e r m i n a X , o s í m b o l o no t o p o d a p i l h a , e - a , o símbo

-

c o r r e n t e da e n t r a d a . E s t e s d o i s s í m b o l o s determinam a a s s o a n a l i s a d o r . E x i s t e m t r s s p o s s i b i l i d a d e s : Se X = a = $ , o a n a l i s a d o r p a r a i n d i c a n d o a c o n c l u s a o da a n á l i s e com s u c e s s o . Se X = a

#

$ , o a n a l i s a d o r r e t i r a X da p i l h a e a v a n s a o p o n t e i r o d a e n t r a d a p a r a o prÓximo s í m b o l o d a e n t r a d a . Se

X

6

um n a o - t e r m i n a l A, o programa c o n s u l t a a e n t r a d a

TIA,^^

da t a b e l a . E s t a e n t r a d a s e r ; uma produgiío do nao- t e r m i n a l A d a g r a m á t i c a , (na p r á t i c a , o número d a produgiío) ou uma e n t r a d a d e e r r o . Se T

I

~ ,

1

a= (A + a ) , o a n a l i s a - d o r s u b s t i t u i A no t o p o da p i l h a p o r a

.

Se

TIA,^^

= e r r o , i s t o

é,

e n t r a d a em b r a n c o , o a n a l i s a d o r chama urna r o t i n a de r e c u p e r a g a o d e e r r o . Exemplo 5 : C o n s i d e r e a p - a m á t i c a LL(1) do exemplo 4 . A t a b e - l a d e a n á l i s e p a r a e s t a g r a m á t i c a e n c o n t r a - s e n a f i g u r a 1 1 1 . 6 . Brancos s a o e n t r a d a s de e r r o . (A ma -

(29)

n e i r a como e s t a s e n t r a d a s sZo s e l e c i o n a d a s s e r ; m o s t r a d a no ~ r Ó x i m o c a p i t u l o ) . Com a e n t r a d a d o exemplo 2 o a n a l i s a d o r f a r 5 a s e q u g n c i a d e movi - mentos mos t r a d a na f i g u r a I1 I . 7

.

F i g . 1 1 1 . 6 B P a r a algumas g r a m á t i c a s a t a b e l a T p o s s u i e n t r a d a s que sZo d e f i n i d a s m u l t i p l a m e n t e . Poe e x e m p l o , s e a g r a m á t i c a

6

r e c u r s i v a

s

e s q u e r d a ou ambígua, e n t Z o a t a b e l a t e r á p e l o me -

nos uma e n t r a d a com d e f i n i s 5 0 m ú l t i p l a .

Se a g r a m á t i c a náo f o r LL, SD(A,a) í l S D ( A , a t )

#

6

e p o r t a n t o

T I A ,

a l

~ Z O

pode s e r d e f i n i d o i n e q u i v o c a m e n t e p a r a t o d o s o s a ' s . b B+bd; XcYe d

P+&

/

X+d;X X+E 7 c

(30)

F i g . 1 1 1 . 7 Exemplo 6 : S e j a a g r a m á t i c a d e f i n i d a p o r : S A ~ D A B + b d ; X c Y e X + d ; X 0 X + E Y + ; C Y Y + E

I

PILHA - - $ B $ e Y c X ; d b $ e Y c X ; d $ e Y c X ; $ e Y c X $ e Y c X ; d $ e Y c X ; $ e Y c X $ e Y c $ e Y $ e Y c ; $ e Y c $ e Y $ e $ A t a b e l a d e s í m b o l o s d i r e t o r e s p a r a e s t a g r a m á t i - ENTRADA b d ; d ; c ; c e $ b d ; d ; c ; c e $ d ; d ; c ; c e $ ; d ; c ; c e $ d ; c ; c e $ d ; c ; c e $ ; c ; c e $ c ; c e $ c ; c e $ ; c e $ ; c e $ c e $ e $ e $

I

$ c a

é

m o s t r a d a na f i g u r a 1 1 1 . 8 . Nela a e n t r a d a p a r a

I

S ' , e ( contém t a n t o S ' + e S como S + E .

(31)

F i g . 1 1 1 . 8

A g r a m á t i c a d o exemplo 6

6

ambigua e a ambiguidade

é

m a n i f e s t a d a n a e s c o l h a de que p r o d u ~ i i o u s a r quando um - e ( e l s e ) a p a r e c e . E s t a ambiguidade pode s e r r e s o l v i d a s e escolhermos S ' + e s , o que c o r r e s p o n d e a a s s o c i a r m o s o e l s e a o Último i f .

Podemos a s s i m informalmente d i z e r que urna g r a m á t i c a LL(1) p o s s u i wna t a b e l a de a n á l i s e que n a o p o s s u i e n t r a d a s m Ú 1 -

(32)

IV

-

D E S C R I ~ O DO SISTEMA N e s t e c a p i t u l o d e s c r e v e r e m o s o g e r a d o r d e a n a l i s a d o r e s s i n t á t i c o s LL(1) , c u j a implementagao f o i o o b j e t i v o de n o s s a t e - s e , o s a l g o r i t m o s e o s métodos u t i l i z a d o s p a r a a l c a n s a r e s t e f i m . O s i s t e m a

6

v o l t a d o p a r a o u s o do computador Burroughs B 6 7 0 0 e a l i n g u a g e m d e p r o g r a m a ~ a o u s a d a

6

o ALGOL.

Fizemos u s o d e e s t r u t u r a d e dados com m a n i p u l a ~ a o p a y c i a 1 de p a l a v r a s , p r o c u r a n d o sempre que p o s s í v e l u s a r o s 48 b i t s a c e s s í v e i s . O s i s t e m a , a p r i n c í p i o , f u n c i o n a em b a t c h , s e n d o s i m - p l e s a s u a a d a p t a q i í o p a r a o n - l i n e . SZo f o r n e c i d o s a o u s u á r i o trGs mÓdulos d i s t i n t o s : - um c o d i f i c a d o r c u j a f u n q a o

6

f o r n e c e r g r a m á t i c a uma r e p r e - s e n t a s s o i n t e r n a ,

-

um t e s t a d o r d a c o n d i q a o L L ( l ) ,

-

um módulo que t e n t a t r a n s f o r m a r g r a m á t i c a s n5o LL(1) em g r a - m á t i c a s e q u i v a l e n t e s L L (1) , a l é m d e algumas r o t i n a s a u x i l i a r e s de i m p r e s s a o de r e s u l t a d o s i n t e r m e d i á r i o s d e c a d a um dos mÓdulos a c i m a , e o g e r a d o r p r o p r i a m e n t e d i t 0

.

A o r g a n i z a c Z o g e r a l do s i s t e m a

é

m o s t r a d a no f l u x o g r a - ma d a f i g u r a I V . l .

(33)

GRAMATICA

i-r

COD IFICADOR

u

S FACA FATORACAO

2

F i g . I V . 1 Obs. : N e s t e f l u x o g r a m a n a o mostramos a s s a í d a s a n o r m a i s d o s i s t e m a .

(34)

I V . l

-

CODIFICADOR N e s t e mÓdulo, a g r a m á t i c a c u j a r e p r e s e n t a g á o s e encon - t r a n o f o r m a t o de e n t r a d a , s o f r e uma a n á l i s e l é x i c a e s i n t á t i - c a , r e c e b e uma r e p r e s e n t a g á o i n t e r n a e

6

g e r a d a a t a b e l a de s í m b o l o s p a r a o s n a o - t e r m i n a i s e t e r m i n a i s , . A ; r e a d e memória esti'mada p a r a a g r a m á t i c a p a d r a o - a p r e s e n t a o s e g u i n t e " d e f a u l t " : 2 0 0 n a o - t e r m i n a i s 500 t e r m i n a i s comprimento médio do l a d o d i r e i t o d a p r o d u ~ a o = 5 produgZo média p o r n 5 o - t e r m i n a l = 4 Exemplo: S e j a a g r a m á t i c a :

1 EXPRESSAO = EXPRESSAO

'

+ ' TERMO

2

I

TERMO ;

3 TERMO = TERMO I * ' FATOR

4

1

FATOR 5 3 6 FATOR = ( EXPRESSA0 I ) 7

I

' A ' ; Sua r e p r e s e n t a ~ a o i n t e r n a

6

m o s t r a d a n a f i g u r a IV.2. P a r a c a d a n Z o - t e r m i n a l da g r a m á t i c a

é

a s s o c i a d o uma p a l a v r a n a e s t r u t u r a s e q u e n c i a l PONT, que a p o n t a p a r a a p r i m e i - r a p r o d u ~ i i o d e s s e n Z o - t e r m i n a l .

(35)

A e s t r u t u r a l i g a d a NO

6

formada p o r t r e s campos: o p r i -

m e i r o ocupa o s b i t s 4 7

5

3 2 , o segundo o s b i t s 3 1

2

1 6 e o t e r -

c e i r o o s b i t s 1 5 0 .

Quando um NO

é

u s a d o p a r a r e p r e s e n t a r o l a d o e s q u e r d o de uma p r o d u g a o o p r i m e i r o campo a p o n t a p a r a a produc20 s e g u i n -

t e d o mesmo n Z o - t e r m i n a l , o s e g u n d o campo contém o número do c a r t a 0 onde e s s a produgao

6

i n i c i a d a , e o t e r c e i r o campo a p o n t a p a r a a r e p r e s e n t a g g o do l a d o d i r e i t o da p r o d u g a o .

Na r e p r e s e n t a c s o do l a d o d i r e i t o da produg2o o p r i m e i -

r o campo nao

6

u t i l i z a d o , o segundo campo contém o c ó d i g o do s í m b o l o t e r m i n a l ou n a o - t e r m i n a l , e o t e r c e i r o campo a p o n t a p a r a a r e p r e s e n t a c a o do prÓximo s i m b o l o .

A e s c o l h a de uma e s t r u t u r a l i g a d a

6

d e c o r r e n t e da n e -

c e s s i d a d e d e m o d i f i c a g o e s n a s p r o d u ~ o e s dos n a o - t e r m i n a i s

j á

- e

x i s t e n t e s , t a i s como r e t i r a d a ou i n c l u s a o de s í m b o l o s o u mesmo de p r o d u g o e s , bem como c r i a g a o d e novos n a o - t e r m i n a i s .

(36)

El-

(37)

FORMAT0 DE ENTRADA

Representamos urna g r a m á t i c a l i v r e de c o n t e x t o na s e

-

g u i n t e forma:

GLC

=

ESPAGO

I

GLC REGRA ESPAGO

;

REGRA

=

PARTE*ESQUERDA

'

= '

ALTERNATIVAS

'

;

'

#

g l c v a z i a 7

ALTERNATIVAS

=

PARTE*DIREITA

I

ALTERNATIVAS

'

I

'

PARTE*DIREITA

;

PARTE*ESQUERDA

=

NAO*TERMINAL

7

PARTE*DIREITA

=

ESPAGO

#

lado d i r e i t o sequencia vazia

I

PARTE

"DIREITA TERMINAL ESPACO

I

PARTE*DIREITA NAO*TERMINAL ESPACO

;

NAO*TERMINAL

=

IDENTIFICADOR

TERMINAL

=

CADEIA

7

IDENTIFICADOR

=

LETRA

I

IDENTIFICADOR LETRA

I

IDENTIFICADOR DIGITO

I

IDENTIFICADOR ESTRELINHA

;

CADEIA

=

PLICA QUALQUER*COISA PLICA

ESPACO

=

SEPARADOR

(38)

SEPARADOR

=

BRANCO

I

MUDALINHA

I

COMENTARIO

;

COMENTARIO

=

JOGO*DA*VELHA BRANCO QUALQUER*COISA MUDALINHA

#

una p a r t e d i r e i t a vazia

I

QUALQUER*

COISA CARACTER

I

QUAL(JJER*COI

SA

JOGO*DAXVELHA 'N

'

#

mudalinha

1

QUALQUER*COISA JOGO*DA*VELHA

'

Q

'

#

urna p l i c a

I

QUALQUER*COISA JOCO*DA*VELNI JOGO*DA*VELHA

#

jogo da velha

7

CARACTER

=

LETRA

I

DIGITO

I

OPERADOR

I

BRANCO

;

LETRA

=

'A'

I

'B'

[

...

I

' Z ' 7

DIGITO

= ' 0 '

I

'1'

I

...

1

'9' ;

OPERADOR

= ' =

'

I

q t

I

I ; '

1

I + '

I

1 - 1

I

I * I

I

r p

I

I < I I 1 , '

I

I '

I

1,'

1

1 . 1

I

1 . 1 7

1 1 ( ' 1 ' ) '

Y

PLICA

=

'#Q'

#

conven@o para o uso da p l i c a

Y

JOGO DA VELHA

=

' # # '

#

convengao para o uso do jodo da velha

3

MUDALINHA

=

'#NI

7

BRANCO

= ' ' 7

ESTRELINHA

=

' * '

(39)

I V . 2

-

TESTADOR DA C O N D I C A O L L (1)

E s t e mÓdulo tem p o r o b j e t i v o t e s t a r a condigao LL(1) p a r a uma dada g r a m á t i c a . E l e

6

formado p e l o s g e r a d o r e s d e :

-

s I m b o l o s i n i c i a d o r e s

-

s i m b o l o s s e g u i d o r e s

-

s í m b o l o s d i r e t o r e s

O a l g o r i t m o que d e c i d e s e uma g r a m á t i c a G

6

ou nao LL(1) d e t e r m i n a o c o n j u n t 0 d e s í m b o l o s d i r e t o r e s p a r a cada ex

-

p a n s 5 0 d e um n a o - t e r m i n a l e em s e g u i d a a p l i c a a condigZo LL(1).

P a r a d e t e r m i n a r o s c o n j u n t o s d e s i m b o l o s d i r e t o r e s , p r i m e i r o encontramos o s c o n j u n t o s de s h b o l o s i n i c i a d o r e s e s e g u i d o r e s p a r a cada n á o - t e r m i n a l , como também a informagao de que o n á o - t e r m i n a l g e r a ou n5o a sequGncia v a z i a .

Algoritmo que d e t e r m i n a s e um n 5 o - t e r m i n a l pode ou nao g e r a r a s e q u e n c i a v a z i a - r o t i n a SEQUl?NCIAVAZIA, p á g i n a A8 do a p s n d i c e .

E s t e a l g o r i t m o n e c e s s i t a de uma cÓpia da g r a m á t i c a e um v e t o r V, com uma e n t r a d a p o r n 5 o - t e r m i n a l na g r a m á t i c a . O s

e l e m e n t o s de V possuem um dos t r e s v a l o r e s :

- -

s i m , nao ou i n d e f i n i d o , d i z e n d o s e o n a o - t e r m i n a l pode ou n a o g e r a r a s e q u e n c i a v a z i a . O a l g o r i t m o f u n c i o n a d a s e g u i n t e m a n e i r a : 1

-

c a d a e l e m e n t o de V

6

i n i c i a l i z a d o com " i n d e f i n i d o " 2

-

d u r a n t e um p a s s o na g r a m á t i c a

s50

e x e c u t a d a 5 a s s e g u i n t e s a ~ 6 e s :

(40)

a )

-

s e q u a l q u e r expansao d e um n á o - t e r m i n a l

6

a sequGncia v a z i a , o c o r r e s p o n d e n t e e l e m e n t o de V r e c e b e o v a l o r " s i m " e t o d a s a s produqoes do n a o - t e r m i n a l s a o e l i m i - nadas d a g r a m á t i c a . b )

-

q u a l q u e r p r o d u ~ a o contendo um simbolo t e r m i n a l

6

e l i - minada da g r a m á t i c a . Se e s s a a s s o e l i m i n a t o d a s a s produsoes d e um n a o - t e r m i n a l , o v a l o r c o r r e s p o n d e n t e de V r e c e b e o v a l o r "n20". 3

-

a g r a m á t i c a e s t ; a g o r a l i m i t a d a p e l a r e g r a na q u a l os l a -

dos d i r e i t o contém somente símbolos n a o - t e r m i n a i s . Com s u -

c e s s i v o s p a s s o s na g r a m á t i c a obtemos a s s e g u i n t e s a s c e s , onde cada l a d o d i r e i t o

6

examinado:

a )

-

s e a e n t r a d a c o r r e s p o n d e n t e de V tem o v a l o r "sirn", o símbolo

6

e l i m i n a d o . Se i s s o l e v a s e q u g n c i a v a z i a

a

como l a d o d i r e i t o , o n a o - t e r m i n a l p a r a o q u a l e s t á e uma expansao, pode g e r a r a s e q u e n c i a v a z i a . A c o r r e s

-

pondente e n t r a d a de V t o r n a - s e " s i m " e a s produqoes do n á o - t e r m i n a l s a o e l iminadas. b )

-

s e a c o r r e s p o n d e n t e e n t r a d a d e V tem o v a l o r "nao", a p r o d u ~ a o

6

e l i m i n a d a . Se t o d a s a s produsoes do niio- . t e r m i n a l s a o e l i m i n a d a s d e s s a m a n e i r a , sua e n t r a d a em V r e c e b e o v a l o r "nao". 4

-

s e d u r a n t e um p a s s o completo n a g r a m á t i c a , nenhuma e n t r a d a de V

6

t r o c a d a e há a i n d a e n t r a d a s i n d e f i n i d a s a g r a m á t i c a nao

6

LL(1) e i s t o provoca uma t e r m i n a s a 0 anormal do a l g o

-

(41)

r i t m o .

4

A t e r m i n a s a o anormal do a l g o r i t m o a c i m a , e uma raziío s u f i c i e n t e p a r a d i z e r que a g r a m á t i c a niio

é

L L ( 1 ) , p o r q u e n e s - s e c a s o , e x i s t e r e c u r s i í o

5

e s q u e r d a e n i í o - t e r m i n a i s i n ü t e i s , uma vez que e x i s t e um c e r t o número d e produqoes c o n s i s t i n d o s o - mente de n a o - t e r m i n a i s n 5 o - v a z i o s o s q u a i s

nZo

podem gerarsequen

-

c i a s que nií0 contenham n a o - t e r m i n a i s

.

P a r a q u a l q u e r g r a m á t i c a que nií0 contém n a o - t e r m i n a i s i n Ú t e i s somos c a p a z e s d e p r o d u z i r o v e t o r V, i n d i c a n d o s e um n i í o - t e r m i n a l pode ou nií0 g e r a r a s e q u e n c i a v a z i a .

O ~ r ó x i m o p a s s o a g o r a

6

o c á l c u l o dos c o n j u n t o s de s í m b o l o s i n i c i a d o r e s .

IV. 2 . 1

-

CONJUNTOS DE S ~ M B O L O S INICIADORES

O c o n j u n t 0 i n i c i a d o r d e c a d a n a o - t e r m i n a l

6

c a l c u l a d o em uma m a t r i z de b i t s composta de d o i s campos, m o s t r a d o s na f i -

g u r a IV. 3 .

(42)

D u r a n t e um p a s s o da g r a m á t i c a o s s í m b o l o s i n i c i a d o r e s i m e d i a t o s s 2 0 i n d i c a d o s n a m a t r i z . Ve jamos como i s s o a c o n t e c e : Por exemplo, na r e g r a : A + B c D

1

e (B, A) e ( e , A) recebem o v a l o r 1 Se B pode g e r a r a s e q u e n c i a v a z i a ( i n f o r m a g a o encon

-

t r a d a em V) , c

é

também um i n i c i a d o r de A, e ( c ,A) r e c e b e o va - l o r 1 , e a s s i m p o r d i a n t e . A m a t r i z de s í m b o l o s i n i c i a d o r e s i m e d i a t o s n á o

6

s u f i -

ciente como pode s e r o b s e r v a d o no exemplo s e g u i n t e . Consideremos a s p r o d u g o e s : A + B c D B - t b X b

6

um i n i c i a d o r d e B e p o r s u a v e z um i n i c i a d o r d e A. O f e c h a m e n t e t r a n s i t i v o , GRIES", da m a t r i z de i n i c i a - d o r e s i m e d i a t o s f o r n e c e a m a t r i z c o m p l e t a de s í m b o l o s i n i c i a - d o r e s n e c e s s á r i a p a r a c a l c u l a r o s s i m b o l o s d i r e t o r e s . A m a t r i z de s í m b o l o s i n i c i a d o r e s , r e s u l t a n t e do f e c h a - mento t r a n s i t i v o , p e r m i t e um t e s t e i m e d i a t o de r e c u r s a o

2

e s - q u e r d a , v i s t o q u e um 1 em s u a d i a g o n a l p r i n c i p a l i n d i c a que um n a o - t e r m i n a l

é

um i n i c i a d o r d e s i mesmo. A r o t i n a q u e d e t e r m i n a o c o n j u n t 0 d e s i m b o l o s i n i c i a - d o r e s p a r a c a d a n á o - t e r m i n a l e n c o n t r a - s e na página Al6 doapgndice.

Náo e n t r a r e m o s em d e t a l h e s s o b r e o s a l g o r i t m o s de f e -

chamento t r a n s i t i v o . Um dos a l g o r i t m o s e f i c i e n t e

6

o d e s c r i t 0 p o r W A R S H A L L ~ . O a l g o r i t m o que usamos

6

p a r a um c a s o p a r t i c u -

(43)

l a r , uma v e z que a m a t r i z

6

e s p a r s a e a m e t a d e do l a d o e s q u e r - do d a m a t r i z ( a p a r t i r d a d i a g o n a l p r i n c i p a l ) n5o

6

n e c e s s á r i a , p o r q u e o s t e s t e s n e c e s s i t a m s o m e n t e d o s t e r m i n a i s que s a o s í m - 11 b o l o s i n i c i a d o r e s d e c a d a n g o - t e r m i n a l , GRIFFITHS

.

A r o t i n a que c a l c u l a o f e c h a m e n t o t r a n s i t i v o de uma m a t r i z de b i t s e n c o n t r a - s e na p á g i n a A16 do a p G n d i c e .

I V . 2 . 2

-

CONJUNTOS DE

STMBOLOS

SEGUIDORES

O c o n j u n t 0 s e g u i d o r e s d e c a d a n 5 o - t e r m i n a l

é

também acumulado em uma m a t r i z de b i t s . A m a t r i z de s í m b o l o s s e g u i d o - r e s

é

p r o d u z i d a d u r a n t e um p a s s o n a g r a m á t i c a . E s t a m a t r i z n e - c e s s i t a d e t r e s campos como m o s t r a r e m o s a s e g u i r . P o r e x e m p l o , n a r e g r a : A - t B C D I E f a s d e d u g ó e s i m e d i a t a s s a o :

-

C

6

s e g u i d o r de B

-

s e C pode g e r a r a s e q u g n c i a v a z i a , D

6

s e g u i d o r de B

-

D

6

s e g u i d o r d e C

-

f

6

s e g u i d o r d e E S u r g e e n t r e t a n t o , um p r o b l e m a . Consideremos uma p r o d u - g5o c o n t e n d o A . Z

6

s e g u i d o r d e A . Mas s e s u b s t i t u ~ m o s A p o r BCD, o b t e m o s : X + Y B C D Z

(44)

e Z

6

também s e g u i d o r d e D . A s s i m , o f a t o que D

é

o Ü l t i m o s í m

-

bo10 d e A n e c e s s i t a s e r i n d i c a d o , uma vez que t o d o s o s s e g u i d o -

r e s d e A sZo s e g u i d o r e s d e D (e s e D pode g e r a r a sequGncia v a -

z i a , o mesmo

6

v e r d a d e p a r a C , e a s s i m p o r d i a n t e ) . A m a t r i z d e s í m b o l o s s e g u i d o r e s tem a f o r m a m o s t r a d a n a f i g u r a I V . 4 . F i g . IV.4 a No p r i m e i r o campo (X,Y) = 1 i n d i c a q u e X e s e g u i d o r d e Y .

No segundo campo (X,Y) = 1 i n d i c a que os s e g u i d o r e s d e X sZo s e g u i d o r e s d e Y, i s t o

6 ,

que Y

6

o Ú l t i m o membro d e uma p r o d u g a o d e X .

No t e r c e i r o campo (x,Y) = 1 i n d i c a q u e x

6

s e g u i d o r d e Y .

No p r i m e i r o campo, X

6

s e g u i d o r de Y, s i g n i f i c a q u e t o d o s os i n i c i a d o r e s d e

X

sZo s e g u i d o r e s de Y e e s t e s i n i c i a -

d o r e s sZo e n c o n t r a d o s n a m a t r i z de i n i c i a d o r e s . Uma v e z que e s -

tamos i n t e r e s s a d o s s o m e n t e em i n i c i a d o r e s e s e g u i d o r e s t e r m i -

n a i s podemos a d i c i o n a r a c o r r e s p o n d e n t e l i n h a da m a t r i z de i n i -

c i a d o r e s a o t e r c e i r o campo da m a t r i z d e s e g u i d o r e s p a r a c a d a

(45)

E f e t u a n d o o f e c h a m e n t o t r a n s i t i v o n o s segundo e t e r c e i r o campos da m a t r i z obtemos a m a t r i z c o m p l e t a de s í m b o l o s s e g u i d o r e s . As r o t i n a s u s a d a s p a r a a d e t e r m i n a q a o do c o n j u n t o dos s í m b o l o s s e g u i d o r e s d e c a d a n a o - t e r m i n a l e n c o n t r a m - s e n a pág& na A17 do a p e n d i c e .

I V . 2 . 3

-

CONJUNTOS DE STMBOLOS DIRETORES

Depois d e o b t i d a s a s m a t r i z e s de s í m b o l o s i n i c i a d o r e s e s e g u i d o r e s , t o r n a - s e p o s s í v e l o c á l c u l o d a s f u n q o e s I e S , d e f i n i d a s no c a p i t u l o a n t e r i o r , e a s s i m p e r m i t i r o c á l c u l o dos s í m b o l o s d i r e t o r e s e pos t e r i o r m e n t e a a p l i c a q a o da condiqiío L L ( 1 ) . O a l g o r i t m o que s e g u e , f o i u s a d o p a r a d e t e r m i n a r O c o n j u n t o de s i m b o l o s d i r e t o r e s d e c a d a n a o - t e r m i n a l . A i d é i a b á s i c a do a l g o r i t m o

6

s i m p l e s : P a r a c a d a p r o d u q a o A -+ a , da g r a m á t i c a , s a o e x e c u t a d a s a s s e - g u i n t e s a q o e s : a ) p a r a c a d a t e r m i n a l a em I ( a ) i n t r o d u z a A + a em TIA,al b) s e A g e r a a s e q u e n c i a v a z i a i n t r o d u z a A + E em

TIA,^^

p a r a c a d a t e r m i n a l b em S (A)

.

A r o t i n a que determina o s c o n j u n t o s de s ~ m b o l o s d i r e t o - r e s e a que a p l i c a a condigiío a c o n d i q a o LL(1) e n c o n t r a m - s e na p a g i n a A 2 2 do a p e n d i c e .

(46)

O s c o n j u n t o s de símbolos d i r e t o r e s siío n e c e s s á r i o s n a g e r a ~ 5 o do a n a l i s a d o r s i n t á t i c o , uma vez que e l e s formam o c r i -

t é r i o de d e c i s s o . Se a c o n d i ~ a o f o r n e c e um r e s u l t a d o p o s i t i v o , o a n a l i s a d o r pode s e r g e r a d o d i r e t a m e n t e , sen50 a g r a m á t i c a ne -

c e s s i t a de modificaqGes a n t e s d e s e r a c e i t a .

IV. 3

-

TRANSFORMACA0 DE GRAMTICAS EM EQUIVALENTES L L (1)

Neste mÓdulo descreveremos a s h e u r I s t i c a s u s a d a s na t e n t a t i v a d e r e e s c r e v e r , uma g r a m á t i c a G n5o L L ( l ) , em uma n o -

va forma, de modo que a nova gramát i c a G ' s e j a L L (1)

.

E s t e p r o -

c e s s o no e n t a n t o nao pode s e r i n t e i r a m e n t e a u t o m á t i c o .

Mais formalmente, i s t o pode s e r v i s t o como um p r o b l e - ma de d e c i d i b i l i d a d e . Enquanto

é

d e c i d í v e l d i z e r s e uma gramá-

t i c a

é

ou niio LL (1) ,

6

i n d e c i d I v e 1 d i z e r s e a linguagem de

-

s trita p o r uma g r a m á t i c a l i v r e de c o n t e x t o a r b i t r á r i a ,

é

ou nao una linguagem LL(1) e d e s t a forma nZo

6

p o s s í v e l e s c r e v e r um a l g o r i t m o de t r a n s f r o m a g 5 0 que f u n c i o n e em t o d o s os c a s o s .

Por e s s a r a z 5 0 , n5o s e pode g a r a n t i r que o programa t r a n s f ormará uma gramát i c a dada em uma e q u i v a l e n t e L L (1) mesmo que e s t a g r a m á t i c a e x i s t a . No e n t a n t o , esperamos que a s h e u r i s -

t i c a s a p r e s e n t a d a s cubram uma l a r g a f a i x a d a s g r a m á t i c a s encon -

t r a d a s na p r á t i c a .

A s p r i n c i p a i s t é c n i c a s u s a d a s p a r a t r a n s f o r m a 5 5 0 de uma g r a m á t i c a s a o :

-

e l i m i n a ~ a o de r e c u r s s o

5

e s q u e r d a

-

f a t o r a s 5 0 e s u b s t i t u i q 5 0

(47)

I V . 3.1 ELIMINACA0

-

DE RECURSAO

A

ESQUERDA

Uma d a s d i f i c u l d a d e s que e n c o n t r a m o s a o t r a t a r com

-

t o d o s d e a n á l i s e top-down

6

a r e c u r s á o

5

e s q u e r d a . Uma g r a m á t i c a

6

r e c u r s i v a

5

e s q u e r d a s e p o s s u i

um

n a o - t e r m i n a l A t a l q u e : p a r a algum a

.

O problema de e l i m i n a g a o d e r e c u r s 5 0

5

e s q u e r d a

6

r e - 5 4

s o l v i d o t e o r i c a m e n t e em GREIBACH e o a l g o r i t m o que usamos e de F O S T E R ~

.

E s t e a l g o r i t m o u t i l i z a t é c n i c a s de r e p r e s e n t a g á o normalmente a s s o c i a d o s

5

á l g e b r a d e e x p r e s s o e s r e g u l a r e s . Consideremos um c o n j u n t 0 d e n 5 o - t e r m i n a i s mutuamente r e c u r s i v o s

5

e s q u e r d a : H = {X1, X2,

...

X n l

E

p o s s í v e l e s c r e v e r os membros de H da s e g u i n t e forma: X i + X 1

B l i

I

...

I

X j

B j i

I

...

I

X n B n i

I

a i a i ,

B j i

E: ( C U N ) * Sem p e r d a de g e n e r a l i d a d e , podemos r e e s c r e v e r a i e ' j i como n a o - t e r m i n a i s , i s t o

6 ,

a c r e s c e n t a n d o a s s e g u i n t e s r e g r a s

5

g r a m á t i c a :

(48)

O c o n j u n t 0 de r e g r a s p o d e , a i n d a , s e r r e e s c r i t o u s a n - do o s o p e r a d o r e s d e m u l t i p l i c a g i i o e a d i g a o : Xi = X1 B l i + X 2 B 2 i +

. ..

+ 'n B n i + A~ e s t a s e q u a g o e s f ormam a equagao m a t r i c i a l : O u s o d e s s e s o p e r a d o r e s pode s e r j u s t i f i c a d o d a s e - g u i n t e f o r m a :

-

m u l t i p l icagiio ( c o n c a t e n a ~ a o )

6

associativa e a s e q u g n c i a vaz i a

E s e r v e como e l e m e n t o i d e n t i d a d e .

- a d i g a o ( a l t e r n a ~ a o )

6

a s s o c i a t i v a e c o m u t a t i v a com @ como e l e m e n t o i d e n t i d a d e .

A m a t r i z i d e n t i d a d e

6 :

(49)

A s o l u q Z o mínima da e q u a c a o m a t r i c i a l X = X B + A

6 :

X = A B * onde : B* = I + B + B 2 +

...

f a z e n d o Z = B* e B* = I + B B * , obtemos: onde Z

6

a m a t r i z d e novos n a o - t e r m i n a i s : Vamos i l u s t r a r e s t e método d e e l i m i n a c a a d e r e c u r s a o L a e s q u e r d a com o exemplo a s e g u i r . Consideremos a s p r o d u c o e s : A - t A c

1

B d l e B - t A f

1

B g

1

h

onde o s n a o - t e r m i n a i s A e B sa"o mutuamente r e c u r s i v o s . A s s i m : X = (A B)

(50)

E s t e método d e e l i m i n a q á o d e r e c u r s 5 0 tem a vantagem d e n 5 o i n t r o d u z i r novos c o n f l i t o s n a c o n d i q a o L L ( 1 ) . Como o método

6

g e r a l , em c e r t o s c a s o s a e l i m i n a g a o p r o d u z um g r a n d e número d e n o v a s p r o d u q o e s f i c a n d o a c r i t é r i o do u s u á r i o do s i s t e m a us;-10 ou e s c r e v e r s u a s g r a m á t i c a s sem r e c u r s a o

s

e s q u e r d a . A l g o r i t m o u s a d o p a r a e l i m i n a q g o d e r e c u r s a o

5

e s q u e r - da : t u a m e n t e recursives

.

.

(51)

1. C r i e a s p r o d u q o e s Z i i -+ E p a r a i = 1 ,

. ..

, n 2 . V a r r a a s p r o d u g o e s d e c a d a Xi Se o p r i m e i r o s í m b o l o d a p r o d u g a o

é

X . ( o r e s t o

é

Bji) - J

-

c r i e p r o d u q o e s do t i p o : Z j k +

B j i

Z i K f p a r a K = 1 ,

...,

n

-

d e s t r u a a produgZo X i +

X

B

j j i

-

c r i e p r o d u c o e s d o t i p o : XK + a i ' i ~ , p a r a K = 1 ,

...,

n

-

d e s t r u a a p r o d u q a o Xi -+ a ( a t u a l ) i A r o t i n a q u e e l i m i n a r e c u r s a o e s q u e r d a e n c o n t r a - s e na p á g i n a A18 do a p g n d i c e . I V . 3 . 2

-

FATORACAO Uma o u t r a t é c n i c a que p e r m i t e t r a n s f o r m a , r g r a m á t i c a s , niio LL(1) em g r a m á t i c a s e q u i v a l e n t e LL(1)

6

a f a t o r a ~ a o . P o r e x e m p l o , s e t i v e r m o s a s p r o d u q o e s : S -+ - d o S w h i l e C S + - d o S u n t i 1 C S + a C + b a p r e s e n ~ a do s í m b o l o d e e n t r a d a - do n a o

6

d e t e r m i n a n t e p a r a a e s c o l h a d a p r o d u q a o a s e r u s a d a p e l o a n a l i s a d o r .

Referências

Documentos relacionados

A enurese noturna é a perda urinária durante o sono em crianças acima de 5 anos de idade e pode ser classificada em monossintomática, quando apresenta-se como um sintoma isolado; e

“[...] Eu aconselharia alguém a começar analisando se aquele negócio é inovador, ao ponto de atrair novos clientes, é preciso ter um bom capital para investir na empresa, é preciso

A partir destas competências, são elaborados ainda neste Editor uma série de casos de uso relacionadas a cada competência. Casos de uso são situações do cotidiano que

Nesta ótica, concorda Brito (2003), destacado no tópico 2.2.2.2 do trabalho, que a controladoria tem como responsabilidade manter um projeto de planejamento

Isso se agrava ainda mais quando a discriminação racial ocorre no ambiente destinado para a educação, quando a escola não dá o suporte necessário para uma boa formação a respeito

A escolha por jogos como tema desta pesquisa é por acreditar que dentre as metodologias para o ensino de matemática, esta é a mais acessível para o trabalho do professor, pois não

Ao promover a inclusão da Paleontologia na escola, através de cursos de formação continuada aos professores, os mesmos poderão transpor os conhecimentos

O turismo realimenta o papel da comunicação, uma vez que o deslocamento em busca do novo (lugar) se dá a partir do compartilhamento de experiências entre indivíduos.