shhgs@wgqqh.com chinapub 2002 7 Bruc Eckl 1000 7 Bruc Eckl 1000 Th gnsis of th computr rvolution was in a machin. Th gnsis of our programming languags thus tnds to look lik that Bruc machin. 10 7 www.wgqqh.com/shhgs/tij.html shhgs 2003 9 8 1 34 1
1: shhgs@wgqqh.com... B n j a m i n L W h o r f (18 9 7-19 4 1) ( s S t v Jo b ) ) (O b j ct-o r i n t d p r o g r a m m i n g O O P C C O O P Foundations for va CD O O P ( C C) F O R T R A N, B A S I ) ( ( ) 2 34 2
( ) ( ) : : 1. ( ) 2. 3. 4. (instanc of a class) (class) (typ) circl shap shap circl shap shap (substitutability) OOP ( L I S P A P L )P R O L O G O O P A l a n K a y S m a l l ta l k 5. 3 34 3
B o o ch : ) ( ) ( ) (ty p class 7 S i m u l a -6 class S i m u l a cts) (cl a ss s o f o b j class (cl a ss) ( s t st ) ( O O P ob j c instanc s nding m ) ( ssag r q u l m n t) ss ss O O P cl a ty p cl a ( ) ( ) 4 34 4
) (int rfac O O P Light lt = nw Light(); lt.on(); (im p l m ntation) ( ) ( ) lt / t L i g h L i g h t L i g h t ) L i g h t r f r n c (lt n w ) L i g h t (d o t/p r i o d ) U nifi d M od l ing L ang uag (U M L 5 34 5
od c (m th p u b l i ) ( ) (co ( ) h si o n ) ( ( ) ( ) ) U M L 6 34 6
shhgs@wgqqh.com (c l ass c r ator r ) ) (c l i nt p rog ram m b u g p u b l i cp r i t p c r o t ct d p u b l i p r i t p r i t p r i v a t p r o t ct d p r i t p r o t ct d p r i t p a cka g p a cka g 7 34 7
p a cka g p a cka g p r i t ( ) (c om p osition ag g r g ation) ) (h a s-a O O P ( U M L ) p r i v a t O O P class 8 34 8
( ) (inh ritanc b as c l ass p ar nt c l ass sup rc l ass) ( d riv d c l ass inh rit d c l ass sub c l ass, c h il d c l ass) ( U M L ) ( ) ) ( ) (tr a sh ) ( ( ) ) (ty p h i r a r ch y sh a p sh a p 9 34 9
O O P ( ) p r i t O O P O O P 10 34 10
( s ) v a x t n d ) (ov rrid 11 34 11
( ) ) (p ur sub stitution) (sub stitution p rinc ip l (is-a) -a) ( ) (is-l ik co o l i n g sy st m ( p u r su b sti tu ti o n ) 12 34 12
sh a p sh a p sh a p sh a p sh a p p n ta g o n sh a p ( t ) sh a p ci r cl v h i cl b i cy cl b i r d co r m o r a n sh a p v h i cl b i r d d r a w B i r d C o n t r o ll r B i r d B i r d C o n t r o ll r B i r d B i r d B i r d ) m o v ( ) (G o o s P n g u i n ) O O P O O P ( arl y b inding 13 34 13
O O P ) O O P (l at b inding ( d) w ak l y ty p ( 7 ) al ) (C+ + v i r t u ss sh a p ) (f a m i l y cl a H x ag o n ( ) shhgs@wgqqh.com void dostuff(shap s) { s.ras(); //... s.draw(); } S h ap d r a w r a s d o S t u f f ( ) Circl c = nw Circl(); Triangl t = nw Triangl(); Lin l = nw Lin(); dostuff(c); dostuff(t); dostuff(l); d o S t u f f ( ) 14 34 14
shhgs@wgqqh.com dostuff(c); C i r cl S h ap C i r cl S h ap d o S t u f f ( ) S h ap C i r cl d o S t u f f ( ) S h ap (up c ast) ast ( st ) c ca up u p ca sti n g (ca sti n g ) d o S t u f f ( ) s.ras(); //... s.draw(); C i r cl S q u ar S h ap S h ap S h ap r as ( ) d r aw ( ) d o S t u f f ( ) C i r cl d r aw ( ) S q u ar L i n d r aw ( ) S h ap 15 34 15
d o S t u f f ( ) a b s t r a c t i n t r f a c ab st r act ab st r act ab st r act ab st r act ab st r act ab st r act ab st r act ab st r act i n t r f ac ab st r act i n t r f ac ) S h ap r a s ( ) d r a w ( C i r cl S q u ar L i n O O P ( C+ + d ) autom atic sc op 16 34 16
( ) (g arb ag c ol l c tor) ) C o l l c t i o n r f r n c (c ontain r c ol l c tion r) co n ta i n n w ( C+ + C+ + ) ( C+ + ) O O P C+ + C+ + (S ta n d a r d C+ + L i b r a r y (S ta n d a r d T m p l a t L i b r a ) r y S T L )O b j ct P k a sca l V i su a l Co m p o n n t L i b r a r y (V CL S m a l l ta l ) ( ( L i st )M ap 17 34 17
( s ) ( ) assoc iativ array S t (it rator) ( 2 (sta ck) ) (q u u S t L i st st L i sta r r ay L i st L i n k d L i st st A r r ay L i L i n k d L i st r r ay L i st st L i n k d L i A r r ay L i L i st A r r ay L i stl i n k d L i sts t ack 1.0 1.1 ) E n u m r at i o n I t r at o r E n u m r at i o n L i n k d L i st A ( C+ + ct O O P ) C+ + O O P O b j 18 34 18
C ( C ( ) ) ) ( r f r n c / ct r f r n c O b j O b j ct r f r n c O b j ct C i r cl S h ap ( ) C+ + O O P )C+ + ( C+ + ct ct O b j O b j O b j ct r f r n c O b j ct (dow nc ast) C i r cl S h ap 19 34 19
( x c p tion) r f r n c ) (p aram t riz d ty p S h ap C+ + C+ + t m p l a t v a ( v a C+ + t m p l a t g n ric s) ( ) ( ) C+ + 20 34 20
( ) ( O b j ct ) ( ) ) C+ + C+ + ( C+ + C ( ) C C+ + C+ + C+ + C+ + 21 34 21
) u l ti th r a d i n g CP U ) ( (co n cu r r n cy ) (m 22 34 22
sy n ch r o n i z d P r s i s t n c t p r si st n p r si st n c ) p r si st n c (ob j c t s rial iz ation12 (va D ata O b j c ts JD O T h ink ing in E nt rp ris va) J a I n t r n t ( ) W b? W b / W b / / ) ) (cl i n t/s r v r (c n tr a l r p o si to r y o f i n f / o r m a ti o n 23 34 23
/ ( ) transac tion p roc ssing ) ( (m iddl w ar ) / / W b / W b ) ( ( ) / ( ) W b W b t I n t r n 24 34 24
( b u g ) W b H y p rt x t M ark up L ang uag (H T M L ) t) ) (su b m i W b (C om m on G at w ay I nt rfac CG I CG I ( cg i -b i n W b ) cg i -b i n l P r l ( P r P y th o n w w w.p y th o n.o r g ) P r l CG I CG I CG I t ( CG I ) I n t r n CG I W b G I F (G r a p h i cs I n t r ch a n g F o r m a t) CG I H T M L W b H T M L W b 25 34 25
) (p l u g -i n ( ) ( ) ( ) ) (G U I S cr i p t( )V B S cr i p t( C) k V i su a l B A S I T cl /T G U I t ) S cr i p N tsca p N a v i g a to r M i cr o so f t I n t r n t E x t p l o r r (I E E CM A S cr i p k t S cr i p V i su a l B A S I CT cl /T ) H T M L H T M L H T M L W b A cti v X t S cr i p ) (M o z i l l a t w w w.m o z i l l a.o r g S cr i p ( W b 26 34 26
J a ap p l tva W b S tart t t A ( t p p l W b A p p l W b )A p p l ( ) v a t I n t r n t I n t r n t a p p l t a p p l a p p l t ( ) W b C t ( s ) V i su a l B A S I V B S cr i p / W i n d o w t S cr i p tv B S cr i p. N E T C # t v a a p p s l M W i n d o w M i cr o sf t. N t C #. N E T i cr o so f ta cti v X 27 34 27
t C # M i cr o so f. N E T S u n C # t. N E T M i cr o so f ) M o n o (w w w.g o -m o n o.co t m L i n u x. N E T M i cr o so f. N E T. N E T C # L a r r y O B r i n B r u c E ck l P r n ti c H a l l 2 0 0 3 T h ink ing in C # t I n t r n W b H T M L G I F A cti v X G I F t a p p l M i cr o so f ta cti v X A cti v X W i n d o w s A cti v X W b t B B S (B u l l ti n B o a r d S y st m s) I n t r n b u g t t W ( b a p p l a p p l shhgs@wgqqh.com 28 34 28
) t / a p p l ) ( ) t I n t r n t) t a p p l t(si g n d t a p p l a p p l t a p p l t a p p l t a p p l 14 a p p l t W b S ta r t W b S ta r b u g ( W b t 14 W b S ta r i n t r an t I n t r n / t / W / b W b W b W t b W b i n tr a n t t I n tr a n I n t r n a p p l t t I n t r n 29 34 29
t i n tr a n / t ) ( t v a W b S ta r i n tr a n t a p p l ( ) t t s r v l S ( r v l JS P T h ink ing in E nt rp ris va) / t( a p p l I n t l /W i n d o w s i n tr a n t H T M L W b H T M L P r lp y th o n C+ + CG I W b a p p l t 30 34 30
) ( t ) h o tsp o J a ( ) ( 1 ) ( ) () W b 31 34 31
C C B A S I C C B A S I h l l o, w o r l d b u g J a O O P C + +? C+ + C+ + C+ + C+ + C+ + C+ + C+ + C+ + ( C+ + s s) M i cr o so f t W i n d o w W ) i n d o w M i cr o so f tv i su a l B A S I C (V ( ) B V B V B V B I V B U 32 34 32
( C+ + v a C+ + ) C+ + C+ + C ( ) 2 0 5 0 ( C+ + ) t j u st-i n -ti m (JI T ) S u n h o tsp o ( CC+ + CC+ + ) O O P O O P ( O O P ) ) ( P y th o n w w w.p y th o n.o r g C m ai n ( ) 33 34 33
C ( v a ) O O P T i m o th y B u d d (A d d i so n -W sl y 19 9 5 )M ul tip aradig m P rog ram m ing in L da ty p cl a ss s S co tt M y r p r i m i ti v p r i m i ti v t M i cr o so f C#.N E T V B C# V B.N E T 34 34 34