• Nenhum resultado encontrado

Suporte à reflexão computacional em ambientes de desenvolvimento visual de software

N/A
N/A
Protected

Academic year: 2021

Share "Suporte à reflexão computacional em ambientes de desenvolvimento visual de software"

Copied!
132
0
0

Texto

(1)

Alexandre Vasconcelos Leite

Suporte à reflexão computacional em ambientes de

desenvolvimento visual de software

Fl or i anópol i s - S C

2001

(2)

UNIVERSIDADE FEDERAL DE SANTA CATARINA

PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA

COMPUTAÇÃO

Alexandre Vasconcelos Leite

Suporte à reflexão computacional em ambientes de

desenvolvimento visual de software

D is s e rta ç ã o s u b m e t i d a à U n iv e r s id a d e F e d e r a l d e S a n t a C a ta r in a c o m o p a r te d o s r e q u is ito s p a r a a o b t e n ç ã o d o g r a u d e M e s t r e e m C iê n c ia d a C o m p u t a ç ã o .

Luiz Carlos Zancanella

(o r ie n ta d o r )

(3)

Suporte à reflexão computacional em ambientes de

desenvoivimento visuaí de software

Alexandre Vasconcelos Leite

Esta Dissertação foi julgada adequada para a obtenção do título de Mestre em Ciência

da Computação, Área de Concentração Sistemas de Computação, e aprovada em sua

forma final, pelo Programa de Pós-graduaéão em Ciência da Computação,

Em^arlos^ancanella, Dr.

(Orientador)

Banca Examinadora

Fetííando À Ostuni Gauthier, Dr.

[

(Coordenado

-/uizparlqS'Zancanella, Dr.

(Presidente)

(4)

A m in h a esp o sa , M a risa , e aos filh os, L ucas c M a r ia n a , pelo in cen tiv o, p a ciên cia , co la b o ra çã o , com p reen sã o , carin h o , a m o r e p or fazerem p arte da

(5)

A

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

A o c o r p o d o c e n t e d o C P G C C , q u e tive o p riv ilé g io d e c o n h e c e r , e m especial ao o r ie n ta d o r , p r o f e s s o r L u iz C a rlo s Z a n c a n e lla , p o r te r a b r a ç a d o e s ta c a u s a e c o m p a r t i l h a d o se u c o n h e c i m e n t o , e ao p r o f e s s o r R ic a rd o P e re ira e Silva, pelas valiosas s u g e s tõ e s e a te n ç ã o ;

a o s co le g a s d a D iv is ã o d e E n s in o d e In fo r m á tic a ( D E I n f o ) d o C o lé g io T é c n ic o Industrial Prof. M á rio A lquali (C T I). F u n d a ç ã o U n iv e r s id a d e F ed eral d o Rio G r a n d e ( F U R G ) , e t a m b é m à C A P E S p elo s u p o r t e à re a lização d e s te c u rs o ;

fin a lm e n te , a g r a d e c i m e n t o s e sp eciais ao a m ig o A le s s a n d r o D u a r t e d e M o ra e s, e x ím io p ro je tis ta d e s o f tw a r e , p e la a j u d a e a te n ç ã o , e ao p r o f e s s o r e a m ig o M a u r o N ic o la P ó v o a s , p e la re v isã o d o texto.

(6)

R

e s u m o U m a e v o lu ç ã o d a in d ú s tr ia d o s o f tw a r e , e m relação às fe rr a m e n ta s d is p o n ív e is p a r a a p r o g r a m a ç ã o , d e u - s e c o m o s u r g i m e n t o d o s a m b ie n te s d e d e s e n v o l v i m e n t o visual, q u e c o m b i n a m r e c u r s o s te x tu a is ( l in g u a g e n s ) e g rá fic o s (íc o n e s e ja n e l a s ) p a r a a c o n f e c ç ã o d e so ftw are. O p r o b l e m a s u r g e q u a n d o o a m b i e n t e n ã o o fe r e c e c o n d iç õ e s su fic ie n te s p a r a q u e se p r o m o v a m e x t e n s õ e s à lin g u a g e m , a p r e s e n t a n d o - s e c o m o u m a e s t r u t u r a f e c h a d a d e fo rm a q u e s u a utilização seja ao estilo “ caixa p r e t a ” . C o m o esses a m b ie n te s d is p o n ib iliz a m c o m p o n e n t e s p a r a a c o n f e c ç ã o d e a p lic a ç õ es , n o r m a l m e n t e p e r m i t e m a p e n a s q u e f u n c io n a lid a d e s se ja m e s te n d id a s e m f o r m a d e n o v o s c o m p o n e n te s .

E s t e tra b a lh o a p r e s e n t a u m a p r o p o s t a d e s u p o r t e à re fle x ã o c o m p u t a c i o n a l p a r a os a m b ie n te s visuais e o

OPMOP,

c o m o u m a i m p le m e n ta ç ã o d e s ta p ro p o s ta .

O s u p o r te , v o lta d o à re fle x ã o c o m p o r ta m e n ta l, s u g e r e a c r ia ç ã o d e q u a tro c o m p o n e n t e s : u m c o m o re sp o n s á v e l p elo p r o c e s s o d e reificação ; o u t r o e n c a r r e g a d o de p r o v e r o re s u lta d o d a reificação e m c o m p o n e n t e s visuais; u m te r c e ir o p a r a p r o m o v e r t o d o o s u p o r t e d e i n te rc e p ta ç ã o d e m e n s a g e n s ; e u m q u a r to c o n t e n d o facilidades n a d e fin iç ã o d e q u a js m é t o d o s s erão reflexivos.

A im p le m e n ta ç ã o O P M O P é u m c o n j u n t o d e c o m p o n e n t e s , d e s e n v o l v i d o s p a r a o a m b i e n t e D elp h i, q u e e s te n d e r e c u r s o s r e fle x iv o s à lin g u a g e m O b je c t Pascal. O P M O P é b a s e a d o n o s u p o r t e p r o p o s t o c o m as d e v id a s a d a p ta ç õ e s ao am b ien te.

P a l a v r a s - c h a v c : re fle x ã o c o m p u ta c io n a l, a m b ie n te s d e d e s e n v o l v i m e n t o d e so ftw are, c o m p o n e n t e s

(7)

A

b s t r a c t

A n e v o lu tio n o f th e s o f tw a r e in d u s try in relation with p r o g r a m m i n g to o ls h a p p e n e d w ith th e a p p e a r a n c e o f visual d e v e l o p m e n t e n v ir o n m e n ts th a t c o m b i n e textual r e s o u r c e s (la n g u a g e s ) and g ra p h ic s (ic o n s an d w i n d o w s ) to build s o ftw a re . P r o b le m s o c c u r w h e n the e n v ir o n m e n t d o e s n 't o ffe r e n o u g h c o n d itio n s to p r o m o t e la n g u a g e e x te n s io n s , lo o k in g like a c lo sed s tr u c tu r e to b e u sed in a b la c k - b o x style. A s th e s e e n v i r o n m e n t s o ffe r c o m p o n e n t s to b u ild a p p lic a tio n s, they usu ally a llo w fu n ctio n alities to b e e x t e n d e d on ly as n e w c o m p o n e n ts .

T h is w o r k p re se n ts a s u p p o r t p r o p o s a l to c o m p u ta tio n a l reflectio n for visual e n v i r o n m e n t s and O P M O P , as an im p le m e n ta tio n o f this pro p o sal.

T h e s u p p o r t , fo c u s e d on b e h a v io u ra l reflection, su g g e s ts t h e c re a tio n o f fo u r c o m p o n e n t s : o n e re s p o n s ib le for th e reification p ro c e s s ; a n o th e r r e s p o n s ib le fo r p r o v i d i n g th e re su lt o f this reification in visual c o m p o n e n t s ; a third to p r o m o t e the w h o l e s u p p o r t m e s s a g e in terc e p tio n ; and a fou rth o n e c o n ta in in g m e a n s to d e fin e w hich m e t h o d s will b e reflexives.

T h e im p le m e n ta tio n

O PM O ?

is a g r o u p o f c o m p o n e n t s , d e v e l o p e d for the D e lp h i e n v ir o n m e n t, e x t e n d in g re fle x iv e r e s o u rc e s to the O b je c t Pascal lan g u ag e. CV’M O P is b a s e d on the p r o p o s e d s u p p o r t w ith th e n e c e ssa ry a d a p ta tio n s to th e e n v ir o n m e n t.

(8)

vii

S U M Á R ÍO

1. In t r o d u ç ã o... ... 1

1.1. O rg an iza ção tio tr a b a lh o ...

4

2. Re f l e x ã o c o m p u t a c i o n a l... ...6

2.1. C on ceitu ação ... 7

2.2. S istem a r e fle x iv o ... 8

2.3. M ctaclasse e in cta-ob jeto ... ... 10

2.3.1. R e f le x ã o e stru tu ral e c o m p o r la m e n ta l ... . 11

2.4.

Mctaobjecí Protocol (M O P )

... 13

2.4.1. M e ta s n u m p ro je to d e M O P ... 14

2.5. T rab alh os existentes ... ... 15

2.5.1. O p e n C + + ... ..16 2.5.2. O p e n J a v a ... ... ... ..18 2.5.3. J a v a s s i s t ... ..2 0 2.5.4. G u a r a n á ... ..23 2.5.5. O tilras im p le m e n ta ç õ e s ... ..23 3. Am b ie n t e sded e s e n v o l v im e n t o v i s u a l... ... 25

3.1. A lgu ns a m b ien tes ... 26

3.1.1. V i s u a l W o r k s ... ..2 6 3.1.2. V isu al B a sic ... ..2 7 3.1.3. D e l p h i ... ... ..27 3.1.4. V isu al C + + ...27 3 . 1.5. J B u i l d e r ... ..28 3.1.6. C + + B u i l d e r ...28 3.2. C a r a c te r ís tic a s ... ..28 3.2.1. S im p lif ic a ç ã o d e u s o ... 2 9 3.2.2. W Y S I W Y G ... 2 9

(9)

viii 3.2.3. R e u tiliz a ç ã o d e c ó d ig o e p r o je to ... 31 3.2.4. O c u lta ç ã o d e detalhes ... 33 3.2.5. In sp e ç ã o d e e le m e n to s ... 33 3.2.6. I m a g e m + t e x t o ... 33 4. Pr o p o s t ad e s u p o r t e... ...38 4.1. C om p on en te R cifica (C R ) ... 39 4 .2 . C om p o n en te T exto (C T ) ... ... ... 41 4.3. C o m p o n en te A ssocia (C A ) ... 43 4.4 . C o m p on en te E xecu ção (C E ) ... 53 5. Im p l e m e n t a ç ã o...55 5.1. A í/m V iiM O P ... 56

5.2. Os com pon en tes de OPIVIOP... ... 58

5.2.1. O c o m p o n e n t e T M O P R e i f í c a ... 6 0 5.2.2. O c o m p o n e n t e T M O P A s s o c i a ... 6 2 5.2.3. O c o m p o n e n t e T M O P E x e c u t a ... 63

5.2.4. O s c o m p o n e n t e s d o g rupo

Strings

... 65

5.2.5. Os c o m p o n e n te s d o g ru p o

Lines

... 6 6 5.3 . A p lica ções q ue usam

O P M O V

... 68

5 .3.1. A p lic a ç ã o 1 - D e p u r a d o r ... ... ... 68

5.3.2. A p lic a ç ã o 2 - D e s e m p e n h o ... ... 6 9 5.3.3. A p lic a ç ã o 3 - M e ta - in f o r m a ç õ e s e m

designtim e

... 6 9 5.3.4. A p lic a ç ã o 4 - M e ta - in f o r m a ç õ e s em

runtim e

... ... 7 0 6. Co n s id e r a ç õ e s f i n a i s... ... 71

R eferên cias b ib lio g r á fic a s ...*... 74

A p ên d ic e A - U m a visão do D elphi ... 80

(10)

ix

A p ên d ice C - D esem p en h o da in tercep ta ção d e m en sagen s do

O P M O V

... 96

(11)

L

i s t a d e f i g u r a s

F IG U R A 2 .1 : Sis t e m a Rlii7u : x iv o ... 9

F I G U R A 2 .2 : FLUXO DE CONTROLE ENTRE OBJETOS E META-OBJETOS ... 12

F I G U R A 2 .3 : Es q u e m a d o Op e nC + + ... 16 F I G U R A 2 .4 : EXEMPLO DO O P E N C + + ... 17 F I G U R A 2 .5 : Es q u e m a d o Op e nJaV A ... . 18 F I G U R A 2 .6 : Ex e m p l od o Op e nJa v a... 2 0 F IG U R A 2 .7 : ESQUEMA DO Ja v a s s i s t... 21 F I G U R A 2 .8 : Ex e m p l od o Ja v a s s i s t... 2 2 F IG U R A 3 .1 . 0 AMBIENTE DO DELPH! ...3 0 F IG U R A 3 .2 : O A M B IE N T E D oV B ...3 0 F IG U R A 3 .3 : A s DUAS JANELAS INICIAIS DO ViSUALWORKS ... ..31

F IG U R A 3.4: A PALHETA DE COMPONENTES DO DELPHI ...3 2 F IG U R A 3 .5 : A CAIXA DE FERRAMENTAS DO V B COM SEUS COMPONENTES ... ..3 2 F IG U R A 3 .6 : O s COMTONENTES DO ViSUALWORKS ... ..3 2 F IG U R A 3 .7 : O s INSPETORES DO De l p h i... ... ... ..3 4 F I G U R A 3 .8 : OS INSPETORES DO V B ...3 5 F IG U R A 3.9: O s INSPETORES DO ViSUALWORKS ...3 5 F IG U R A 3 .1 0 : IMAGEM E TEXTO DO DELPHI...3 6 F I G U R A 3 .1 1 : IMAGEM li TEXTO NO V B ... ..3 6 F IG U R A 3 .1 2 : IMAGEM E TEXTO NO V iSUALW O RK S... ..3 7 F IG U R A 4 . 1: CLASSE BASE DE EXEMPLO... . 4 0 F IG U R A 4 .2 : DIAGRAMA DE CLASSES DAS META-INFORMAÇÕES... 41

F IG U R A 4 .3 : FORMULÁRIO COM VÁRIOS COMPONENTES... 4 3 F IG U R A 4 .4 : METACLASSE DE EXEMPLO... 4 4 F I G U R A 4 .5 : Um a a p l i c a ç ã ot í p i c a... 4 6 F I G U R A 4 .6 : UMA APLICAÇÃO TÍPICA COM UMA METACLASSE... 4 6 F I G U R A 4 .7 : UMA APLICAÇÃO TÍPICA APÓS ASSOCIAÇÃO... 4 7 F IG U R A 4 .8 : Op ç õ e sd et r a t a m e n t o d ac l a s s e In t e r f a c e... 5 0 F IG U R A 4 .9 . UMA APLICAÇÃO SEM INIERCEPTAÇÃO DE MENSAGENS ... 51

F IG U R A 4 .1 0 . UMA APLICAÇÃO COM INTERCEPTAÇÃO DE MENSAGENS... 5 2 F IG U R A 5 .1 : TlPOS ESCALARES DO O P M O P ... 5 6 F IG U R A 5 .2 : FUNÇÕES DE CONVERSÃO ENTRE ESCALAR E STR1NG... 5 7 F IG U R A 5 .3 : TíPOS PARA O CONTROLE DA EXECUÇÃO... 5 8 F IG U R A 5 .4 : A PALHETA DE COMPONENTES DE O P M O P ... 6 0 F IG U R A 5 .5 . O COMPONENTE T M OPREIFICA... 61 F IG U R A 5 .6: A CLASSE T M O PC LA SSE... 61 F IG U R A 5 .7 : A CLASSE T M OPATRIBUTOS... 61 F IG U R A 5 .8 : A CLASSE T M O P Me t o d o s... 6 2 F IG U R A 5 .9 : A CLASSE T M O P Ar g s... 6 2 F IG U R A 5 .1 0 . O COMPONENTE TM O PASSO CIA... 6 3 F IG U R A 5 .1 1 : Cr ia ç ã o d e u m T M O P Ex e c u t a ac a d a m é t o d o... 6 4

(12)

F I G U R A 5 . 1 2 . 0 COMIDNENTE T M O P E X E C U T A ... 6 4 F IG U R A 5 .1 3 . U m c o m p o n e n t e d o g r u p o s t r in c, ... 6 5 F IG U R A 5 .1 4 . U m f o r mc o m v á r i o s c o m p o n e n t e s d o g r u p os t r i n g... 6 6 F I G U R A 5 .1 5 . U m c o m p o n e n t e d o g r u p o u n e s... 6 7 F I G U R A 5 .1 6 . Um f o r mc o m v á r i o s c o m p o n e n t e s d o g r u p o u n e s... 6 7 F I G U R A 5 .1 7 : INTERFACE DO EXEMPLO “DEPURADOR” ... 6 9 F IG U R A 5 .1 8 : INTERFACE DO EXEMPLO “DESEMPENHO”... 7 0 F IG U R A 5 .1 9 : INTERFACE DO EXEMPLO “ META-INFORMAÇÕES EM RUNTIME” .... 7 0 F I G U R A A . l : UM ARQUIVO PRO.IECTDO DELPHI ... 8 3 F I G U R A A .2: UM FORM EM DELPHI ... 8 3 F IG U R A A .3: B a s t i d o r e s d o p r o j e t o d e um f o r m... 8 4 F IG U R A A .4: UMA I/N IT ASSOCIADA AO UM F O R M ... ... 85 F I G U R A B . 1: IDENTIFICANDO UM F lU m iV O R K ... 8 9 F IG U R A B .2 : UMÀ APLICAÇÃO QUE USA UM FRAMEW ORK... 9 0 F IG U R A B .3: ESQUEMA DE COMPONEN TES ... 9 4 F IG U R A C. 1: Cl a s s e C _ N B de Ex e m p l o... ... 9 6 F IG U R A C .2: In t e r f a c e s d o s p r o je t o s De m oS E M e De m oC O M ... 9 7 F I G U R A C .3: Cl a s s e C _ M N d e Ex e m p l o... 9 7 F I G U R A C .4 : Re s u l t a d o sd o Te s t e 1 ... 9 8 F I G U R A C .5: INTERFACE DO PRODELPJII... ... 9 9 F I G U R A C .6: RESULTADOS DO TESTE 2 ... 1 0 0

(13)

L

i s t a d e

q u a d r o s

Q U A D R O 5.1: PADRÃO DE NOMES DOS IDENTIFICADORES... 5 6

Q U A D R O 5.2: COMPONENTES IMPLEMENTADOS DA PROPOSTA... 5 9

(14)

L

i s t a d e

t a b e l a s

T A B E L A c . 4: Re s u l t a d o s d o Te s t e l ... ... 98 T A B E L A C . 6: RESULTADOS DO TESTE 2 ... 100

(15)

A

b r e v i a ç õ e s e

s i g l a s

C A - C o m p o n e n t e A s s o c ia C E - C o m p o n e n t e E x e c u ç ã o C R - C o m p o n e n t e R e ific a C T - C o m p o n e n t e T e x t o C O M -

C om ponent Object M odel

C O R B A -

Com mom Object Request Broker Architecture

D C O M -

D istributed C om ponent Object M odel

D L L -

D ynam ic L in k Library

G U I -

G raphical User Interface

ID L -

Interface D efinition Language

M L I -

M etalevel Interception

M O P -

M etaobject Protocol

M V C -

M odel-View -C onlroller

O M G -

Object M anagem ent G roup

O W L -

Object Window Library

V B - V isu al B a sic

'

V C L -

Visual C om ponents Library

(16)

Capítulo I

I

n t r o d u ç ã o

A E n g e n h a r i a d e S o f tw a r e p o s s u i c o m o p r e m is s a a d im in u iç ã o d o e s fo rç o n a c o n f e c ç ã o d e s o flw a re , s e m e sq u e c e r, 110 e n ta n to , d a q u a l i d a d e e d a c o n fia b ilid a d e . U m a v e z q u e o s s o f tw a r e s eslã o c a d a v e z m a is c o m p le x o s , a e v o l u ç ã o d as f e rra m e n ta s d e d e s e n v o l v i m e n t o , p a r a s u p o r t a r tais c o m p le x id a d e s , d á - s e c o m o u m a n e c e s s id a d e . O s p a r a d i g m a s d e p r o g r a m a ç ã o , p o r p e r m itir e m a r e p r e s e n ta ç ã o d e a b s tr a ç õ e s d o m u n d o real, t a m b é m p r e c is a m evoluir. N a in d ú s tr ia d o so ftw a re , d e s ta c a - s e a i n t r o d u ç ã o d o p a r a d i g m a d a o r ie n ta ç ã o a o b je to s e m a l g u m a s lin g u a g e n s c o m o u m a d as ev o lu ç õ e s. U m a o u t r a e v o lu ç ã o foi o s u rg im e n to d o s a m b ie n te s d e d e s e n v o l v i m e n t o visual de p r o g r a m a ç ã o , o n d e os s o ftw a re s p a s s a r a m a ter u m a a p a r ê n c ia g rá f ic a ao invés d e a p e n a s textual.

A re fle x ã o c o m p u ta c io n a l, a p lic a d a ao m o d e l o d e o b jeto s, p r o p õ e u m a n o v a a r q u i t e t u r a d e s o f tw a r e [ F 0 0 9 3 ] , O t e r m o re fle x ã o c o m p u ta c io n a l s u r g iu e m ] 9 8 2 p o r B r ia n S m ith [ S M I8 2 J n o s e n tid o d e e s te n d e r r e c u r s o s às lin g u a g e n s d e p r o g r a m a ç ã o . M a is ta rd e , e m 198 7 , P a ttie M a e s [ M A E 8 7 ] p r o p ô s 0 u s o d a r e fle x ã o e m lin g u a g e n s b a s e a d a s e m o b jeto s. Esta n o v a a r q u i t e t u r a in t r o d u z 0 c o n c e ito d e n ív e is d e p r o g r a m a ç ã o . N o nível base. estão t o d a s as p r e o c u p a ç õ e s re fe re n tes ao d o m í n i o d a a p lic a ç ã o n o qual 0 s o f tw a r e e s tá b a s e a d o . Q u a l q u e r e v e n to q u e fu ja d a fu n c io n a lid a d e d a a p lic a ç ã o é e n tã o d e s v ia d a (refletida) à o u tr o nível, dito m etan ív el, p a r a 0 tra ta m e n to d e s ta situ ação .

C o n c e itu a lm e n te . a reflex ão c o m p u t a c i o n a l é u m a téc n ic a q u e p e r m ite a u m sis te m a o b t e r i n f o r m a ç õ e s s o b r e eíe m e s m o e u s a r estas i n f o r m a ç õ e s p ara alterar 0 c o m p o r t a m e n t o d e seu s c o m p o n e n t e s [M A E 8 7 ] . A s i n f o r m a ç õ e s s o b r e a e s t r u t u r a d o

(17)

Capítulo 1 - Introdução 2

nível b a s e são d is p o n ib iliz a d a s ao m etan ív el p o r u m p r o c e s s o d e re if ic a ç ã o ', p a s s a n d o estas in f o r m a ç õ e s a s e r e m c h a m a d a s de m e t a - in f o r m a ç õ e s . A f u n c io n a lid a d e d o m etan ív e! é b a s e a d o n o s m o d e l o s d e classe e d e o b jeto s. N o p r im e ir o , t e m - s e a reflexão e s tru tu ra l, q u e a t u a n a e s tr u tu r a d a classe c o m o p e r a ç õ e s d o tipo: c o n s u l t a e a lteração d o s m é t o d o s , in c lu sã o d e n o v o s m é t o d o s , r e m o ç ã o d e m é t o d o s existentes, c o n s u lta às classes a s c e n d e n te s , d e n tr e outras. N o s e g u n d o m o d e lo , t e m - s e a reflexão c o m p o r t a m e n t a l , q u e a t u a n a e x e c u ç ã o d o o b je to d o nível b a s e atra v é s d a in te rc e p ta çã o d e m e n s a g e n s , s e m a lte ra r su a estrutura.

A s f u n c io n a lid a d e s d a reflex ão c o m p u t a c i o n a l são p r o v i d a s p e lo M O P

(M elaobject Protocol).

U m M O P é u r n a in te rfa c e q u e p e r m ite m u d a n ç a s in c re m e n ta is n o s r e c u r s o s d e lin g u a g e n s d e p ro g r a m a ç ã o . E n tã o , u m a a p lic a ç ã o q u e utiliza u m M O P terá, à s u a d is p o s iç ã o , o m o d e l o d e reflex ão c o n f o r m e a i m p le m e n ta ç ã o d o M O P .

A l g u m a s i m p l e m e n t a ç õ e s d e M O P e s te n d e m r e c u r s o s d e re fle x ã o c o m p u ta c io n a l ta n to às lin g u a g e n s q u e p o s s u e m a lg u m s u p o r te , tais c o m o J a v a e S m alltalk , q u a n to à q u e la s s e m q u a l q u e r s u p o r t e a reflexão, c o m o o C + + . N u m a o u t r a situ a ç ã o , n o v a s lin g u a g e n s d e p r o g r a m a ç ã o são p r o p o s ta s j á c o m a in c o r p o r a ç ã o d e u m M O P específico.

A n a l i s a n d o - s e a e v o lu ç ã o d o s a m b ie n te s d e p r o g r a m a ç ã o j u n t o a o s r e c u r s o s q u e o u s u á r io d i s p õ e p a r a o d e s e n v o lv im e n to d e a p licaçõ es , o b s e r v a - s e q u e as fe rra m e n tas le v a m a l g u m t e m p o p a r a d is p o n ib iliz a r n o v a s f u n c io n a lid a d e s , a i n d a q u e , às vezes, estas se ja m b a s e a d a s e m c o n c e ito s s e d im e n ta d o s. A o rie n ta ç ã o a o b je to s é u m caso típico. E x c e t u a n d o - s e S m alltalk , J a v a e Eiffel, q u e j á s u r g ir a m c o m os c o n c e ito s d a 0 0 , m u ita s o u tr a s l i n g u a g e n s , c o m o C e Pascal, p a s s a r a m a s u p o r t a r a 0 0 d e p o is d e esta re m c o n h e c id a s. A reflex ão c o m p u ta c io n a l t a m b é m é m a is u m caso. N o v a m e n t e à e x c e ç ão d e S m a llta lk e Ja v a , as lin g u a g e n s C e Pascal, m e s m o e m fe rra m e n ta s d e p r o g r a m a ç ã o m ais r e c e n te s c o m o o s a m b ie n te s d e d e s e n v o lv im e n to visual, n a d a p o s s u e m d e s u p o r te à reflexão.

(18)

Capítulo 1 - Introdução 3

O s a m b ie n te s d e d e s e n v o l v i m e n t o visual são f e r r a m e n ta s h í b r id a s q u e p o s s u e m , a lé m d e u m a l i n g u a g e m d e p r o g r a m a ç ã o ( g e r a lm e n te 0 0 ) , r e c u r s o s te x tu a is e g ráfico s p a r a a c o n f e c ç ã o d e s o ftw a re . E n tre o u tr a s características, estes a m b ie n te s facilitam o d e s e n v o l v i m e n t o d e a p lic a ç õ e s pela utilização d e r e c u r s o s g rá fic o s ( íc o n e s e janelas). E m a l g u m a s f e rra m e n ta s d isp o n ív e is, tais c o m o , V isu al C + + , V isu al Basic, V is u a I W o r k s , D e lp h i e J B u ild e r, o b s e r v a - s e q u e a re fle x ã o c o m p u t a c i o n a l n ã o é e x p lo r a d a a p r o v e i t a n d o as c a ra cterísticas de seu s a m b ie n te s. M e s m o n a q u e la s lin g u a g e n s c o n s i d e r a d a s reflexivas, c o m o J a v a e S m alltalk , os a m b ie n te s n ã o o fe re c e m facilidades visuais ao d e s e n v o l v e d o r p a r a q u e c o n s t r u a m a p lic a ç õ e s reflexivas.

Q u a l q u e r p r o p o s t a d e e s te n d e r f u n c io n a lid a d e s a u m a m b i e n t e visual d e p r o g r a m a ç ã o d e v e a b o r d a r tan to a lin g u a g e m d e p r o g r a m a ç ã o q u a n t o as q u e s tõ e s visuais, u m a v e z q u e e stes d o is e le m e n to s estão ju n to s . O p r o b l e m a s u r g e q u a n d o o a m b ie n te n ã o o fe r e c e c o n d i ç õ e s su ficien tes p a r a q u e se p r o m o v a m e x t e n s õ e s às lin g u a g e n s, a p r e s e n t a n d o - s e c o m o u m a e s tr u tu r a fe c h a d a d e f o rm a q u e s u a u tilização s e ja ao estilo “c a ix a p r e t a ” . P elo falo desses a m b ie n te s d is p o n ib iliz a r e m c o m p o n e n t e s p a r a a c o n f e c ç ã o d e ap lic a ç õ es , n o r m a l m e n t e p e r m ite m a p e n a s q u e fu n c io n a lid a d e s se ja m e s te n d id a s p o r in te r m é d io d e n o v o s c o m p o n e n te s .

N e s t e s en tid o , a p r e s e n ta - s e u m a p r o p o s l a d e s u p o r t e à r e fle x ã o c o m p u ta c io n a l e m a m b ie n te s d e d e s e n v o l v i m e n t o visual d e s o f tw a r e b a s e a d a na cria ç ã o de q u a tro c o m p o n e n t e s , v o lta d o s e s p e c if ic a m e n te à reflex ão c o m p o r la m e n la l. S ão eles: C o m p o n e n t e R e ific a (C R ), resp o n sá v e l p elo p ro c e s s o d e re ific a çã o ; C o m p o n e n t e T e x to (C T ), e n c a r r e g a d o d e p r o v e r o re s u lta d o d a reificação e m c o m p o n e n t e s visuais; C o m p o n e n t e A s s o c ia (C A ), p a r a p r o m o v e r to d o o s u p o r t e d e i n te r c e p ta ç ã o de m e n s a g e n s ; C o m p o n e n t e E x e c u ç ã o (C E ) c o n t e n d o facilidades n a d e fin iç ã o d e quais m é t o d o s se rã o flexivos.

A p r e s e n ta - s e , ta m b é m , u m a i m p l e m e n ta ç ã o d o s u p o r t e p r o p o s t o , d e n o m i n a d a

O P M O Y,

c o m o u m c o n j u n t o d e c o m p o n e n t e s p a r a o a m b i e n t e D e lp h i q u e e ste n d e f u n c io n a lid a d e s à l in g u a g e m O b je c t Pascal.

O P M O Y

c o n té m os q ü a l r o c o m p o n e n te s

(19)

Capítulo 1 - Introdução 4

p r o p o s t o s i m p l e m e n t a d o s c o m o s d e v id o s ajustes p a r a u m a p e rfe ita i n te g r a ç ã o c o m o a m b ie n te Delphi.

1.1. Organização do trabalho

O p r e s e n te tra b a lh o e stá o r g a n iz a d o e m seis c a p ítu lo s e q u a tr o a p ê n d ic e s . Os três p r im e ir o s c a p ítu lo s a p r e s e n ta m a i n t r o d u ç ã o e a f u n d a m e n t a ç ã o t e ó ric a , e n q u a n t o q u e o s re sta n te s, a p r o p o s t a de s u p o r t e e u m a im p le m e n ta ç ã o .

O c a p ítu lo 2 c o m e n ta os c o n c e ito s b á sic o s d a reflex ão c o m p u t a c i o n a l , p a s s a n d o p e lo s sis te m a s re fle x iv o s e a p r e s e n t a n d o o s m o d e l o s d e re fle x ã o a p lic a d o s ao m o d e lo d e o bjetos. T r a z t a m b é m as m e ta s d e u m M O P .

N o c a p ítu lo 3, as cara c terístic a s d o s a m b ie n te s d e d e s e n v o l v i m e n t o visual d e s o f t w a r e são d isc u tid a s, a p r e s e n t a n d o - a s p e la c o m p a r a ç ã o e n tre três fe rra m e n ta s a tu a lm e n te existentes.

O c a p ítu lo 4 a p re s e n ta lim a p r o p o s t a d e s u p o r t e à reflex ão c o m p u ta c io n a l e m f o r m a d e c o m p o n e n te s .

J á o c a p ítu lo 5 tra z u m a i m p le m e n ta ç ã o do s u p o r t e p r o p o s t o , d e n o m i n a d o O /^ M O P , d e s e n v o lv id o p a r a o a m b ie n te Delphi.

O c a p ítu lo 6 a p re s e n ta as c o n s id e r a ç õ e s finais d o tra b a lh o , o n d e a lg u m a s p e r s p e c tiv a s d e c o n t i n u i d a d e sã o p ro p o sta s.

N o a p ê n d ic e A é a p r e s e n ta d o lima visão d o D elphi, d e s t a c a n d o a p e n a s as f u n c io n a lid a d e s q u e se rã o úteis a im p le m e n ta ç ã o O /^M O P.

O a p ê n d i c e B a p re s e n ta , e m linhas gerais, a a b o r d a g e m d o s

fram ew orks

e c o m p o n e n t e s c o m o u m a alte rn a tiv a à reu tiliz a ç ão d e s o f tw a r e p r o p o s t a p e la E n g e n h a r ia d e S o ftw a re .

(20)

Capítulo 1 - Introdução

A p r e o c u p a ç ã o c o m o d e s e m p e n h o d o p r o c e s s o d e i n te r c e p ta ç ã o d e m e n s a g e n s d e O P M O P é a p r e s e n ta d a atrav és da c o m p a r a ç ã o d o s re s u lta d o s d e d o is testes, n o a p ê n d i c e C.

E, fin a lm e n te , n o a p ê n d ic e D, os p r o g r a m a s fo n te s u tiliz a d o s c o rn o e x e m p l o s no u s o d o s c o m p o n e n t e s O P M O I ’ são m o s tra d o s .

(21)

Ca-pítulo.2,

R

e f l e x ã o c o m p u t a c i o n a l

A E n g e n h a r i a d e S o f tw a r e evolui no s e n tid o de b u s c a r a c o n f e c ç ã o d e s o f tw a r e a u m c u s to b a ix o , d e q u a l i d a d e e confiável. N ã o i m p o r t a n d o a té cnica, a m e t o d o l o g i a ou a fe rra m e n ta d e d e s e n v o l v i m e n t o a d o ta d a , as p r e o c u p a ç õ e s a in d a são as m e sm a s. Fsto p o r q u e o s o f t w a r e está c a d a ve/, m ais c o m p l e x o e, p a i a to rn á -lo viável e m te rm o s d e p ra z o s , e x ig e - s e u m a m a io r p a rtic ip a ç ão do n ú m e r o d e p e s s o a s e n v o lv id a s n o seu d e s e n v o lv im e n to . B a s e a d o nisto, h á u m e sfo rç o d a s fo rm a s d e d e s e n v o l v i m e n t o e m d ire ç ã o a m i n im iz a r q tra b a lh o m a n u a l, c o m o p o r e x e m p lo o u s o d e p r o g r a m a s g e r a d o r e s d e c ó d ig o . S e m p r e q u e p o ssív e l o s p r o g r a m a s d e v e m ser g e r a d o s a u t o m a t i c a m e n t e a p a r tir d o p ro je to , t o d a v i a a in d a faz-se n e c e s s á r ia a p a rtic ip a ç ã o m a n u a l n a c o d ific a ç ã o , u m a vez q u e as lin g u a g e n s d e p r o g r a m a ç ã o p o s s u e m b a ix a ex p re s s iv id a d e .

N a e ta p a d e p r o g r a m a ç ã o , as prin cip ais p r e o c u p a ç õ e s são a c o d if ic a ç ã o e ; a in te g ra ç ã o p ro g r e s s iv a d o s m ó d u l o s do s o ftw a re , até s e c h e g a r ao s is te m a físico final. É claro q u e n e s ta e ta p a a b u s c a p e la q u a l i d a d e d e v e s e r c o n s ta n te , assim c o m o em to d o o p r o c e s s o d e d e s e n v o lv im e n to . D e sta fo rm a, a c a p a c i d a d e d o s p r o g r a m a d o r e s e m i m p l e m e n t a r u m siste m a d e alta q u a lid a d e e livre d e e rro s d e p e n d e não só da n a t u r e z a d o p r o je to c ria d o , c o m o t a m b é m da lin g u a g e m d e p r o g r a m a ç ã o a d o t a d a c o m o f e rra m e n ta d e d e s e n v o l v i m e n t o f K l P 9 3 1.

É p o s s ív e l a g r u p a r as diferen tes lin g u a g e n s d e a c o r d o c o m seu s p a r a d i g m a s d e p r o g r a m a ç ã o . D estes g r u p o s , o e n f o q u e n e ste tra b a lh o é o d o p a r a d i g m a d a o rie n ta ç ã o a o bjetos. A lé m d e e s ta r e m p re se n te s em m u ita s fe rra m e n ta s d e d e s e n v o lv im e n to d e

(22)

Capítulo 2 - Reflexão computacional

so ftw a re , a o rie n ta ç ã o a o b je to s p o ssu i várias v a n ta g e n s d e u so , tais c o m o reu tilização d e c ó d i g o e o c u l t a m e n t o d e d e ta lh e s d o u s u á rio , en tre outras.

Brian F o o t e [ F 0 0 9 3 ] c o l o c a q u e “ a sin e rg ia d a r e fle x ã o c o m a p r o g r a m a ç ã o e as téc n ic a s d e p r o je to o r ie n ta d o s a o b je to s traz p r o m e s s a s d e m u d a n ç a s d ra m á tic a s n a f o r m a c o m o n ó s p e n s a m o s , o rg a n iz a m o s , i m p l e m e n t a m o s e u s a m o s as lin g u a g e n s d e p r o g r a m a ç ã o ” . E n e s te se n tid o , en tão , q u e a re fle x ã o c o m p u t a c i o n a l n o m o d e l o de o b je to s a p r e s e n ta - s e c o m o u m a n o v a a r q u i t e t u r a d e so ftw a re .

2.1. Conceituaçíio

B rian S m ith [S M I 8 2 ] p r o p ô s a reflex ão c o m p u t a c i o n a l e m 1 9 8 2 c o m o u m a e x te n s ã o às lin g u a g e n s d e p r o g r a m a ç ã o . Pattie M a e s [ M A E 8 7 ] , e m se u tra b a lh o d e d o u t o r a m e n t o “

C om putationa! Nc/Iecfion",

s u g e r e o u s o da re fle x ã o n o m o d e lo d e objetos.

P o d e - s e analisar a e x p r e s s ã o “r e f le x ã o ” s o b d o is asp e c to s: c o m o o ato o u efeito d e m e d ita r, p e n s a r, r a c io c in a r e p o n d e r a r e c o m o u m a p r o p r i e d a d e f ís ic a d e m o d ific a ç ã o d a d ire ç ã o d e p r o p a g a ç ã o d a luz, c a lo r e so m , d e s v ia n d o d a p r i m e i r a direção. C o m o ato d e m e d ita ç ã o , a reflex ão c o m p u ta c io n a l p o d e se r c a r a c te r iz a d a p ela c a p a c i d a d e d a d a a u m sis te m a d e “ p e n s a r ” a resp eito d e le m e s m o , a t u a n d o s o b r e si m e s m o e n ã o s o b r e o q u e o s is te m a d e v a p ro d u z ir, re a liz a n d o d e d u ç õ e s e c o m p u t a ç õ e s s o b r e s e u s d a d o s internos. C o m o p r o p r i e d a d e física, este s ig n ificad o re la c io n a -s e m ais d i r e ta m e n te c o m a fo r m a d e im p le m e n ta ç ã o da re fle x ã o c o m p u ta c io n a l n o m o d e l o o rie n ta d o a objetos: ao se r e n v ia d a u m a m e n s a g e m a u m o b je to , e la é d e s v i a d a ao se u m e t a - o b je to c o r r e s p o n d e n t e , no q u al é re a liz a d a a reflexão, e, c o m o re s u lta d o d e s ta reflex ão , p a s s a a realizar c o m p u t a ç õ e s no m elanível.

C o n c e itu a lm e n te , r e f l e x ã o c o m p u t a c i o n a l é o c o m p o r t a m e n t o e x ib id o p o r u m s is te m a c o m p u ta c io n a l q u e alua e m a lg u m d o m ín io e q u e i n c o r p o r a e stru tu ra s r e p r e s e n t a n d o ele m e s m o . E s ta s e s tru tu ra s p e r m ite m ao s is te m a r e s p o n d e r q u e s tõ e s e s u p o r t a r a ç õ e s s o b r e ele m e s m o [ M A E 8 7 ] ,

(23)

Capítulo 2 - Reflexão computacional 8

L is b o a |L IS 9 7 1 d e fin e reflex ão c o m p u t a c i o n a l c o m o t o d a a tiv id a d e q u e u m s is te m a c o m p u t a c i o n a l realiza s o b r e si m e s m o , d e f o r m a s e p a r a d a d as c o m p u t a ç õ e s e m c u r s o , c o m o o b je tiv o d e r e s o lv e r seu s p r ó p r i o s p r o b l e m a s e o b t e r in f o r m a ç õ e s s o b r e s u a s c o m p u t a ç õ e s .

N a visão d e Steel | S T E 9 4 ] , r e fle x ã o c o m p u ta c io n a l é a c a p a c i d a d e d e u m s is te m a c o m p u t a c i o n a l in t e r r o m p e r o p r o c e s s o d e e x e c u ç ã o ( p o r e x e m p l o , q u a n d o o c o r r e u m e rro ), re a liz a r c o m p u t a ç õ e s o u fa z e r d e d u ç õ e s n o m e ta n ív e l e r e t o m a r ao nív el d e e x e c u ç ã o , tra d u z in d o o im p a c to d as d e c is õ e s p a r a e n tã o r e t o m a r o p r o c e s s o de ex e c u ç ã o .

M a e s [ M A E 8 8 ] d e sta c a a in d a alg u n s tip o s d e a p lic a ç õ e s o n d e s e r ia in te re ssa n te o u s o d a reflexão c o m p u ta c io n a l, tais c o m o estatísticas d e d e s e m p e n h o d e sistem as, f e r r a m e n ta s d e d e p u r a ç ã o e p r o g r a m a s d e m o n i t o r a m e n t o , e n tre o utros.

2.2. Sistema reflexivo

N o m o d e l o d e o b jeto s, u m s i s t e m a é dito reflexivo q u a n d o p r o v ê m e c a n is m o s p a r a s u p o r t e à reflex ão c o m p u ta c io n a l. N e le p o d e m se r id e n tific a d a s d u a s p artes distintas: u m m e ta n ív e l, ta m b é m c o n h e c id o c o m o nível d e g e r e n c ia m e n to , e u m nível b a s e ( o u nív el d a aplicação). N o m e t a n í v e l e n c o n t r a m - s e as in f o r m a ç õ e s (as m e ta - i n f o r m a ç õ e s ) q u e r e p r e s e n ta m a e stru tu ra e c o m p o r t a m e n t o d o nível base, e n q u a n t o q u e M(i n ív e l lia.se e stã o os rc q u isiln s linicionais d o sistem a b a s e a d o s n o d o m í n i o da ap lic a ç ão . N o nível b a se o p r o g r a m a d o r e n v o lv e - s e a p e n a s c o m a s o lu ç ã o d o p r o b l e m a em r e la ç ã o ao d o m í n i o na qual su a a p lic a ç ã o e stá inserida. Já n o m e ta n ív e l ficam os re q u is ito s n ã o fu n cio n ais e esles são in d e p e n d e n t e s d o lipo d e ap lic a ç ão , c o m o , p o r e x e m p l o , a s p e c to s d e s e g u r a n ç a d o sistem a. E s t a c la ra s e p a r a ç ã o e n tre as f u n c io n a lid a d e s b á sic a s n ã o a p e n a s c o n trib u i p a r a re s o lv e r p r o b l e m a s s o b r e u m d e te r m i n a d o d o m ín io , m a s t a m b é m p a r a a o r g a n iz a ç ã o i n te r n a d o s is te m a [M A E 8 8 ] ,

A reflex ão c o m p u ta c io n a l d á - s e pelas e ta p a s d e reificação e d e reflexão p r o p r i a m e n t e dita. A r c i f i c a ç ã o d isp o n ib iliz a ao m e ta n ív e l as in f o r m a ç õ e s d o nível d a

(24)

Capítulo 2 - Reflexão computacional 9

ap lic a ç ão . N e s t e p r o c e s s o , as ativ id a d e s c o m p u t a c i o n a i s d e u m a c lasse n o nível b a s e são tr a n s f o r m a d a s e m d a d o s p a r a o m e ta n ív e l, as q u a is p o d e m se r m a n ip u la d a s p e lo m etan ív el. A p ó s feilo isto, estes d a d o s são tr a n s f o r m a d o s e m a tiv id a d e s c o m p u ta c io n a is e o fluxo d o c o n t r o l e r e t o m a d o m etan ív el p a r a o nív el base. E sta ú ltim a o p e r a ç ã o é c h a m a d a d e r e f l e x ã o [ N A K 9 2 ] , A fig u r a 2.1 m o s t r a u m e s q u e m a sim p le s d e u m sis te m a re fle x iv o e m q u e a p a r e c e m as o p e r a ç õ e s d e re ific a çã o e r e fle x ã o j u n t a m e n t e c o m o M O P 2.

U m a q u e s tã o im p o r ta n te em re la ç ã o a sis te m a s re fle x iv o s é d e c id ir q u e tip o d e in f o r m a ç ã o s e r á d i s p o n ib iliz a d a n o m etan ív el. T a is i n f o r m a ç õ e s i n c lu e m a classe d o o b je to , a q u a l f o r n e c e a c e sso ao n o m e d a c lasse e seu tipo; a h e r a n ç a , c o m in f o r m a ç õ e s s o b r e as classes a s c e n d e n te s ; e a e s tr u tu r a d o o b je to , d is p o n ib iliz a n d o i n f o r m a ç õ e s s o b r e seu s m é t o d o s (a ssin a tu ra , c ó d ig o e acesso).

F I G U R A 2.1: SISTEMA REFLEXIVO

(25)

Capítulo 2 - Reflexão computacional

10

2.3 Metaclasse e meta-objeto

E m lin g u a g e n s d e p r o g r a m a ç ã o o rie n ta d a s a o b je to s, a reflex ão d á - s e d e d u a s fo rm as: o u p o r m e ta c la s s e o u p o r m e ta -o b je to . A re fle x ã o p o r m e t a c l a s s e faz c o m q u e o m e ta n iv e l c o n t e n h a i n f o r m a ç õ e s s o b r e a e s tr u tu r a do nível base, tais c o m o atrib u to s e a s s in a tu ra s d e c o m p o r t a m e n t o s , classes a s c e n d e n te s e d e s c e n d e n te s , e n c a p s u la m e n to , c o m p o r t a m e n t o s d in â m ic o s e está tic o s e outras. U m a v e z q u e a e s t r u t u r a d a c la sse nível b a s e p o d e s e r a lterad a, to d a s su as in stâ n c ia s a p a rtir d e s ta a lte ra ç ão t a m b é m serão. U m a m e ta c la s s e é u m a c lasse q u e d e s c r e v e a e s t r u t u r a d e u m a o u t r a classe.

D e p e n d e n d o d a l in g u a g e m d e p r o g r a m a ç ã o , classes e m e ta c la s s e s p o d e m se r r e p r e s e n t a d a s p o r o bjetos. Isto p e r m ite q u e as m e ta c la s s e s p o s s u a m c a p a c id a d e s c o m p o r t a m e n t a i s p a r a a in s ta n c ia ç ã o d i n â m i c a d e classes, d a m e s m a f o r m a q u e as classes p e r m ite m a in s ta n c ia ç ã o d e o bjetos.

A m e ta c la s s e in d e p e n d e d o c ó d ig o d o d o m í n i o escrito no nível d e aplicação , p o d e n d o , en tã o , ser reu tiliz a d a e a g r u p a d a . U m a i m p le m e n ta ç ã o q u e p r o v ê e s ta c a ra c terís tic a é o G u a r a n á | O L I 9 8 a |.

A p a r e c e ninda, n e ste m e s m o e s p a ç o d o m e tan iv el, o m e t a - o b j e t o , c o m o u m o b je to q u e c o n t é m d e ta lh e s d o c o m p o r t a m e n t o d o o b je to nív el base. F o o t e [ F 0 0 9 3 ] c o l o c a q u e u m m e t a - o b j e t o define, im p le m e n ta , d á s u p o r t e o u p a r tic ip a d e a lg u m a m a n e ir a d a e x e c u ç ã o d a aplicação. N e s t a instância, o m e t a - o b j e t o c o n t é m alg u n s c o m p o r t a m e n t o s (n ã o n e c e s s a r i a m e n t e t o d o s ) do o b je to nivel b a s e a s s o c ia d o . Isto faz c o m q u e a re fle x ã o s e ja restrita ao m é t o d o c h a m a d o , t o r n a n d o - s e u m a reflexão c o m p u t a c i o n a l p a rtic u la r d e c a d a m é t o d o e n ã o d e to d o o o b jeto . S u r g e daí, en tã o , dois g m p o s d e m é t o d o s d e u m o b je to reflexivo: os reflexivos e os n ã o re flex iv o s [LIS97J.

(26)

Capítulo 2 - Reflexão computacional 11

2 .3 .1 . R eflex ã o estru tu ra l c co n ip o rta in en ta l

A s d u a s q u e s tõ e s re la c io n a d a s ao m e ta n ív e l, a m e ta c la s s e e o m e t a - o b j e t o , d ã o o r i g e m a d o is tip o s d e reflexão. D iz -s e q u e u m a r e fle x ã o é e s tin tu r a l q u a n d o se d á s o b r e a c lasse d o nível b a s e e o c o r r e ta n to e m t e m p o d e c o m p ila ç ã o q u a n t o e m e x e c u ç ã o e é d i t a co u ip o rta in en ta l q u a n d o u tiliza o m o d e l o d e m e t a - o b j e t o s e o c o r r e s o m e n t e e m t e m p o d e e x e c u ç ão .

N o caso d a R e fle x ã o E stru tu ra l, o m e ta n ív e l é c o m p o s t o p o r m etaclasses, as q u a is c o n t é m in f o r m a ç õ e s s o b r e o s a s p e c to s e s tru tu ra is d o nível b a sé , c o m o d e s c riç ã o d o s a tr ib u to s e m é t o d o s q u e irão c o m p o r su as instâncias. Se e sta e s t r u t u r a p o d e se r alte ra d a , e n tã o a e s t r u t u r a e c o m p o r t a m e n t o d e s u a s in stâ n c ia s t a m b é m serão. A reflex ão e s tru tu ra l p e r m i t e n ã o só o b te r i n f o r m a ç õ e s s o b r e o o b je to d o nível d e a p lic a ç ã o c o m o t a m b é m re a liz a r tr a n s f o r m a ç õ e s s o b r e a e s t r u t u r a e stá tic a d a classe, m o d i f i c a n d o seu s a tr ib u to s e c o m p o r t a m e n t o s . A s re g ra s d e e n c a p s u l a m e n t o e x iste n te s n u m a classe, q u e a s s e g u r a m o o c u l t a m e n t o d e a trib u to s e c o m p o r t a m e n t o s , p o d e m se r v io la d a s , u m a v e z q u e a m e ta c la s s e c o n t é m t o d a a s u a e s t r u t u r a e p o d e , inclusive, alterá-la.

N a R e fle x ã o C o m p o r t a m e n t a l , o m e ta n ív e l é c o m p o s t o p o r m e ta - o b je to s , os q u a is c o n t é m i n f o r m a ç õ e s s o b r e os a s p e c to s d e c o m p o r t a m e n t o d o s o b je to s d o nível b a se , s e m a lte ra r s u a estrutura. O m o d e l o d e m e ta - o b je to s d ife n c ia -s e d o m o d e l o d e m e ta c la s s e s , p rin c ip a lm e n te , p o r s u a a s s o c ia ç ã o p o r o b je to s e n ã o p o r classes.

A a s s o c ia ç ã o e n tre os d o is o b je to s e m u m s is te m a reflex iv o é i m p o r t a n t e p o r q u e t o d a s as m e n s a g e n s e n v ia d a s pela a p lic a ç ã o ao o b je to d o n ív e l b a s e d a asso c ia ç ã o ( c h a m a d o d e o b je lo reflex iv o ) são d e s v ia d a s p a r a o m e ta - o b je to , q u e d e té m o c o n tr o le da e x e c u ç ã o . IJm a ve/. q u e o m e ta - o b je to re c e b e u m a m e n s a g e m reilienda atrav és d e u m m e c a n i s m o d e in te rc e p ta ç ã o , ele d e v e se r c a p a z d e tra tá -la e, a p ó s realizar a reflex ão c o m p u t a c i o n a l , v o lta r ao o b je to reflexivo.

A fig u ra 2 .2 , a d a p t a d a d e C a m p o [ C A M 9 7 ] , m o s t r a o fluxo d e c o n t r o l e en tre o b je to s e m e ta -o b je to s . N e l a p e r c e b e - s e q u e u m a m e n s a g e m p o d e ser i n te r c e p ta d a

(27)

Capítulo 2 - Rcflcvão computacional 12

q u a n d o e la é e n v i a d a o u q u a n d o ela é r e c e b id a p e l o d e stin a tá rio . I n d e p e n d e n t e d a f o r m a d e in te rc e p ta ç ã o , o p r o t o c o l o d e m e ta - o b je to s d e v e f o r n e c e r m e c a n i s m o s p a r a r e c u p e r a r a i n f o r m a ç ã o re la tiv a ao d estin a tá rio d a m e n s a g e m , o m é t o d o a ser a tiv a d o e o s a r g u m e n t o s d a m e n s a g e m . A reifícação d e s te s c o m p o n e n t e s p o s s ib ilita q u e o m e ta - o b je to re e n v ie a m e n s a g e m ao o b je to d a a p lic a ç ã o p a r a a e x e c u ç ã o d o m é t o d o original [C A M 9 7 ] ,

F I G U R A 2 .2 : FLUXO DE CONTROLE ENTRE OBJETOS E META-OBJETOS

N a e t a p a (1) u m a m e n s a g e m in é e n v ia d a a u m o b je to d a ap licação . E s t a m e n s a g e m , en tã o , é d e s v ia d a (refletida) p a r a o m e ta - o b je to a s s o c ia d o (2). O m e ta - o b je to , a p ó s re a liz a r a l g u m a c o m p u t a ç ã o , d e c i d e e x e c u ta r o m é t o d o m original, p re s e n te n o nível b a s e (3). A p ó s a e x e c u ç ã o d o m é to d o , o fluxo r e t o m a p a r a o m e ta - o b je to (4). O m e ta - o b je to , po r su a vez, r e to r n a o c o n t r o l e ao nível b a se a p ô s e x e c u ta r a l g u m a f u n ç ã o a d ic io n a l (5) e. finalm ente, ao o b je to q u e e n v io u a m e n s a g e m tn (6).

(28)

Capítulo 2 - Reflexão computacional 13

2.4. M ctaobject Protocol (MOP)

“ U m M O P é u m m e c a n i s m o u s a d o p a r a o c o n tr o le d o c o m p o r t a m e n t o d e u m a ap lic a ç ã o e p a r a im p l e m e n t a r políticas n ã o fu n c io n a is tais c o m o to le r â n c ia a falhas e e x e c u ç ã o d i s t r i b u í d a ” [ R O B 9 9 J. C o m este c o m e n tá r io , B e rt R o b b e n a p r e s e n t a as d u a s p rin c ip a is f u n ç õ e s d o M O P . U m M O P p o d e se r d e sc rito c o m o u m a in te rfa c e q u e p o s s ib ilita ao s o b je to s d o nível b a se c o n i u n i c a r e m - s e c o m os o b je to s d o m etan iv el T e c n i c a m e n t e fala n d o , u m M O P é u m

frcimeworlc'.

A ssim , é n o M O P q u e d e v e se r im p l e m e n t a d o o m e c a n i s m o d e in te rc e p ta ç ã o d e m e n s a g e n s q u e tra n s f e r ir á o c o n tr o le d a e x e c u ç ã o do nível b a s e p a i a o m etan iv el. S e g u n d o Z i m m e r m a n n [Z 1M 96], a in te r c e p ta ç ã o d o m e ta n iv e l

(m elalevel iníerceplion - MLJ)

é a t r a n s f e r ê n c ia d o c o n tr o le d o nív el b a s e p a r a o m e ta n iv e l e p o d e se r i m p l e m e n t a d a ta n to e m lin g u a g e n s in te r p r e ta d a s q u a n t o c o m p ila d a s . N a im p le m e n ta ç ã o d o O p e n C + + [C H I9 5 ], p o r e x e m p l o , u m p r é - p r o c e s s a d o r e n v o l v e o c o m p o r t a m e n t o orig in al q u e i n v o c a o o b je to de c o n tr o le n a m e ta c la s s e n o início e no final d a e x e c u ç ão .

A im p l e m e n t a ç ã o d e u m a ML1 d e v e ser feita d e u m a f o r m a t r a n s p a re n te , o u seja, a classe d o nível b a se q u e le n h a a c h a m a d a d e u m m é t o d o i n t e r c e p t a d a n ã o d e v e p e r c e b e r q u e h o u v e u m d e s v io d o c o n tr o le p a r a o m etanivel. L e m b r a n d o q u e u m a M L I te m u m a re la ç ã o d ire ta c o m o c o m p o r t a m e n t o e m t e m p o d e e x e c u ç ã o d o sistem a, s u a im p le m e n ta ç ã o d e v e ser tal q u e p r o d u z a u r n a s o b r e c a r g a m ín im a. N a p ro v is ã o d e u m s u p o r t e d e m e la -o b je lo s s u r g e m , b a s ic a m e n te , três a sp e c to s q u e d e v e m s e r c o n t e m p l a d o s p e la im p le m e n ta ç ã o d a lin g u ag em : (a) tr a n s f o r m a ç ã o d a in f o r m a ç ã o d o p r o g r a m a n e c e s s á r ia p a r a realizar se u tr a ta m e n to n o m e ta n iv e l;

M odelos formam a base conceituai de diferentes arquiteturas de softw are. M ary Shaw [SHA95] classifica um M O P com o tim m odelo de fram ew ork que atende a classes de problem as e dom ínios

específicos. Em bora sendo a reutilização de código e projeto a principal m otivação de frameworks, a

associação de M O P com o um framework está diretam ente relacionada com a propriedade do M OP em

definir sistem as abertos, flexíveis, e extensíveis. O anexo 2 traz a abordagem de fram ew orks orientados a

(29)

Capítulo 2 - Reflexão computncionnl 14

(b) a ss o c ia ç ã o e n tre os o b je to s d o nível b a s e c o m seu s c o r r e s p o n d e n t e s m e ta - ob je to s;

(c) a a tiv a ç ã o d e sse s m e la - o b je lo s q u a n d o u m o b je to d o nível b a s e d e v e realizar a l g u m a o p e r a ç ã o c o n t r o l a d a p o r u m m e ta -o b je to .

A i m p le m e n ta ç ã o p a r tic u la r d e s te s a s p e c to s f o r n e c i d a p o r u m a lin g u a g e m r e fle x iv a co n stitu i o M O P d e s s a lin g u a g e m . A o p e r a ç ã o d e re ificação , j á c o m e n ta d a , s u r g e n o p rim e iro asp ecto . Os d e m a is re f e r e m -s e ao s m e c a n is m o s q u e d e fin e m c o m o a a s s o c ia ç ã o é i m p l e m e n t a d a e c o m o se in icia o p r o c e s s o d e re fle x ã o . E x iste m , b a s ic a m e n te , d u a s p o s s ib ilid a d e s p a r a i m p l e m e n t a ç ã o d e c o m p u t a ç õ e s reflexivas [ M A E 8 8 ] : a r e s p o n s a b ilid a d e p o d e ser a t r i b u í d a ao o b je to d e n ív e l b a se , q u e n e s te caso c o n t é m c ó d ig o m e n c i o n a n d o seu m e ta - o b je to , 011 p o d e se r re a liz a d a a u t o m a t i c a m e n t e pelo s is te m a d e s u p o r t e d e e x e c u ç ã o d a lin g u ag em .

2.4 .1 . M etas num p rojeto de M O P

U m M O I ’ d e fin e u m p r o to c o lo p a d r ã o para a a s s o c ia ç ã o d e m c l a - o b j e t o s c o m o b je to s d o nível b a s e e a a tiv a ç ã o d o s m e t a - o b j e t o s e m r e s p o s t a a e v e n to s p r o d u z i d o s no nível base. A c o m p l e x i d a d e d a im p le m e n ta ç ã o d o s m e c a n is m o s n e c e s s á r io s p a r a p r o v e r a c a p a c i d a d e d e re fle x ã o d e p e n d e d a lin g u a g e m d e p r o g r a m a ç ã o . S m a llta lk p r o v ê várias fa c ilid a d e s p a r a im p le m e n ta r c o m p u t a ç õ e s reflexivas [ J O H 8 9 ] , e n q u a n t o q u e no' C + + , p o r s e r u m a lin g u a g e m e stá tic a e fe c h a d a , a i m p le m e n ta ç ã o d e u m s u p o r t e b á s ic o t o m a - se m a is c o m p le x a .

N o p ro je to d e u m M O P , é im p o r ta n te q u e e ste ja m c o n t e m p l a d a s a lg u m a s ca ra c terís tic a s f u n d a m e n ta is , c o m o ro b u s te z , a b s tra ç ã o e e x te n sib ilid a d e . E le é r o b u s to q u a n d o p e r m ite ao p r o g r a m a d o r d e p e n d e r d a f u n c io n a lid a d e d o c u m e n t a d a d as classes d o p r o t o c o l o . E m o u tra s palavras, a in te g rid a d e s e m â n tic a d e v e ser r e f o r ç a d a e o siste m a , q u a n d o s o fre r a d a p ta ç õ e s , n ã o d e v e a p r e s e n ta r eleito s colaterais, n e m n e le n e m n o s d e m a is sistem as. A c a ra c terís tic a d a a b s tra ç ã o s u r g e n o m o m e n t o e m q u e detalhes d e i m p l e m e n t a ç ã o sã o o c u lta d o s d o p r o g r a m a d o r . D e p e n d e n d o d o nív el e x ig id o de r e fle x ã o s o b r e 0 p r o to c o lo , a re v e la ç ão d e certo s detalh es, e m alg u n s caso s, p o d e r á facilitar a c o m p r e e n s ã o d a fu n c io n a lid a d e d e u m m ó d u lo . U m a d e l i c a d a q u e s tã o é s a b e r

(30)

Capítulo 2 - Reflexão computacional 15

o p o n t o e x a to e n tre a a b s lr a ç ã o e a r e v e la ç ã o | B R E 9 2 | . O p r o je to d e u m M O P é e x ten sív el q u a n d o o p r o t o c o l o p o ssu i a c a p a c i d a d e d e s o fre r o a c r é s c im o d e n o v a s fu n ci o n a l i d a de s s e m afetar as d ema i s melas.

K iczales [ K I C 9 I | a firm a q u e , tr a d ic io n a lm e n te , o s u s u á r io s lid a m n as lin g u a g e n s d e p r o g r a m a ç ã o c o m a b s tr a ç õ e s tip o “ c a ix a p r e t a ” e q u e u m a l in g u a g e m q u e i n c o r p o r a a id éia d o M O P as d e ix a m ao estilo “ c a ix a b r a n c a ” . E s t a c a ra c te rís tic a d e to r n á - l a c o m o u m a lin g u a g e m ab erta p e r m ite ao s u s u á r io s das lin g u a g e n s c o m M O P a j u s t a r e m - n a d e a c o r d o c o m su as n e c e s s id a d e s particulares. A firm a , ain d a, q u e u m M O P d e v e se r u tiliz a d o e m p ro je to s d e s o f tw a r e c o m p le x o s , n ã o s e n d o aco n se lh á v e l, p o r t a n t o , s e u u s o e m p e q u e n o s sistem as, s o b p e n a d e afetar o d e s e m p e n h o d e ste sistem a.

N o t e - s e , e n tre ta n to , q u e a lg u m a s m e ta s são c o n flitan tes e n tre si. S e o p r o t o c o l o e x ig e q u e s u a r o b u s t e z d e v a se r p r i o r iz a d a c o m o m e t a d e p ro je to , s u a c a p a c i d a d e d e se r ex te n sív e l p o d e ficar p r e ju d ic a d a , a fim de m in im iz a r os riscos d e p r o b l e m a s futuros. S e n d o o p r o t o c o l o u m s o ftw a re , p o d e - s e im a g in a r ta m b é m u m con flito e m relação à fa c ilid ad e d e u so e eficiência. U m a v e z q u e a eficiência é s e n tid a e m t e m p o d e c o m p ila ç ã o , e m t e m p o d e c a rg a e em t e m p o d e e x e c u ç ã o , e la d e v e ser e n fa tiz a d a no m o m e n t o a p r o p r ia d o .

O b s e r v a n d o - s e estas m etas, p e r c e b e - s e o q u a n to é difícil u m p r o t o c o l o c o n t e m p l a r to d a s ao m e s m o tem p o . M u ita s vezes as i m p l e m e n ta ç õ e s p r e o c u p a m - s e n a o tim iz a ç ã o d e a l g u m a s e m d e trim e n to das dem ais. C a b e ao p ro je tis ta d o M O P , en tão , a t a r e f a d e e s c o lh e r d e q u e f o rm a estas m e ta s se rã o im p le m e n ta d a s . S u a s d e c is õ e s serão b a s e a d a s , ta m b é m , no a m b ie n te n a qual a l in g u a g e m d e p r o g r a m a ç ã o está inserida. O c a p ítu lo s e g u in te c o m e n t a o s a m b ie n te s d e d e s e n v o l v i m e n t o visual d e p r o g r a m a ç ã o e a f o r m a c o m o o p r o t o c o l o p o d e tirar p r o v e ito deles.

2.5. Trabalhos existenfes

F o r a m e n c o n tr a d a s várias im p l e m e n t a ç õ e s d e re fle x ã o c o m p u ta c io n a l. D estas, a l g u m a s f o ra m se le c io n a d a s p a ra a a p re s e n ta ç ã o , s e g u n d o os critério s abaixo:

(31)

Capítulo 2 - Reflexão computacional 16 (á) s e r e m lin g u a g e n s d e p r o g r a m a ç ã o o rie n ta d a s a o b je to s; (b) e s t e n d e r e m re c u rs o s às lin g u a g e n s 0 0 q u e n ã o p o s s u e m o s c o n c e ito s d e re fle x ã o o u p o s s u e m p o u c a s f u n c io n a lid a d e s; (c) i m p l e m e n t a r e m o m e c a n is m o d e i n te rc e p la ç ã o d e m e n s a g e n s d e m a n e ira s diferentes. 2 .5 .1 . O p en C + +

S h ig e r u C h ib a , d o Institiite o f In f o r m a tio n S c ie n c e an d E letro n ics, U n iv ersity o f T s u k u b a , a p r e s e n t a várias c o n tr ib u iç õ e s u tiliz a n d o C + + e Java. U m a d elas, o O p en C + +

[C H I9 5 , C H I 9 6 ] , m o s t r a u m a im p le m e n ta ç ã o b a s e a d a n a lin g u a g e m C + + q u e lid a d i r e ta m e n te c o m o c ó d i g o fonte dos p r o g r a m a s nível b a s e e m e ta n ív e l. A fig u ra 2.3 m o s tr a os p a s s o s e x e c u t a d o s p a ra a criação d e u m p r o g r a m a reflexivo.

program a executável (extensão .exe)

F I G U R A 2 .3 : Es q u e m a d o Op e nC + +

A p ó s o u s u á r io ter escrito as classes nível b a s e e m e ta n ív e l, o c o m p i l a d o r O p e n C + + fará a tr a d u ç ã o d e ste s c ó d ig o s e m C + + p a r a q u e o c o m p i l a d o r C + + , en tão , g e re o c ó d i g o e x e c u tá v el. S e n e n h u m a m e ta c la s s e e s tá a s s o c ia d a à nível base, o O p e n C + + é id ê n tic o ao C + + e esta a s s o c ia ç ã o é d e “ u m p a r a u m ”, o u seja, u m a m e ta c la s s e é ú n ic a p a ra a nível b a se e a classe nível b a s e po ssu i a p e n a s u m a m etaclasse.

E xem plo: s u p o r as classes Person, d o nível base, e V er boseClass, d o m e ta n ív e l, c o n f o r m e fig u ra 2.4. P a r a a a sso ciação d o p r o g r a m a nível b a s e c o m o p r o g r a m a d o

program a nível base (extensão .cc) programa metanível (extensão ,mc) C o m p ila d o r O p e n C + + Suporte runtim e Compilador C + +

t

(32)

C apítulo 2 - Reflexão computacional 17

m e ta n ív e l. o O p e n C + + v e rs ã o 2.5 in t r o d u z u m n o v o tip o d e d e c l a r a ç ã o e m C + + , c h a m a d a d e m e t n c l a s s ( d e s t a c a d o e m P e rs o n .c c ) '

ff •« *• i H »► +4 *4 +4 »» **. •» 4* 4« -* w- ♦* 44 44 +•>+- » »» * * <1 * M I» <1 I» •»» -4«H- *4 44 4« 4 0 4 - *4 +4 4* 44 >4. » # i i i e l u t i ô

metaclass VerboseClass Person;

el*F*â p.»je«on f

P*?r60» ( i r i t í ) ; ( ag«> *" i ; }

infc A ^ e i ) : { rístutft à g ô ; )

i M' BitfchdíiyOoJitóa {), í jr*itutrt + >acr», }

pAjrson Xuísi(2 4 },-t>i'inUf ("H^fe % d \n", J u í s {)) ,* p v i n t í r a g * % d W ' , X u i s B i r t h d a y f ) );

í m M M m m ^ ^ ^ ^ M m m m M ^ ^ m Ê È È m m m

// V c s r b o s e C l a c s . m a / / --- ---# x n a l u d o &---#34;mop.h'&---#34; ala s s V o r b o p o C l a s B r p u M i « C l a s s {

w ^ M m Ê ® ^ ^ ^ m m m m Ê m m m m m f fl ff l Ê ff lm m m im m m a m ^ ^ ^ i

P t r e o * T r n n s l a t o M c m b a r C a l l (Envíronmunt*, È*fcr€>e*, Pfctao*,

f>troo

* ,

Pfcre®*)

;

i p p Í l l ^ l p ! ! l l l Í l l l l Í l l l l l l l l l ^ g l ^ ^ ^ ll^lllllllil^l;;i^ l ^ l i l l i l l l I | j | l llil i ^ ™ i g l M I Í i M a ii P t r e a * VarbooeClas«!- TranslatoMombcrCall <Ênvironmonfc* env, Pfcree* objècfc,

P t r v e * o p f Ptítop* mambor, f t r e è * a.rgli3 fc)

i|ftil;lil;lilili^ lIP llii|g ||iiilllilll ÍI ! I^W llilllllllllllilllillllilliii|;iil^ ^ l l l l l l ^ i l l l l ; ^ l ^ P l l l l ^ l l l Í i l ^ iufcurn P t z v a t M a k e (" ( p u t & ( V ^ p {) \ " ) , *p)", nvsmber,

C i a s s ;•T r a n o í a t e M o m b e r C a l I ( n n v , ab^-ect, o p v moiabar, Í ^ ^ I ; ! | : ^ ^ ^ i l l l l l l ^ ^ l l l l l ^ I ^ ^ ^ ^ ^ ! ! l ! ! ! ! I I N ; i l l ^ | i ; Í l i i l l l i l l l ^ ^ I i i l l l l l i i i i N ; g ; i i i l M I W P I l l l i

F I G U R A 2.4: EXEMPLO DO OPENC++

,A<

v

E sta d e c la r a çã o d e fin e a m e taclasse ( V e r b o s e C l a s s ) > p â r a u m a classe ( P e r s o n ) e d e v e a p a r e c e r antes d a d efinição d e P e r s o n . A q u i V e r b o s e C l a s s é u m a s u b c la s s e d e C la ss. C lass é u m a m eta c la sse p a d r ã o q u e p r o v ê u m a interface p a r a acesso d a d e fin iç ã o d a classe. P a r a alterar seu c o m p o r t a m e n t o , o p r o g r a m a d o r define u m a s u b c la s s e d e Class.

(33)

Capítulo 2 - Reflexão computacional 18 O M O P

(M eíaobjecl Prolocol) é

o r e s p o n s á v e l p e la t r a d u ç ã o d o f o n t e O p e n C + + e m C + + , e n ã o a p e n a s r e p r e s e n ta o s a s p e c to s e s tru tu ra is d o s m e t a - o b j e t o s m a s c o m o t a m b é m p e r m i t e ao p r o g r a m a d o r alterar o c o m p o r t a m e n t o d o p r o g r a m a [C H I9 7 ], O m e c a n i s m o d e i n te rc e p ta ç ã o d e m e n s a g e n s é b a s e a d o n u m

wrapper,

e n v o l v e n d o o c o m p o r t a m e n t o o riginal, q u e i n v o c a o o b je to d e c o n t r o l e n a m e ta c la s s e n o início e n o final d a e x e c u ç ã o . 2 .5 .2 . O p en J a v a U m a o u t r a im p le m e n ta ç ã o a p r e s e n t a d a p o r C h i b a é o O p cn .la va |C H I 9 8 a J . Ela é b a s e a d a n a l in g u a g e m J a v a e p o ssu i o m o d e l o m u ito s e m e lh a n te a o O p e n C + + , c o n f o r m e p o d e se r o b s e r v a d o n a fig u ra 2.5.

program a nível base (extensão .oj) programa metanível (extensão .oj)

1

C o m p ila d o r O p enJava Suporte runtim e Compilador Java

t

program a executável (extensão .class) F I G U R A 2 5: ESQUEMA DO OPENJAVA O c o m p i l a d o r O p e n J a v a c o n s is te e m três etapas: p r é - p r o c e s s a m e n t o , t r a d u ç ã o d e f o n t e - p a r a - f o n t e d e O p e n J a v a p a ra J a v a e a c o m p ila ç ã o . O M O P do O p e n J a v a é u m a in te rfa c e p a r a c o n tr o la r o tr a d u t o r n a s e g u n d a etapa. E le p e r m ite e sp e c ific ar c o rn o u m a c a ra c te rís tic a e s te n d id a d o O p e n J a v a é tr a d u z i d a e m c ó d ig o Java.

U m a c a ra c te rís tic a e s t e n d i d a d o O p e n J a v a é f o r n e c i d a c o m o u m s o ftw a re ad ic io n a l p a r a o c o m p ila d o r . E sse s o f t w a r e c o n s is te n ã o só d e u m p r o g r a m a m etan ív el m a s c o m o ta m b é m d e u m c ó d ig o d e s u p o r t e e m ( e m p o d e e x e c u ç ã o . E sse c ó d i g o p ro v ê classes u s a d a s p e lo p r o g r a m a d o nív el b a s e t r a d u z id o e m Java, O p r o g r a m a d o nível

(34)

Capítulo 2 - Reflexão computacional

19

b a s e , e sc rito e m O p e n J a v a , é t r a d u z id o p a r a J a v a c o n f o r m e o p r o g r a m a d o m e ta n ív e l e é d i n a m i c a m e n t e ligado c o m o c ó d i g o s u p o r t e e m t e m p o d e e x e c u ç ão . O M O P d o O p e n J a v a s e g u e três passos: • d e c id e c o m o o p r o g r a m a d o nível b a s e d e v e r i a p a re c e r; • c o m p r e e n d e o q u e d e v e r ia se r tr a d u z i d o e q u e c ó d ig o s u p o r t e é n e c e s s á rio e m t e m p o d e e x e c u ç ã o ; • e s c r e v e u m p r o g r a m a m e ta n ív e l p a r a ex e c u ta r a tr a d u ç ã o e t a m b é m e s c r e v e o c ó d i g o s u p o r t e e m t e m p o d e e x e c u ç ão .

E xem plo: s u p o r as classes Person, d o nív el b a se , e Ve rboseClass, d o m e tan ív el, c o n f o r m e fig u r a 2.6. N o a r q u iv o fo n te Person. o j o b s e r v a - s e , e m d e s ta q u e , i n s t a n t i a t e s V e r b o s e C l a s s . E s ta n o t a ç ã o especial c r ia d a p e lo O p e n J a v a s ig n ific a q u e a s e m â n t i c a d a c lasse Perso n é e s p e c if ic a d a p a r a se r e s t e n d i d a p e la c la sse Verbose Cl as s . N a prática, o c ó d ig o fo n te d e Pers on é t r a d u z id o p e lo o b je to

d e VerboseClass.

O b s e r v a - s e , ta m b é m , no a rq u iv o fo n te V e r b o s e C l a s s . oj, q u e a c lasse do m e ta n ív e l V e r b o s e C l a s s é u m a c lasse nív el b a s e d o p o n t o d e vista d a n i e l a p r o g r a m a ç ã o e, d e fato. ela d e c l a r a su a s classes d o m e ta n ív e l a tra v é s de

op en ja v a .in o p .M cta cIa ss, e m b o r a d e v e r i a s e r e sc rita e m Java. E la h e r d a d e

op cn jav n .in o p .O J C Ia ss e s o b r e p õ e fu n ç õ e s m e m b r o s .

D if e r e n t e m e n t e do O p e n C + + , o M O P d o O p e n J a v a n ã o e stá p r e p a r a d o p a r a q u e o c o m p o r t a m e n t o de u m p r o g r a m a s e ja a lte ra d o e m ( e m p o d e e x e c u ç ão . O f e r e c e a p e n a s o s u p o r t e a re fle x ã o em t e m p o d e c o m p ila ç ã o . A s m e n s a g e n s são in te r c e p ta d a s d a m e s m a f o rm a q u e o O p e n C + t . isto é, p o r in te r m é d io d e

wrappers.

Referências

Documentos relacionados

te à Assembleia Geral, além das demais atribuições previstas em lei ou neste Estatuto Social: (i) tomar as contas dos administradores, examinar, discutir e votar as

Podemos, dessa forma, confirmar a experiência e a competência da professora Juliane diante do trabalho com a leitura, desde a seleção dos textos, que precisam ser curtos,

APÊNDICE A – Roteiro da entrevista semiestruturada para os professores do Curso de Pedagogia do Centro de Educação, Ciências Exatas e Naturais CECEN/UEMA UNIVERSIDADE FEDERAL

Alvará de empreiteiro de obras públicas de categoria ou subcategoria indicada no anúncio e no programa do concurso ou, quando for o caso, no convite à apresentação de

Feita a apuração histórica da organização da CQJBV e da criação de uma associação entre seus membros, discutimos no terceiro capítulo o fato de que estando

After treatment, the salivary occult blood index (SOBI), plaque index (PLI), peripheral blood T lymphocyte subsets, and serum inflammatory factor and immunoglobulin levels

O presente trabalho apresenta os dados referentes à Ilha Mutum PR/MS gerado pelo projeto “Processos de conectividade e a vegetação ripária do alto rio Paraná”, que integra o

Lei 10.639/03; Ritmos e danças Brasileiras: Jongo, Lundu e samba; Ritmos e danças Brasileiras: Maracatu, frevo, e carimbo; Ritmos e danças Brasileiras: Maxixe, choro e bossa