Structure of Algorithm Visualization Executive
!"# $
# %&''(
!"# $
Somchai Prasitjutrakul Assistant. Professor Dept. of Computer Engineering Chulalongkorn University Bangkok,Thailand
email: [email protected]
Chatchawan Wongsiriprasert Graduate Student
Dept. of Computer Engineering Chulalongkorn University Bangkok,Thailand
email: [email protected]
&#&#)*&+"&), -&)./0-/ &0 #)1- 2 +,&2 0 *&3,-&21 4) 0#5&&/ &0 #)6&+5&/&(
0 "&6"0 66&#&#)7), / &6&86#9(7:&(1"&
6"&+5-"6 1& &0 &# " / &0 06& ;64 0 ;0 &#&2 #111-& 666&#&"&), ; 61 6/2&91*&+, 3# 0#)#2 2 3, "
6 ; /&9 &02 6#)#5 "-& 66 91#6 &# " / &3,-"/ &*&9 + 6+6"&6"&+54 0)5&*&# (2 3,( 266#(1 &/ #60 66#<&(26+,+ /2 6 -"#<&& ;0 66&#&#) /91 (1-.6 2 663,&;+,&=#
!""#$%!
Abstract
Algorithm visualization is a means to study the behavior of how algorithms work. By using graphical views and animations of an algorithm in action. This paper presents the structure of the executive module of an algorithm visualization system implemented in Microsoft Windows operating enviroment. The executive message passing, process synchronization, environment-parameter inquiry, and error handling services through a set of application programming interfaces. Each visualization session consists several processes categorized into four component classes : data generator, algorithm, converter, and view.
Communications among components are accomplished via the message passing mechanism using services provided by the executive. Algorithm components are synchronized so that the visualization session is orderedly carried out. The executive is implemented as a Dynamic Linking Library working in corporation with a Visual Basic custom control associated with each of the components. As a result, the algorithm visualization components can be easily developed using Visual Basic or other development tools supporting Visual Basic controls.
&#&#)=>?@ABCDEFGCHIJ?CKJDCALM*&+"&), -&)./0-/ &
0 #)1-2 +,&2 0 *&3,-&21 4) 0#5&&/ &0 # )-&6 #5 -+&+5 *&N1(0 /).0O0 / &0 #)+, 9&&2 1"# &# &-&+,P21 6 " 21 0#5&&+
/1#60266Q36&0+,+,&266(121 0#5 "1-& &6 +, 611 ;1"&), 12&0"&), #+#1R0 12&/2"& 0 0&-&2 #1S0 1 2&0 0&1# &3,+ /1#6T+6&&9 91#1# 010 +, P
+,P&#&+ /1#60266Q+6&0,&266
1# &#&+,21 0 &&+5-4+&2 /1 3,).O/
&0 #)(1U , / &0 #)/"#60 000+, #&
66&#&+,"T&1
&/9- 6+&&-*&3, 3-& "
7#67&0 #)- 6266#)-""3-#6 0 #)-"
0#6#.! 0 V'"*&&
#<&6&#&=GCHIJ?CKJDCALHWHHCALM/"#6#)"&), ;& #<&"3+-&
6&#&+, 61&000&#)& 2 +,&/
#, = XPYZX[YZX\YM1# &3,&& 1-&#<&6&#&#)#
66&#& #1+6 ;+,/*&& &0/#, " & 6 ; &# " / &0 & 6 ;6 &#&2 3,&;#&*&"&+,"#
0 "&6" &&#&=>G]^_`_aM
6&+5&/&( 2 / &0 "&6" &&#&7), / &6&86#
9(7:&(1=bCcBAHAdDeCLfAgHM(1+/1#6&/&1# &+5"#0+,[ &#+,+,0 1&&#&#)"#0+,\64) #.! ( 0 66&#&#)+,
&-& &#&+5(1( 0 "&6"&#& -& +1-&"#0+,h&
0 6&+5-&"#0+,i
1-&#<&3, 33,-"0-/ &0 #)&+ #&"# 9&4) 0 .+,jk2& 2+,+#<&0)5&T36#&)/ &0 #)1:N
&& ( 02266( =?CHDlBAcWHHCL@M0 mW??nJo= XhYM Z&21 / &0 #)+,-#6pqrDBWWH0 mAADE= XiYM2 &21 / &0 + 00 mWJcsWB= XtYM
2& 4#1+,+#<&0)5& 667), +4+, 21 ( 0+,T6-&
##)"3(2/-"4 "T&07), 4T6#5 #.! +,&2 0 0"&+50! +,(2/# / &9121 0-&#.u &+5+ (&-&29001 10 (23, "3,-1+,0-&0 (2,94 # 0 66"&+5912 ]LHWLHWZvwm`ZpxyG]w_= XjYZXzY2 X{Y/1#6M
4) 221 ( 0266&+5 421 #.! 0 ( 0912T9 4+, 21 -""T&91#0+###) 9&&+5+&+5# 9421 4& / &0 #)-"-"T&+1) +#<& 6621 / &0 # )+2& "&), (1&-"#<&(2"3#)2/#, .6 0 -&#(23, 21 0+,&&-&&+5# &-"-1 +,&02
# +,10)5&# 0 66-&#.! &+5912|JBgAAfZwWmAWBZm>n^>r]Z}WIHZ~JL@AZpJWLH
= XPkYZXPPYZXP[YZXP\YZXPhY2 XPiY/1#6M
!"
266 66&#&#)+,-&6&+5+#4 #1# &+5
P & ;0 66 *& #&&3, #<&& ;+66 2 4 #&#<&& ;(1/&) 4) &3,&;-& 66-"&+,1 # -"4 &-U  &+5/-"/"&1660 #<&2 &+#1&, 0)5&
[ +,&2 / &-& +10 2 &9+0 + / &0 &3,&;#.! &&+521 -""T&4) /"&1"&+,0 2 &000 2 00+,2 > +,#1&
\ &/ ;+,#<&0)5&4T6-&# +,4&/9--"91 ,+,&2 2 2&+,& ; /91(19+& 63,&;-& 66 h !"! #$% & 66 -9 & & " &
;+,9 7#67&-!6#2 9 ;0 6686#+,35/&92# -"
#< ,*&9 1T+#5 - &0 - *&9#'/&) 2 #686#+,*&
1#4 "#+,90 &&+5 66&#&#)426 *&& 6;\&1# &+5=1 +,[ 6M
P #$% &=>G]^_`_aM*&2& /"#6&#&&&+5-"6 & ; 1# &+5 &# " / &0 6 ;-& 66 &0/#, ;-&
66-"6640 ;0 / &2 #111+, 10)5&-& 66
[ ' $ #$% &=>G]^^_^^]yay~xynM3&6266#5 2 #, &
&#&&&+5 *&&+,1 & -(1 3,-"1 # "
&#&
\ & #$% &=>G]^aybpy_~M#& 61 6 ;+,4&/0&/
6#, &>G]^^_^^]yay~xyn2 -6&#& ;>G]^_`_a3,
&#&#)+,9126691# &+5
\P w>~>v__x>~yx3 6-&000/"#6/ &0 #)
\[ >nvyx]~b3 6+,T6#)+, &#&9
\\ G]_e3 6 3,21 (1-2 +,&2 *&
3,-&&#&-& 66 + 91"266#5 &+50)5" 0 +2 /0-&#&
\h ayG_x~_x3 62 0/#, >nvyx]~bG]_e+,9139#5 &+5 3,-"+,21 3," / &0 #)
(1#,9#<& 6"&+5 /91 2 1T(1- 66#<&(2 6=GCHIJ?mJHCcwWW?AlFWLD^SHDWF XPtYM2 6 +>G]^Gm`7),
*U &0 6=GCHIJ?mJHCcaIHDAFaALDBA?M3, &/ 
>G]^_`_a91 1&3, >G]^Gm`7&7#67&0 9 & &"&+5
#<& 6
bCcBAHAdDeCLfAgH>p]
AVISVBX AVISVBX
AVISSYNC
AVISDB
AVISERR
AVISROUTER
AVISCOMPONENT
AVISAPI AVISVBX AVISVBX
AVISSESSION
CONTROL
USER
View Convertor
Algorithm Data
Generator
+,[( 0 66&#&#)
##$%& '( ) *)+ ,
"&6"&#&4391*&&+,/#'2 *&2&"#-&/ &0 66&#&
*&&+,6"/ &02 21 ; " &#&>G]^_`_a 61&
+,-"6 ;#&3=1+,[M &# " / &0 6 ;-& 66
=>G]^^|aM &0/#, ;-& 66=>G]^xy~_xM+,#1T6-&0 bWHHJ@WxAIDCL@vBJlE -"6640 ;0 / &=>G]^wmM#1112 "!+, 911+,10)5&-& 66=>G]^_xxM(16#5 "1&+54+-&&3, &(2
=>G]^>p]M+,62 4 0 0-6 +1/ &0 & ; 91-&"#09&+5
%&
'(%-'
>G]^>p]=>?@ABCDEFGCHIJ?CKJDCAL>ll?CcJDCALpBA@BJFFCL@]LDWBdJcWM*&& 6&1+0
>G]^_`_a+,&3,&;0 66 +3,0-60 >G]^_`_a91>G]^>p]+"&+,"#
3
P 60 +-:V # &+56 :V #& 4+-91 66
&# &>G]^^_^^]yay~xyn&+,+ "34& 6+& 63,&;-& 66
*&&
[ 64 0 07), +- 606=lJBJFWDWBJ?CfJDCALM4 0+, 4 T +(20 >G]^wmZ>G]^xy~_x"3>G]^^|a+,"
/ &92"6011 -"11#69# 0-6(19/+
(2+,+,0 &;/ &
\ *&##5& " :V #&7), 0-6 "T&:V #&2 0-&0 66
=WLcJlHI?JDCALM/&&+5+ (&3"3,-11+,&2 ( 02 / &-&0 66T 9+0-6
h -"6:V #&6 7), *&:V #&+,9+#6 66&#&#)(1 2 /-"
-#<&&>G]^aybpy_~91 0)5&&6 &0+,*&24/1#63,"+
+, 0+ ##5 0 /&(10 6+,/ &3,-"-#6*&
&
:V #& ;+,>G]^_`_a+96& >G]H>p]&426 *&;"&+,/
&911# &+5
P 6#1 6+,/ &-& 66
+,P21 :V #&7), -#1 6+,/ &-& 66
3,:V #& "&+,
:V #,&+,-N12 N1>G]^wm
AVisOpenSession #1+ 66&,#, -" 6 ;-& 66,/ &
AVisCloseSession 6&#&0 6 ;-& 66 :V #,&+,-,0
AVisRegisterComponent 6+& 60 66
AVisRegisterController 2 -& 666+ /"&+,*&"&66&#&
=>G]^^_^^]yay~xynM :V #,&+,-60
AVisUnregisterComponent &/ 6+,/"&1 66
AVisUnregisterController "&+,"&66&#&
:V #,&+,-36&0
AVisEnumComponent &" 6#+,+-& 66
AVisIsValidID 6 6# -& 66"39
AVisGetComponentWindow -""0 /&(10 6
AVisGetComponentID &""0 / 6"0&(1=ewM2
"0(2=]^~>a_M
AVisGetComponentType -"664 0 6
AVisGetSyncCount -"/& 0 0#5&&/ &+,4 &# "
:V # "1 "T&9+:V +,4-29000 >G]^wm#5 &+5 0- 6942900"&+591(1 2 /290&>G]^xy~_x"3>G]^^|a(1 +->G]^>p]+,"
[ 6#1#6 0/#, 0 >G]^xy~_x
+,[2 :V #&7), -"6#1#6 0/#, 0 >G]^xy~_x
3,:V #& "&+,
:V #,&+,- 2 62 36&
00 bWHHJ@WxAIDCL@vBJlE
AVisBind 3,##&- 0 " 6
02 6#60
AVisUnbind 6##&- 0 " 6 0
2 6#60+,43,91:V #&
AVisBind
AVisEnumLink &" 6#+,3,( #6 6+,/"&1 :V #&+,- 0/#, 9#
63,&
AVisInputRequest 0/#, 9# 6#2+,*&# 00 6+,/"&1
AVisInputRequestEx 0/#, 6"&), 9# + 6"&), +,
*&# 0
AVisOutputNotify 0/#, 9# 6;#+,*&##600
6+,/"&1
AVisOutputNotifyEx 0/#, 6"&), 9# + 6"&), +,
*&##60 :V #&+,-3, 90
pJBJ??W?aJ??= XP\YM
AVisReplyMessage 2 3& 6+,91#6/#, / &T23, 6-1/ &0/#, +,91#62T + :V #&&+53,2 -" 0/#, 1# 6
:V #,&+,-3, #&10
/#, 7&
AVisSuspendMessage 2 3&>G]^ 6O.+ #60./
# 1
AVisResumeMessage 9#60/#, +,1+:V #&
AVisSuspendMessage
(1#,9aAFlALWLD+,#<&1bCcBAHAdDGCHIJ?mJHCc 9 +-:V #&"&+5(1 2 0- 6"&+5& >G]^Gm`+,+9-"2=1+,PM
\ 6 &# " / &0 6#)0 >G]^^|a
+,\21 :V #&7), -"6 &# " / &0 6#)0 >G]^^|a
3,:V #& "&+,
:V #&+, 6+3, &
# " /  63,&
AVisOpenSync 2 3&& &# " -"+( 0/"#6T6 0 &# " 0 6+,+-:V #&&+5
AVisCloseSync 2 3&& &# " -"6( 0+,+9 1:V #&AVisOpenSync&3, 69 &# " +9
AVisSync 2 3&-"& &# " 6 6#) 91/ &23,-"& &# " &'-"
6#)3,&/ &91 :V #,&+,-/"#6#5 2 &4&
/ &0 & &# "
AVisGetSyncStatus &4& & &# "
AVisGetSyncMode & / &0 & &# "
AVisSetSyncMode #5 / &0 & &# " -"-& +,
AVisStepNextSync #, ,/ &69"# "1/ &;6 3,/ &-& /+ /#,
AVisEnumSync 2 6;#+,/ &266 &# " #&-& 66 h 6.3,&;2 6 ;+,/ &-& 66
+,h2 :V #&7), -"6.3,&;2 6 ;+,/ &-& 66
3,:V #& "&+,
AVisVBCreateArrayParam "00&1long3,2&-&.GCHIJ?
mJHCc
AVisVBGetArrayParam //&0-&7), 2&1+,91:V #&
AVisVBCreateArrayParamT69-&0 GCHIJ?
mJHCc+,
AVisVBGetMainWindow -""0/#6&(1"#0 (2+,#<&1 GCHIJ?mJHCc
AVisVBSetMainWindowCaption #5 0"#3, 0 (2+,#<&GCHIJ?mJHCc
AVisLoadComponent + 67), *&(26&bCcBAHAdDeCLfAgH / &
AVisUnloadComponent / &0 (2 6=DWBFCLJDWlBA@BJFM :V #&-&&+5 *&:V #&+,-"#<& 61bCcBAHAdDGCHIJ?mJHCc#<& 691 0)5&
%&
'(./
>G]^wm=>?@ABCDEFGCHIJ?CKJDCALwJDJmJHWM*&& 60 >G]^_`_a+,#1T60#5 "1+, #&- " & 6 ;&*&+,#1T602>G]^wm -"636&
290,2 60"&+52& 6&3,&12&0*&"& "
& 63,&;+01+342#<&+#1T60#<&& 63,&;
/-"4#6 290( 0-"+ 0)5&(19 6#6& 63,&-&
66
0+,T69-&>G]^wm 61. +1 ;0 # 6+,4&/0 66#&912
P "0 / 6=]wM7), *&U # 6+,97/5#& 6+,0- 6-1;& >G]^>p] 21 ]w0 #
[ "0 /&(10 6=eCLfAgJLf?WM7), *&"0+,& 63,&;0
>G]^_`_a -3, 0-60 bCcBAHAdDeCLfAgH>p]
\ 4& / &0 6&+54+,&2 (1&>G]^xy~_x>G]^^|a2
>G]^_xx
&3, ( +,-T600 >G]^wm44,62 29091-&0! / T6 01# 2660 ( 0266( =?CLsWf?CHDM1# 21 -&+,\0 / 6 ; 4T6-&( &"0+, -]w*&#&"
,2 60-&>G]^wm&10)5& 2 4& 6+&0 # 6+,4&/0
"3&/ 66(1-:V #&AvisRegisterComponent2 AVisUnregisterComponent
0 >G]^>p]/1#6
ID Data
ID HEAD Data
NULL
ID
.. .. Data
+,\( 00 >G]^wm
%&
'(0
123)06 ;+,4&/0 663, 6#&*&6&#&& +#6 0/#, 2 07), #&2 #&3,2 6-"*& #& 6"&+5 9 04) #&2
#&(1 2 -60 >G]^xy~_x- 02# -" 66*
##&0 #6 01# >G]^xy~_x+"&+,-& &09# 1"+,+
## 6+,-669-"17#&0 0+,#1 2 4)
#6 #&-&!++, -"#6"#6; 91#60+, ;#&
##&0 #6 01# &+5 61: 1&0 0=bWHHJ@WxAIDCL@
vBJlEM1# # -&+,h 66&#&#)-& &#&+526 3, 6 ;"&+5
*& 33,9 63,&3,00=]LlIDBAIDW&3,+,+0"
3,04) LAfW ;-&( 91#&+3, 00 ]w /LAfW&T3+,,&0 "&/
0 LAfW&
6M2 3,9 63,&3, 0=yIDlIDBAIDW&3,+,+
6M
A D
C C
V V
A
D
C
V V
C
V C A Visualization Session
D : Data generator, A : Algorithm, C : Converter, V : View
+,h# bWHHJ@WxAIDCL@vBJlE0 6&#&"&),
bWHHJ@WxAIDCL@vBJlE&+54T6-& 66(1-JfJcWLcS?CLsWf?CHD7), 4,2 191-&0u / &
+ (12 6& T6( 0 02 +"&), ( /"#6#600 6&;1# 21 -&+,i00 2 LAfW-&&+5 T6U ]w0 6&3, +10 6&;T4649160
>G]^wm
ID Input Route HEAD
: :
NULL
ID ID null
Output
Route ID ID null
ID Input
Route ID ID null
Output
Route ID ID null
+,i( 0+,-T6bWHHJ@WxAIDCL@vBJlE
bWHHJ@WxAIDCL@vBJlE 4 2 +,&2 -60 >G]^^_^^]yay~xyn3,&/
60"3 663,3,##&2 3,6##& " 6 ;(1 -:V #&AVisBind2 AVisUnbind0 >G]^>p]/1#6
nCHD0 wJDJpBACfWB
nCHD0 wJDJxWcWCWB
+-6 &00 >G]^xy~_x& /91(1-:V #&AVisInputRequest
2 :V #&AVisOutputNotify / &0 #5 :V #&"3&#&-&2 +,:V # +93, 0/#, 9# 63,&; #&T +,:V #&AVisInputRequest& 09#
6 -&0! +,:V #&AVisOutputNotify 09# 6#6
-&!+0 +-:V #&AVisOutputNotify "+ 6#6"+,+
6+, 0>G]^xy~_x 09# 6#6 ;"&;#&
#5 &+53,-"#6;#6& / &0+, 9;#&="336#&M) 3 +, 6 #, -" 6#6/ &2660&&=pJBJ??W?aJ??M(19 -"#6/ &T + ;1+0#.&# &660&&1# &+.
AVisOutputNotify( compID, message ) {
AVisSetWaitCount( # of data receivers of compID ) for each data receiver i of compID {
AVisSendMessage( i, message ) }
AVisWaitforReply() }
AVisSendMessage( compID, message ) {
wait until compID is ready to receive
SendMessage( compID, message ) /* Windows API */
}
AVisWaitforReply ( ) {
while ( nWaitCount > 0 ) { YieldControl()
} }
:V #&+,21 0 6&&+5+-HWFJlEABW3,nWaitCount3,T6/&& 6+,91#60 /#, 2# / &9T&#,&3nWaitCount 4#5 #6/&</#, +&2 ) 0&0 &&nWaitCount +*&&=&), " & + :V #&YieldControl3,N1(-"(23,&;-& 6691/ &M 6#6#-1+,/ &
TT 10 nWaitCount "&), (1#(&#-6/ &0 >G]^Gm`=+,*&#
6&#&+,+/#6 6 ;M3,nWaitCount+*&&T21 #, &
+-:V #&AVisVBOutputNotify91/ &T+6&+5) +63+-(2 -& 6#60 ;2660&&
&&+5 0 ;-&>G]^xy~_x# #6 #& 6+,#60 +,
#60&#,&3991-&0#5&&/ &3,03,&;"3+&#"&), 3 #& 0 7#&6 3,&901# &+5 /91(1 :V #&AVisSendMessage=21 9 0 6&M0)5&-2&-:V #& 00 eCLfAgH(1 (1-&AVisSendMessage&+5 + 60 6+, #60&+, (1 &/ >G]^Gm`
/ 6&;3,6 1#
%&
'((
45+-& 66&#&#)&- & # / &0 ";#)-&1+#&
#5 &+53,+6+6O0 #)#&4) / & +6+60 #)1# &
66 +&-"6 &# " / &3,-"2 #)+(91/ &
&3, 86#9(7:&(1/ &266"-&#.! #&/ &=cABlABJDCW FI?DCDJHsCL@"3+,+LALlBWrWFlDCWM&#,&3(2 ;-& 66 26 / &-"#&
2 #&="-19-"3,&/ &3,&T/ &991M&-"6&+53>G]^^|a7), *&&
6&"&), +, 6#)0-63,#6 #&/ &##0 #) ;*&9 4
( 0+,- 6 &# " / &0 #)3^SLcEBALCKJDCAL?CHD=1+, tM7), 266( 266&=cCBcI?JB?CLsWf?CHDM#5 &+53,-"1 #6+#1/1#6/ &0 6#)+,-+BAILfBAoCL=&#,&3+#1/1#6/ &266#1#&/M3,-"(#
)91/ &(1+#& 6#) 4,0"36HSLcEBALCKJDCAL?CHD3, 6&++-6AVisOpenSync "3AVisCloseSync0 >G]^>p]/1#6
ID Sync
Data
ID Sync
Data
ID Sync
Data
.. ..
ID Sync
Data HEAD
+,t( 00 ^SLcEBALCKJDCAL?CHD
&>G]^^|a +"&+,-& &# " / &2&>G]^^|a# +"&+,-&6 T-&/ &0 #)91#5 2-"/ &+ "&), /#, 35&%&=HCL@?WHDWlM"1/ &
#,2 / &#.! / &"&+5+ / &0 &# "
=HSLcEBALCKJDCALFAfWM#&*&+,T6-&>G]^^|a+,-/"&1&>G]^^_^^]yay~xyn&#&
+4& -&"1"3/ &=CHIJ?CKJDCALHDJDIHM#5 &+50)5 / &2 &
# " / &-&0! &7), #5 "1&+5-60 >G]^^|a
%&
'()
00&3, 66&#&#)+,2662 #<&0)5&&+5/ &6&bCcBAHAdDeCLfAgH7), +#.!
/ &0 (2"(2266#&/ &1# &"111-1;#6 6
*&-"/ &0 #5 66"1 #991>G]^_xx*&"&.-&>G]^_`_a+,+"&+, 6>G]^aybpy_~ ;#5 >G]^^_^^]yay~xyn# / &-& 66 "39
(1 60110 +,>G]^aybpy_~"3>G]^^_^^]yay~xyn/ &9(19 914& 6+& 66"39"1"!1# + 661# &+5
P /-"( 0-&>G]^wmZ>G]^xy~_xZ>G]^^|a9 #6*&
[ "011"&+510)5#600! / &0+,91#6 /-" 0 9++,5&1 90 #, 2660&& #&9-" 0/ &3,&&
#60 6#60#6"1
\ " 6#)+,0-6 &# " "1/ &(192 -">G]^^|a 6/-">G]^^|a94 / &-"#6 6#)3,&;-& 6691#
-"1"1 95&10 6#)3,&;"&
"!&&+5 10)5&6-& 0 #<& 6 ; " 16"#<&0+&
(2111JoLABFJ?DWBFCLJDCAL(1+,>G]^^_^^]yay~xyn9#691/"#6 +1 0 >G]^_xx=7), +,0 #686#9(7:&(1M 0 9-&6&+52 91
&/&-&63,&9
67
6&+591&/&( 0 "&6"&#&=>G]^_`_aM#&*&2& 0 66
&#&#)7), / &6&86#9(7:&(1"&6"&+5-"6 1&
&0=>G]^xy~_xM &# " / &0 #) ;=>G]^^|aM640 ;0 &#&=>G]^wmM2 #111-& 66=>G]^_xxM(1&13, (2 =>G]^>p]M6&#&"&), ; 61 6 ;/2&91*&
+, 3# 0#)#2 2 "&6"&+54 0)5&*&# (23, ( 266#=>G]^wnnM2 *< 66#<&(26=>G]^Gm`M+,+ /2 6(1#5 &&+5 / & &#& -"#<&& ;0 66&#&#
) /91 (1-.62 663,&;+,&=#
1. S. Prasitjutrakul and W. Watcharawittayakul, Algorithm Visualization : a Revisit to Sorting Algorithm, Thai Journal of Development Administration, Vol. 33, No. 2., pp. 193-201., April-June 1993.
2. S. Prasitjutrakul and W. Watcharawittayakul, Algorithm Visualization System : An Overview of Internal Structure, Proc. of Third ASEAN Regional Seminar on Microelectronics and Information Technology, Bangkok, August 1994.
3. 2 # Z 66&#&#)-86#9(
7:&(1Z [i\j
4. Kenneth C. Knowlton. L6:Bell Telephone Laboratories Low-Level Linked List Language, two 16mm black and white sound film,1966
5. Kellog S. Booth, PQ Trees, 16mm color silent film,12 minutes,1975
6. Ronal M. Baecker and David Sherman, Sorting Out Sorting, 16mm color sound film, 30 minutes,1981
7. Brad A. Myers, “Incense: A System for Displaying Data Structures,” Computer Graphics, Vol 17, No.3,115-125, July1983
8. David B. Baskerville, “Graphic Presentation of Data Structure in the DBX Debugger,” Report No.UCB/CSD 86/260, University of California at Berkeley, Berkeley, CA, October 1985 9. Thomas G. Moher, PROVIDE: a Process Visualization and Debugging Environment, Technical
Report, University of Illinois at Chicago, Chicago, IL July 1985
10. Edward Yarwood, Toward Program Illustration, M.Sc. Thesis, Dept. of Computer Science, University of Toronto, Toronto, ON, 1974.
11. James M. De Boer, A System for the Animation of Micro-PL/I Programs, M.Sc. Thesis, Dept. of Computer Science, University of Torinto, Toronto, ON, 1974.
12. Marc H. Brown, Algorithm Animation, The MIT Press, Cambridge, MA, 1988
13. Marc H. Brown, Zeus: A System for Algorithm Animation and Multi View Editing, Proc. IEEE Workshop Visual Language, IEEE CS Press, CA, pp. 27-39, 1991.
14. Stasko, Tango: A Framwork and System for Algorithm Animation, Computer,Vol. 23,No. ,pp.27- 399, Sept. 1990.
15. Roman et al.,Pavene: A System for Declarative Visualization of Concurrent Computations, J.
Visual Language and Computing, Vol. 3, No. 2,pp. 161-163,June 1992.
16. Microsoft, Microsoft Visual Basic Programming System for Windows Programmer’s Guide version 3.0, Microsoft Inc., 1993.