- E ~ f e v a m G i l b e f i f o De S i m o n e -
T E S E SUBMETIDA AO CORPO DOCENTE DA COORDENAÇAO DOS PROGRAMAS DE PÓS-GRADUAÇÃO DE ENGENHARIA DA UNIVERSIDADE FEDERAL DO R I O 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 ~ R I O S PARA A OBTENÇÃO DO GRAU DE DOUTOR EM
CIENCIAS
(D. S c . ).
A p r o v a d a p o r : J O & L u c a s M o u r ã o R a n g e 1 N e t o ( P r e s i d e n t e ) r - S u e l i M e n d e s d o s S a n t o s V a l d e m a r Se t z e r R I O DE J A N E I R O DEZEMBRO DE 1 9 8 0
SIMONE, ESTEVAM
G I L B E R T O
D E
Novas ~ é c n i c a s p a r a A n a l i s a d o r e s S i n t á t i c o s Tipo Matriz de T r a n s i ç ã o [Rio de J a n e i r o 1 1980
x ,
157 p . 2 9 , 7 cm (COPPE-UFRJ,D . Sc.
,
Engenharia de Sistemas e Computa - ç ã o , 1980)Tese
-
Univ. Fed. Rio de J a n e i r o , Fac. Engenharia.
1. Compiladores I . COPPE/UFRJ 11
T F ~ O
( s é r i e )iii
AGRADECIMENTOS
- Aos meus a l u n o s da COPPE e I n s t i t u t o de ~ a t e m á t i c a d a UFRJ;
- Aos meus c o l e g a s p r o f e s s o r e s da á r e a de Computação e do Depar -
t a m e n t o de C i ê n c i a d a Computação; - Ao L u c a s , não a p e n a s p e l o s c u r s o s , p e l a o r i e n t a ç ã o e p e l a pa- c i ê n c i a mas, p r i n c i p a l m e n t e , p o r t e r emprestado a e s t e t r a b a - l h o um pouco do b r i l h o de s u a i n t e l i g ê n c i a ;
-
- Ã L i g i a , a B e t i , aoZ G
C a r l o s e5
~ e c í l i a p e l a a j u d a i m p o r t a n - t e e d e s i n t e r e s s a d a ;- Aos p r o f e s s o r e s C e l i o Guimarães, Jayme S z w a r c f i t e r , S e r g i o T e i x e i r a , S u e l i Mendes dos S a n t o s e Valdemar S e t z e r p o r acede -
rem em p a r t i c i p a r d e s t a b a n c a ;
-
5
COPPE, a FINEP e a CAPES p e l o a p o i o r e c e b i d o .- A
S t a v n a , p e l o f a n t á s t i c o t r a b a l h o de d a t i l o g r a f i a , d e s e n h o ,composição g r á f i c a ( e a t é c o r r e ç ã o de e r r o s d e p o r t u g u ê s e c o n t e u d o ) !
O método de a n á l i s e s i n t á t i c a p o r m a t r i z e s de t r a n s i - ção p r o p o s t o p o r I~hLen, 681 & t o t a l m e n t e r e e l a b o r a d o . É p r o p o s t a uma d e f i n i ç ã o e q u i v a l e n t e p a r a a c l a s s e de g r a m á t i c a s r e c o n h e c i - da p e l o método. É f o r n e c i d o um a l g o r í t m o c o n s t r u t o r mais e f i c i e n - t e p a r a a s t a b e l a s de c o n t r o l e do a n a l i s a d o r . É a l t e r a d a a d e f i - n i ç ã o d a s f u n ç õ e s que c o n t r o l a m o a n a l i s a d o r e f o r n e c i d o s e u no - vo a l g o r í t m o . E s t a s n o v a s f u n ç õ e s s ã o r e ~ r e s e n t á v e i s em t a b e l a s que permitem d e t e r m i n a r s e u s p o n t o s i n a c e s s i v e i s e s ã o f o r n e c i - dos a l g o r I t m o s de compactação d a s t a b e l a s que permitem r e d u z i r grandemente o e s p a ç o ocupado, p r e s e r v a d o o f o r m a t o m a t r i c i a l . P a r a l e l a m e n t e
6
d e s e n v o l v i d o um a l g o r í t m o de r e c u p e r a - ç ã o de e r r o s que p e r m i t e uma r e c u p e r a ç ã o s o f i s t i c a d a e p r e c i s a , sem u t i l i z a r i n f o r m a ç ã o a d i c i o n a làs
t a b e l a s do a n a l i s a d o r , sem d e g r a d a r o desempenho do a n a l i s a d o r p a r a programas c o r r e t o s e c o r - r i g i f i d o de alguma forma a s i m p r e c i s õ e s n a d e t e c ç ã o do e r r o p e l o a n a l i s a d o r . Demonstra- se que a s t a b e l a s o r i g i n a i s de um a n a l i s a d o r de g r a m á t i c a s p o r m a t r i z e s de t r a n s i ç ã o s ã o menores que s u a s c o r - r e s p o n d e n t e s p a r a g r a m á t i c a s SLR (1) e que o a n a l i s a d o r p o r ma- t r i z e s de t r a n s i ç ã oé
m a i s r á p i d o que- o c o r r e s p o n d e n t e a n a l i s a - d o r SLR(1).
ABSTRACT
Transition matrices have been used in parsing, since
the method was proposed by I ~ h i e s , 6 8 1 . Wè present here a
completely new vèrsion of the method, with a new equivalent definition for the class of grammars accepted.
New, more efficient algorithms are presented both for parsing and for the construction of the parsing tables. The control functions are redefined, and allow the determination of inaccesible points and table compression.
In parallel, an algorithm for error recovery is present -
ed which results in a sophisticate and accurate recovery, which need no information besides the one in the parsing tables, and which introduces no degradation of the performance in the parser.
It is shown that the original tables of the transition
matrix parser are srnaller than the corresponding s L R ( 1 ) parsers,
I n t r o d u ç ã o
...
Fundamentos...
Formalismo e d e f i n i ç õ e s b á s i c a s...
~ r a m á t i c a s de p r e c e d ê n c i a de o p e r a d o r e s...
M a t r i z e s de T r a n s i ç ã o...
Gramática de o p e r a d o r e s e s t e n d i-
d a...
A n á l i s e s i n t á t i c a em GOE...
M a t r i z e s de T r a n s i ç ã o , O u t r a Vez.
. .
.
.
. .
.
.
Gramáticas de m a t r i z e s de t r a n - s i ç a o...
A n á l i s e s i n t á t i c a em GMT, o u t r a v.ez...
C o n s t r u t o r de a n a l i s a d o r e s s i n - t g t i c o s p a r a GMT...
Armazenamento da t a b e l a de con- t r o l e...
9 1 Recuperação de E r r o s...
1 0 6 Fundamentos de r e c u p e r a ç ã o de e r r o s...
1 0 6 Revisão b i b l i ogr á f i c a.
.
.
.
. .
. .
.
.
.
.
. . .
.
.
109 D e f i n i ç ã o i n f o r m a l do r e c u p e r a - d o r...
11 3 A l g o r l t m o de r e c u p e r a ç ã o. . .
.
. . .
.
. .
.
. . .
123 A v a l i a ç ã o e Conclusões...
138v i i X I I X I I I X I V
xv
xv
I XVI I XVI I I X I X XX XX I XXI I X X I I I N o t a ç ã o D e f i n i ç ã o N o t a ç ã o D e f i n i ç ã o D e f i n i ç ã o D e f i n i ç ã o D e f i n i ç ã o D e f i n i ç ã o D e f i n i ç ã o D e f i n i ç ã o D e f i n i ç ã o D e f i n i ç ã o D e f i n i ç ã o D e f i n i ç ã o E x e m p l o N o t a ç ã o D e f i n i ç ã o D e f i n i ç ã o T e o r e m a 1 D e f i n i ç ã o D e f i n i ç ã o D e f i n i ç ã o E x e m p l o CONJUNTOS...
3FORMA SENTENCIAL E SENTENCA
...
6LINGUAGEM
...
6GRAMTICA UNICAMENTE INVERSÍVEL
...
7DERIVAÇÃO (REDUÇÃO) D I R E I T A (ESQUERDA)
....
7RELAÇÃO BINÁRIA
...
8RELAÇÕES
BINARIAS
SOBRE CONJUNTOS GRAMATI- C A I S...e...
8OPERAÇÕES SOBRE RELAÇÕES
...
9REPRESENTAÇÃO DE RELAÇÕES POR GRAFOS . a 9 . . 9
OPERACÕES SOBRE RELALÕES REPRESENTADAS POR GRAFOS
...
...*ee...a*..e.a... 1 0..e...,... 1 2
ANALISADOR
SINTATICO
DAGRAMTICA
G a . W . . . . 1 31
GRAMÃTICA DE OPERADORES ( G O )
...
1 4RELAÇÕES DE PRECEDÊNCIA ENTRE OPERADORES
..
1 5 GRAMÁTICAS DE PRECEDÊNCIA DE OPERADORES(GPO) . . . . e . .
.
1 6viii
XXIV
XXV
XXVI
XXVI
I
XXVI
I
I
XXIX
XXX
XXXI
XXXI
I
XXXI
I
I
XXXIV
xxxv
XXXVI
XXXVI
I
XXXVI
I
I
XXXIX
XL
XL
I
XL
I
I
XLIII
XL
IV
Definição
Definição
AlgorFtmo
1Exemplo
Definição
~ l g o r P t m o
2
Exemplo
Proprfedade
Teorema 2
~ e f i n i ~ ã o
Definição
Teorema 3
Definição
Definição
Teorema 4
~ l ~ o r l t m o
3
Exemplo
Teorema 5
Teorema 6
Exemplo
Exemplo
ANALISADOR
SINTATICO
PARA GRAMÁTICA
.ESTRUTURAL DE GPO
. . . e . . .22
...
24
GRAMÁTICA DE OPERADORES ESTENDIDA
...
28
CONSTRUÇÃO DA GRAMÁTIcA DE OPERADO-
...
RES ESTENDIDA
28
GOE
...
31 ...*..........e...*....................33
FRASE
...
34
FRASE PRIMA
...
34 . . . e . a..................i........i..34
RELAÇÃO PRECEDE
...
35
GRAMTICAS
DE MATRIZES DE TRANSIÇÃO
(GMT)
...
35
CONSTRUTOR DE ANALISADOR
SINTATICO
PARA GMT
...
36
XLV
Teorema
7...
55
XLVI
Definição
MAIS ALGUMAS RELAÇÕES SOBRE CONJUNTOS
GRAMATICAIS
...
58
XLVI I I XLIX L L I L I 1 L I 1 1 L I V LV L V I L V I I L V I I I L I X LX LXI L X I I L X I I I LXIV LXV LXVI L X V I I LXVI I I L X I X LXX LXXI LXXI I LXXI I I D e f i n i ç ã o T e o r e m a 8 D e f i n i ç ã o T e o r e m a 9 R e d e f i n i ç ã o T e o r e m a 1 0 E x e m p l o D e f i n i ç ã o T e o r e m a 11 D e f i n i ç ã o E x e m p l o D e f i n i ç ã o D e f i n i ç ã o A l g o r i ' t m o 4 E x e m p l o ~ l ~ o r l t m o 5 E x e m p l o A l g o r i ' t m o 6 T e o r e m a 1 2 D e f i n i ç ã o E x e m p l o T e o r e m a 1 3 T e o r e m a 1 4 E x e m p l o E x e m p l o T e o r e m a 1 5
...
RELAÇÕES DE PRECEDÊNCIA EM GOE 6 0
...
CALCULO DE Q E .x) 6 1
...
RELAÇÃO MEIO 6 2
CALCULO DE MEIO
...
6 2 GRAMÁTICAS DE MATRIZES DE TRANSIÇÃO...
6 3...
6 4 p a r t e 2...
6 5...
CONJUNTO DE ESTADOS 7 0 . . . e . . . . * . . . * . . . 7 0 FUNÇÃO GOTO...
7 2FUNÇÕES AÇÃO E AVANÇAREDUZ . . . a . 7 4
...
FUNÇÃO ESQUERDO 7 5
ANALISADOR
SINTATICO
PARA GMT. MODI-...
FICADO...
7 6...
p a r t e 4 7 7 VERIFICAÇÃO DA UNICIDADE DE A B...
E CONSTRUÇÃO DE SYMB* 8 2 p a r t e 5...
8 3CONSTRUTOR DE ANALISADORES GMT. OUTRA
VEZ
...
8 5 p a r t e 6...
9 3 . . . e . . .......e......*.. . . . e . . . 9 5...
p a r t e 7 9 7...
p a r t e 8 1 0 0...
1 0 1LXXIV E x e m p l o p a r t e 9
...
1 0 4 LXXV A l g o r í t m o 7 RECUPEFUDOR DE ERROSSINTATICOS
GMT. .
1 2 3 LXXVI ~ l g o r í t r n o 8 ANALISADORSINTATICO
GMT COM RECUPE .RAÇÃO DE ERROS
...
1 2 7 L X X V I I E x e m p l oLXXVI I I E x e m p l o LXXIX T e o r e m a
De t o d a s a s f a s e s de um c o m p i l a d o r a a n á l i s e s i n t á t i c a A e , sem d ú v i d a , o problema m e l h o r r e s o l v i d o . E n t r e t a n t o , t a l v e z A p e l a v a r i e d a d e de s o l u ç õ e s d i s t i n t a s , e um campo a b e r t o a p o l ê m i c a s
j á
c l á s s i c a s : a n a l i s a d o r e s s i n t á t i c o s a s c e n d e n t e s c o n t r a d e s c e n d e n t e s , a n a l i s a d o r e s c o n t r o l a d o s p o r t a b e l a s ou por p r o g r a m a s , g e r a ç ã o a u t o m á t i c a de a n a l i s a d o r e s c o n t r a programação manual, g r a m á t i c a s SLR c o n t r a g r a m á t i c a s L L c o n t r a g r a m á t i c a s LALR c o n t r a g r a m á t i c a s LR c o n t r a g r a m á t i c a s de p r e c e d ê n c i a con- t r a g r a m á t i c a s r e c u r s i v o - d e s c e n d e n t e s , e m u i t a s m a i s . É r e a l m e n - t e um t a n t o a r r i s c a d o a v e n t u r a r - s e a p e s q u i s a r n e s t e t e r r e n o . E s t e t r a b a l h oé
uma r e c o m p o s i c ã o do método de a n á l i s e s i n t á t i c a p o r m a t r i z e s de t r a n s i ç ã o , p r o p o s t o p o r IGLQ~, 681. De f a t o , r e s t o u d a q u e l e método a p e n a s o e s s e n c i a l : a c l a s s e de g r a -mát
i c a s,
d i t a s "gtrum&ccu d e maOúzen d e ~ ~ ~ ç Ü a l ' (GMT).
Não s e e n c o n t r a n a l i t e r a t u r a , r e f e r ê n c i a s p o s t e r i o r e s a 1972 p a r a a n a l i s a d o r e s GMT. E n t r e n ó s , t o d a v i a , o método a i n d a6
b a s t a n t e p o p u l a r , sendo u t i l i z a d o a t u a l m e n t e p a r a a f e i t u r a de c o m p i l a d o r e s c o m e r c i a i s ou d i d á t i c o s . A o r i g e m d e s t e t r a b a l h o e s -t á
no d e s e n v o l v i m e n t o do p r i m e i r o 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 f e i t o n a COPPE/UFRJ. I n i c i a l m e n t e v o l t a d o a p e n a s p a r a GMT e s s e g e r a d o r - o NHÃ0 NHÃ0 - deu origem a g e r a d o r e s de a n a l i s a d o - r e s p a r a a s p r i n c i p a i s c l a s s e s de g r a m á t i c a s . O NHÃO NHÃO, em uso desde 1 9 7 8 ,j á
p e r m i t i u a g e r a ç ã o de t a b e l a s de c o n t r o l e pa r a uma dezena de l i n g u a g e n s d i s t i n t a s , usando m a t r i z e s de t r a n s iç ã o . O t r a b a l h o e s t á d i v i d i d o n a s s e g u i n t e s s e c ç õ e s p r i n c i - p a i s : a ) no ~ a ~ $ t u l o I1
é
a p r e s e n t a d o o e s t r i t a m e n t e n e c e s s á r i o de t e o - r i a de l i n g u a g e n s , r e l a ç õ e s b i n á r i a s , g r a f o s e g r a m á t i c a s de p r e c e d ê n c i a de o p e r a d o r e s , v i s a n d o f i x a r o s c o n c e i t o s e a no- t a ç ã o ;b) no C a p z t u l o I11 f a z - s e uma r e v i s ã o do método o r i g i n a l com suas p r i n c i p a i s p r o p r i e d a d e s ;
c ) o C a p í t u l o I V
é
o c e n t r o do t r a b a l h o onde o métodoé
r e f o r m u -l a d o , s ã o demonstrados o s t e o r e m a s p r i n c i p a i s ,
é
d e f i n i d o o novo c o n j u n t o de r e l a ç õ e s ,é
r e d e f i n i d a a c l a s s e de g r a m á t i - c a s e s ã o p r o p o s t o s o novo a n a l i s a d o r s i n t á t i c o e o novo cons -t r u t o r de a n a l i s a d o r e s s i n t á t i c o s ; além d i s s o
é
a p r e s e n t a d o o método de compactação d a s t a b e l a s ; d) n o c a p $ t u l o V ,é
f e i t a uma r e v i s ã o b i b l i o g r á f i c a de r e c u p e r a - ç ã o de e r r o s e a p r e s e n t a d o o a l g o r % t m o r e c u p e r a d o r ; e ) o c a p í t u l o V Ié
d e d i c a d o a a v a l i a ç ã o do t r a b a l h o e2s
c o n c l u - s õ e s . Visando c r i a r um s i s t e m a de r e f e r ê n c i a s o b r e o p r o p r i o t e x t o e s t e f o i p a r a g r a f a d o sendo o s p a r á g r a f o s numerados em roma -no e c l a r a m e n t e d e l i m i t a d o s . A n o t a ç ã o u t i l i z a d a e s t á d e f i n i d a no ~ a ~ l t u l o I1 ou n a s u a p r i m e i r a o c o r r ê n c i a . O t e x t o f a z u s o i n t e n s i v o d e s s a n o t a ç ã o menos p e l a a f i n i d a d e do a u t o r ao r i g o r i s m o que por s u a c a p a c i d a d e de s í n t e s e .
- FUNDAMENTOS -
2 . 1 - FORMALISMO E DEFINIÇÕES
BASICAS
São i n t r o d u z i d o s a q u i o s c o n c e i t o s n e c e s s á r i o s ao de s e n v o l v i m e n t o d a t e o r i a n o s c a p ? t u l o s p o s t e r i o r e s . P a r a l e l a m e n - t e
5s
d e f i n i ç õ e s s e r á e s t a b e l e c i d a s u a n o t a ç ã o . S e r ã o a d o t a d a s a s i m b o l o g i a e a e s t r u t u r a ç ã o t e ó r i c a de IAho & UUn~rn, 721.
Notação CONJUNTOS (1) Um c o n j u n t o X formado p e l o s e l e m e n t o s x l , x 2 ,
. . .
,xn s e r á d e n o t a d o ( i ) X = i x l , x 2 ,...
, xn} O número de e l e m e n t o s d e s s e c o n j u n t o s e r á ( i i )#(X).
B
g e f i n i ç á o GRAMÃTICA L I V R E DE CONTEXTO (GLC) Uma g r a m á t i c a Gé
d i t a l i v r e de c o n t e x t o o u , equivalen- temente G E C G L C , quando Gé
uma q u á d r u p l a (N, L , P , S) com:( i ) N, um c o n j u n t o f i n i t o de s i m b o l o s denominados n ã o - t e r m i - n a i s ;
( i i i ) N n C =
a ;
( i v ) P , um c o n j u n t o f i n i t o de p a r e s denominados p r o d u ç õ e s on- a de o p r i m e i r o e l e m e n t o6
um n ã o - t e r m i n a l e o segundo e uma s e q u ê n c i a n ã o - v a z i a de t e r m i n a i s e / o u n ã o - t e r m i n a i s . Ou s e j a , P = { ( A , a )I
A E N a E (N u C)+}Uma produção (A, a ) E P s e r á d e n o t a d a (A + a ) ;
( v ) S E N, um n ã o - t e r m i n a l e s p e c i a l denominado s ~ m b o l o i n i - c i a l .
Omitiremos, d o r a v a n t e , a menção ltRivne d e c ~ n k e x X u ~ ~ .
II
Notação CONJUNTOS GRAMATICAIS (111)
( i ) NÃO TERMINAIS
N = {A, B , C,
.
. .
,
T I ou N = {PROGRAMA, BLOCO,. .
. I
( i i ) TERMINAIS C = { a , b , c ,...,
t } ou C = C i f , t h e n ,...
1
( i i i ) TERMINAIS OU NÃO-TERMINAIS ( N u C) = C U , V , X ,...,
Z } ( i v ) SEQUENCIAS DE TERMINAIS (C)* = { u , v , x ,.
. . z )(V) SEQUENCIAS DE TERMINAIS E / O U NÃO-TERMINAIS (N u C)* = { a , B,y
...,
-r}( v i ) SEQUENC I A VAZ IA
g e f i n i ç ã o DERIVAÇÃO E REDUÇÃO ( I V )
Sejam G = ( N , C , P , S) e BAY E (N u C ) * .
Diremos que BAy " d e l t i v u cfdzQR:m~~ke" Bay em G , s e (A -+ a ) E P . I n d i c a - s e p o r :
Diremos a i n d a n e s s e c a s o que Bay "heduz-he cfdzQR:urne&en a BAy em G e i n d i c a m o s p o r : ( i i ) BAy <= Bay G Por e x t e n s ã o , d i r e m o s que a " d d v u m z ~ n o ou m u h PUA- aoh"
-
' O U s i m p l e s m e n t e "dQnivut'-
6 s e e x i s t i r e m s e q u e n c i a s B, y ,..
.
t a i s que e i n d i c a m o s ( i i i ) ac>
*
6 Analogamente , 6 "mduz-ne" a a em G e*
( i v ) a 6 Quando nenhuma p r o d u ç ã o f o r a p l i c a d a a i n d a t e r e m o sQuando p e l o menos uma p r o d u ç ã o f o r a p l t c a d a d i r e m o s que
+
e ( v i i i ) a <= 6 G
Omitiremos o nome d a g r a m á t i c a quando não c a u s a r d ú v i - d a .
D e f i n i ç ã o FORMA SENTENCIAL E SENTENÇA (v)
( i ) s e G = (N, C , P , S) e S => a =>
P
=>...=
> y e n t ã o a , 8 , * - a , y s e r ã o formas s e n t e n c i a i s de G .+
( i i ) s e S => u e n t ã o u s e r á s e n t e n ç a p r o d u z i d a p o r G. G D e f i n i ç ã o LINGUAGEM (VI1
Se G = ( N , C,
P , S) e n t ã o a linguagem p r o d u z i d a p o r G s e r áI
D e f i n i ç ã o GRAMT I CA REDUZ I D A (VI11 Uma g r a m á t i c a G = (N, 1, P , S) s e r á d i t a r e d u z i d as e , s i m u l t a n e a m e n t e :
( i ) L ( G )
#
@ (caso particular de ( i i i ) abaixo)I
Q
*
( i v ) A E N S => aAf3 GI
D e f i n i ç ã o GRAMÁTICA UNICAMENTE I N V E R S ~ V E L ( V I I I ) Uma g r a m á t i c a r e d u z i d a G = (N, 1 , P , S) s e r á d i t a u- nicamente i n v e r s T v e 1 s e não p o s s u i r duas produções com mesmo l a -do d i r e i t o .
I
I
D e f i n i ~ ã o DERIVAÇÃO (REDUÇÃO) DIREITA (ESQUERDA) (IX) Se G = (N, C , P , S) e S => aAu => f3Bv =>...
=> y C x e n t ã o S d e r i v a yCx por d e r i v a ç ã o mais a d i r e i t a o u , s i m p l e s -mente, ' d e r i v a ç ã o d i r e i t a e ( i )
s
=>*
ycx DIR Ainda n e s t e c a s o ,*
( i i ) S <== yCx (redução d i r e i t a ) DIR Se S => uAa => vBf3 =>...
=> xCy e n t ã o S d e r i - va xCy por d e r i v a ç ã o e s q u e r d a e*
( i i i ) S => xCy ESQ*.
(iv) S <= XCY (redução esquerda)
ESQ
Omitiremos a indicação direita/esquerda quando for su -
f
icientemente claro.I
Definição RELAÇÃOBINARIA
(x)
Sejam A , B conjuntos. Uma relação R
é
qualquer sub -conjunto de (AxB)
.
(i) R G C(a,b)
I
a E A A b B) = (AxB)(i i) (a,b) E R aRb
I
I
Defini~ão RELAÇÕESBINARIAS
SOBRE CONJUNTOSGRAMAT I CA I S (XI
1
(i) FIRSTNT (NxN)
A FIRSTNT B *(A + Ba) E
P
(ii) LASTNT G (NxN)
A LASTNT B -(A + aB) E
P
(iii) NT.TERM c (NxC)
(iv) TERM.NT (CxN)
a TERM.NT A<W>(B -t aaAf3) E P
(v) SYMB c (NxN)
A SYMB B *(A -t B) E
P
(vi) FIRSTTERM
s
(NxC)'( v i i ) LASTTERM (NxC)
A LASTTERM a ( A + a a B ) E P , B E ( N u { & } )
I
D e f i n i ç ã o- OPERAÇÕES SOBRE RELAÇÕES
R G (AxB) , S c (AxB) , T c (BxC)
,
V c (AxA)SOMA (R + S ) = { ( a , b )
I
a R b v a S b ) E (AxB) PRODUTO (RT) = { ( a , c)I
a R b A b T c1
c
(AxC) POTÊNC IA(v0)
= { ( a , a )1
a ~ A 1 c (AxA)(vn)
=vv
n - 1 , Vn > O TRANSPOSIÇÃO (V-') = { ( a , b )I
b V a 1 c (AxA) FECHAMENTO T R A N S I T I V O (V') = V + V' +v3
+...
c (AxA) FECHAMENTO T R A N S I T I V O REFLEXIVO (V*) = V' + V+ c (AxA) D e f i n i ç ã o- REPRESENTAÇÃO DE RELAÇÕES POR GRAFOS ( X I I I ) ( B a s e a d o e m
I
ffuvLt, 771 )
A S e j a R c (AxB) e G = ( V , X ) um g r a f o d i r e c i o n a d o o n d e V e o c o n j u n t o f i n i t o de v é r t i c e s e X
é
o c o n j u n t o f i n i t o de a r e s - t a s ( u , v ) , c o m u , v E V.Se ( i ) V = V1 u V2 e VI n V2 = @
( i i ) ( u , v ) ~ X , U E V ~ , v E V2 URV ( * )
( i i i ) não houver o u t r a s a r e s t a s e n t ã o G r e p r e s e n t a R .
I
- D e f i n i ç ã o OPERAÇÕES SOBRE RELACÕES REPRESENTADAS PORGRAFOS (XIV) Sejam: G1 = ( I l U 01, X1) r e p r e s e n t a n d o R (AxB) G 2 = ( I 2 U 0 2 , X2) r e p r e s e n t a n d o S Ç (AxB) G 3 = ( I 3 u 0 3 , X3) r e p r e s e n t a n d o T 2 (BxC) G 4 = ( I 4 u 0 4 , X4) r e p r e s e n t a n d o W C (AxA) Suporemos a i n d a que t o d o s os c o n j u n t o s de nós 11, 1 2 , I g , 14,01, 0 2 , O 3 e O 4 s ã o d i s j u n t o s e n t r e s í . (e) não h á o u t r a s a r e s t a s ( i i ) PRODUTO . . . . G = ( I
u
C u O, X) r e p r e s e n t a r á RT s e : (a) I = I1( f ) n ã o
há
o u t r a s a r e s t a s ( i i i ) TRANSPOSIÇÃO G = ( I u O, X) r e p r e s e n t a r á W s e : ( a ) I = O 4 (b) O = I 4 (C) ( u , v ) € X 4 + ( v , U ) E X , V E I , U E O (d) n ã ohá
o u t r a s a r e s t a s( i v ) FECHAMENTO TRANSITIVO REFLEXIVO
G = ( I u O, X) r e p r e s e n t a r á W* s e : ( a ) I = O ( b ) ( u , V ) E
X
(v) FECHAMENTO TRANSITIVO O b t i d o p o rw + =
WW*u
0 s " a l g o r ~ t m o s c o n s t a n t e s d e s t e t r a b a l h o s e r ã o e s c r i - . -
t o s em p o r t u g u ê s , envolvendo alguma n o t a ç á o m a t e m á t i c a e l ó g i c a , além da n o t a ç ã o d e f i n i d a no p r ó p r i o t e x t o . Seu funcionamento s e -
r á
demonstrado t e o r i c a m e n t e quando n e c e s s á r i o .I
D e f i n i ç ã o ANALISADORSINTATICO
DA GRAMÁTICA G (XVI I )É um a l g o r I t m o que admite a s e n t e n ç a x como e n t r a - da e f o r n e c e como s a í d a : . , ( i ) "ACEITO", s e x E L (G)
,
f o r n e c e n d o a i n d a uma s e q u ê n c i a o r -*
denada. d a s p r o d u ç õ e s u s a d a s em S => X ; G ( i i ) "REJEITADO", s ex
L(G).
I
2 . 2 - GRAMTICAS DE PRECEDÊNCIA DE OPERADORES
O p r e s e n t e t r a b a l h o g u a r d a I n t i m a r e l a ç ã o com o e s t u d o d a s g r a m á t i c a s de p r e c e d ê n c i a de o p e r a d o r e s , que s e j u s t i f i c a s u a e x p l i c a ç ã o d e t a l h a d a a q u i .
a
- D e f i n i ç ã o : GRAMÁTICA DE OPERADORES (GO) ( X V I I I ) Uma g r a m á t i c a r e d u z i d a G = ( N , C , P , S )é
d i t a gramá -t i c a de o p e r a d o r e s , ou e q u i v a l e n t e m e n t e d a c l a s s e
C G O 7
s eOu s e j a , n ã o h á d o i s n ã o - t e r m i n a i s a d j a c e n t e s no l a d o d i r e i t o de s u a s p r o d u ç õ e s .
Ou s e j a , não há forma s e n t e n c i a 1 em G com d o i s n ã o - t e r m i n a i s a d j a c e n t e s
.
IDemonstração :
I
FRa yd, 631
I
A p r i n c i p a l c a r a c t e r I s t i c a d a s GO
é
a p o s S i b i l i d a d e de s e montar a n a l i s a d o r e s s i n t á t i c o s b a s e a d o s a p e n a s em r e l a ç õ e s s o b r e o s t e r m i n a i s d a g r a m á t i c a . A s u b c l a s s e i m p o r t a n t e d a s GOé
d a p e l a s s e g u i n t e s r e l a ç õ e s .
D e f i n i ç ã o RELAÇÕES DE PRECEDENCIA ENTRE OPERADORES
I
Flayd, 6 31
( F o r m a l i z a ç ã o s e g u n d oI
G h h n , 7 11
) S e j a G = (N, C, P , S) EC G O .
( i ) r e l a ç ã o @ 5 ( 1 x C) ( m a i o r o p e r a d o r e s ) ( i i ) r e l a ç ã o 4 L (C x C ) (menor o p e r a d o r e s ) (C -t Dby) E P,
D E ( N u { E ) ) ( i i i ) r e l a ç ã o C ( Cx
C) ( i g u a l o p e r a d o r e s ) P o d e - s e d e d u z i r com f a c i l i d a d eI G ~ u ,
7 11
q u e , conforme a s d e f i n i ç õ e s de (X) : ( i v ) a b a (LASTTERMY-I ( L A S T N T * ) ~ ' NT.TERM b G( v ) a 4 b a TERM-NT FIRSTNT* FIRSTTERM b G
( v i ) a
o
b pode s e r c o n s t r u í d a por i n s p e ç ã o n a g r a m á t iG -
c a .
A r e f e r ê n c i a
5
g r a m á t i c a pode s e r o m i t i d a na n o t a ç ã o .I
I
D e f i n i ç ã oGRAMAT
ICAS DE PRECEDÊNCIA DE OPERADORES (GPO) Uma g r a m á t i c a unicamente i n v e r s í v e l G = ( N , L,P, S) E C G O s e r á d i t a de p r e c e d ê n c i a de o p e r a d o r e s , ou e q u i v a l e n t e m e n t e , p e r-
t e n c e n t e5
c l a s s e CGPO, s e : ( i ) Q n - - O = 4 ( i i ) 4 n*
= 4 A ( i i i ) O - - n*
=4
I
Vamos nos a p r . o v e i t a r d e s t a c l a s s e de g r a m á t i c a s p a r a i n t r o d u z i r os c o n c e i t o s e e x e m p l i f i c a r o problema da a n á l i s e s i n t á t i c a , conforme o t r a t a r e m o s p o s t e r i o r m e n t e . I n t e r e s s a - n o s o b t e r do a n a l i s a d o r s i n t á t i c o a á r v o r e s i n t á t i c a t a l como d e f i n i d a a b a i x o . D e f i n i ç ã oA
RVORESINTAT
I CA ( X X I I ) S e j a G = (N, C , P, S) e x uma s e n t e n ç a em L(G) A á r v o r e s i n t á t i c a de x em G s e r á uma á r v o r e cons -t r u í d a d a forma a b a i x o , supondo- se c o n h e c i d a uma d e r i v a ç ã o ( i ) a r a i z t e r á r ó t u l o S ; ( i i ) a c a d a p a s s o da d e r i v a ç ã o , p a r a o nó c u j o r ó t u l o
é
o l a d o e s q u e r d o da p r o d u ç ã o u s a d a c r i e t a n t o s f i l h o s r o t u l a d o s q u a n t o s forem o s s ~ m b o l o s do l a d o d i r e i t o d e s s a p r o d u ç ã o . A s f o l h a s da á r v o r e s i n t á t i c a s e r ã o t e r m i n a i s e o s n ó s i n t e r n o s s e r ã o n ã o - t e r m i n a i s.
-
I
Exemplo FJ = { ( E + E + T ) , (E -t T ) , (T -+ T*
F ) , (T -t F ) , ( F -t ( E ) ) , ( F -+ i )1 .
S e j a a d e r i v a ç ã o A á r v o r e s i n t á t i c a c o r r e s p o n d e n t e s e r i a :Se tomarmos o u t r a d e r i v a ç ã o a i n d a t e r e m o s , n e s t e c a s o , a mesma á r v o r e s i n t á t i c a .
I
I
D e f i n i ç ã o (XXIV) Uma g r a m á t i c a G = ( N , 1,
P , S)é
d i t a ambígua, s e : ( i ) p a r ax
E L(G) e x i s t i r mais de uma á r v o r e s i n t á t i c a E s t a condição é e q u i v a l e n t e a : ( i i ) p a r a x E L(G) e x i s t i r mais de uma d e r i v a ç ã o d i r e i t a ( e s - q u e r d a ) de x em G .I
I
d a s
D e f i n i ç ã o PARSE
S e j a G = ( N , C , P , S) com a s produções de P numera-
*: 1 , 2 ,
...
,
p e uma d e r i v a ç ã o S = > x . G A s e q u ê n c i a d o s números d a s produções u t i l i z a d a s n a de - r i v a ç ã oé
o p a r s e de x em G . Mais p a r t i c u l a r m e n t e : ( i ) o p a r s e d e s c e n d e n t e de x em Gé
a s e q u ê n c i a d o s núme-*
r o s d a s p r o d u ç õ e s u t i l i z a d o s n a d e r i v a ç ã o S=>x;
ESQ A ( i i ) o p a r s e a s c e n d e n t e de x em Gé
a s e q u ê n c i a d o s nume-*
r o s d a s p r o d u ç õ e s u t i l i z a d a s na r e d u ç ã o S<= x ; D I RHá
c o r r e s p o n d ê n c i a b i u n l v o c a e n t r e p a r s e a s c e n d e n t e , p a r s e d e s c e n d e n t e e á r v o r e s i n t á t i c a . Em t o d o o d e c o r r e r d e s t e t r a b a l h o usaremos o p a r s e co- mo a s e q u ê n c i a o r d e n a d a de p r o d u ç õ e s p r e v i s t a em X V I I . ( i i ) , a s a í d a dos a n a l i s a d o r e s s i n t á t i c o s . Como t r a t a r e m o s a p e n a s a n a l i - s a d o r e s a s c e n d e n t e s t o d a r e f e r ê n c i a f u t u r a a p a r s e s i g n i f i c a r á p a r s e a s c e n d e n t e .O s métodos de a n á l i s e que e s t u d a r e m o s não permitem a o b t e n ç ã o
-
o u , c a s o permitam, s e r á i g n o r a d a-
do p a r s e d a s e n - t e n ç a . Veremos n e s t e c a p í t u l o a d e f i n i ç ã o de p a r s e " e n k h u ; t ~ h a R "e no c a p í t u l o s e g u i n t e a d e f i n i ç ã o de p a r s e " e a p a h n a H .
consegue o b t e r a n a l i s a d o r e s s i n t á t i c o s , t a l como d e f i n i d o s em X V I I , mas a p e n a s a n a l i s a d o r e s s i n t á t i c o s de s u a g r a m á t i c a e s t r u - t u r a l ( " s k e l e t a l " em IAho g U m a n , 721 ) . E s t a g r a m á t i c a
é
o b t i d a da g r a m á t i c a o r i g i n a l p e l a s u b s t i t u i ç ã o de t o d a s a s o c o r r ê n c i a s de n ã o - t e r m i n a i s p e l o s í m b o l o i n i c i a l . I s t oé ,
em g e r a l , s u f i c i - e n t e p a r a a c o n s t r u ç ã o de c o m p i l a d o r e s , s e n d o uma p r e o c u p a ç ã o r e -d u z i r o tempo g a s t o com p r o d u ç õ e s s i m p l e s
-
do t i p o A + B comA , B E N
-
que normalmente não c a r r e g a m i n f o r m a ç ã o s e m â n t i c a .E s t a d i s c u s s ã o s o b r e a n e c e s s i d a d e de s e e l i m i n a r p r o - duções s i m p l e s tem g e r a d o um sem número de " o t i m i z a d o r e s " de ana - l i s a d o r e s s i n t á t i c o s
I
A n d m u n , 731,
I ~ h u g U&man, 731,
b a g a ,
741,
~I?Imm, 75
1 ,
I ~ a c h h u u n e , 761 ,
I
Lufunde, 761 ,
I ~ u i ~ u l u n - S u i n i n e n , 77I , I
Ruh - h by,771, c a d a q u a l propondo métodos d i s t i n t o s de a p e r f e i ç o a r a a n ã l i s e s i n t á t i c a d a s c l a s s e s de g r a m á t i c a s , em p a r t i c u l a r a f a m í - l i a L R , que produzem p a r s e s c o m p l e t o s . T a n t a e f e r v e c ê n c i a no a s s u n t o d e v e - s e ao a l t o l u c r o o b t i d o p e l a a n á l i s e s i n t á t i c a sem p r o d u ç õ e s s i m p l e s : I J u f i d , 731
m o s t r o u que s u a e l i m i n a ç ã o e f i c i - e n t e d o b r a a v e l o c i d a d e d a a n á l i s e s i n t á t i c a e aumenta a v e l o c i - dade do c o n p i l a d o r , como um t o d o , em 1 5 % .O u t r a a l t e r n a t i v a p a r a o mesmo problema s ã o o s métodos r e c e n t e s de a n á l i s e s i n t á t i c a em g r a m á t i c a s com l a d o s d i r e i t o s r e g u l a r e s [De R e m a , 70
I ,
ILaLunde, 751 ,
/Simune, 80I
.
que P a r t e m Pa -r a a e l i m i n a ç ã o da c a u s a p r i m á r i a d a s p r o d u ç õ e s s i m p l e s : a i n a d e
quação do mecanismo descritivo composto p e l a s g r a m á t i c a s l i v r e s de c o n t e x t o , para descrever as próprias linguagens l i v r e s de contexto.
De modo que e s t a r e m o s t r a t a n d o de a n a l i s a d o r e s s i n t á t i -
tos q u e , p o r n a t u r e z a , gozam da p r o p r i e d a d e de i g n o r a r p r o d u ç õ e s
Vejamos, e n t ã o , como o p e r a o a n a l i s a d o r s i n t á t i c o de, g r a m á t i c a s de p r e c e d ê n c i a de o p e r a d o r e s , d e s c r i t o p e l o a l g o r í t - mo 1 , a s e g u i r . E s t e a l g o r i t m o obtem o p a r s e e s t r u t u r a l d a s e n t e n ç a , sendo c o n t r o l a d o p o r duas f u n ç õ e s : ( i ) f : ( C X C) -> { Q , , * , " e r r o " ) d e f i n i d o p o r : f ( a , b )
= *
a 9 b f ( a , b) = " a b f ( a , b ) = Q a 4 b f ( a , b ) = " e r r o " , q u a l q u e r o u t r o c a s o . ( i i ) g : Cu
{ S } l f-
> 1 ,...,
p , " s t o p " ) d e f i n i d a p o r : g ( a ) = i ( i : ~ + - a ) c p g (a) = " s t o p " , q u a l q u e r o u t r o c a s o . O a l g o r . í t m oé
uma v e r s ã o do c l á s s i c o a l g o r i t m o "CLVUMÇU -neduzu p a r a a n á l i s e s i n t á t i c a a s c e n d e n t e . A f u n ç ã o f d e t e r m i - n a a s a ç õ e s de a v a n ç a r um s í m b o l o d a e n t r a d a ou r e d u z i r , i n d i c a n - do também a f r a s e a s e r r e d u z i d a . A f u n ç ã o g i n d i c a o número da produção u s a d a .I
- ~ l ~ o r l t m o 1 (XXVI) ANALISADORSINTATICO
PARA GRAMÁTIcA ESTRUTURAL DE GPOP a s s o 1 : ( I n i c i a l i z a ç ã o ) Coloque n a p i l h a o marcador
"#"
; Faça a v a r i á v e l M E I O = ""
; L e i a um sImbolo da s e n t e n ç a p a r a ENTRADA; R e p i t a o p a s s o 2 a t é r e c e b e r ordem de p a r a d a . P a s s o 2 : ( E s c o l h a d a a ç ã o ) Caso f ( t o p o d a p i l h a , ENTRADA) i g u a l a : Q ou "- : e x e c u t e o p a s s o 3 ; CD : e x e c u t e o p a s s o 4 ; " e r r o " : e x e c u t e o p a s s o 5 ; Passo 3 : (Avanço) Se MEIO = "S" e n t ã o c o l o q u e S n a p i l h a e f a ç a M E I O = " "; Coloque ENTRADA n a p i l h a ;L e i a novo símbolo p a r a ENTRADA;
Passo 4 : (Redução) R e t i r e d a p i l h a t o d o s o s s í m b o l o s a t é e n c o n t r a r d o i s s ~ m b o l o s c u j a r e l a ç ã o e n t r e
S I
s e j a 4 ; Concatene t a i s s í m b o l o s r e t i r a d o s , em ordem; Se M E I O = "S", c o n c a t e n e também "S", d i r e i t a ; S e j a SEQ o p r o d u t o d a c o n c a t e n a ç ã o ;s e n ã o : v e r i f i q u e s e o t o p o da p i l h a
é
"
#
", s e MEIO = "S" e ENTRADA ="
#
"
;Caso a s t r ê s c o n d i ç õ e s ocorram escreva "ACEITO" e p a r e ; Caso c o n t r á r i o e s c r e v a "REJEITADO" e p a r e ; Passo 5 : ( E r r o ) E s c r e v a "REJEITADO" e p a r e ; O a l g o r l t m o s e b a s e i a n a s e g u i n t e p r o p r i e d a d e d a s g r a m á t i c a s de p r e c e d ê n c i a e
é
v á l i d a também p a r a a s G P O , n a forma abaixo : " S e j a X1 X 2...
Xm uma forma s e n t e n c i a 1 e a l a Z a . . an os t e r m i n a i s d e s s a forma s e n t e n c i a l . A s e q u ê n c i a a s e r r e d u z i d a6
a s e q u ê n c i a maisà
e s q u e r d a t a l que A demonstração d e s t a p r o p r i e d a d e pode s e r v i s t a em I ~ n i e A , 771.
O s i n a l"
#
" é
usado como i n f c i a l i z a ç ã o d a p i l h a e f i n a l da s e n t e n ç a de e n t r a d a . Faz p a r t e do c o n j u n t o de t e r m i n a i s da p - a m á t i c a aumentada, o b t i d a a p a r t i r de G = (N, C , P , S) com GA = (A! u { S ' I ,u{
f l } ,
P u {(SI +#
S# ) I ,
S I ) .O a l g o r i t m o nada mais f a z que v a r r e r a s e q u ê n c i a de en - t r a d a da e s q u e r d a p a r a a d i r e i t a , e f e t u a n d o uma redução sempre que a s i t u a ç ã o acima o c o r r e r . A s f u n ç õ e s f e g s ã o c a l c u l a -
d a s s o b r e a g r a m á t i c a e s t r u t u r a l de GA. Exemplo (XXVI I J P' = { ( S +
#
E#
1 ,
(T + T * F ) , (F + ( E ) ) , ( E + T ) , (E + E+
T),
(T -t F),
( F + i ) ( i i i ) G~~~~ = ( { S I ,C#,
+, * ,
(,
1 ,
1
, P", S) p 1 c= C
1 : S +#s#
2 : s + S + S 3 : s + S * S 4 : S + (S) 5 : s + i } ( i v ) ~ á l c u l o d a s f u n ç õ e s f e g(v) ~ x e c u ç ã o P I LHA ME I O ENTRADA
#s#
S+S S*S (S i qq.
outro PARSE ESTRUTURAL 5 5 3 ACEITO( v i ) Á r v o r e s S i n t á t i c a s
a
P r o p r i a m e n t e , começaremos a q u i . E s t e c a p í t u l o s e r a a r e v i s ã o do c o n h e c i d o s o b r e e s t a s u b - c l a s s e d a s g r a m á t i c a s l i v r e s de c o n t e x t o . I G h i e h , 681 p r o p ô s a denominação ";ttLunaWon m&x" p a r a a t é c n i c a de a n á l i s e s i n t á t i c a que e n t ã o f o r m a l i z o u . E s s a
llmcu%iz d~ ~ u ~ ~ ? l l ç Ü o ~ ~ g u a r d a s e m e l h a n ç a s com a ";tubQRu d~ ~ ~ n a l ç õ e h ~ ~ de um automato f i n i t o . T a l s e m e l h a n ç a
é
f a t a l n o m e n c l a t u r a ,a
Mais i m p o r t a n t e , porem, que o t í t u l o d a f e r r a m e n t a
é
a d e f i n i - ç ã o d e s s a c l a s s e de g r a m á t i c a s , m a i s ampla que a c l a s s e de p r g c e d ê n c i a de o p e r a d o r e s , b a s e a d a de c e r t a forma em c o n c e i t o s a n ã l o g o s . Como a c l a s s e de g r a m á t i c a de o p e r a d o r e s , e s u a nomencla-
t u r a , j á e s t ã o também e s t a b e l e c i d a s contentamo- nos em m a n t e r o t z t u l o i n a d e q u a d o : m a t r i z e s de t r a n s i ç ã o .O f u n d a m e n t a l d e s t e c a p í t u l o f o i e x t r a i d o de I ~ a m e h o n B Baueh, 6 0 1 , I ~ o m a y , 6 3 1 e , p r i n c i p a l m e n t e , I G h i u , 6 8 1 . As d e - m o n s t r a ç õ e s d e v i d a s s ã o a l i e n c o n t r a d a s .
3 . 1 -
-
GRAMÁTICA DE OPERADORES ESTENDIDAO o b j e t i v o d e s t a p r i m e i r a m o d i f i c a ç ã o n a g r a m á t i c a d a - da
é
r e d u z i r o comprimento dos l a d o s d i r e i t o s d a s p r o d u ç õ e s a , no máximo,t r ê s
s í m b o l o s .a a
v e l s e p a r t i r m o s de uma g r a m á t i c a de o p e r a d o r e s .
O p r o c e s s o s e d a r á p e l a a d i ç ã o
2
g r a m á t i c a de novos n ã o - t e r m i n a i s , denominados - o u t r a vez com i n f e l i c i d a d e - p o rI G & ~ Q ~ ,
681 de "vtÜo-X~nmincLín ~n;DLQeudun': e de n o v a s p r o d u ç õ e s i n t e rm e d i á r i a s , denominadas " p o d u ç õ u ~nk.ItQRuda"
.
A o r i g e m do nome vem do uso de um "P" p a r a i d e n t i f i c á - l o s . P r e f e r i m o s , com m a i o rc l a r e z a , s u b l i n h á - l o s .
(XXVI I I )
GRAMÁTICA DE OPERADORES ESTENDIDA (GOE)
S e j a G = (N, C , P , S) E
C G O .
A g r a m á t i c aG ' =
(N',
C ' , P',
S ' ) = (N u-
N ui
S ' ) , C ui
# I ,
P ' , S ' ) s e r a s u a g r a m á t i c a de o p e r a d o r e s e s t e n d i d a s e G ' f o r c o n s t r u í d a con forme o a l g o r l t m o 2 , a s e g u i r .I
~ l ~ o r í t m o 2 (XXI X)CONSTRUÇÃO DA GRAMÁTICA DE OPERADORES ESTENDIDA
P a s s o 1 : C o n s t r u a G ' = ( N ' , C ' , P ' , S ' ) de modo que G f = (N u { S I ) , C u
C # ) ,
P u i S '+ #
S#),
S ' ) com S ' N e#
C . Chamaremos e s t a g r a m á t i c a ob-
t i d a no P a s s o 1 de g r a m á t i c a de o p e r a d o r e s aumentada P a s s o 2 : Se (A -t a a ) E P ' , a~ (N' u C ' ) * e n t ã o ( i ) a c r e s c e n t e a p r o d u ç ã o V - -t a , s ej á
não e x i s t i ralguma produção com l a d o d i r e i t o a ; c a s o e x i s - t a , s e j a V - o s e u l a d o e s q u e r d o ; ( i i ) s u b s t i t u a c a d a produção d a forma (B -t af3) E P ' p o r (B -+ E@) ; P a s s o 3 : Se (A -t Baa) E P ' , a E (N' u C' ) " e n t ã o ( i ) a c r e s c e n t e a p r o d u ç ã o V - -t Ba, s e
j á
n ã o e x i s -t i r alguma p r o d u ç ã o com l a d o d i r e i t o .Ba; c a s o e x i s t a , s e j a V - o s e u l a d o e s q u e r d o ; ( i i ) s u b s t i t u a cada p r o d u ç ã o d a forma (C .+ Baf3) G
P'
p o r (C +- YB); P a s s o 4 : Se (A -+ g a a ) E P ',
a E(H'
ux')*
e n t ã o ( i ) a c r e s c e n t e a p r o d u ç ã o V - - + U a , s e já
não e x i s - t i r alguma p r o d u ç ã o com l a d o d i r e i t o !a; c a s o e x i s t a s e j a V - s e u l a d o e s q u e r d o ; ( i i ) s u b s t i t u a c a d a p r o d u ç ã o d a forma ( C + - U ~ @ ) E P ' p o r ( C - t X P ) ; P a s s o 5 : Se (A -t UBaa) E P ' ,a E (N' u I')* e n t ã o ( i ) a c r e s c e n t e a p r o d u ç ã o V - + y - Ba, s e já
n ã o e x i s-
t i r alguma produção com l a d o d i r e i t o - UBa; c a s oe x i s t a s e j a V - s e u l a d o e s q u e r d o ; ( i i ) s u b s t i t u a c a d a p r o d u s ã o d a forma
(C + UBaB) - E P ' p o r (C -+ YP);
Note q u e , a cada p a s s o , V -
é
um novo n ã o - t e r m i n a l criado quando uma nova produção f o r a c r e s c e n t a d a e N -é
o c o n j u n - t o d e s s e s n ã o - t e r m i n a i s e s t r e l a d o s . Vamos c o n v e n c i o n a r que a n u - meração d a s p r o d u ç õ e s o r i g i n a i s s e j a ( 1 , 2 ,. .
.
, p ),
que o P a s - s o 1 c r i e uma n o v a p r o d u ç ã o numerada O e que a s demais p r o d u - ç õ e s a c r e s c i d a s s e j a m numeradas (p + 1 , p + 2 ,...).
Note que a s s u b s t i t u i ç Õ e s de p r o d u ç õ e s n ã o a l t e r a m s u a numeração.I
Exemplo N = { S , A, B, C,D)
C = { a , b , c , d lpós
o P a s s o 1: N ' = { S ' , S , A, B, C ,D)
C ' =C#,
a , b , c , d l P ' = {O: S' + #S#,
1 : S + a A b , 2 : A + b c B , 3 : B + C , 4 : C + D d , 5 : D + d ) E x e c u t a n d o - s e o s p a s s o s s e g u i n t e s :11: - b c - t b c
-
P r o p r i e d a d e s d a s GOE (XXXI)
(i) após o p a s s o 2 a s produções s ã o d a s formas (A -t B) , (A -t Bca)
,
(A +- - Ua),
(E
-t a)( i i ) após o p a s s o 3 a s produções s ã o das formas (A -+ B) , (A +- - Ua) ,
(c
+ a ),
(E
-+ Ba)( i i i ) após o p a s s o 4 a s produções s ã o d a s formas (A +- B)
,
(A -t EBaa),(E
+- a ),
(c
+- Ba)(c
-t ula),
(A +E)
-( i v ) em q u a l q u e r GOE temos a p e n a s 7 formas de p r o d u ç ã o : (A + B) , ( A - + 2 )
,
(A + - UB) 1 ( v ) cada n ã o - t e r m i n a l e s t r e l a d o a p a r e c e como l a d o e s q u e r d o de uma Única p r o d u ç ã o ; o l a d o d i r e i t o c o r r e s p o n d e n t e a- p a r e c e como l a d o d i r e i t o a p e n a s d e s s a p r o d u ç ã o .( v i ) s e o s novos n ã o - t e r m i n a i s e s t r e l a d o s ,forem numerados conforme a ordem de a p a r e c i m e n t o no a l g o r í t m o , e n t ã o
( v i i ) p a r a c a d a produção (A +- a ) n a g r a m á t i c a o r i g i n a l e x i s t e
um Único c o n j u n t o de p r o d u ç õ e s
( v i i i ) p a r a cada á r v o r e s i n t á t i c a de uma forma s e n t e n c i a 1 y n a
4
g r a m á t i c a de o p e r a d o r e s p o d e - s e c o n s t r u i r uma Única a r v o r e s i n t á t i c a d a s e n t e n ç a # y
#
n a g r a m á t i c a de ope - r a d o r e s e s t e n d i d a , s u b s t i t u i n d o - s e o ramo (A + a) p e l a s p r o d u ç õ e s d e s c r i t a s no ;tem a n t e r i o rI
Teorema 2 (XXXI I ) Se uma GOEé
não- ambígua e n t ã o a GO d a q u a l d e r i v aé
também não -amb?gua.
Demonstração : d e c o r r ê n c i a d a s p r o p r i e d a d e s X X X I ( i v ) , (v), ( v i ) , ( v i i ) e ( v i i i ) e d e v i d a a
I G ~ ~ u ,
6 g l .I
A-- N
A
LISE SINTÁTICA EM GOEIremos d e s c r e v e r a s e g u i r o método de c o n s t r u ç ã o de a n a l i s a d o r e s s i n t á t i c o s p a r a GOE, b a s e a d o em r e l a ç õ e s de p r e c e
-
d ê n c i a , sendo p o r t a n t o um r e c o n h e c e d o r a s c e n d e n t e quel ê
a s e n -t e n ç a d a e s q u e r d a p a r a a d i r e i t a . P e l o f a t o de propormos um ana -
l i s a d o r d e t e r m i n í s t i c o e s t a r e m o s também d e f i n i n d o c o n d i ç õ e s s u - f i c i e n t e s p a r a que uma GOE s e j a não- ambígua.
Uma c a r a c t e r í s t i c a e s s e n c i a l d e s t e método
é
que s e b a -s e a r á em r e l a ç õ e s de p r e c e d ê n c i a e n t r e n ã o - t e r m i n a i s e s t r e l a d o s e t e r m i n a i s , n ã o sendo capaz de d e t e c t a r uma r e d u ç ã o quando a produção u s a d a f o r s i m p l e s . P o r t a n t o , f o r n e c e r á um p a r s e e s p a r - s 0 .
As d e f i n i ç õ e s s e g u i n t e s de "6huh~" e "Óhuhe ptrAmurl p r g tendem s u b s t i t u i r a d e f i n i ç ã o u s u a l de "hundee" em a n a l i s a d o r e s
a s c e n d e n t e s e contornam o problema t e ó r i c o d a f o r m a l i u a ç ã o do p a r s e de modo mais s o f i s t i c a d o q u e a g r a m á t i c a e s t r u t u r a l v i s t a no c a p ? t u l o 2 p a r a a s g r a m á t i c a s de p r e c e d ê n c i a de o p e r a d o r e s .
I
~ e f i n i ç ã o FRASE (XXXIII) Diremos que ~ E ( N ' u C ' ) *é
uma f r a s e s e* .
*
*
ç ==> PAB => ByB e A => yI
I
( i ) ( i i ) ( i i i ) D e f i n i ç ã o- FRASE PRIMA (XXXIV)
Diremos que y E ( N ' u C ' ) *
é
uma f r a s e prima s ey
é
f r a s e ;y = a X B , X E (N - u C ) ;
y = a a 2
...
an Q a i nãoé
f r a s e , qq.i
A d e f i n i ç ã o
é
f e i t a de t a l forma que as f r a s e s primas s e r ã o o o b j e t o das r e d u ç õ e s , r e s t a n d o s o l u c i o n a r a s reduções ad-
v i n d a s das produções s i m p l e s .I
Teorema 3A s f r a s e s primas em GOE s ã o de 6 formas :
U -
,
!a, a , UA, - Aa, UAa. -Demonstração : consequência da p r o p r i e d a d e X X X I
.
( i v ) e da d e f i-
n i ç ã o de f r a s e prima.j u n t o das GOE - p a r a a s q u a i s s e r á sempre p o s s 2 v e l o b t e r um a - n a l i s a d o r s i n t á t i c o a s c e n d e n t e d e t e r m i n l s t i c o , do t i p o que n o s i n t e r e s s a .
I
D e f i n i ç ã o RELAÇÃO PRECEDE PRECEDE E ( N ' u C ' ) x (N' u C ' )*
X PRECEDE Y . S 1 ====+aXYBI
I
De£ i n i ç ã oGRAMÁTIcAS DE MATRIZES DE TRANSIÇÃO (GMT)
(XXXVI) (XXXVI I ) Uma g r a m á t i c a G = (N' , C ' , P ' , s ' ) E
CGOE
s e r á d i t a g r a m á t i c a de m a t r i z de t r a n s i ç ã o (GMT) o u , e q u i v a l e n t e m e n t e , G E CGm, s e :*
( i ) p a r a q u a l q u e r p a r (A,B) E (N u 1.5' ) ) s e A =>B, e n t ã o e s s a d e r i v a ç ã oé
Única;( i i ) p a r a cada p a r (U,
-
a) e(E
x C ' ) no máximo uma das t r ê s s e g u i n t e s condiçõesé
v e r d a d e i r a :( a ) ' (A -t - U) E P
'
A (A PRECEDE a) A (A Único) ;(b)
(x
+ ' ~ a ) E p'
;(C)
(E
-+ a ) E P ' A (U - PRECEDE V) ;-
( i i i ) p a r a cada t r i p l a ( U , - A, a) E (N - x N x C ' ) no máximo uma
das t r ê s s e g u i n t e s condições
é
v e r d a d e i r a : ( a ) (B + Uc) e P ' ( B PRECEDE a )*
(b)
(E
+ U - Ca) EP'
A ( C =>*
A) A (C Único) ; (C)(1
+ Ca) E P ' A (U - PRECEDE V) - (C2>
A) A (C ú n i c o ) ;I
São c o n s e q u ê n c i a s da d e f i n i ç ã o : ( i ) ( i i )cada condição imposta c o r r e s p o n d e a uma d a s s e i s p o s s í - v e i s formas de f r a s e prima em GOE;
a G O E ( e , em consequência de XXXI. (v) também a g r a m á t i - c a de o p e r a d o r e s o r i g i n a l ) não n e c e s s i t a s e r unicamente i n v e r s í v e l admitindo a e x i s t ê n c i a de duas produções (A +- B) e (C +- B ) , desde que r e s p e i t a d a a condição de
d e r i v a ç ã o Única. P a r a a s produções não s i m p l e s
6
n e c e s s á - r i o que a g r a m á t i c a s e j a U I , em consequência d a s c o n d i - ç õ e s ( i ).
a e ( i i . a ) da d e f i n i ç ã o de GMT.I
Teorema 4 E [GMTe
Gé
não-ambZgua. Demonstração : IGL~A, 681 .
(XXXVIII) (XXXIX)CONSTRUTOR DE ANALISADOR
SINTATICO
PARA GMTP a s s o 2 : P a s s o 3 : P a s s o 4 : P a s s o 5 : P a s s o 6 : C o n s t r u a a GOE a t r a v é s do A l g . 2 ; C o n s t r u a a r e l a ç ã o PRECEDE c (N u N) -
x
(N-
u C ' ) ; P a r a cada p a r (U - , a ) v e r i f i q u e s e a p e n a s uma das con -d i ç õ e s ( i )
.
a , ( i ).
b e ( i ).
c p r e v a l e c e . A s s i m sendo c o n s t r u a a q u á d r u p l a(E,
a ,L
j l onde Xé
o l a d o e s q u e r d o d a produção u s a d a \ jé
o número d e s s a p r o d u ç ã o ; P a r a c a d a t r i p l a (U, -A ,
a ) v e r i f i q u e s e a p e n a s uma d a s c o n d i ç õ e s ( i i ).
a , ( i i ).
b e ( i i ).
c o c o r r e .Assim sendo c o n s t r u a a 5-tupla
(g,
A, a , X, j )Se mais de uma c o n d i ç ã o o c o r r e r n o s p a s s o s 4 ou 5 ou s e não f o r v e r i f i c a d a a c o n d i ç ã o do p a s s o 1 i n d i q u e que G
C G M T *
É i m p o r t a n t e que s e f a ç a uma v e r i f i c a ç ã o s u m á r i a d a complexidade do A l g . 3 , v i s a n d o s u a comparação com o aigorFtmo a s e r p r o p o s t o no c a p i t u l o s e g u i n t e :
( i ) o P a s s o 1 , conforme veremos no próximo c a p í t u l o ,
é
r e d u t h e l ao problema de d e t e r m i n a ç ã o da e x i s t ê n c i a de d o i s cami -
nhos d i s t i n t o s e n t r e um p a r de n ó s de um d i g r a f o e s p a r s o . Esse a l g o r $ t m o
é
de O (n) , onde né
o número de n ã o - t e r m i n a i s e n - v o l v i d o s em p r o d u ç õ e s s i m p l e s ;( i i ) o Passo 2
é
o Alg.2 p a r a a c o n s t r u ç ã o d a GOE. E s s e a l g o r í t m oé
de complexidade 0 (pn) , onde pé
o número de p r o - duções e né
a soma d o s comprimentos dos l a d o s d i r e i t o s . ComoP
<
n , temos complexidade 0 ( n2).
( i i i ) o P a s s o 3 c o n s t r o i a r e l a ç ã o PRECEDE. E s t a r e l a - ç ã o pode s e r e x p r e s s a como PRECEDE =
<o
+o>
+ , onde e s - t a s s ã o a s r e l a ç õ e s deI
WMh & Webm, 661.
Conforme IffunX, 771
,que de t a l h a r e m o s nocapitulo,
é
c a l c u l á v e l p o r a l g o r í t m o deI
2
complexidade 0 (n ) , onde n
é
a soma d o s números de t e r m i n a i s e n ã o - t e r m i n a i s ; ( i v ) o P a s s o 4 p e r c o r r e t o d a s a s produções p a r a cada p a r(E,
a ) E(E
x C ' ) , t o r n a n d o o a l g o r I t m o de complexidade O(pmn), c o m p =#
( P ' ) , m =#
( E ) ,
n = # ( L f ) . C o m o p < C l n - e m - < C2n, p a r a c o n s t a n t e s C1 e C 2 , t e r e m o s complexidade O(n3); (v) o P a s s o 5 , p o r a n a l o g i a ao Passo 4 , t e r á complexi dade O(pmnr), com p = # ( P ' ) , m = # ( N ) , - n = # (C' ) , r = # ( N ) . Por c o n s e g u i n t e 0 ( n4) ;( v i ) em c o n c l u s ã o , temos um a l g o r í t m o 0 ( n4) .
R e s t a - n o s a p r e s e n t a r o a n a l i s a d o r s i n t á t i c o p a r a GMT.
Alguns p r o b l e m a s a i n d a não e s t ã o r e s o l v i d o s , t a i s como a s r e d u - ç õ e s da forma A < L B e o armazenamento d a s t r i p l a s o b t i d a s p e l o c o n s t r u t o r . Seguiremos p r e c i s a m e n t e a s o l u ç ã o de I ~ h i e ~ , 681 que advoga a t r a d u ç ã o d a s t r i p l a s em m a t r i z de c o n t r o l e ( a " m W z de 2xuvz&LçÜa1' ) a c o p l a d a a um c o n j u n t o de subprogramas.
A g e r a ç ã o d a m a t r i z e dos subprogramas
é
a l g o r í t m i c a mas não s e r á n e c e s s á r i o d e s c r e v ê - l a formalmente a q u i b a s t a n d o l e m b r a r :( i ) como a m a t r i z s e r á b i d i m e n s i o n a l (N x - C ) , t o d a s a s t u p l a s que c o n t i v e r e m o p a r ( U , - a ) s e r ã o t r a t a d a s p e l o mesmo
subprograma ;
( i i ) a v e r i f i c a ç ã o do e l e m e n t o d a t u p l a c o r r e s p o n d e n - t e ao n ã o - t e r m i n a l s e r á f e i t a sempre s o b r e o c o n j u n t o SYMB*(A) =
*
{ B
I
A A> B}, quando t o d a s a s r e d u ç õ e s d i r e t a s de A<= B s e r ã o f e i t a s de umas ó
v e z ;( i i i ) a s t u p l a s a d v i n d a s d a s c o n d i ç õ e s ( i ) . a e (ii) . a
4
(ou s e j a , X + - U e X -t - UA) i r ã o compor um subprograma que apos
v e r i f i c a r o n ã o - t e r m i n a l o r i g i n a l , s e r a :
I ' p o p ; MEIO:=:X;
w r i t e ( j ) ; 1 1
( i v ) a s t u p l a s a d v i n d a s d a s c o n d i ç õ e s ( i ) . b e ( i i ) . b (ou s e j a , X + U a - e X + U A a ) - i r ã o compor um subprograma q u e ,
após v e r i f i c a r o n ã o - t e r m i n a l , ser;:
"
p o p ;-
p u s h(x);
MEIO:=&; w r i t e ( j ) ; SCAN; 1 I(v) a s t u p l a s a d v i n d a s d a s c o n d i ç õ e s ( i ) . c e ( i i ) . c (ou s e j a , X -+ a e
X:
-t Aa) i r ã o compor um subprograma q u e , a -4 p ó s v e r i f i c a r o n ã o - t e r m i n a l , s e r a :
"
push --(X)
; M E I O : = E ; w r i t e ( j ) ; SCAN; r ! -- O a n a l i s a d o r s i n t á t i c o d a GMTé
o programa composto p e - 10s subprogramas g e r a d o s e i n i c i a l i z a ç ã o . Exemplo -- G = ( N , L , P , S) E CGOP = (1 PROG + S T A T E
2 PROG -+ i f EXPR t h e n STATE
3 S T A T E + i f EXPR t h e n STATE e l s e STATE
4 STATE + v a r : = EXPR 5 EXPR -+ EXPR o r v a r 6 EXPR + v a r S = PROG C o n s t r u i n d o a GOE S
'
PRO G PRO G STATE STATE EXPR EXPR v a r-
E X P R o r--
v a r : = E X P R o r v a r#
PROG#
i f E X P R t h e n STATE i f E X P R t h e n STATE i f E X P R t h e n S T A T E e l s e STATE v a r : = EXPR E X P R o r v a r v a r#
i f v a r EXPR o r v a r : = E X P R o r v a r#
PROG#
- i f EXPR t h e n - i f E X P R t h e n STATE e l s e . --
UPLA-
1 2 3 4 5 6 7 8 9 1 0 11 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 20 2 1 2 2 2 3 24 2 5 2 6 27 28-
v a r-
v a r v a r-
v a r v a r - v a r : = v a r : = v a r : = v a r : = EXPRor EXPRorvar EXPRorvar EXPRorvar EXPRorvar a#
i f Jar khm Jar )r#
i f :lse far#
i f 2 l s e v a r#
then 2 l s e.
- - 3r#
e l s e v a r o r v a r#
t h e r elsc o r-
var-
var-
PROG var-
STATE i£ STATE var-
EXPR EXPR EXPR var : = EXPR STATE STATE var EXPRor EXPRo rvar EXPR EXPR EXPR EXPR FORMA ?SPECIAL U +-
a U + a-
V + UAa-
- U + a-
U + A a-
A + - U aU +
a - V + UAa - - U + a-
A +-
UA U + a-
A + UA - U + a-
A + U-
A + U - A + UV +
- U a - A + U A + UA A + UA-
U + a-
U + - A a V + U a- -
A + U d A + - U A + U A + Ub e g i n
p u s h ( # ) ; M E I O : = & ; SCAN; DONE:= f a l s e ; -
w h i l e n o t DONE - d o
case MAT-TRANSICAO [
top,
SCANNEDI
- ofb e g i n
O : ERROR; DONE : = t r u e ;
1: - i f MEIO=PROG - o r MEIO=STATE t h e n
b e g i n w r i t e (" ACEITO" ) ; DONE: = t r u e ;
-
ende l s e ERROR;
2 : - i f MEIO = E t h e n b e g i n p u s h --
(Yf)
-
; SCAN; -- e n d e l s e ERROR;3 : - i f MEIO = E t h e n b e g i n p u s h ( ~ a r ) ;
-
SCAN; - - e n d e l s e ERROR; 4 : - i f MEIO = EXPR t h e n b e g i n p o p ; - p u s h ( i f E X P R t h e n ) ; M E I O : = E ; SCAN;e '
- e l s e ERROR; 5 : I f MEIO = EXPR t h e n b e g i n p u s h ( E X P R o r ) ; M E I O : = E ; SCAN; end - e l s e ERROR;6 :
-
i f MEIO = STATE t h e n b e g i n p o p ; MEIO:=PROG end e l s e--
ERROR;7 : - i f MEIO = STATE t h e n b e g i n
pop;
p u s h ( i f E X P R t h e n S T A T E e l s e ) ;M E I O : = E ; SCAN; end
-
e l s e ERROR;
-
-
8 :
-
i f MEIO = STATE t h e n b e g i n p o p ; MEIO:=STATE - - end e l s e ERROR; 9 : - if MEIO = E-
t h e n b e g i n p o p ; M E I O : = E X P R end e l s e -- ERROR;1 0 : i f MEIO - = E -- t h e n b e g i n p o p ; push ( ~ a r : = ) ; SCAN; end - e l s e ERROR; 11 : - i f MEIO = E t h e n b e g i n