EXPANSOR DE M A C R O ASSERBLER
Z A C H A A I A S ERNANE
DAS
G A N D E I A S
TESE SUBMETIDA A D C U R P ~ DOCENTE
D A
G O O R U E N A Ç Ã ODOS
P R Q G H A R R S
F E PÓÇ-GRADUAFÃO DE ENGENHARIA DAU N I V E H S I D A D E
F E D E R A L
D O R I U U EJA
M E I R O
c a ~ u
P A R T E DOSR E Q U I S I T U S
N E C E S S Á A I O S
P A R AA
O B T E W Ç ~ Ono
GRAU BE NESTRE ENC P ~ N C I A
(K.SC.)
Aprovada par: E 5 T A D ODO
R I ODE
J A N E I R O
-
B R A S I L M A R C ODE
1 / 7 6A o s meus saudosos P a i s A
minha
esposa TEREZAe aos m e u s f i l h o s ANA
LUCIA
J U N I O R ARIWNDO T A S S O CESARiii
Agradecimentos
A t o d a s p e s s o a s q u e d i r e t a ou i n d i r e t a m e n t e c o n t r i b u i
-
r a m , q u e r com s e u s c o n h e c i m e n t o s , q u e r com s e u s i n c e n t i v o s na e l a b o r a q ã o d e s t e t r a b a l h o .Ao P r o f . Guilherme Chagas R o d r i g u e s MSc do Nucleo d e ~ o m p u t a ~ ã o ~ l e t r o n i c a e COPPE d a UFRJ, p e l o s e u i n t e r e s s e e su- g e s t õ e s V a l i o s a s d u r a n t e a o r i e n t a ç ã o d e s t a t e s e .
Como tambem n o s s o r e c o n h e c i m e n t o a o D r . Arão Horowitz c h e f e do Departamento d e E n e r g i a N u c l e a r d a UFPe. j u n t a m a n t e com t o d o s c o l e g a s e f u n c i o n & i o ç p o r não t e r f a l t a d o com s e u s a p o i o s e i n c e n t i v o s .
Aos c o l e g a s Eduardo D o r i a S i l v a e M i l t o n Albuquerque B e z e r r a p e l a s d i s c u r s s õ e s d u r a n t e s u a r e a l i z a ç ã o .
Ao c o l e g a Pedro Nogueira Cruz e s u a e s p o s a D r a . Maria d a s Dores Nogueira Cruz p e l a c o r r e ç õ e s f i n a i s d o s o r i g i n a i s d e s - t e t r a b a l h o .
A s S r t a s . Maria Delza d e O l i v e i r a Cardoso, Ana ~ u c i a B e z e r r a C a n d e i a s e ~ s c o l & t i c a P e r e i r a d e F a r i a s p e l o s d e s e n h o s e a e l a b o r a ç ã o d a p a r t e d a t i ~ o ~ r á f i c o .
à U n i v e r s i d a d e F e d e r a l d e Pernambuco e ~ o o r d e n a g ã o d e Programação d e ~ & - ~ r a d u a ~ ã o em E n g e n h a r i a p e l o a p o i o d e b a s e
,
E s t e t r a b a l h o a p r e s e n t a u m E x p s n s e r d e Racro .Açremblrrr { € M A ) que s e i n t e g r a aa 5ãste:aa a p e r a e i c n a l d e 5irnulação ( S G S ) , c u j a finalida- d e $ dassnvolvei wsoftwaren para a T e r m i n a l I n t e l i g e n t e
(TI),
dascmvolvf do se c o n j u n t o pelo ~ ú c l e o de ~ o m ~ u t a ~ ã o ~ l a t & c L c a(NCE)e
a ~ o o i d a n a ~ B o dos Programas d e ~ ó s - t r e d u a ~ & d e Engenharia ( C Q P P E ) da UniversidadeFs-
d e s a l do Rio de Janeiro,Dsscrevemas n a r t s t r a b a l h a as s e g u i n t e s tápieos:
G e n s r a l i d a d a s s o b ~ e o s processadares d e i+lncreç ~ r g a n i n a g e o das tabelas
da
EM&
P m p l e m a n ~ â S & da s u b s i s t e m a
E%A/SOS
F l u x o g r a m a da s u b s i s t e mIrticialrnenLs rnaslramas d e forma disi&-l;ica Q q u e vem s SEI: uma r o t i n a macre s s seu uso num progreioa Assembfor,
Dapais criarnas uma b i n g u e g s m de progrenãgãa para a manuseio do Expanser do Macro Assembler. Nas d e f i n i ç õ e s d e seus comandos usamos a meta-linguo gem BW f B a k w s Raur Farmj.
Descrevemos t a ~ a h & o uso e g a r e ç & das p r i n c i p e i s t a b e l e s , fg eilitando, desta modo, e deseriG80 da i m p k e m e n t a ç & d a s u b s i s t e m , Mos- tramos o s p a s s o s básicos do processedor i m p l e m , s n t s d o e , coma e i u c i n e c 8 0 , denas u m e x e m g L o d e urna r o t i n a r e c u r s i v a , onde expemes Q usu p ~ i t i e a d e
ABSTRAET
This uork p r e s e n t s a Racrc? Assembler E x p e n d s r ( H A E ) whieh is,
to b e added Lo t h e U p e r s t i o n a l S i m u i e t i a n Systsm ( O J S ) , in a r d e r ta d e v e lop sattwere Ç a r % h e E n t a l i g e n t Terminal ( T T I *
This
prajact wes d e v e l a-
p e d in c o n j m e t i a n w i t k $ h @ N u c l s a d e ~ o ~ n ~ u t a ~ e a ~ ~ e t r ~ n l e e( N C E )
andt h a ~ o o r d e n a s ã o d e Pregrernas d e ~ 6 s - ~ r a d u a ~ s a em Engenharia (COQPE) a f U n i v e r s i d a d e F e d e r a l da R i o d e J a n e i s a (UFRJ), Tha P a l f a w b g topics a r e d i a c u s s e d :
A t f L s s t a macre z o o t i n s is d e f i n o d and its u s a ãn an Assem- bler psegrarn demsnetrated,
A pmgsatna k a n g u a g e 215 Lhen e r e a l e d i n s r d s a : t o use t h s PIAE* F h i s l ã n g u e g e is based o n
Bakus
N a u r Foxm (BNF),The use and g e n e r t i o n aP t h â m a i n t a b l e s a r e 8190 d e s c r i b s d '
P n
o r d e s t o facilitate t h e d e s c r i p t i o n s f L h e s u b y s t a m i m p l e m s n t a t i a n ,,
Phe basic o p e r a t i o n s of the implemented p r o c e ç s o r ar@ skawn, and sxamgle o f r e c u r ç i v e r o u t i n e g i v e n w k i c h d e m o n s t r a t s s t h a pratica3 u s e aP all a fI M D I C E
I.
~ n t r o d u ç ã o .. . .
1I1
.
Generalidade sobre macro processadores. . .
5111
.
Discriação da linguagem. . .
8. . . .
3.1. Definição formal dos elementos da linguagem 8
3.2, ~efinição de rotinas no expansor do macro assembler
.
9. . .
3.3. Comando do expansor de macro assembler 10
3.3.1. ~lassificação dos comandos
. . .
10. . .
3.3.2.~efinic$es 11. . .
3.3.3. Chamadade rotinamacro 11. . .
3.3.4. Comando de concatenação 14. . .
3.3.5. Comando de transferência- I F 16. . .
3.3.6. -Comando de transferência-
G0 TO 17. . .
3.3.7. Comando de atribuição LET 17
. . .
3.3.8. Comando NOP 18. . .
3.3.9. ~ariaveis do Subsistema 19. . .
3.3.10. ~eclaração de variaveis GLB 19.
. . .
3.3.11. Comando STATUS 20. . .
3.3.12. Comando de subtitui~ão 21. . .
3.4
.
~anutenções e consultas as Bibliotecas 213.4.1. Comando externo
. . .
22IV
.
Organização das tabelas no expansoF de macro assembler.
234.1. Introdução
. . .
23. . .
4.2. Tabela que guarda os parâmetros formais (ALA) 24
. . .
4.3. Tabela de nomes d e macros
(TNM)
24. . .
4.4. Tabela de definição de macro (TiDM) 24
. . .
4.5. Tabela de variaveis locais e globais 27
4.5.1. organização
. . .
28V
.
~mplementação do subsistema expansor macro assembler. .
335.1. Introdução
. . .
33. . .
5.2. Reconhecedor de rotinas macros 33
. . .
5.3. Reconhecedor dos comandos EMA 33
5.4. Reconhecedor e executor das chamadas de rotina Macro 34
. . .
vii
VI
.
Conclus6es. . .
406.1. Escolha da linguagem
. . .
406.2
.
Observações £inais e sugestões para futuras imple- mentações. . .
4 3. . .
Apêndice A 44 Linguagem de extensão. . .
44Apêndice B
. . .
46Uso dos comandos
. . .
50Apêndice C
. . . e . . .
50. . .
Fluxograma do expansor de macro assembler ApêndiceD
. . .
56Resultados
. . .
. . .
A f i n a l i d a d e d e s t e t r a b a l h e
6
i n t e g r e s Q S i a t e m e O p e r a c i a n a ld a ~ i r n u l e ~ a o (SEI%) i s f a c i l i d a d e s d e m e s a Assembber,
O
SDS
6
u m sistema orien%ado para d e s e n v o l v e r o ~ ~ s e f w a r e c T b&-
sice para t e r m i n a i s i n t e l i g e n t e s . C ~ m o esta d e s c r i t o em /S/6
compasto @das s e g u i n t e s f e c i l i d a t 2 s s ,
L , E o n t a d o r A s s e m b l a r
2, Uma biblioteca onde saa g u a r d a d o s a s rn6dulos a b j e t o s
3 . Um E d i t o r de r e f e r g n c i o , q u e j u n t a , e f e s a l v e as r e f e r e cias e n $ r e o s m á d u l o s .
4. Um S i m u l a d a r do Terminal I n t e l i g e n t e T f
5 . U m &dulo d e ~ e ~ u r e ~ ~ s , que permà%e uma simuhaGão %terat&
v a a s i m b 6 ã i c a usando uma L i n g u e g e m de a l t o - n a v e 1
6 , U m a s6sis ds u t i l i l ~ r i a s p a r a m a n i p u l e ç ã e das m6dulas.
7,
U m m g d u l o d e c o n t r o l s (n6elao central de s i s t e m a ) p a r et s á f l c a m e n t a podemos r e p r e s e n t a r a intsgraSão da s i s t e m a SOS com a s ~ b s i s t a m a ERA como sendo fiy. 2
D ERA
6
um programa que interpreta o s comandos d e r o t i n a s w- eras ( s e r & d e s c s i & a â no d e c o r r e r d e s t e trabalho).P s d s t ~ o s d e f i n i r u m a r o t i n a wãcso i n f o r m a l m e n t e , come senda u m b l a c a d e instruçães c o n s t i t u i d a d e u m ccrpe s de dois d e l i m i t a d o r e s , u m i n f e r i a s s o o u t r a s u p e r i a r 92,2.
Q corpo p o d e ser ~ e f e s e n c i a b o paza ser i n c l u i d a , em u m pse
-
g r a m e a ser expandido, a t r a v é s de u m comando denoainado chamada d e ma-
era.E x e m p l o
(didático)
Seja a rotina rnacro
E X P H R D HACAO ( d e l ã m i t e d o r s u p e r i u s f
GMUR ( d s b i r n i t a d o r inf esier)
Çeja o programa f a r t e
A
B
EXPAMB (chamada da rotina EXPANDI
C
B
EXPANB (chamade ds rotina
E X P A N D )
_."---
--
C
Programa s e s u l t a n t aâp6s
s e x p a n s g sD
ou p r o g r a m e f o n t e expandido. N ~ ~ l i c a ~ õ e s c a m a e s t a . sao m u i t o c o m u n s sm p r o y s a m G ~ o assmrbler ande a s r ~ ~ s t i ~ e e s d e b b a c o s s z a m u i t a f r e q u e n t e s , as v e t e s mudando apenas u m operando, a u aparador, ou t o d a a i n s t r u ç & ,Geralmente o uso das rotinas maçros f a c i l i t a o t z a b s l h o de co-
d i f i c a ç g e , depuraGgo, além das u s u a r i a s p o d e r e m o s criar n o v o s coman- dos n o A s s c m b l s r usado,
No c a p i t u l o k apresentamos g a n a r e l i d a d a s sobre a s o r i g e n s dos
o uso das maerus p r a c a ç s a d o s e ç nas l i n g u a g e n s d e e x ~ e n s o g s ,
No c a p i t u l a 2 d e f i n i m o s d e uma m e n a i r a f e r m a à a l i n g u a g a m da EMA. Para i s t o usamos a m e t a - l i n g u a g e m SMF(Bakus Naar Form). Os a x q p l o s d o uso d a s comandas estão na a p ê n d i s a B ,
Na eepitula 3 a p s a â a n t a m o n a o r g a n i z a s & das t a b e l a s , seus usas
Ns c a p i $ u l a 4 descrevemos a s tarefas b a s i c a s para implemantaç%j do s u b s i s t e m a
EHA,
e s a r a complernentado com s ãpendicsC
onde s a s~ c o n t r a o f l u x o dp s u b s i s t e m aBaero, d e a c a s d o com a pequena d l c i o n a r i o da l i n g u o p o r t u y u g sa,
é
u m p r e f i x a que em g r e g o s i g n i f i c a gsands. E s t e p r e f i x o6
usado em varies p a l a v r a s t t h x d c a s sm t o d o s o s remes dos c o n h e c i m e n t o s humsncs,p o r exemplo: rnacseecanomia, aeexameleeulas, maerorsgiãa, a t c ,
E m linguagem d e p ~ o g r e m a G e o Zste termo
6
usado p a r a d e f i n i r u m a i n s t r u ç ã o q u e por s u a vem, g r o d u a i r 6 uma n o v a s e q u h c i a d e i n s t s w -básicas d u r a n t e sua exeeusGo,
Entende-se p o r i n s t r u ç a e s b é s l c a s t o d a s e q u a l a s que sejam e x e c u t a v a i s p o r e i r e u i t a a l ó g i c o s d e u m a mãquána,
O c ã ã s s i c e a r t i g o de WcfSlroy
/I/
mostre d e forma sucinta at r u ç ã e s , U m a das g r a n d e s v a n t a g e n s
6
ã m o n t a g e m c a n d i c i o n n l controlada p o r p a r b e t r a s .C r s n o l e g i c a m e n t e e idéia d e macro surgiu n a l i t e s e % u s a c i e n - tlfice em
1962
num trabalho de H a l p e s n , W . 1 , / 2 / cam a p r o c e s s a d o r d em a c r o XPOP, que tem come l i n g u a g e m base CI FAP. Tentou-se c r i a r u m a lin- guagem d o pregsamaçBa, e u j e s comandas s e apraximassem a m a i s p o ç ç ~ w e l
d s i n g l e s natural, entretanto nãa contou com B apoio n a c e s s é r i o e terai-
nsu desistindo,
E m
1964 /3/ Vilkes, $+,V, hã U n i v c r s í t y Computer t a b a s a t e r y Cambridge, d e s e n v o f v e u aWISP.
Censtava d e u m processedor de E a c r o s que explorava d u e ç i d g i a s b 6 g i c õ s , o p r a ç e s s a m e n t o d e L i s t a s s z3Self-Camp& latorits, Rleste t r a b a l h o s u r g i u pela priirieirai v e z a t á c n i c a ds u m recanhqn a l i d a d e d e a j u d a s a c r i q i o de c o m p i l a d a s
&$L
e s c r i t a para a c s m p u t a - dar T I T A N S t r a e h s yC,
/ P / p r o j e t a o C ~ & S S ~ G Q d a s procsçsadorss d e macro"General Paapeso E a c r o g e n e r e t a r t t
( G P M )
q u e6
considerada a m a i s econ&n& co e e l e g a n t e sob s ponte de vis-ka d e l i n g u a g e m d e p x ~ g r a m a g n o .Mo inicio o uso dos p s a c e s s a d o r e a macres era m a i s f i g a d o a
gerãGGe d e compiladosea,
Com e a v a n p da t e c n e l a g i e Q uso das computadores
e
ceda v e zm a i s s o l i c i t a d a , para executar a s m s i s d i f e r e n t e s t a r e f a s d a s ativida- d e s humanas.
Desta n e c e s s i d a d e s u r g i u u m a cemplexidade cada v e z mais ereg
c a n t e d a s sistern~s d a computaç&, s o b r e t o d a s o s aspectos,
Um das aspectos que enfacasemas
s e r 6
o da linguagem de p s o-
g r a m ç s o , P a r a a t e n d s r a s diversas Grees d e c o n h e c i m e n t o humana fsrarn criadas v 6 r i a o l i n g u a y a n s da p s o g r a r n ~ G ~ a , a p r o x i n a n d a - s e o mais passi-
vel
da l i n g u a g e m n a t u r a l das tkpos d e gsnb2emas s n f o c a d a s , p o r exempla, d e u m a semtensa m a t e m á t i c a caso 8 l i n g u a g e m s e j a e i e n % i f i c a , ow melhas,Como nem s e m p r e a t a r e f a a s e s o l v e r
6
numerica d a i s u r g i r a mApesar d e Codas as Z i n g u a g e n s s e r e m c r i a d a s p a r a ter a p l i c a -
ç g e s em d e t e r m i n e d a s & m a s
&
sempre p o a s ~ v e 3 . resolves p x o b f s m a s q u e es-t e j a m f a s e d o campo pasa a s q u a i s f o r a m c r i a d e s , Mestes casas geram e&-
dágos i n a f i c i s n t e s , alem d e distanciar de l i n g u a g e m n a l u r a l da p r a b l e - me, d a s s n c o r a j ã n d a aos progmmadores usá-las f o r a d e sua Grea, E x e m p l e r
sesalver em p m b l e m a n&rnea'ico u s a n d o tI5P o u xesofwer um problema d e lista usanda FQRTRAM o i d e a l seria u m a l i n g u a g e m g e r a l q u e s e ç o l v e s s e ~ t o d a s a s a p l i c a G B a s . Sab
e
ponto d e v i s t a teórico6
p l e n a m e n t e p a ~ s í v s lda ponta d e vista pr6tico
e
i n v i i v e l , Outra s o l u ç ã o s e r i a umali2
guagtm pasa c a d a tipo d e apliceçao. Se a númeso d e u â u a r i o s for p e q u e n o sm cede aplicação, a saluç&
6
a n t i - e c e n & i c a , Ume s o l q G o v i b a l e, em certas c a s o s , chega ser até econ6mica6
a partir d e uma l i n g u a g e m base estender seus comandos para cada aplicação, Istoe
p a s ç ~ v a l u s a n d o u m pracsssader d e rotinas rnacra ( ~ ~ ^ @ n d i c e A ) . Deste modo poderemast e r
urrri.ib i c a l i n g u a g e m base, e v á r i o s c o n j u n t o s d e e x t e n u ~ e s p r o j e t a d a s p a r a
de-kerminadas t a r s f a s , Assim senda cada usuário c r i a r novos coma'
guage Indepsndent Macrs ~ r a c e s s o r ] desenualvida por M a l t e , V,@. n a
Uni-
- v e r s b t y d a Calorada ./.i/ e 0
EL/?
(Ffaer0 banguegs/P) d e ç e n v a à v i d e p o rB r a w n , J, na U n i v s r s i t y Iqathsmatical Laboratory CambrPdge
/ 6 / ,
5Go gra- csssadores para e s t e n d e r linguagens,3 - 1 , ~ e f i n i ç ã s Formal dos Elemsntas de binsuaaam
Rlaç d e f i n i g õ e ~ dos comandos EFM,. p a r a a u x i l l ã a c sua e a n c e i t u - aGZo, usaremos a meta-linguagem 2%F / S 0 - 2 l f .
A q u i definiremos a s eleaienlçls d a I i n g u a g s n mais tosadas na d a correr d e s t a t r a b a l h e ,
&armo) : :: <fator> (termo) (op-wult) <fator) < f a t o r > : :i < i d e n t i f ) \ @ g ) (((expressão>)
( i d e n t i f > : :, /\letra> Q d e n t i f ) .(klstra>
1
(idantif) ( d l c j i t o s )<;I?) : :r (digito>(
(na2
Q Z g i t o >(expceosau b o o l e s n a ) :: ( a x p r e s s ~ o ) (cp-bool). ( e x p r e s n ~ ò 7
Cl n u l o
6
r e p r e s e n t a d a p e l o ç&ibalorgwfi,
enquanto que e bran-<&atina nacro) : :ZT lidentif}
e.
M A C A 0 . @ i s t a d a p a r e m . f o r m a i s ><corpo do m a c r o ) ENDP:
(lista d e perani. f o r m a i s ) :
:=
forntnl)1
( l i s t a d e peran.for-*
mais), ( p a r a m . formel). G e r e m . ~ o r m a i )
:;=
& <identif)(corpo ds rnacro)
::=(é
o c o n j u n t o dos comandos d e s c r i t o s n e s t e C R -p i t u l o )
As
p a l a v r a s rcssrvsdae HACRQ rs E R D H ~ i & d e l i n i i t a d o r s s do corpo da r o t i n a .Fermata de p r i m e i r o cartzo
Os brancos c o n t i d a s n a lista d e p a r & s t r a s f o r m a i s ser& s u b g t i t u i d a s por nulo. Exemplo:
ENDERE
kf
RACROld
&A, &ELEM, &ACHA, b56
e q u i v a l e n t e aE N D E R E
!&#
RACRO & A , &ELEW, &Ald
C bkf
HA, 8-5ld
e q u i v a l e a um b r a n c oO ú l t i m a certoo d a r o t i n a tem a s e g u i n t e fsrmãto:
EMDM
é
o d e l i m i t a d a r òa f i m d o macroDevemas s a l i e n t a r q u e c a d a camando d e v e e s t a r c o n t i d o em um r e g i s t r o ,
0s cemandcs da sub-sistema
E M A
podem ser cbessHfieados em%,e,
glupOS:U
1, Os que c o n t r o l e m as expansassg
2. 0s d e m a n u t s n S ã o e c o n s u l t e das Bibliotecas d e blaeros; 3 . Os v g i i d a s no sistema S O S ,
G R U P O
1 C a n s u l t a a , EXTEWNQ E i b l i o t a c a . L I % T E ~ a n u t o n ~ ã a d e B i b l i o t e c a.
APAGUE , CUkWRIPlABs cnmandos do EHA podam ser d e e s i t a s e o m ~ .
i m p o r t a n t e frisar q u e as c o m a n d e s da g r u p o I s 8 sno váli- d o s d e n t r o d a s r o t i n a s m a c r o s , c o m a x c s G z s das chamadas d e macrus, q u e sie v i h i d a s tento d e n t r o como f o z a das r a t à n a â , ( ~ n ã o observaçêo causa-
rá
~ 3 x 3 s e m g n t i c o )-
O
swbsis%ems EfqA, a d m i t e d o i s t ã p a s d e r ó t u l a : u m d e Assem-
b l e rTE
d e s e s i t o em/7/
q u e p o d e s e z m o d i f i c a d o dux-ante w expansão d o uma macso, i s t oG ,
pode f a z e r p a x t e dos g a r & e t r o â farmais d e uma r o t i - na macro, e o s &uloERA
q u e 5% c a r a c t e s i t a d a s p a r :b. &o podem ser m o d i f i c a d a s d u r a n t e u m a e x p a n s g e ;
2 . Fadem s e r c o l o c a d o s sm qualquer e c l u n a d e c a r t a s ;
3 , 580 f a r m a d o s p a r um i d e n t i f i c a d a s s e g u i d o d e u m earaeter reservado do s u b s i s t e m a ERA;
4 , Podem ser nulas;
5, 5ãa t r a n s p a r e n t e s e x p a n s 8 0 , isto
6
nas
censtem da ar-quivo d e seáda.
3 , 3 , 3 , E h a m a d a de r o t i n a m e c g
E s t e comando i n v o c a a c x p a n s 8 n do c o r p o d a m w r a em um pro- grama, s a g u i n d w a s rr gsas d e f i n i 6 e s n a s rnacsos a ntzrem e x p a n d i d a s i
(chameda d e r o f lna) : : ( r ó t u l 6 3 / b n % /noara d a macra) (bs
/ \
?
( l i s t a d e porêm. a t u e i s ) ( c o n : e n t á r i o s )
A
Gista
d e param. a t u a i s 3 : : - atual)i
('lista d e p a* iC ram. a t u a i s ) (paraai. a t u a l > ,* (param. atual, : : i < i d e n t i f 2 Formata d a Comanda R s ç t r a r e m o s a t r v é s do e x e m p l o abaixo a y e n a x a l i d e d e do asa d a s chamadas das rotinas na E P A B
S e j a a s e g u i n t ~ s o t ã n a meexo
S u p o n h a m o s a s e g u i n t e chemede. Ex P 3 q19q2,qJ, ...,qk, onda . q . q 3 . " . 9 q k
SBO
O S p a r & e t r o s atuein. Este chamada s e r p a p r o c e s s a d aql. 2
o b s a r v a n d o a s s e g u i n t e s regras: o per&mmtrrã a b a 1 q 1' s u b s t i t u i r a n o c o r p o da nacro, o f o r m a l pl, o q 2 ao p Z r a assim s u c e s s i v a m e n t e , isto
6,
a
S e n d o n e k o n6rnero d a p a r a m e t r o formais e a t u a i s , rsspecti- vamente, causar; a s s e g u i n t e s i m p l i ç a r ; a e s no usa do conando.
1. Se
k)
n o s k-n par&rnetxos formais a p a r t i r d e q s ~ r ã oiq
~+1, n a r a d a s ,
2. 5 e kC,n sarga g e r a d o s n-k par$motros a t u a i s nulos.
E x e m p l a 4
E X P 4
RACRC &A,&.B,&C, &B, &E~:o validas â s s e g u i n t e s chamadas:
Como já f o i m o s t r a d o , a ERA s u b s t i t u i os par&tetras ãtueis em branco por n u h , ~ e i t s r e m ~ s :
a )
k
n s e s e eliminado o quinto garamatra; bj Do p r i m e i r o ao q u i n t o serão nulos; c ) Do segundo ao quinto serão nulos; d ) O segundo e o quinto sesga nulos;Este coitiande concakena q u a l q u e r c a d e i a d e c ã r a c t e r e s com um p a r h e t r o formal ou vice-versa,
D d s l i r n i t a r l e r
"
6
t r a n s p a r e n t eè
expansão, isto B,n& cang $ a d a qryuivo d e s a l d e , Formato do comando-
G s d e i a d e c a r a--
E x e m p l oRB comando ( i ) denas como delimitedores n a p r i m e i r a pas$metrol formal o ponta t z , n e no s e g u n d o o b r a n c a , e p r o d u z o comande ( I ] .
No comanda
(ii), e
deiimitador6
o branco e gereo
comsnds(XI1-
No comanda(iiã)
s d e l i m i t a d a r6
e ponta e produz ( f f 1)-3-3.5, Comanda d o transf er&c:ia
-
I.F1,
A e x p r e s ã U u bsoleana d e v e e s t a c o n t i d a e n t r e p a r e n t e s e s , se W
o r e s u l t a d a de e x p r e s s ã e b o o l e a n a f o r v e r d e e i r e t r a n s f e r e o c x p a n s a a de rotina p a r a B r ó t u l o 6$i8, que s e j a i g u o 3 iao s & t c i l o i n d i c a d o na c o a ~ a n d o , 0 dománia d c ação de t r a n s f c r & w í a
&
restrita a macro que cantem B c o m a n d o e A fiz0 sxãsk&?c.i.a do r á t u l o d e ~rsnsfcr&cia, o eontre- l e d e r o t i n a psssará p a r a o pr6xima comanda d e p a i s d a t e r d a d a u m a a d v e r tencia.1
7
d i f e r e n t e O p e r a d o r a s ,{ mejner q u e b o o l e s n a( 7
maior queDevemos s a l i e n t a r que a s ~ b s i s t e ~ i a - E M A t e m u m limitador d e ciclol ç u j a v a l o r máximo
6
i g u a l a 58, p a r a c a d a s a t i n a macso, Ao atin- gir o m á x i m o s e r e d a d o u m a a d v e r t & s i a , s e expans& d a macro6
s u p r i m i - da passando a o comando s e g u i n t e;
c h a m a d a rnacsa.A
f i n a l i d a d e d e s t e limitaS&a6
p a r ã q u e não h a j a c i c k e s 3n- Pànitaa, q u e consumise m u i t o t e m p o d e psocessernento inLti.1,Caço a u s u á r i o necessita d e m a i s d c 5 0 c i c l o s em d s t a r m i n a -
F o r m a t o d e comando
@ . 3 , ? . Camânefo d e a t r i b u i % & LET
LET
6
um comendo d e ã % r i b u i G & o n d e o i d e n t i f i c a d a r do Iade esquasdo c a comamdo a r i t m é t i c o , rsccbe o s r e s u l t a d o s das a p s r w õ s s , eg u a r d s numa % & e l a d e ~ a s i 6 v e l descrito arn 2 , 3 , 9 ,
(cuniando L E T ) ~ : : (bn) {rótulo EMA) L E T { ~ ~ ) (comando a r i t . ) {bs) ( c o m e n t á r i o
>
F o r r n a t o de c o m a n d o
E x e m p l o :
e )
LET
( A s A q B-
B g 9 . 2-
5 ) / ( A - 8 ) )3 , 3 , 8 . Comando NOP
É o comande q u e nza a l t e x a a 1 Q g i c a d a expansGo,serve p a r e 9
e ,
inserir rótulo,
Formato do comanda
Tadas a s variáveis de çubsisterna são i n i c i e l i z a d a s cem ts- ro.
H;
dois t i p o s d e v a r i a v e i s :G L O B A I S
eLOCAIS.
As v e ~ i & v e i s
G L O B A I S
g u a r d a m seus v a l o r e s d u r a n t e t o d a a t3xpansao do programa, podendo, poriarito asrvisr d e trarismisç& detro e n t r a es macanas q u e e o n s l i t u e a o programa, &a definidos peJ.o.usu6- rio d e a c o r d a com R p a r a g r a f o 2 . 3 , l . Q .
Enquanto q u e as variáveis
LOCAIS
s ó g u a r d a m o s e u v a l o r d l r a n t e o t e m p o q u e e r o t i n a nincrs está a t i v a , isto6 ,
e cada chamada d e r o t i n a tedas a s v a r i á v a i sL O C A I S
s z a r e i n i c i a l i z a d a s cem z o s a e x e m p l e no a p z n d i c s B ,k
! u m c a m a n d a q u e c u f o c a na t a b e l e d e v a r i á v e i s globaisf
N
( T v G L ) a s v a r i ~ v e i s q u e g u a r d s s a o seu valor ap&a a ~ C r m i n e d â e x p a n ç a a da inacra.
E s t e c o m a n d a d e v e ser c a l o c a d o na p r i m e i r a r o t i n a d a programa a u n a p r i m e i r a rotina em q u e a p a r e ç e u m a d a s v e r â a v e i s q u e c o n s t ~ d a l í g t o d e v e s i i v e i s g l o b a i s . (Exemplo: V i d e a a p A n d i c e B ) ,
É a comanda que d i a e s t a d a da p r o ç r a m a e x p a n s o r a t é a q u e l e ponto q u e f o i p s a e a s s e d o , É usado cama d a p u r a d o r d o p r o g r a m a e rsçultado n a s s e g u i n t e s i n f a r m e s ~ e ã . 1.
f
~ i s e t 6 r i . o d a s Mãcras; 2.) T a b e l a d e d e f i n i ç ã o de Maera5 3.) T a b e l a de v a r i á v e i s l o c a i s ; 4.) Tabela de v a r i á v e i s globais; 5,)inicio
da 6 l t i m e blaca d e i n f o r m a S o e s a e n t r a s na p i - l h a ;6,)
F i l h a d e b l o c o s d e i n f a s m e ç ~ e a . rU As t a b e l a s s e r a o d e t a l h a d a s n o c a p í t u l o s a b r e €lrganlzaçâa d e T a b e l a s no ERA,E s t e camando s u b s t i t u i u m i d e n t i f i c a d o r galo seu v a l o r n&mer.ics.
S B
n&3 f ~ r a t r i b u i d a newhum v a l o r ao i d e n t i f i c a d o r o r e s u l t a - d o se& i g u a l a z e r s ,Exemplo
Supanhames K como e v a l o r i g u a l e b e n t ã o fij e
i )
$ices&3 , & ~ e n u t e n ç & e Consultes a s Bibliatecas
A nenutanF80 a a consulte das b i b l i o t e c a s
sãs
faites etraves de comandos q u e criam, apagam, gravam, comprimem, listsm rotinas conti- das nas bibfiatecas, fistam a d i r e t 6 r i o dasr o t i n a s ,
au carregam r045-
M
nas n o programa em e x p s n s a o ,
Coa sxceçee du comando que eersegg rstines macros na grogre- m e e ser expandida, os demais sso feitas s t r s v 6 s d e u t á l i t 6 r i s que s e
-
Q s u b s i s t e m a
ERA
d i s p a e d e d u a s b i b l i o t e c a s d e macras, para c o n s u l t a : ume p r i m i t i v a do u s u á r i o . e e o u t r a do s l s t e a e . Esta t e r ; e c gss Zivse p a r a tados as u ç u a r l o s ,
3.4,Z. Comando
E X T E R N Q
Este comanda c a r r e g a d e uma das b i b l i a % s c a s , ne programa ?
que est6 seada e x p a n d i d a , a s s a l i n a s r e q u e x i d a s ,
<comendo .EXTERNO> : :=(bn> .EXTERNO ( <lista d a nomes d e r o t i n a s
>
) (comantPrio)Q i s t a de n o m e da r o t i n a s ) ::i <nome d e r o t i n a ) (lista de
nomqf d e rotina) <nome d e r o t i n a >
I n i c l e l ~ e n t e pesquisado a b i b l i o t e c a do usu&r.io. &&I o b t e s d o sucesso, p e s q u i s a a do sistema, Caso venha a o b t e r nove i n s u c s ç s a e m i t e uma mensagem d e e d v e s t & x i a ,
N e s t e c a p i t u l a deçcrevemoç as t a b e l a s u s a d a s na s u b s i s t e m a ERA, suas c a s n ç t e r ~ s t i c a a e s u a s f u n ç e e s . Bevemos s a l i e n t a r i n i c f a l r n e n - t e , que t o d a s a s t a b e l a s s ã o a l o e a d a s d i n a m i c a m e n t e , isto
é,
v a r i a n d o q temenho e m f u n ç ã o d o p r o g r a m a e s e r e x p a n d i d a . ~ e r ã a a t i v a d a s ~ n q u a n t a C" d u r a r s e x p a n s ã o e r e m o v i d a s assim q u e a c a b a r t o d a s a s e x p a n s s e s p e l a sisttrma. 4,2. T a b e l a q u e g u a r d a o s p a s a m e t r o s f o r m a i s ( A L A ) E s t a t a b s l e g u a r d e o s psr&mstras f o r m a i s , (como j a f o i v i s % % estes p a r a m a t r o s , e n t r a m no s i s t e m a atrav&s do p r i m e i r o comando d a r o t i n a m e c s a ) , e s e r á u s a d a p o s t s r i a r m e n t e na c o d i f i ~ a ~ a o dos comandas, o u m e l h o r n a s u b s t i t u i ç ã o d o a pnrgmctros formais dos d e m e i s comandos, pela s e u i n d i c e n a tabela, s e g u i d o do s:mbolo,E s t a ~ e d i f i c a ~ e o
6
f e i t a p z r a t o r n a r meis f 6 c i l a substitui-w
~ s o das v a r i g v e i s a t u a i s na rotina macra.
A
t a b e l a ALA6
d e s t r u i d a d e - p a i s d a c o d i f i e a ~ ã a da macso,Exemplo
1
1
1
tabele que g u a r d a'
E s t e tabela
6
o d i r e t á r i a das macsas e x i s t e n t e s no pregxame, Guarda .E seus r ã g i s t r o s e s t r u t u r a s . com a nome da mecro, a n t h e r o dapar&tetros formais d e rnacro e sua posiy% d e n t r o d a t a b e l e d e d e f i n i ç % d e mscro (TMH), c u j a t a b e l a s a r a e x p o s t a n e s t e ç a p l t u l o ,
Fig,
3-
~ s t r u t u r a dos R e g i s t r o s da TNMSeu
a c e s s o&
feita s a q u s n e i a l m e n t a4.4, TABELA
DE
~ I E F I N I L Ã ODE
MACRO (oP4)1 . S u b s t i t u i . r a s p a r & e t s o s fesrneis p e l o simbolo s e g u i d o d e s e u i n d i e e na t a b e l a A L A ;
2.PIasca a s c o m a n d o s
IF
e LET cam o s i m b a l o v a f i m d e fg c i l i t a r s u a interpretaç% n a hora de exacuças;3.Colocas a s e x p r e s s õ e s b o o l e e n a s e a & m & t i c s ç n a f o r m a pa- l a n e s e p e s f i x a d a / 2 2 / .
O
a c e s s o f e i t o atrãv&s d a s i n f a s m a g a e s contido em TNM, au s e j a , a c e s s o d i r e t o , E x e m p l o : s e j a m a s rnacras:A p a r t i r das r o t i n a s rnaeros geramos a s ç d g u i n t ~ s t e b e l a s :
TAB. 2
-
TabeZê d e d s f i n i S Q e s d e Macraç.a
!%IRA M C R O A R G 9 , AR62, AR63, LRW#A LAR L R H # ~ A3 EOUPIBJI REPETE EACRQ M,
N
3
LET(I,#I,=,
OUT/
q t I P t9
L f 3 ( I 9 I , 3 5 z 9 ) I F (1,#2,(~) AGil
I F(H,u,),)
F X Ra
L E T ( H 9 ~ : , 1 . + , = . ) CAL DELAYQ
I F ( H J , < .1
A G O TO b NUF EiuDF4 TESTE . HWCRU R A R LDE LEAEN
DF! - -T a b e l e d e Noms d e Hãcro
(TNH)
N o t e q u e n a t a b e l e 2 a simbolo s e g u i d o d e u m nómera sgo &a par8metsos formais a a d i f i c a d o ç , onda o numero
@
a
sua ardem na l i s t s d eE*
per&xetros f e ~ m a b s , Os comandos
fF
e LET, sues f a m a s c o d i f i e a d s s , saa 3 n i c i a l i z t a d a s p o r " a w , a a expressnc e r l ~ m @ t i c a a u b s o l e a n e6
colocadaq na f o r m a p o h n e s â p o s f i x ~ d a e n t r e p a r k t e s a â , com a f i n a l i d a d e d e sim- plificar e a suas a n & . i s e s , d u r a n t e a s expans&.m,Observamas que n a t a b e l a não cansta o s r ó t u l o s FfENA" porque d u r a n t e s c o d i f i ~ a ~ ~ o e processador, ao encontrar u m a à n ~ t r u ~ ã o cata um s á t u l a EEA, o comando
6
g u a r d a d a em TBH s o r á t u l a6
marcado com a sim- bola"
" *
seguido do indiee de nome d a rotina em TDB, s celocedo na t a - b e l a de v a r i 6 v e i s g l e b e i s , ( R a i s d e t a l h e s daremos no p a r & r e f a s e g u i n t dO Expansor d e Resso A s ç e m b l e r tem duas t a b e l a s d e v a r i á v e i s : u m a das v a a i ~ v e i s lecais
TBS
e outra d e v a r i ; v e i s g l o b a i s , Os registros sae constitu3dos d a s seguintes e s t r u t u r a s :e) estrutura das registros d a s variáveis locais h ) estsutura dos r s y i s t r o s d a s variaueis glabais.
FIG.4 a ) E s t r u t u r a d o s r e g i s t r o s TABS h ) E s t r u t u r a d o s r e g i s t r o s TVGL o n d e NOME
é
o i d e n t i f i c a d o r d a v a r i a v e l , VALORé
o v a l o r n ú m e r i c o-
a t r i b u i d o a v a r i á v e l e PROXé
o h d i c e de, e n c a d e i a m e n t o d a v a r i á v e l q u e t e n h a o mesmo " h a s h " . (Mais d e t a l h e s no d e c o r r e r d e s t e c a p z t u i o 1. A t a b e l a d e v a r i á v e i s l o c a i s (TABS)é
a p a g a d a t o d a s a s ve- z e s q u e a r o t i n a6
d e s a t i v a d a d o programa d e e x p a n s ã o , e n q u a n t o q u e a t a b e l a d e v a r i á v e i s g l o b a i s TVGLsó
6
a p a g a d a s quando o EMA r e t o r-
n a o c o n t r o l e a o n ú c l e o c e n t r a l do SOS. Uma p a r t i c u l a r i d a d e d a TVGLe
q u e g u a r d a ,além
d a s v a r i á-
v e i s g l o b a i s , o s r ó t u l o s EMA d e p o i s d e c o d i f i c a d o s , s e n d o q u e , n o s campos r e s e r v a d o s a o s v a l o r e s a t r i b u i d o s a s v a r i á v e i s , s ã o c o l o c a-
d o s o s T n d i c e s em TDM, c o r r e s p o n d e n t e s a o s comandos q u e o s c o n t i n h a m . A o r g a n i z a ç ã o d a s t a b e l a s d e v a r i a v e i s l o c a i s e g l o-
b a i s f o r a m i m p l e m e n t a d a s s e g u n d o a s t é c n i c a s " S c a t t e r I n d e x T a b l e"
que s e g u n d o a l i t e r a t u r a ,é
uma d a s m a i s e f i c i e n t e s , / 8 / / 9 / / 1 0 /.
B a s e i a - s e na g e r a ç ã o d a s c h a v e s e m f u n ç ã o d o s s?mbolos q u e não en- t r a r n a t a b e l a , o n d e
é
usa'da uma f u n ç ã o Hash / l l / / 1 2 / .E s t a s c h a v e s sau associadas a u m endeaego e g u a r d a d a s numa " f l a s h T a b l e f l , ~ e r v i r ã o cama a p o n t a d o s o s d e c a b e ç a s d e listas qus s e e~ csntram em outra LabePa c h a m a d a tabala d e v a r 5 á v e i s , c u j a s r e g i s t r a s c a n t é m campas para t r i b u t o s das v a r i j v e i s e um campa d e encadeismento , U m autro importante pãxâmetra
e
fazer u m a p o n t a d o s para a d t i m o segiç-$ E O colocada na tabela,
COESULTA A
TABELA
---
Suponhamos que dasejassemos inserir, c o p i a r , au a l t e r a r uma determinada v e s i á v e l ,
T n i c i a f m a n t e , a p l i c a n d o esta v a r i g v e l e u m a funçao "hesh"
q u i s ã s e q u e n c í a l na flhash t e b l e t t v e r i f i c a s & m s s s e s chave consCa ou
A
chave c o n s t a da t a b e l a , e n t g o ssLe f a r n e c ~ a a p o n t a d o r da c a h e ~ s de l i s t a pesquisada na tabela d e s f m b a f c , 5 a 3 informas8a nãac o n s t e do p r i m e i r a ela da l i s t a , houve u m a colis&, ~ n t & ersnaultarsmos o campa d e encadeamantéi q u e c a n t t k ts próximo elarnento que Lam a mesma hash.
Se
nga obtivermos sucesso houve outra colisaa, ~ n t & seguiremos s e c e ã s í v e a e n t e e % ; encontrar o s i m b e l o p e s q u i s a d a a u u m z e r o na campo d e eneadeementa, onde tomamos a decisaa e p m p r i a d a p a r a o eventa.A chave não conste d e "Rash tablen, Se f o r urna i ç e s G a a e n t ã o eolaearemas as v a s i & v e i a com s e u s a t r i b u t o s nq p r á m s i r s r e g i s t r a
Ibvre
de t a b e l e d e w a r i a v ~ i s , D e p o i s atua3izeremea e !?Mash T a b l e w , g u a r d a n d o 9HASR TABLE
Com e s s a a s g e n i z e ç e a , B numero d e c ~ r n ~ a r a ~ â a para encontrar uma v ~ r i i v e l
6
s e m p r e menor du que q u a l q u e r o u t r o t i p o c e n v s n c i a n a l , Ea m é d i o6
d a d o p o r :N
-
NRP5
6:
----
H
é
B n&mero d e comgareç&s m e d i a ;c
NRfS
6
o n&xtero d e r e g i s t r o s na t a b e l a de v a r i á v e i sN
&
o &mero d e chaves n a "hask t a b L e R ,K
Como vemos
w
m e d i a d e çomparaç&m6
i n v e s ç a m e n % e propaeienal ao n6mero d e c h a v s s da fvhash t s b l c v f ,D&
o sucesso depende da funç& 'hãshF1 usada, /12/ /11/,O!
;"
)
* o r- oa X
al
B sub sistema r e c e b e o programa a ser e x p a n d i d a do a r q u i v a criado p e l o S Ú S , Codifica as rotinas macros c o n t i d a s no programa e a a q u e ç& r e f e r e m e i a d a s p e l e programa n a b i b l i o t e c a , D e p o i s celacâ t o d a s *
na t a b e l a d e dcfíniçges d e meem ( P D R ) ,
Em
s e g u i d a s e r i iniciada a e x p a n s & , que b a s i c a m e n t eé
çonst' t u i d a das seguintes reconhecedores:1) R e c o n h e c e d o r d e r o t i n a s macrop
2 ) Recanhecedar d e comandas EMA;
3) Rccenhecador e e x e e u t o r das chamadâs maceas;
4 )
Consultar de b i b l i o t e c a d e MaeragN
5 ) A r q u i v o d e programa após a e x p a n s a o ,
Ao e n c a n t s e r ã p a l a v r a r e s e r v a d a RACRO, em u m , s e g i s t r u d e en
-
tradâ, a s t e
6
colocado TDN s em ~ e g u i d a c s b o c a no d i s e t á r i o TNR o nome,
s u a p o s i ç ã o e m TDM e númera d e par&netses f o r m a i ç . Como tambem guarden a
t a b e l a ALA o s p a r & a t r o s f o r m a i s ,5 , 3 . Reconhece* dos Comandos ERA
I n i c i d m m t e analise o s comandus e verifica s e está w i n t e t i c a - m e n t e c o r r e t a . Depais p r o c e s s e a codificaçao que consta dos s e g u i n t ~ s
*
passos:e ) Guarda B rótulo
ERA
n a t a b e l a d e v a r i á v e i s globais:b ) Substitui o s p e s & e t s e s formais pelo simbalo seguido da
h-
d i c e da par&elre n a tabele N A , q u e cha,arernos, dapois d ecabificado, d e p a . r k e t r o f o r m a l c x d í f i c ã d o j
c ] Os comandos ERA q u e t e n h a m expressões aritmética o u b a o à c ~
na;
a s
õ x p r c s s B e s s& c e l o c a d a a na forma p o l o n e s a p e s f i x a - da,e
acrescentado ao i n í c i o d e comanda a s i m b o l o f 3 , ( B s - vs-se r e s s a l t a r q u e esta e d i S b&
para d i m i n u i r a tempo d e. p z ~ e e s s a m e n t a caso o cremerido e s t e j a com erro sem%tntica);
d ) Coloca em TDH o s c o m a n d o s c o d i f i c a d a s ,
Este
r e c o n h e c e d e r ao encontrar u m a c h a m a d a da retina n a c r o v 2 s i f i c a s e a aesma c o n s t a ou nao 6a d i r e t ó r l o TNM. S e h z o c o n s t a6
ernitf d a u m a g d v e r t e n c i a e v o l t a a ler o comando. Ss c o n s t a , e n t ã o6
gerado uma p i l h a ds hlacas ds %nfarinaç;es queir6
g e r e r i s i a s a cxpansGo, Ceda b l o c o cant6m:a ) R i n d i c e d e i n i c i a do <imo blsco que s n t r a u na p i l h a ; b )
O
f n d i c e da Gltima i n s t r u G & e x e c u t a d a e m TDR;c ) Uma lista dos parâmetsms atuais d a chamada da r o t i n a ,
L )
o item f@afl ele contém 2 ) C â d a blaco do p r i m e i r a blace d i f e r e das d e m a i s p a r q u e " f l a g " de p i l h a v a z i a , c o s m s p s n d s a u m a chamada,Ae aparecer uma chamada
6
c r i a d o u m b l a c c ~ d e i n f a r m a ç g e s como ei descrito,Se
d u r a n t e a expansão for e n c o n t r a d a uma segunda chamada, este bloco s e r i guaxdade na p i l h a , n a s c o n d i G ã e s em que s e e n c o n t r a , sM
6
criada um nova bloco, que passe a g s r & c i a r e expansao e assim suces- s i v a m e n t e a t 6 e n c o n t r a r B f i m da Y l t i m a r o t i n a que este sendo e x p a n d i d aTestamos e n t b se
6
s 61t~rno b l a c ~ , ( v i d e n e s t e par&grafa o b s e r v a G & 1)' QE f o r terminaremos a expanç%, c a ç o c o n t r a r i a , d e s e m p i l h a m a s um blocets continuamos B ~ ~ B C S S Ç O a t 6 a páãhe ficar vazia,
CsnceituaPmsnte e s t e t r a t a w s n l o
6
c o n h e c i d a cama L I F R ( L s s t -Bn
f k r s t - o u t ) , su s e j a , o ;ltima a e n t r a s6
a p r i m e i r a a s a i r , Para d a r melhor i d & i a de como f u n c i o n e a p i l h a de b l o c o , vamos mostrar em u~FACT
NWP
O
r e c o n h e c e d o r d e chamada d e r o t i n a macros ao encantrar o e 2mando ,FACT 3 s e s i criado o p s i m e l r o blace d e infarmsçDes,(~er q u e s t h ' puramente d i d á t i c a e p i l h a es& com o s e n t i d o i n v e r s a d e m a l , B &.tima b h c a a entrar
6
a quet e m
o m a i o r i n d i c e na pilhsl.TAB, 6
-
P i l h a d e ~ n f o x r n e ~ D ~ s -1 V L s g " que i n u i c a p i l h a v a z i a 3 % n d l c e dos comandas e f e t u a d a s emT B M
3 ~ a r i á v e l d e primeira chamada--
1 f n d á e a do i n i c i a d a uXt,bloc, a e n t , na p i l h a 4 , 7 , 8 , 9 , 3 t l i n d i c e dos comandos e f e t u a d o s emV B M
3 ~ a r f h v e l d a s e g u n d ã chamada e n t , n a p i l h a 6,9,8,9,18 f n d i c e das camandos e f e t u a d a s emTBM
2 ~ a r i a v e l da t e r c e i r a chamada 7 f n d i c e do i n i c , do u l t , b h e , a e n t . n e p i l h a 6,7,0,9,m i n d á c e das comandos e f e t u a d o sL
~ a r i a v s l da q u a r t a chamada -L.comentarias
--
í n d i c e d a i n c e d o ult, e e n t . na p i l h ah d i c e
dos camandos e f e - t u ã d o s e mTDM
~ a r i & e ~ da q u i n t a chamj bloc. e ent. na p i l h affbaervande s p i l h a natamos q u e a s thtirms comandos e x e c u t a d o s em TDM em ceda b l o c a sea i g u a i s e 10, ( d e v i d o e l Ú g i c a da expens;ol cem
e x c e s 8 0 do primeira e do s e x t o . U primeira est; fora d a recursao, e n q u a 2
%o que B s e x t a a lagiea f e z sair d a f @ l o o p " ao e n c o n t r a r E R D H no comando
%i?-. l a m e ç a então d e s e m p i l h o o d o o bleec em q u e s t % , e x e c u t a a s comandos ale c i 2 g , v o l t a n d a a e n c o n t r s r o comande EWBM, ~ n t e o d e s e m p i l h a a blacn 4 0 e segus o p r o c e s s e a n t e r i o r I g u a l m e n t e para o s blocos 3 Q s 29 no l g bloco, o pr6xirno comanda a ser e x e c u t a d a , sexá o
4Q BC
T t F " e no 5 0 encan tramas um EMDH, Termina a e x p a n s ã o da r o t i ~ a , v o f - b e n d s a ler ~ u t r o cama& de no arquive da entrada,5,s-
Consultor de BibliotecaRit
O p s o c e s s a d o r d e r o t i n a s mecros diapeje d e d u a s b i b l i o t e c a s p s ra serem cansubtadaâ: uma d o u s u á r i a e a su%ra de sistema, A do usuarint
6
u m a b i b l i o t e c a p r i v â d s i o n d e somente ele tem @ c e s s o a s informações, en- quanto que n a b i b l i o t e c a do sistema6
livre o a c e s a a para cansulta â t aO e a n ç u l t ~ r d e b i b l i o t e c a
e
e processado^ do comanda ,EXYER-R@. Wa e n c o n t r a r e comando ,EXTERMQ, p a g a c a d a r o t i n a d a l i s t a e werifk c a s e consta $ 9 biblãat&ca d a u s o á s i a ou d a biblioteca de sistema. Se a
p r s y e s i s & f o r v e r d a d e i r a , i s h
e,
a r o t i n a raquesida consta d e uma das b i b l i u % e c e s , e n t ã o c e m e g a o r o t i n a no programa que e s t 6 senda e x p a n d i - da, Caso ç a n t r e s i o , emite u m a edvert&ncla do i n s x i s t ~ n e i a d e l a ,E
a s s i m segue sucessivamente at6 p r o c e s s a 2e
ú l t i m a r o t i n a d a l b ~ t a a Devemos eO
ENA foi i r n p l e m e n t a d s na c o m p u t a d o r BurroughçB
6700 da NCE/1, G r e n d e s recursos d e programeFas para e x e c u t a s o tipo de t r e b a i h e proposta;
Sab s p o n t a d e v i s t a d e progrmnaG~a o P$/P nas dg g r a n d e s f a - cilidades pãra tratamento de d e d o s nãa nhmericoa, p o r a p r e s e n t a r u m e m - j u n t e d e abuift-àn" com e s t s f i m , o q u e
nas
a c o n t e c e cem as o u t r a s lin-
g u a g e n s s x i s t a n t s s a t u a l m e n t e no N C E / U F R J . Dessas facilidades s u r g e um*
i n c o v i n i e n t e , que6
a seu t e m p o d e cornpãlaç&a tendo em vista que, em re- lação a s s i m i l a r e s&
s e l e t i v a m e n t e m i a r , E n t z e t a n t o , neo consideramoscom g r a n d e r s l e v ~ n ç i e e s t e f e t o p o r q u e CI s u b s i s t e m a EMA ficará r e s i d e n t e no disco d e p o i s de compilada.
Senda assim um f a t a r importante
6
o t e m p e d e exeeuçaa. I n i c i - a l m e n & s tentamos, n a literatura e s p e c i a l i z a d a , estudos c o m p a r a t i v s s so- bre ternpa d e execuçao entre a s l i n g u a g e n s e x i s t e n t e s no B/67QO,não abtiwamas sucesso, Partimos pãra m e d i r experimentelmente, e p a r a is-
to, f i z e m o s u m programa em P I / I e outra em A t G O t cúntendo apenas cciriian
-
dos d e a t x i b u à ç o e s , depois d e p r o c e s s a - l o s no B/67QO o b t i v e m o s os s s g u i ~ t e s r e s u l t a d o s :Pela g r 6 f i c o podemos t i r a r a s s e g u i n t e s conclusaes:
1, E x i s t a u m a g r a n d e f l u t u a s a c na tampe d e execução d e
um
h 2xário para o u t r o , Este f a t o acosse em funG& da Amero de jobs qus e s t G o sendo p r a c e s s e d a s n a q u e l e mesmo instante,
2. Em n é d i a , o tempo da e x e r u â ã o nzo difsre s i g n i f i e a t i v a r n e n t e e n t r a e ALGDL e o P1/4.
Ao f i n d da tr3balha v e r i f i c a m a s que o Pb/l do
R/610Bo
Par enquanto na0 s e p a d e fazer l i g a S ; e s com ~s o u t r a s l i n g u a g e n s e x i s t s n t s s noB/67QO,
Exemplo: FORTRANALGOL
e v i c e - v e r s o , Pêra s a n a r e s t a defici-6
e n c i a usamos arquivos a u x i l i a r e s de l i g a ç õ e s do s u b s i s t e ~ s