TCL
TCL
IsIt u
v;wxy 6v;x6u
01 ") : 8 -! {z|)}~)26,
3") @ k=44 mnLNOQd
l1^ Zd _ LNgmnO
2! =")
¡Q ¢¡Q Ä1 ¾@Å
ÆN¡QÅÇ
´ÈkÉ
$h =2; )-72B ?z|)|/z ± £¤!¥ ® ¥N¬²4¦ ³§4¨¤©hª «¬)Q§4©h®¯k§B° ´kVÄ1Ê Å!Ë@4 kÂ8¡1
9<?2-7, -7":zB||)
k k k k´ ´ Ì Ì Q k 4k
2B e1d d l+ 44M;M/M6p d [k^p d B4K1LN[Q4d [k^ +H OQd LNghc)p e1d mn^ ¤!¦ §Bµh¤!º¦Q»¶ ©® £ ¤7® ¬ ¼¨®§B° ¤!°¦ ©h£ ® ¬£·h½h¸Q® ¹
¬ ¼ ®©hª §B¶ © Z`1d LN^ LNZK1H J1Í
k¾@ k 4 ¿ ¡Q¢ ÈÂ&¡Q ¡1 Ë È¡Q´
¿ ¡Q Q
¦ §Bºº«¬ ¨¥V® ¬À=¦Q£ §B°hÁ _ ghff
kÂ&¿k´´¡Q¿7 4È¢
À=¯° ¦Q§B£4º&® ¬ ©Á ¤° »° ¤!© ¤°!¦ «£ «Ã£¤ È/ ÈË@¡1 k
28-Apr-02 Advanced Programming 3 28-Apr-02 Advanced Programming 4
Spring 2002 Spring 2002
æ@çîBôçB÷
æ=ç=î@ì õ @ñüTõ ìý @ê@éî ü
Ù p M/H OQea_ LNg+M;H J1K1LMl1ghLÍ1ghZmnO õ
Ú É 4 !
Û ¡QáâÜ ¿
28-Apr-02 Advanced Programming 5 28-Apr-02 Advanced Programming 6
Spring 2002 Spring 2002
1
u
x/t;vItQ 6u I Ï#ÐoâÐo u
vnxââv/?x
;$! &Ò r1ÔBfghcBd e1H J1ÍaH O/Zn^ H OQd
LN_)M/LNghK1O986J1Ln_ H WBfK
Í1ghZmomnZg
!
!
#"$
!%&!(')
%
+*,-./0
'21 Ì 4NÉÈ ´/
4ÈÂ&Â&¡Q ´
3
3/4%&! :;K1f^ ZcâfÔZ^ `1Zd H LNJ1PmnZcâJ1fOQd
5 67"$ <$<&LNJ1^ câJNffKNfK6M/e1fJaOQl1Z[QfO1
%!=&>'
' ? %!=&@
IJ-KRQTSJUWV+XZYL\[]_^ f
H J1ÔBLNBfKaZOQP)OQZcBP Vrs+JtX7uMv
28-Apr-02 Advanced Programming 9 28-Apr-02 Advanced Programming 10
Spring 2002 Spring 2002
Bw
Ï#vxD?tQÏF5tQÏ#Ðou bD?tQÏF5tQÏ#Ð BE
Ro
, : /Ò
A1 )! 2B
zyn )
01 -7
$
nn
nc$
01
;"=26>Q$h&-: )2C $cncc $n
n b ¡
c¢n$£
nnnnn$¤n$¥n$¡¡$nn¡
F|{+}+~0tW ¡$nn¦ ¡$nn$§$¥n|¨n$ncc¨
n b cc9 c¢n$£
nnnnn$¤n©$¥n$¡¡$nn
(" *2B")
2! -7! ):/Ò
, : cc
¡$nn¦ ¡$nnnª$¥n|¨$$¨
¡$nn¦ $n©$¥n$¡¡$nn|$n
¡$$¤B ¡
¦ ¡$nn$§B cc« ¡$nnnª¦
n©n¢$nn¬
¡n¢n¥©§©¡n¢ ©ª
nn¢® ¡
9¯c°$c±«²«$n¦³ c9´¡
´ccµ¶
n
´
$n
·
nn¢® cc¯c°$c±«²«$n¦³ c9´¡
´ccµ$·
2
bD?tQÏF5tQÏ#Ðou u
GDGoxwo6u
u
6u
yn : 42)Ò
-7, 2BF#
4 2BF#,
!4")2BF#h <1 2B F#")(*(*-7:
26- * )A1 ! :
{z
0
-72B2B") -! 2a01- -7, 2B-( *=") )2B2
yn 48: 2B
-3 ,/-
A1 ) " 22B 2)Ò
-7<?-7==-7 2a42 yn : )!26
!"2 : =,3 }
2B : F yn !2B
-7
, e : yn :
; )01
)9 @2B
!F& F
Ó Ó l1ghfOQOQfK
7`1 d d LNJ A1`1d d LNJ
)Z fc Znl1ghfOQO@fK
)YLNd H LNJ l1LNH J1d fgVmnLNd H LNJ
28-Apr-02 Advanced Programming 13 28-Apr-02 Advanced Programming 14
Spring 2002 Spring 2002
3
I@t u
v;u I@t u
vx
Ïât&? vnt w?Ï
vk
$#
^ H OQd3P?LNghK1fgfKa[kL^ ^ f[kd H LNJaLN_)f^ fmnfJ1d O JU &%('()*'(+-h ,-.-/
OQfl1ZghZd f¦K ANcâOQlNZ[kfO
LNg+d
Z A1O
/%&(d@= f
vk
¿
IJtX
K0%('()*'(+-,-.-/21(3%54-.61(3%54-.
ZJ1câl1ghLl1fg+^ H OQd
[QZJaZ^ OQBL ANfnZ 7[k^[kLNmnmoZJ1K é@æ@ç=ì õ î ýó è ! 7ý98 ! :<;>=@?B'A ¡&¿/
[kè LN
kJ1ç=[kè Zó îd ( ý4@ /2ó ? ( @ /2è ? ! 86ý [kë6LNìJ1[Q Z! d fJ1Zó d fo ^ H è6OQd ëoO ì vk
vk IK6m 1(3%54-.21(3mC%54-# . l
:Z«Aa[.;:Kaf
;_
LNH J k
( @ /2?m /21%* 8n[kLNJ1ÔBfghd
d L6OQd ghH J1Í6M;H d eaOQfl1ZghZd LNg vv IK LRQN q Jq
J w-KDE%('()*
vv
N q !"
L4
! Q m
v J w-KD LRQN q F
r LRQ
5 5 %/
X
L w-J0%('()*G-'(H-)*2%53-)*
¡Qk ´/ È;k ´;ÈÌ
! v
X
L w-J
m
LRQNq`NmJ
$# A6[
28-Apr-02 Advanced Programming 19 28-Apr-02 Advanced Programming 20
Spring 2002 Spring 2002
I@t u
v;u w?Ï#v6x
w?I wSW
IJK!LJK!JK!9Mm"
"
"
% 5
% , -yn-7 *"$& *")=
4-74 ")YX <1 8,=- 2
ON
%- QP NIJK!SR!!
q q %%& 5 ")82-7( -726
:
Ò
N
-c! T>N
q 3
3/ =
UP JK!
%
/%
%
klnm
[Z\q
YU
v # k
m m
IrX
KV J
0 X
J-L_I w LRQ q Q`L
M
01-Q]-^ _
`a]-^ \ _b]-q ^ _bcdcecf`
IJ-K`U
4
xwâBFx6u @bDây
x68xÏ#
vnx/tQÏ#Ð
Ïât&? vnt w?Ï
dNz $tUtv2{v$<w$} $vw $h")=(*-7
`x] x] cdcecf`
B2 n -7 ^ !_"$# ^%
]&x]-^`f]^'f]^ cecdcf`
5 c 5 -
c\U 3%@d ~hg 3g
5 -ei3%=
-%=%#l$
-c!ml-
c\U 3% p
p4d
2B4 8"(
-( 5^ !_*)+5^ !_*,
5 ! @'i% (i R.i%\
V'
2B4 8 : )- A 5^% !_/.0@]-^ 12!354
f
2B4 8
4 5^ !_
2B4 8(*-!7 6]8-^%! 5^% !_
f
x6ÐoB4 x6Ðou
GD
ghfÍ1fWl = > ?== @==0/2=>@=
1JI\* /2? -0@ 7A H64,.? &)E 0,.- 0/+=> ,2! 44 ")
26,-2B :8")
-7
A1 )2B2B "2
AÚ Ü ¡Q Ë#4 7 &¡Q ¡Q k
Â&¡Q kV ¢7 4 /¡Q14 ¡@ NÈÌN! õ ì ö @ê î@ð=ì õ Yì X þ ð=%ì ZTé=æ ù ì6îQðì õ ìaé@æ ù ìXâîQð=ìQæ õ[
BD EC F<G E8H$I Â&¡Q kV ¢7 4 /¡QNkC ´/ÈkÌN4 ]
\ ^ vv
]
\
\ ^ _\h.-/5`
)")*(H '( )+2Ya5 )-^%4!b_{c5`!"g.d2x]-1(^ h3-H]<e-
3f-F#. 2B
,2B4 4
!
X
Jw_I
Â&¡Q kV &¡Q ¡Q k Q L r L_IJ
x6Ðou
GD ItQ 6u
p rqms Rtvus xwRu;y
fB t
S0 431 - 31F&! A;$h 2BF#,
/-7 2B"8,
-7=3$! 2
zq{l| y
> ,
-7=3 F $h")
$h
C
6qUvt$Ut$uUu
t0
t
& } ~z{ v{
0t ~d
5
ItQ 6u ItQ oxw &x
vnt 6u ItQ
Gw
R
ÏF
-7:_!#! !-$ _1%3 _ H ^ fnZd H mnf 7,.6"1 ^ ZOQd
Z[k[kfOQO
_ H ^ fnK1H ghJNZmof 7,641 K1Ó H ghf[kd LNghcâJ1Zmnf
-7ghf: ZK6$ Z_^ ^N1%3(ghfmn!lZ
H JNH J1ÍBA1_cB d fO
H Ja_ H ^ f _ H ^ fnfWBH OQd OL7,641 H __ H ^ fofWBH OQd O
_ H ^ fn^ OQd Zd 7,641",.-0-0,.K H J1_ LNghmnZd H LNJ6Z A1LN`1d
_ H ^ f
gh4f2OZK6`2Z!d
#_mn!LN OQ d
J1 !`Nlm4`Y7cB`2$d f O_1%3 ` ^ !_ _ H ^ fnOQH Q9f 7,.6"1 OQH QfnLN__ H ^ f
_ H ^ fnd ZH ^^ 7,.6"1 J1ZmnfoZ_ d fg+^ ZOQd
2B M/ <-ghH d fn _OQd 1%gh3 H J1Ía#$d $L6:_OQd
K1 LN2`1!d
-LN=gV _ H ^
f )
: _ H ^ fnd cBl19f 7,641 d Ó cBl1fnLN__ H ^ f
l1LNOQH d H LNJaM;H d e1H Ja_ H ^ f _ H ^ fnM/ghH d Z
A1^ f97,.6"1 H _M/ghH d Z
A1^ f«A1câ`1O@fg
28-Apr-02 Advanced Programming 31 28-Apr-02 Advanced Programming 32
Spring 2002 Spring 2002
òò ô!ô òæ@
Qç
ë@üì ü f
òò ôô!òç@îQé@ææ@òç ì! üü
òò ôôh%î@Zæ"@ìì üü Qæ@éì
ò ô!ê@æ=ë ü
28-Apr-02 Advanced Programming 33 28-Apr-02 Advanced Programming 34
Spring 2002 Spring 2002
6
ItQÏ#v;x/Ï# u w|w
x_wat W
n
~ B
0$vwU @vt n : /DE> VF
5 :
"\yn2Cyn :
"\y
y
ghfd `1ghJ1O Ó H _ÔBZghH ZA1^ fnfWBH OQd OQP .6LNd eNfghM/H OQf
++{"f | qvt
! )=-742Byn 4eyn :"\y (--
>@ -7 )(
!F#: )"-! ")
C
ghfJ1Zmofn[kLNmomnZJ1KaLN^ Kad L6JNfM -7 -! "8D 2B
2 yn : );
=-7=
3
-}sz
+
qU@vt yn : /-01 *#
-( 2a-7:-7 : )
}+~0tW ")$&4
-
z yn : );>Q 2 B F
- )(
!CNÒ
h(*-7 $!=-7( )B
# 264")
(")2z yn : )
28-Apr-02 Advanced Programming 37 28-Apr-02 Advanced Programming 38
Spring 2002 Spring 2002
7
W t FÐo6v;u#"ov;w o Bw
W t FÐo6v;u#" EDâ
-( *-26$!-( )2BF# A
;")3?!")N 0
01 \ y6 :\" y62
5 c
! 3%@d
!
5 % %#"
!
!
5 % % q %
%/
5 \U ! ;8 k "$h
i3% '
%#"
!_"
% q
! %&! \ei3%
5 67"
!_"$%#"
!_"
% q
/%
%
!
0 f %!4
!-JU6<?
6<?
0
!=
!-JU
ò ì£ ® ½ìQ ¤&ó@é@öæ=£«ì*à ¤£ï¥ ¸1 ö ©k¨®¥@æ=»ë@£«!îQ·#ð º7¶è £©h® £ ® ¬ ¤ê¥=©hîQ° æ® ¬ %¼Za¥ é=ì@î
ì ò õ!ó öæ=ì= ë 9 ë $9
!
kõ
"$# %
kç=î d7 ë
ì 3: ìQé ù ì@î@æ=è ó 3; ì=ëQæ@ê ò =<$>
õhòQó é =ø =ø
î@ì [ îYX ?
kê6ð ó4ù ì òQó ë=ì6èQð ó ç ö ìnî
6î@ð@ænë
QèQê ò ìQç=î
&
' ( ' ) # '
& #+*
&
, , - , ) # , ,
& #+*
ëQ@æ@æ ç==è@è óì6õ ënîQðîQìað=ì6é ó èQ=înð ó îQç öæ òì ì6D æ=X î ó óù ì@ëï 6æ=Aî @CBoî
W t FÐo6v;u#"@t u
v,Dâw|?6u W t FÐo6v;u#"ou
xw?@cDoxu
é@æ=î
[ ï è
ké
õ é@æ=î
[ë@ì ï Qæ=æ@ë@é=îQìð kõ ìQé@æì õ!ó æ=ì@ë
=ó=ì@èî ! ï è
Qé
ìQçFõ E
î$EHGHIJ Eé@æ E=J E ï î î 9 õ õ
Z=è õ
Qé@é'XBï è õ
ké@é =ì@î?X
ú < õ!öx [ û =ó=è è õ
k!é@é ï Q=óæ=é=õ ì ï =è =õ
kæ=ë@é@ìaé é= èì
@ò@î òQó ç=ë'XBï Qæ@éì Z ù =æ ì X
ð@æ@é=ì ýBú ö ì@î ~ aé@æ@ç=ì û ñ ! ý
ï è
ké
õ 6æ@ç =ì õ î6ìQç=ë ú é õ!ó ç ö ì ~ é@æ=ç=ì ìQç=ë û =ó è !ï =è õ
ké@éé
@õ îæ=ë@ì ú ö éõ
æ ö6ð=îø@û@û6 Qæ@ý é@é Z
õ ì ó èQðnæ ú
èQé
=ì ~
!
ï Qæ@é=ìnæ@ç=ì õ î6ìQç=ë ~ æ
æ@ç=ëï è
Qé
õ oí K
kê é=ì 98 ê=î@î
Qç ñ ý !
ï è
ké
õ nè
kç @æ ö ê õ ì 9=ó è ! öõ
kê@ç=ë ú ìQé=ì@è@îQæ
kç ö ì@î û
!
from Ousterhout
from Ousterhout
8
W t FÐo6v;u#"ou
6u W t FÐo6v;u#"oÐo6v;vntQÏ#Ðxw
â6u
{+}+~0tW/Ò
F#2B- *
01"< 2Byn 4
1 % # ' "$# '
& !6
# ,
& # ,
* 7 #
1 % #
#
"$# '
# ,
& # ,
* 7 #
!
& !6 -y0-7 )F#-26 -yn%'") " $
1 % ' ( ' "$# '
# ,
& # ,
* 7 #
& !6
+fif;Ò
;0-7
{z
0
;Ò
2B ;01- -7,
"$# % 1 ' & , & * , &
0 # % #
' 1,
0 1 ' 1,
#
* 7 # )
01
;, : 2
1 # " #
1
" , ' #
#
# #
W t FÐo6v;u#"oÏ#vnxy Ïw
u
é ìQé*ï é ìQé î@ì îYXæ@é=ìaç ì$X
Qì óxç=î î@õì Z8î ï ì@óxç=î æ õ Z é= ìaæ=ç [ë@îQð ì kõ ì@ó=é@òæ=ì =ê@ç !ìQç 9 ë : 2B -3-:(-
-! *
-
-7
[ ùkóõ óx ó=ò
=ó è !ï é óa ìQé*ï ì@ç=î õ Z @æ=ë@ìaéì@î ó ë [ ò =ó ë%Z ò
"), @ !2Ò
)!- 2F# = )2BF# 2BF
, 4(*-72BF&-7
:8! )A1/2B4 2
!-7
:8"), @ )!2 (-
-74 *-7 )"), @ !2
yn 482B-( !-8>@:
-7
C
01
;, : 26$!")
"), @ 42
Ïw
u BE
Ro ) Ï#wâvns8x Ïw
u BG
Ro
¡$$¡
B c¢n$§ªnnn`_$©§ !
¡Q @¡QV kÂ&
k kk ¡Q ; ¡QÂ&k
¡$$¤B
c¡n$nnn§" !§§§n§§§n§n" ! ¥ ¤!©7º¦ * + ¦N¦Q° ¤!«!© ¤¦Q® ° ¦Q£¤ + + + ,
² "
·²´9¯|§"
·²nncz$·² ¡Q @¡QV kÂ&
¡Q /¿& ¡Qk´
¥¦³ ¥$c9´ #c§µ + ¦1¦Q° ¤!«!© ¤§ h«£ + + + -
c¡n$nnn´$²¥
·§´$²¥
· " £n . © «!¼¥Vº·h§ h«£
c¡n$nnn´$²¥
· $ª !§´$²¥
· $ª !% " &n
c¡n$nnn´$²¥
· !§´$²¥
· ! "
' + ¦1¨¤£ ¤!© ¤&º·h§ h«£
c¡n$nnn´$²¥
· '(!§´$²¥
· '(!% " &n + ¦+® © ¤º¦ §B¬ ¯® ¼¶° ¤7¦Q® ° ¦Q£ ¤ . ¯® £ 4° ¤!¨
c¡n$$¥n©´$²¥
· (§ !¦ '(!$¥n|´¡$nn9 4k=k ¡1 kÂ&
¡Q /¡Q@;
· 4¡QÂ&; ¡Q
È & k¡Q /¡Q@;Â&¢7 7
¡Q
28-Apr-02 Advanced Programming 53 28-Apr-02 Advanced Programming 54
Spring 2002 Spring 2002
9
s u
6vnt w?Ï tQÏF?wSW
Ï#Ðoxu
(
-7 2( $h"
-2B2B 8 $h"=(-4 ") -7% : 2B -3-26- y6 :"\y (--
, yn e yn : 426-:8- -! "2 ")
4") 26-=-7 )( )426")$;!")= 01
$h =2;2B )4F#4 8 );
$h"=(-! "8-7,
")
yn :\ " y626")82
2B ! ") $h# )")( )43?(*-7
-7
")
3 n
-72! F#,
;-7 2B"-! "
26>@TÒ : "-! 01 *$!=-7( )2
2B ;,
-<1"
!C " $!3 n : ") $!3
A1-( )2)ÒV( y6(F# y6(F&$!0 yn(*| )F V F
"( F#
10
ItQÏ ItQÏ
%5 ( )(
426"),@ )!2 9yn"8("): 2Ò
(-
-! :8,3â9)")(*(*-7
:2 fJ1e1ZJ1[kfoM/H OQe6LNg+d [k^ OQeaM/H d e6ZKNK1H d H LNJ1Z^
")$h! )F&-7! "8"
! :/Ò [kLNmnmoZJ1K1O
"),";4=8z ¢4 :BÊ
"), @ ;"
! :
Ò
") *"((*-:8$h"
- ZK1K 7[k^NH J1d fghl1ghfd fg+d L6fWBH OQd H J1Í Il1ghLNÍ1ghZm
"), @ ;>@ )F9E< y6 : )!2BC k¡Q & Q k k
j E
Ro
) « Ïot v x6vntQÏ#ÐÑItQÏ#v;8x9nx
6v;xu
,
&
" # ,
1,
" ,
"$# 23, # # > -+- .
1 !%SR 5 o>-+.
-!/\% %5
!o
%0J!.
!%R 5 *ER -/. V
!
#
,
,
#" $ % !" !"
,
7 7 ,
23 3-
#
,
& #
,
# /,
# +& # # )
$ $ &' $&& (
$! % ' $&(
,
!23 3-
, 23 3-
# ,
#
, " 23 3-
, ,
#
# #
27
2 7
$$ , ) & !" # #" !"*) ''#"+) ''
23 7 # 7
,
# 7 . .
' $ !
,
# #
27
H #
/ 36 TJ!&7!
-2o +*
3/ c o +*
æ@ç=î@ì õ ñ õ ì@ê@é=î X X
> -/ 36 4 <!93 >3 ?T :9
%!
!
+*
.V
õ ì@îQê õ ç þ CBhÿ @CB
!
3
3/ %%!% c o
11
Ix6u
? v;u w
x/t ED? 6u IxwG
# l v H@ m 9 -> 9
! "!)
! )=F#
-
K^]+VJ J IKtX K
9 K-JtXV
!)0-*
-( F&
-#!) -y$-7 F& /$h -72C
> - 4 4 :9
-2o%
!
T%
% c o
%
% c
!4%
c-
% :9 d cBl1H [kZ^ ^ cBPÍ1^ L A1Z^ÔBZghH
Z A1^ f-P A1`1d
^ LN[QZ^NH _
fWBf[k`1d fKaM;H d e1H Ja_ `1J1[kd H LNJ6`1J1^ fOQO
_ ^ ZÍ19O P
q + Ni \
&\ % '
k
K-JtXV _^ Sv K _ LNg+[kLNJ1OQd ZJ1dOQd ghH J1Í1O
X
J_I
7[-7k) ^ N!B]19fd ( Z ghS! )H J1 -d f7ghl1=> \P 9<4Z< \P <
! )<P"
.NX !)L
! )F
7[k^ )fOQ`1^ d S4H J1d fghl1P-<OQd ghH J1Í<P
+
]C
-7jX L
-7) !)0- *-7( )F#
;$! -7
2BC
H@71LJaOQd Z[kâ_ ghZmnf
H
NZ^ ^ LN[kZd fKaÔBH ZnmoZ^ ^ LN[ ÔBZ^ `1f P 7[k^ Ni+fd (7ZghS4H J1d fghl1\P <4Z <P .X L
28-Apr-02 Advanced Programming 67 28-Apr-02 Advanced Programming 68
Spring 2002 Spring 2002
12