%!PS-Adobe-1.0 %%Creator: hitchcock:kohl (James Arthur Kohl) %%Title: stdin (ditroff) %%CreationDate: Wed Mar 23 10:50:55 1994 %%EndComments % lib/psdit.pro -- prolog for psdit (ditroff) files % Copyright (c) 1984, 1985 Adobe Systems Incorporated. All Rights Reserved. % last edit: shore Sat Nov 23 20:28:03 1985 % RCSID: %Header: psdit.pro,v 2.1 85/11/24 12:19:43 shore Rel % % Psfig RCSID $Header: psdit.pro,v 1.5 88/01/04 17:48:22 trevor Exp $ /$DITroff 180 dict def $DITroff begin /DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecap currentlinejoin currentdash currentgray currentmiterlimit ] cvx def %% Psfig additions /startFig { /SavedState save def userdict maxlength dict begin currentpoint transform DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix itransform moveto /ury exch def /urx exch def /lly exch def /llx exch def /y exch 72 mul resolution div def /x exch 72 mul resolution div def currentpoint /cy exch def /cx exch def /sx x urx llx sub div def % scaling for x /sy y ury lly sub div def % scaling for y sx sy scale % scale by (sx,sy) cx sx div llx sub cy sy div ury sub translate /DefFigCTM matrix currentmatrix def /initmatrix { DefFigCTM setmatrix } def /defaultmatrix { DefFigCTM exch copy } def /initgraphics { DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix DefFigCTM setmatrix } def /showpage { initgraphics } def } def % Args are llx lly urx ury (in figure coordinates) /clipFig { currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll exch lineto exch lineto exch lineto closepath clip newpath moveto } def % doclip, if called, will always be just after a `startfig' /doclip { llx lly urx ury clipFig } def /endFig { end SavedState restore } def /globalstart { % Push details about the enviornment on the stack. fontnum fontsize fontslant fontheight % firstpage mh my resolution slotno currentpoint pagesave restore gsave } def /globalend { grestore moveto /slotno exch def /resolution exch def /my exch def /mh exch def % /firstpage exch def /fontheight exch def /fontslant exch def /fontsize exch def /fontnum exch def F /pagesave save def } def %% end XMOD additions /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def /xi {0 72 11 mul translate 72 resolution div dup neg scale 0 0 moveto /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def F /pagesave save def}def /xiL {72 8.25 mul 72 11 mul translate -90 rotate 72 resolution div dup neg scale 0 0 moveto /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def F /pagesave save def}def /PB{save /psv exch def currentpoint translate resolution 72 div dup neg scale 0 0 moveto}def /PE{psv restore}def /arctoobig 90 def /arctoosmall .05 def /m1 matrix def /m2 matrix def /m3 matrix def /oldmat matrix def /tan{dup sin exch cos div}def /point{resolution 72 div mul}def /dround {transform round exch round exch itransform}def /xT{/devname exch def}def /xr{/mh exch def /my exch def /resolution exch def}def /xp{}def /xs{docsave restore end}def /xt{}def /xf{/fontname exch def /slotno exch def fontnames slotno get fontname eq not {fonts slotno fontname findfont put fontnames slotno fontname put}if}def /xH{/fontheight exch def F}def /xS{/fontslant exch def F}def /s{/fontsize exch def /fontheight fontsize def F}def /f{/fontnum exch def F}def /F{fontheight 0 le {/fontheight fontsize def}if fonts fontnum get fontsize point 0 0 fontheight point neg 0 0 m1 astore fontslant 0 ne{1 0 fontslant tan 1 0 0 m2 astore m3 concatmatrix}if makefont setfont .04 fontsize point mul 0 dround pop setlinewidth}def /X{exch currentpoint exch pop moveto show}def /N{3 1 roll moveto show}def /Y{exch currentpoint pop exch moveto show}def /S{show}def /ditpush{}def/ditpop{}def /AX{3 -1 roll currentpoint exch pop moveto 0 exch ashow}def /AN{4 2 roll moveto 0 exch ashow}def /AY{3 -1 roll currentpoint pop exch moveto 0 exch ashow}def /AS{0 exch ashow}def /MX{currentpoint exch pop moveto}def /MY{currentpoint pop exch moveto}def /MXY{moveto}def /cb{pop}def % action on unknown char -- nothing for now /n{}def/w{}def /p{pop showpage pagesave restore /pagesave save def}def % Manual Feed Definitions /SetStTime{statusdict /manualfeedtimeout 120 put} def /SetStatus{statusdict /manualfeed true put statusdict /product get (LaserWriter) eq {version (23.0) eq % Don't redefine the show page if printer is not "Classic LW" {/p { {statusdict /printerstatus get exec 16#22000000 and 0 eq{exit}if}loop pop showpage pagesave restore /pagesave save def}def}if }if}def /abspoint{currentpoint exch pop add exch currentpoint pop add exch}def /distance{dup mul exch dup mul add sqrt}def /dstroke{currentpoint stroke moveto}def /Dl{2 copy gsave rlineto stroke grestore rmoveto}def /arcellipse{/diamv exch def /diamh exch def oldmat currentmatrix pop currentpoint translate 1 diamv diamh div scale /rad diamh 2 div def currentpoint exch rad add exch rad -180 180 arc oldmat setmatrix}def /Dc{dup arcellipse dstroke}def /De{arcellipse dstroke}def /Da{/endv exch def /endh exch def /centerv exch def /centerh exch def /cradius centerv centerv mul centerh centerh mul add sqrt def /eradius endv endv mul endh endh mul add sqrt def /endang endv endh atan def /startang centerv neg centerh neg atan def /sweep startang endang sub dup 0 lt{360 add}if def sweep arctoobig gt {/midang startang sweep 2 div sub def /midrad cradius eradius add 2 div def /midh midang cos midrad mul def /midv midang sin midrad mul def midh neg midv neg endh endv centerh centerv midh midv Da currentpoint moveto Da} {sweep arctoosmall ge {/controldelt 1 sweep 2 div cos sub 3 sweep 2 div sin mul div 4 mul def centerv neg controldelt mul centerh controldelt mul endv neg controldelt mul centerh add endh add endh controldelt mul centerv add endv add centerh endh add centerv endv add rcurveto dstroke} {centerh endh add centerv endv add rlineto dstroke}ifelse}ifelse}def /Barray 200 array def % 200 values in a wiggle /D~{mark}def /D~~{counttomark Barray exch 0 exch getinterval astore /Bcontrol exch def pop /Blen Bcontrol length def Blen 4 ge Blen 2 mod 0 eq and {Bcontrol 0 get Bcontrol 1 get abspoint /Ycont exch def /Xcont exch def Bcontrol 0 2 copy get 2 mul put Bcontrol 1 2 copy get 2 mul put Bcontrol Blen 2 sub 2 copy get 2 mul put Bcontrol Blen 1 sub 2 copy get 2 mul put /Ybi /Xbi currentpoint 3 1 roll def def 0 2 Blen 4 sub {/i exch def Bcontrol i get 3 div Bcontrol i 1 add get 3 div Bcontrol i get 3 mul Bcontrol i 2 add get add 6 div Bcontrol i 1 add get 3 mul Bcontrol i 3 add get add 6 div /Xbi Xcont Bcontrol i 2 add get 2 div add def /Ybi Ycont Bcontrol i 3 add get 2 div add def /Xcont Xcont Bcontrol i 2 add get add def /Ycont Ycont Bcontrol i 3 add get add def Xbi currentpoint pop sub Ybi currentpoint exch pop sub rcurveto }for dstroke}if}def end /ditstart{$DITroff begin /nfonts 60 def % NFONTS makedev/ditroff dependent! /fonts[nfonts{0}repeat]def /fontnames[nfonts{()}repeat]def /docsave save def }def % character outcalls /oc {/pswid exch def /cc exch def /name exch def /ditwid pswid fontsize mul resolution mul 72000 div def /ditsiz fontsize resolution mul 72 div def ocprocs name known{ocprocs name get exec}{name cb} ifelse}def /fractm [.65 0 0 .6 0 0] def /fraction {/fden exch def /fnum exch def gsave /cf currentfont def cf fractm makefont setfont 0 .3 dm 2 copy neg rmoveto fnum show rmoveto currentfont cf setfont(\244)show setfont fden show grestore ditwid 0 rmoveto} def /oce {grestore ditwid 0 rmoveto}def /dm {ditsiz mul}def /ocprocs 50 dict def ocprocs begin (14){(1)(4)fraction}def (12){(1)(2)fraction}def (34){(3)(4)fraction}def (13){(1)(3)fraction}def (23){(2)(3)fraction}def (18){(1)(8)fraction}def (38){(3)(8)fraction}def (58){(5)(8)fraction}def (78){(7)(8)fraction}def (sr){gsave 0 .06 dm rmoveto(\326)show oce}def (is){gsave 0 .15 dm rmoveto(\362)show oce}def (->){gsave 0 .02 dm rmoveto(\256)show oce}def (<-){gsave 0 .02 dm rmoveto(\254)show oce}def (==){gsave 0 .05 dm rmoveto(\272)show oce}def end % an attempt at a PostScript FONT to implement ditroff special chars % this will enable us to % cache the little buggers % generate faster, more compact PS out of psdit % confuse everyone (including myself)! 50 dict dup begin /FontType 3 def /FontName /DIThacks def /FontMatrix [.001 0 0 .001 0 0] def /FontBBox [-260 -260 900 900] def% a lie but ... /Encoding 256 array def 0 1 255{Encoding exch /.notdef put}for Encoding dup 8#040/space put %space dup 8#110/rc put %right ceil dup 8#111/lt put %left top curl dup 8#112/bv put %bold vert dup 8#113/lk put %left mid curl dup 8#114/lb put %left bot curl dup 8#115/rt put %right top curl dup 8#116/rk put %right mid curl dup 8#117/rb put %right bot curl dup 8#120/rf put %right floor dup 8#121/lf put %left floor dup 8#122/lc put %left ceil dup 8#140/sq put %square dup 8#141/bx put %box dup 8#142/ci put %circle dup 8#143/br put %box rule dup 8#144/rn put %root extender dup 8#145/vr put %vertical rule dup 8#146/ob put %outline bullet dup 8#147/bu put %bullet dup 8#150/ru put %rule dup 8#151/ul put %underline pop /DITfd 100 dict def /BuildChar{0 begin /cc exch def /fd exch def /charname fd /Encoding get cc get def /charwid fd /Metrics get charname get def /charproc fd /CharProcs get charname get def charwid 0 fd /FontBBox get aload pop setcachedevice 2 setlinejoin 40 setlinewidth newpath 0 0 moveto gsave charproc grestore end}def /BuildChar load 0 DITfd put %/UniqueID 5 def /CharProcs 50 dict def CharProcs begin /space{}def /.notdef{}def /ru{500 0 rls}def /rn{0 840 moveto 500 0 rls}def /vr{0 800 moveto 0 -770 rls}def /bv{0 800 moveto 0 -1000 rls}def /br{0 750 moveto 0 -1000 rls}def /ul{0 -140 moveto 500 0 rls}def /ob{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath stroke}def /bu{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath fill}def /sq{80 0 rmoveto currentpoint dround newpath moveto 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath stroke}def /bx{80 0 rmoveto currentpoint dround newpath moveto 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath fill}def /ci{500 360 rmoveto currentpoint newpath 333 0 360 arc 50 setlinewidth stroke}def /lt{0 -200 moveto 0 550 rlineto currx 800 2cx s4 add exch s4 a4p stroke}def /lb{0 800 moveto 0 -550 rlineto currx -200 2cx s4 add exch s4 a4p stroke}def /rt{0 -200 moveto 0 550 rlineto currx 800 2cx s4 sub exch s4 a4p stroke}def /rb{0 800 moveto 0 -500 rlineto currx -200 2cx s4 sub exch s4 a4p stroke}def /lk{0 800 moveto 0 300 -300 300 s4 arcto pop pop 1000 sub 0 300 4 2 roll s4 a4p 0 -200 lineto stroke}def /rk{0 800 moveto 0 300 s2 300 s4 arcto pop pop 1000 sub 0 300 4 2 roll s4 a4p 0 -200 lineto stroke}def /lf{0 800 moveto 0 -1000 rlineto s4 0 rls}def /rf{0 800 moveto 0 -1000 rlineto s4 neg 0 rls}def /lc{0 -200 moveto 0 1000 rlineto s4 0 rls}def /rc{0 -200 moveto 0 1000 rlineto s4 neg 0 rls}def end /Metrics 50 dict def Metrics begin /.notdef 0 def /space 500 def /ru 500 def /br 0 def /lt 416 def /lb 416 def /rt 416 def /rb 416 def /lk 416 def /rk 416 def /rc 416 def /lc 416 def /rf 416 def /lf 416 def /bv 416 def /ob 350 def /bu 350 def /ci 750 def /bx 750 def /sq 750 def /rn 500 def /ul 500 def /vr 0 def end DITfd begin /s2 500 def /s4 250 def /s3 333 def /a4p{arcto pop pop pop pop}def /2cx{2 copy exch}def /rls{rlineto stroke}def /currx{currentpoint pop}def /dround{transform round exch round exch itransform} def end end /DIThacks exch definefont pop ditstart (psc)xT 576 1 1 xr 1(Times-Roman)xf 1 f 2(Times-Italic)xf 2 f 3(Times-Bold)xf 3 f 4(Times-BoldItalic)xf 4 f 5(Helvetica)xf 5 f 6(Helvetica-Bold)xf 6 f 7(Courier)xf 7 f 8(Courier-Bold)xf 8 f 9(Symbol)xf 9 f 10(DIThacks)xf 10 f 10 s 1 f xi %%EndProlog %%Page: 1 1 10 s 0 xH 0 xS 1 f 3 f 14 s 904 752(The)N 1118(IM)X 1268(PROV)X 1613(M)X 1719(eta-Tool)X 2146(Design)X 2498(M)X 2604(ethodology)X 3155(for)X 3327(Visualization)X 1903 864(of)N 2025(Parallel)X 2426(Programs*)X 2 f 9 s 975 1021(Thomas)N 1221(L.)X 1297(Casavant)X 1 f 1569(:)X 7 f 1607 -0.1985(tomc@eng.uiowa.edu)AX 2 f 2399(and)X 2525(James)X 2723(Arthur)X 2933(Kohl)X 1 f (:)S 7 f 3111 -0.1985(kohl@eng.uiowa.edu)AX 1 f 1213 1093(Parallel)N 1451(Processing)X 1781(Laboratory,)X 2137(Department)X 2495(of)X 2573(Electrical)X 2867(and)X 2989(Computer)X 3295(Engineering)X 1842 1165(University)N 2164(of)X 2242(Iowa,)X 2422(Iowa)X 2584(City,)X 2744(IA)X 2838(52242)X 3 f 1270 1294(Abstract)N 1 f 612 1366(A)N 684(design)X 892(methodology)X 1292(is)X 1360(presented)X 1657(that)X 1786(simpli\256es)X 2087(the)X 2196(crea-)X 468 1438(tion)N 616(of)X 712(program)X 992(visualization)X 1396(tools)X 1571(while)X 1766(maintaining)X 2145(a)X 2212(high)X 468 1510(degree)N 696(of)X 792(\257exibility)X 1108(and)X 1248(expressive)X 1589(power.)X 1842(The)X 1991(approach)X 2292(is)X 468 1582(based)N 668(on)X 776(a)X 2 f 844(circulation)X 1196(architecture)X 1 f 1583(model)X 1798(that)X 1941(organizes)X 2252(the)X 468 1654(details)N 675(of)X 754(the)X 861(user)X 1000(speci\256cation,)X 1401(and)X 1524(provides)X 1791(a)X 1842(formal)X 2053(means)X 2256(for)X 468 1726(indicating)N 812(relationships.)X 1272(The)X 1440(overall)X 1696(user)X 1872(speci\256cation)X 2292(is)X 468 1798(divided)N 728(into)X 884(independent)X 1280(modules)X 1568(containing)X 1917(distinct,)X 2192(well-)X 468 1870(de\256ned)N 703(entities,)X 952(and)X 1079(the)X 1190(relationships)X 1581(among)X 1800(these)X 1970(module)X 2208(enti-)X 468 1942(ties)N 603(are)X 726(identi\256ed)X 1033(using)X 1224(a)X 1291(powerful)X 2 f 1586(mapping)X 1873(language)X 1 f 2141(.)X 2212(This)X 468 2014(language)N 772(maps)X 968(conditions)X 1312(on)X 1428(entities)X 1680(to)X 1780(manipulations)X 2232(that)X 468 2086(modify)N 713(entities,)X 976(resulting)X 1265(in)X 1358(dynamic)X 1644(animations)X 1998(of)X 2096(program)X 468 2158(behavior.)N 791(The)X 938(mapping)X 1224(language)X 1518(supports)X 1796(arbitrary)X 2078(levels)X 2280(of)X 468 2230(abstraction)N 832(providing)X 1160(a)X 1241(full)X 1390(range)X 1599(of)X 1708(detail,)X 1935(and)X 2088(allowing)X 468 2302(ef\256cient)N 730(view)X 895(development.)X 1328(To)X 1433(demonstrate)X 1810(the)X 1923(feasibility)X 2236(and)X 468 2374(usefulness)N 805(of)X 902(this)X 1043(approach,)X 1362(a)X 1432(speci\256c)X 1690(program)X 1972(visualization)X 468 2446(meta-tool)N 762(design,)X 986(IMPROV,)X 1302(is)X 1368(described.)X 3 f 468 2539(Keywords:)N 1 f 830(program)X 1100(visualization,)X 1512(software)X 1787(engineering,)X 2172(paral-)X 468 2611(lel)N 573(processing,)X 932(human-computer)X 1456(interfaces,)X 1786(debugging,)X 2140(perfor-)X 468 2683(mance)N 674(tuning.)X 3 f 468 2776(1.)N 540(Introduction)X 950(&)X 1028(Motivation)X 1 f 612 2848(After)N 794(years)X 976(of)X 1066(contemplation)X 1508(of)X 1598(parallel)X 1844(computation,)X 2252(the)X 468 2920(true)N 604(nature)X 808(of)X 892(the)X 1004(\256eld)X 1156(is)X 1228(still)X 1360(not)X 1476(well)X 1624(understood.)X 2004(There)X 2196(is)X 2268(no)X 468 2992(standard)N 732(approach)X 1016(to)X 1092(viewing)X 1345(the)X 1454(parallel)X 1691(paradigm,)X 2002(and)X 2127(there)X 2292(is)X 468 3064(no)N 577(agreement)X 914(on)X 1023(how)X 1184(best)X 1337(to)X 1430(develop)X 1695(parallel)X 1948(software)X 2232(that)X 468 3136(ef\256ciently)N 807(executes)X 1102(on)X 1221(parallel)X 1484(hardware.)X 1836(It)X 1928(comes)X 2160(as)X 2268(no)X 468 3208(surprise)N 719(that)X 850(the)X 961(tools)X 1124(created)X 1354(to)X 1432(assist)X 1610(in)X 1688(developing)X 2030(and)X 2156(tuning)X 468 3280(parallel)N 708(software)X 980(are)X 1092(likewise)X 1356(not)X 1472(well)X 1620(understood.)X 2001(In)X 2086(addition,)X 468 3352(there)N 648(is)X 732(a)X 800(lack)X 956(in)X 1048(understanding)X 1492(the)X 1615(fundamental,)X 2028(underlying)X 468 3424(concepts)N 752(in)X 840(parallel)X 1088(software)X 1368(design,)X 1606(leaving)X 1851(the)X 1972(visualization)X 468 3496(tool)N 607(designer)X 878(guessing,)X 1175(at)X 1254(best,)X 1414(the)X 1528(needs)X 1718(of)X 1804(the)X 1918(user.)X 2100(Existing)X 468 3568(tools)N 642(are)X 765(often)X 948(simple)X 1175(and)X 1314(in\257exible,)X 1639(based)X 1838(on)X 1945(super\256cial)X 2280(or)X 468 3640(aggregate)N 776(information,)X 1162(or)X 1250(are)X 1366(of)X 1454(comparable)X 1818(complexity)X 2169(to)X 2252(the)X 468 3712(parallel)N 702(software)X 968(itself,)X 1148(and)X 1271(still)X 1398(may)X 1541(not)X 1652(be)X 1739(generally)X 2026(applicable.)X 468 3784(While)N 679(the)X 802(simpler)X 1053(tools)X 1228(are)X 1351(extremely)X 1674(useful)X 1885(in)X 1976(many)X 2170(cases,)X 468 3856(there)N 646(are)X 768(dif\256cult)X 1030(problems)X 1332(that)X 1474(could)X 1668(likely)X 1866(be)X 1969(solved)X 2192(more)X 468 3928(effectively)N 809(using)X 998(advanced)X 1302(visualization)X 1702(techniques.)X 2078(Even)X 2258(so,)X 468 4000(many)N 647(of)X 726(the)X 833(more)X 1000(\257exible)X 1235(and)X 1358(powerful)X 1637(tools)X 1796(are)X 1904(too)X 2016(complex)X 2284(to)X 468 4072(be)N 565(used)X 726(easily,)X 940(and)X 1072(are)X 1188(typically)X 1468(avoided.)X 1760(There)X 1956(is)X 2032(a)X 2092(need)X 2256(for)X 468 4144(highly)N 696(\257exible)X 956(and)X 1104(powerful)X 1408(visual)X 1625(analysis)X 1902(tools)X 2087(that)X 2240(can)X 468 4216(ef\256ciently)N 778(utilize)X 976(more)X 1142(sophisticated)X 1536(graphical)X 1822(techniques.)X 612 4288(One)N 751(approach)X 1034(for)X 1137(providing)X 1436(this)X 1560(power)X 1760(and)X 1884(\257exibility)X 2184(is)X 2252(the)X 468 4360(use)N 583(of)X 3 f 662(meta-tools)X 1 f 982(,)X 1019(or)X 1098(tools)X 1256(which)X 1450(construct)X 1732(and)X 1854(manipulate)X 2192(other)X 468 4432(tools.)N 688(The)X 844(concept)X 1112(of)X 1216(meta-tools)X 1565(is)X 1658(based)X 1867(on)X 1984(generalizing)X 468 4504(classes)N 693(of)X 778(tasks)X 947(into)X 1084(their)X 1240(fundamental)X 1624(parameters.)X 2000(The)X 2136(user)X 2280(of)X 468 4576(the)N 574(meta-tool)X 868(can)X 986(implement)X 1312(a)X 1362(speci\256c)X 1600(task)X 1734(from)X 1892(within)X 2094(the)X 2200(class)X 468 4648(by)N 572(specifying)X 904(and)X 1040(manipulating)X 1451(these)X 1630(parameters.)X 2013(A)X 2096(program)X 468 4720(visualization)N 854(meta-tool)X 1148(allows)X 1354(users)X 1520(to)X 1594(customize)X 1905(visual)X 2096(analyses)X 468 4792(and)N 590(views)X 776(to)X 850(suit)X 972(individual)X 1282(perspectives)X 1656(and)X 1778(intuitions.)X 612 4864(It)N 680(would)X 884(seem)X 1056(that)X 1188(constructing)X 1568(a)X 1624(general)X 1860(meta-tool)X 2160(would)X 468 4936(require)N 700(a)X 760(full)X 888(understanding)X 1324(of)X 1411(parallel)X 1654(software)X 1929(and)X 2060(visualiza-)X 468 5008(tion.)N 638(To)X 740(the)X 850(contrary,)X 1130(a)X 1184(meta-tool)X 1482(can)X 1605(serve)X 1780(as)X 1863(a)X 1918(basis)X 2085(for)X 2192(gain-)X 468 5080(ing)N 583(such)X 738(understanding.)X 1205(By)X 1312(collecting)X 1619(those)X 1794(aspects)X 2025(of)X 2108(analysis)X 468 5152(which)N 2 f 671(are)X 1 f 794(understood,)X 1160(an)X 1256(environment)X 1648(can)X 1776(be)X 1872(constructed)X 2232(that)X 468 5224(not)N 586(only)X 740(provides)X 1014(useful)X 1216(analysis)X 1474(features)X 1728(for)X 1838(the)X 1952(user,)X 2115(but)X 2232(that)X 468 5296(also)N 621(allows)X 846(the)X 971(designer)X 1252(to)X 1345(arbitrarily)X 1670(experiment)X 2031(within)X 2252(the)X 468 5368(paradigm)N 758(and)X 880(gain)X 1022(new)X 1160(understanding.)X 12 s 10 f 468 5480(hhhhhhhhhhhh)N 9 s 1 f 468 5584(*)N 559(This)X 742(work)X 945(is)X 1048(supported)X 1387(by)X 1514(the)X 1657(National)X 1960(Science)X 468 5660(Foundation)N 834(under)X 1036(Grant)X 1238(Number)X 1512(CCR-9024484)X 1970(and)X 2112(by)X 468 5736(DARPA)N 730(under)X 912(Contract)X 1178(Number)X 1432(N00174-91-C-0116.)X 2664 1294(Unfortunately,)N 3110(using)X 3290(meta-tools)X 3619(can)X 3744(be)X 3837(complex,)X 4128(requiring)X 2520 1366(experience)N 2860(and)X 2992(extensive)X 3292(speci\256cation.)X 3720(As)X 3828(a)X 3888(result,)X 4093(users)X 4268(may)X 2520 1438(discard)N 2760(the)X 2880(approach)X 3176(in)X 3264(favor)X 3448(of)X 3540(simpler,)X 3806(albeit)X 3999(less)X 4140(effective)X 2520 1510(means.)N 2766(This)X 2920(proposal)X 3194(describes)X 3488(a)X 3545(design)X 3758(methodology)X 4163(for)X 4272(pro-)X 2520 1582(gram)N 2707(visualization)X 3114(meta-tools)X 3457(that)X 3604(simpli\256es)X 3924(their)X 4096(use)X 4232(while)X 2520 1654(maintaining)N 2893(a)X 2954(high)X 3111(degree)X 3332(of)X 3421(\257exibility)X 3730(and)X 3862(expressive)X 4194(power.)X 2520 1726(The)N 2650(methodology)X 3048(utilizes)X 3274(two)X 3400(concepts:)X 10 f 2808 1819(g)N 1 f 2851(Meta-Tool)X 3177(Circulation)X 3519(Architecture)X 10 f 2808 1912(g)N 1 f 2851(Relationship)X 3233(Mapping)X 3511(Language)X 2520 2005(The)N 3 f 2656(meta-tool)X 2972(circulation)X 3329(architecture)X 1 f 3730(organizes)X 4031(the)X 4144(complex)X 2520 2077(aspects)N 2748(of)X 2828(the)X 2936(required)X 3195(user)X 3334(speci\256cation.)X 3753(Information)X 4116(circulates)X 2520 2149(in)N 2600(an)X 2692(orderly)X 2924(\257ow)X 3076(that)X 3208(allows)X 3420(fundamental)X 3804(relationships)X 4196(among)X 2520 2221(various)N 2765(details)X 2986(to)X 3075(be)X 3176(concisely)X 3481(speci\256ed.)X 3806(The)X 3951(organization)X 4344(is)X 2520 2293(based)N 2723(on)X 2834(a)X 2905(generalization)X 3352(of)X 3452(the)X 3580(program)X 3864(visualization)X 4272(pro-)X 2520 2365(cedure.)N 2773(By)X 2882(identifying)X 3223(the)X 3336(fundamental)X 3720(parameters)X 4060(of)X 4144(this)X 4272(pro-)X 2520 2437(cedure,)N 2768(speci\256cation)X 3170(details)X 3396(are)X 3523(categorized)X 3894(into)X 4045(several)X 4288(key)X 3 f 2520 2509(components)N 1 f 2888(.)X 2952(The)X 3092(details)X 3308(of)X 3396(each)X 3555(component)X 3902(are)X 4017(grouped)X 4280(into)X 2520 2581(individual)N 3 f 2834(entities)X 1 f 3054(.)X 3112(All)X 3226(entities)X 3456(for)X 3563(a)X 3618(component)X 3961(are)X 4072(maintained)X 2520 2653(in)N 2601(a)X 2658(single)X 3 f 2854(module)X 1 f 3082(,)X 3124(such)X 3280(that)X 3412(the)X 3524(speci\256cation)X 3912(of)X 3996(details)X 4208(within)X 2520 2725(each)N 2670(module)X 2904(is)X 2970(independent)X 3340(from)X 3498(the)X 3604(other)X 3770(modules.)X 2664 2797(As)N 2780(information)X 3156(circulates)X 3468(through)X 3728(the)X 3853(architecture,)X 4248(user-)X 2520 2869(speci\256ed)N 3 f 2806(rules)X 1 f 2988(dictate)X 3209(how)X 3362(the)X 3479(state)X 3640(of)X 3729(each)X 3890(entity)X 4083(affects)X 4304(the)X 2520 2941(state)N 2686(of)X 2780(other)X 2962(entities.)X 3241(These)X 3448(rules)X 3623(are)X 3746(constructed)X 4113(using)X 4304(the)X 3 f 2520 3013(relationship)N 2908(mapping)X 3200(language)X 1 f 3496(as)X 3576(a)X 3628(precise)X 3852(means)X 4056(for)X 4160(specify-)X 2520 3085(ing)N 2640(the)X 2757(relationships)X 3154(among)X 3379(details)X 3596(in)X 3681(the)X 3798(modules.)X 4107(Each)X 4280(rule)X 2520 3157(consists)N 2766(of)X 2844(a)X 3 f 2894(mapping)X 1 f 3184(that)X 3310(links)X 3468(conditions)X 3786(on)X 3876(module)X 4110(entities)X 4336(to)X 2520 3229(a)N 2576(set)X 2680(of)X 2764(highly)X 2972(\257exible)X 3212(operations)X 3536(which)X 3737(in)X 3818(turn)X 3959(manipulate)X 4304(the)X 2520 3301(module)N 2764(entities.)X 3035(The)X 3174(mappings)X 3481(utilize)X 3688(details)X 3903(of)X 3990(the)X 4105(entities)X 4340(at)X 2520 3373(arbitrary)N 2786(levels)X 2972(of)X 3051(abstraction,)X 3404(allowing)X 3675(high)X 3822(ef\256ciency)X 4125(by)X 4216(ignor-)X 2520 3445(ing)N 2632(unnecessary)X 3004(detail.)X 3220(The)X 3352(mappings)X 3652(do)X 3743(not)X 3854(specify)X 4081(the)X 4188(precise)X 2520 3517(implementation,)N 3017(but)X 3136(rather)X 3332(the)X 3448(fundamental)X 3836(concepts)X 4116(on)X 4216(which)X 2520 3589(the)N 2631(analysis)X 2886(is)X 2957(based.)X 3180(The)X 3314(result)X 3496(is)X 3566(a)X 3620(powerful,)X 3920(\257exible,)X 4176(visuali-)X 2520 3661(zation)N 2714(tool)X 2844(design)X 3050(that)X 3176(relies)X 3350(on)X 3440(high-level)X 3750(directives.)X 2664 3733(To)N 2764(illustrate)X 3036(the)X 3144(nature)X 3344(and)X 3468(usefulness)X 3788(of)X 3869(this)X 3994(methodology,)X 2520 3805(a)N 2578(speci\256c)X 2824(program)X 3094(visualization)X 3488(meta-tool)X 3790(design,)X 4021(IMPROV,)X 4344(is)X 2520 3877(brie\257y)N 2731(described,)X 3048(utilizing)X 3311(the)X 3422(circulation)X 3753(architecture)X 4116(and)X 4244(map-)X 2520 3949(ping)N 2689(language)X 2990(concepts.)X 3319(Useful)X 3552(features)X 3820(speci\256c)X 4080(to)X 4176(parallel)X 2520 4021(software)N 2791(visualization)X 3182(are)X 3293(included.)X 3600(The)X 3736(resulting)X 4012(customizable)X 2520 4093(tool)N 2662(provides)X 2940(a)X 3002(framework)X 3348(for)X 3462(experimenting)X 3908(with)X 4066(visual)X 4268(ana-)X 2520 4165(lyses.)N 2722(In)X 2804(addition,)X 3080(the)X 3191(tool)X 3326(design)X 3537(will)X 3672(be)X 3763(generally)X 4054(useful)X 4253(for)X 4360(a)X 2520 4237(variety)N 2738(of)X 2816(more)X 2982(advanced)X 3272(program)X 3534(visualization)X 3920(analyses.)X 3 f 2520 4330(2.)N 2592(Background)X 2990(Perspectives)X 1 f 2664 4402(In)N 2742(reaching)X 3008(a)X 3058(better)X 3240(understanding)X 3666(of)X 3744(program)X 4006(visualization,)X 2520 4474(there)N 2758(are)X 2940(at)X 3086(least)X 3312(three)X 3550(perspectives)X 3999(to)X 4148(consider)X 2520 4546([CaK92,KoC91b].)N 3090(These)X 3282(perspectives)X 3658(focus)X 3834(on)X 3926(the)X 4035(user's)X 4228(needs)X 2520 4618(and)N 2658(what)X 2832(the)X 2953(tool)X 3098(designer)X 3375(is)X 3456(capable)X 3709(of)X 3802(providing)X 4115(to)X 4204(satisfy)X 2520 4690(them.)N 2718(The)X 2848(perspectives)X 3222(are:)X 2952 4783(1.)N 3024(User)X 3178(View)X 2952 4876(2.)N 3024(Meta-Tool)X 3350(Designer)X 3628(View)X 2952 4969(3.)N 3024(Toolkit)X 3254(View)X 2520 5062(The)N 2 f 2656(user)X 2804(view)X 1 f 2961(emphasizes)X 3318(the)X 3431(qualities)X 3700(and)X 3829(features)X 4082(that)X 4215(a)X 4272(user)X 2520 5134(would)N 2721(need)X 2878(or)X 2959(want)X 3120(in)X 3197(a)X 3250(program)X 3514(visualization)X 3902(system,)X 4140(indepen-)X 2520 5206(dent)N 2672(of)X 2760(the)X 2876(feasibility)X 3192(of)X 3280(actually)X 3536(implementing)X 3965(them)X 4138(in)X 4223(a)X 4284(real)X 2520 5278(tool.)N 2703(The)X 2850(meta-tool)X 3160(designer)X 3438(view)X 3612(focuses)X 3862(on)X 3968(what)X 4142(kinds)X 4332(of)X 2520 5350(features)N 2767(are)X 2874(possible)X 3130(and)X 3254(reasonable)X 3582(in)X 3658(a)X 3710(meta-tool,)X 4024(and)X 4148(explores)X 2520 5422(the)N 2629(extent)X 2826(to)X 2903(which)X 3100(this)X 3224(approach)X 3508(meets)X 3696(the)X 3804(needs)X 3988(and)X 4112(desires)X 4332(of)X 2520 5494(the)N 2648(user.)X 2844(The)X 2 f 2996(toolkit)X 1 f 3220(view)X 3400(poses)X 3600(an)X 3708(alternate)X 3996(tool)X 4148(designer)X 2520 5566(approach)N 2809(and)X 2938(leans)X 3111(toward)X 3336(simpler,)X 3595(less)X 3728(\257exible)X 3968(tools)X 4132(with)X 4284(sets)X 2520 5638(of)N 2599(\256xed,)X 2780(general-purpose)X 3264(views.)X 3488(These)X 3680(toolkits)X 3916(may)X 4060(not)X 4172(provide)X 2520 5710(the)N 2639(customizability)X 3114(of)X 3205(more)X 3384(general)X 3627(tools,)X 3816(but)X 3938(can)X 4068(suf\256ciently)X 2520 5782(satisfy)N 2726(the)X 2832(needs)X 3014(of)X 3092(the)X 3198(user)X 3336(and)X 3458(are)X 3564(easier)X 3750(to)X 3824(learn.)X 2 p %%Page: 2 2 9 s 0 xH 0 xS 1 f 3 f 468 684(2.1.)N 594(User)X 756(View)X 1 f 612 756(The)N 749(issues)X 946(that)X 1079(are)X 1192(important)X 1497(to)X 1578(tool)X 1715(users)X 1888(involve)X 2130(ease)X 2280(of)X 468 828(use)N 614(and)X 767(ultimate)X 1052(power)X 1281(of)X 1390(the)X 1527(tool,)X 1706(independent)X 2107(of)X 2216(how)X 468 900(elegantly)N 753(the)X 862(tool)X 996(is)X 1066(constructed)X 1420(or)X 1502(how)X 1648(complex)X 1918(the)X 2028(underlying)X 468 972(system)N 688(is.)X 792(The)X 924(speci\256c)X 1163(issues)X 1354(of)X 1433(concern)X 1680(to)X 1755(the)X 1862(user)X 2001(are)X 2108(custom-)X 468 1044(izability,)N 746(\257exibility,)X 1068(expressive)X 1397(power,)X 1620(ef\256ciency,)X 1947(and)X 2076(granular-)X 468 1116(ity)N 565(control.)X 826(Many)X 1015(of)X 1096(these)X 1265(terms)X 1446(are)X 1555(self-explanatory,)X 2062(and)X 2187(a)X 2240(full)X 468 1188(description)N 808(of)X 888(each)X 1040(of)X 1120(them)X 1284(is)X 1352(provided)X 1628(in)X 1704([KoC91b,Koh92],)X 2248(but)X 468 1260(the)N 574(key)X 696(points)X 890(will)X 1020(be)X 1106(discussed)X 1400(brie\257y)X 1606(here.)X 612 1332(Customizability)N 1093(refers)X 1278(to)X 1355(how)X 1500(well)X 1645(the)X 1754(tool)X 1888(can)X 2010(be)X 2100(adjusted)X 468 1404(to)N 558(suit)X 696(speci\256c)X 950(user)X 1104(preferences,)X 1488(implying)X 1781(the)X 1902(need)X 2071(for)X 2188(some)X 468 1476(means)N 673(for)X 778(specifying)X 1099(default)X 1320(parameter)X 1630(values.)X 1872(This)X 2022(is)X 2092(different)X 468 1548(than)N 619(\257exibility,)X 944(which)X 1146(indicates)X 1428(how)X 1578(diverse)X 1812(the)X 1926(capabilities)X 2280(of)X 468 1620(the)N 577(tool)X 710(are.)X 855(Granularity)X 1208(control)X 1433(refers)X 1618(to)X 1696(how)X 1842(well)X 1988(the)X 2098(user)X 2240(can)X 468 1692(focus)N 655(and)X 790(control)X 1024(the)X 1142(visual)X 1344(analysis,)X 1624(to)X 1710(prevent)X 1956(visual)X 2158("over-)X 468 1764(load")N 656(and)X 794(to)X 884(examine)X 1162(details)X 1384(more)X 1566(closely.)X 1841(Tool)X 2012(capabilities)X 468 1836(which)N 667(illustrate)X 942(this)X 1069(concept)X 1316(include)X 1550(animation)X 1860(speed)X 2046(and)X 2172(direc-)X 468 1908(tion)N 610(control)X 844(\(running)X 1122(an)X 1220(animation)X 1538(backward)X 1848(can)X 1979(be)X 2078(valuable,)X 468 1980(especially)N 785(if)X 858(the)X 975(user)X 1124("blinks")X 1389(and)X 1522(misses)X 1742(something\),)X 2112(abstrac-)X 468 2052(tion)N 602(level)X 764(control,)X 1009(and)X 1136(visual)X 1331("analysis)X 1616(guidance".)X 1965(The)X 2100(manipu-)X 468 2124(lation)N 670(of)X 768(abstraction)X 1122(level)X 1299(can)X 1436(greatly)X 1673(reduce)X 1902(the)X 2027(amount)X 2280(of)X 468 2196(extraneous)N 813(details,)X 1052(and)X 1190(provide)X 1444(useful)X 1654(generalities)X 2020(concerning)X 468 2268(program)N 736(behavior.)X 1048(Visual)X 1260("analysis)X 1546(guidance")X 1860(refers)X 2048(to)X 2128(provid-)X 468 2340(ing)N 586(the)X 700(user)X 846(with)X 1000(extra)X 1170(assistance)X 1484(in)X 1566(locating)X 1825(important)X 2132(aspects)X 468 2412(of)N 556(program)X 828(behavior.)X 1144(This)X 1300(is)X 1376(accomplished)X 1800(by)X 1900(utilizing)X 2168(visual)X 468 2484(contrasts)N 742(to)X 816(attract)X 1014(the)X 1120(user's)X 1310(attention)X 1580(to)X 1654(critical)X 1872(behavior.)X 3 f 468 2577(2.2.)N 594(Meta-Tool)X 936(Designer)X 1226(View)X 1 f 612 2649(The)N 755(goal)X 910(of)X 1001(the)X 1120(meta-tool)X 1427(designer)X 1702(is)X 1781(to)X 1868(provide)X 2120(the)X 2240(full)X 468 2721(bene\256t)N 707(of)X 810(powerful,)X 1131(sophisticated)X 1550(tools)X 1732(while)X 1934(attempting)X 2284(to)X 468 2793(reduce)N 682(the)X 792(associated)X 1110(overhead)X 1396(to)X 1474(an)X 1564(acceptable)X 1890(minimum.)X 2228(The)X 468 2865(central)N 684(task)X 820(is)X 888(to)X 964(mask)X 1136(as)X 1216(many)X 1396(internal)X 1636(low-level)X 1928(details)X 2136(as)X 2216(pos-)X 468 2937(sible)N 627(from)X 790(the)X 902(user,)X 1064(and)X 1192(require)X 1420(speci\256cation)X 1808(of)X 1892(only)X 2044(the)X 2156(neces-)X 468 3009(sary)N 628(high-level)X 960(details.)X 1224(The)X 1376(user)X 1536(should)X 1767(not)X 1898(be)X 2005(required)X 2284(to)X 468 3081(understand)N 808(or)X 892(manipulate)X 1236(the)X 1348(underlying)X 1684(graphics)X 1952(or)X 2036(simulation)X 468 3153(systems,)N 738(but)X 854(rather)X 1046(should)X 1261(focus)X 1440(on)X 1535(the)X 1646(abstract)X 1893(speci\256cation)X 2280(of)X 468 3225(views,)N 672(using)X 846(the)X 952(higher)X 1154(level)X 1312(tool)X 1442(functions)X 1728(as)X 1806(building)X 2064(blocks.)X 612 3297(The)N 750(masking)X 1021(of)X 1108(low-level)X 1407(internal)X 1654(details)X 1869(is)X 1944(accomplished)X 468 3369(by)N 562(utilizing)X 824(common)X 1098(principles)X 1404(of)X 1486(modularity)X 1824(and)X 1950(layered)X 2184(inter-)X 468 3441(faces,)N 660(There)X 854(must)X 1020(be)X 1114(a)X 1172(concise,)X 1432(formal)X 1650(speci\256cation)X 2041(syntax)X 2256(for)X 468 3513(creating)N 723(and)X 850(controlling)X 1189(views)X 1380(\320)X 1475(this)X 1602(requires)X 1856(a)X 1910(suitable)X 2156(means)X 468 3585(for)N 577(specifying)X 902(visual)X 1099(semantics.)X 1444(The)X 1581(lack)X 1726(to)X 1807(date)X 1952(of)X 2038(a)X 2096(standard)X 468 3657("visualization)N 884(language")X 1192(for)X 1294(parallel)X 1528(software)X 1794(analysis)X 2044(is)X 2110(the)X 2216(cen-)X 468 3729(tral)N 606(roadblock)X 936(in)X 1034(designing)X 1357(tools)X 1540(for)X 1667(program)X 1954(visualization.)X 468 3801(Several)N 3 f 724(visual)X 944(programming)X 1 f 1411([Mye88])X 1702(and)X 1845(other)X 2032(techniques)X 468 3873(have)N 622(been)X 776(applied)X 1006(to)X 1080(controlling)X 1414(visual)X 1604(analyses,)X 1884(but)X 1994(the)X 2100(problem)X 468 3945(of)N 550(actually)X 800(specifying)X 1122(the)X 1232(visual)X 1426(analysis)X 1680(or)X 1762(view)X 1924(is)X 1994(not)X 2107(yet)X 2216(well)X 468 4017(understood.)N 612 4089(Some)N 814(existing)X 1080(visualization)X 1486(tools)X 1664(have)X 1838(explored)X 2128(various)X 468 4161(alternatives)N 820(to)X 896(masking)X 1160(details)X 1368(from)X 1527(the)X 1634(user,)X 1791(as)X 1870(well)X 2013(as)X 2092(different)X 468 4233(techniques)N 830(for)X 968(specifying)X 1323(views.)X 1582(PARADISE)X 1989(utilizes)X 2252(the)X 468 4305("plug-in")N 760(simulator)X 1056(concept)X 1304(to)X 1384(hide)X 1532(a)X 1587(majority)X 1854(of)X 1937(internal)X 2180(detail)X 468 4377(from)N 628(the)X 737(user)X 878(for)X 983(its)X 1072(animated)X 1357(simulations,)X 1728(as)X 1809(shown)X 2018(in)X 2095(Figure)X 2304(1)X 468 4449([KoC91a,)N 770(KoC92].)X 1058(Using)X 1250(this)X 1373(approach,)X 1674(those)X 1845(details)X 2052(consistent)X 468 4521(for)N 574(all)X 668(simulations)X 1022(are)X 1132(provided)X 1410(by)X 1504(the)X 1614(tool,)X 1766(and)X 1892(the)X 2002(user)X 2144(simply)X 468 4593("plugs)N 681(in")X 794(a)X 852(particular)X 1154(simulation)X 1484(module)X 1726(to)X 1808(specify)X 2042(the)X 2156(neces-)X 468 4665(sary)N 612(detail)X 796(for)X 904(that)X 1036(simulation.)X 1400(The)X 1536(Pablo)X 1724([ReO91])X 2000(and)X 2128(Triplex)X 468 4737([CoK90,Nic90])N 944(program)X 1214(visualization)X 1608(tools)X 1773(utilize)X 1978(a)X 2035(visual)X 2232(tree)X 468 4809(structure)N 745(to)X 826(process)X 1068(program)X 1338(behavior)X 1616(data)X 1762(and)X 1892(display)X 2126(it.)X 2228(The)X 468 4881(Tango)N 675(visualization)X 1066(system)X 1288(annotates)X 1582(user)X 1724(applications)X 2094(using)X 2272(an)X 468 4953(abstract)N 717(visual)X 914(manipulation)X 1320(language)X 1606(to)X 1688(specify)X 1922(the)X 2036(movement)X 468 5025(of)N 561(graphic)X 810(objects)X 1047(in)X 1136(conjunction)X 1508(with)X 1668(a)X 1732(program's)X 2060(execution)X 468 5097([Sta90].)N 612 5169(Textual)N 853(languages)X 1162(can)X 1283(be)X 1372(cumbersome)X 1761(for)X 1866(specifying)X 2188(some)X 468 5241(aspects)N 731(of)X 846(visual)X 1072(behavior.)X 1414(An)X 1556(abstract,)X 1852(visually-oriented)X 468 5313(language)N 750(is)X 820(necessary)X 1122(to)X 1200(describe)X 1463(the)X 1574(drawing)X 1833(and)X 1960(manipulation)X 468 5385(of)N 546(graphics)X 808(at)X 878(a)X 928(high)X 1074(level)X 1232(suitable)X 1474(for)X 1576(a)X 1626(non-graphics)X 2020(expert,)X 2236(and)X 468 5457(with)N 618(appropriate)X 968(semantics)X 1274(for)X 1381(parallel)X 1620(software)X 1891(analysis.)X 2182(Note,)X 468 5529(however,)N 768(that)X 909(the)X 1030(existence)X 1331(of)X 1424(such)X 1589(a)X 1654(language)X 1947(might)X 2148(indeed)X 468 5601("solve")N 700(the)X 808(visual)X 1000(programming)X 1412(problem,)X 1690(and)X 1814(further)X 2031(borders)X 2268(on)X 468 5673(transcending)N 856(conventional)X 1248(and)X 1372(natural)X 1591(languages)X 1898(to)X 1973(constitute)X 2272(an)X 468 5745(abstract,)N 733(symbolic,)X 1038(universal)X 1326(language.)X 1646(Clearly,)X 1900(this)X 2028(is)X 2100(not)X 2216(pos-)X 468 5817(sible)N 641(given)X 838(current)X 1079(technology.)X 1472(However,)X 1791(within)X 2012(the)X 2136(limited)X 3 f 9 f 2782 2289 MXY (->)174 987 oc 2784 MX (->)174 987 oc 3 f 2873(Complete)X 3187(Customized)X 3569(Animated)X 3891(Simulator)X 1 f 60 s 2731 1430 MXY 1450 Dc 2867 1003 MXY 588 418 Dl 3456 MX -588 426 Dl 3 f 10 s 3320 926(Generic)N 3406 1096(Animated)N 3524 1267(Simulator)N 3643 1437(Skeleton)N 2881 1267(User)N 2815 1412(Provided)N 2794 1557(De\256nitions)N 9 s 2890 2418(Figure)N 3112(1:)X 3190(Plug-In)X 3440(Simulator)X 3766(Concept)X 1 f 2520 2511(context)N 2760(of)X 2848(program)X 3120(visualization)X 3516(it)X 3584(is)X 3660(feasible,)X 3930(and)X 4063(a)X 4124(suf\256cient)X 2520 2583(syntax)N 2726(can)X 2844(be)X 2930(constructed.)X 2664 2655(Another)N 2949(important)X 3278(aspect)X 3507(of)X 3616(any)X 3769(scheme)X 4034(a)X 4116(meta-tool)X 2520 2727(designer)N 2786(creates)X 3008(is)X 3078(that)X 3208(the)X 3318(scheme)X 3556(must)X 3718(be)X 3808(customizable)X 4210(to)X 4288(suit)X 2520 2799(the)N 2640(user's)X 2844(particular)X 3152(preferences,)X 3534(as)X 3626(discussed)X 3934(in)X 4023(the)X 4144(previous)X 2520 2871(section.)N 2802(To)X 2924(provide)X 3185(customizability,)X 3688(it)X 3769(is)X 3858(necessary)X 4179(for)X 4304(the)X 2520 2943(designer)N 2800(to)X 2892(generalize)X 3224(and)X 3365(formally)X 3650(classify)X 3907(the)X 4032(fundamental)X 2520 3015(parameters)N 2864(of)X 2951(the)X 3066(analyses.)X 3373(Designing)X 3696(a)X 3755(meta-tool)X 4058(in)X 4141(this)X 4272(way)X 2520 3087(requires)N 2778(a)X 2836(full)X 2962(understanding)X 3396(of)X 3482(both)X 3636(the)X 3750(needs)X 3940(of)X 4026(the)X 4141(user)X 4288(and)X 2520 3159(the)N 2656(basic)X 2852(concepts)X 3152(and)X 3304(parameters)X 3667(of)X 3774(the)X 3909(paradigm)X 4228(under)X 2520 3231(analysis.)N 2820(The)X 2964(operations)X 3296(on)X 3400(these)X 3581(parameters)X 3930(must)X 4103(be)X 4204(under-)X 2520 3303(stood,)N 2722(and)X 2854(a)X 2914(means)X 3126(for)X 3238(effectively)X 3574(specifying)X 3901(these)X 4076(parameters)X 2520 3375(must)N 2681(be)X 2770(constructed.)X 3159(The)X 3292(underlying)X 3625(model)X 3826(on)X 3920(which)X 4118(the)X 4228(meta-)X 2520 3447(tool)N 2650(is)X 2716(based)X 2898(becomes)X 3168(critical.)X 3 f 2520 3540(2.3.)N 2646(Toolkit)X 2888(View)X 1 f 2664 3612(The)N 2799(toolkit)X 3010(view)X 3173(takes)X 3344(a)X 3399(simplistic)X 3702(approach)X 3989(to)X 4068(solving)X 4304(the)X 2520 3684(speci\256cation)N 2923(problem,)X 3220(by)X 3331(providing)X 3650(a)X 3721(\256xed)X 3904(set,)X 4041(or)X 4140("kit",)X 4332(of)X 2520 3756(views,)N 2728(or)X 2810("tools",)X 3051(with)X 3202(limited)X 3429(\257exibility.)X 3768(The)X 3903(bene\256t)X 4122(of)X 4205(such)X 4360(a)X 2520 3828(toolkit)N 2735(is)X 2810(that)X 2945(analyses)X 3216(proceed)X 3470(almost)X 3688(automatically)X 4106(with)X 4260(little)X 2520 3900(user)N 2664(overhead.)X 2988(One)X 3132(successful)X 3452(example)X 3720(is)X 3793(ParaGraph)X 4126([HeE91].)X 2520 3972(The)N 2657(drawback)X 2962(lies)X 3087(in)X 3168(the)X 3281(potential)X 3558(for)X 3667(limits)X 3856(in)X 3937(analysis)X 4194(power,)X 2520 4044(depending)N 2846(on)X 2944(the)X 3058(quality)X 3284(and)X 3414(size)X 3552(of)X 3638(the)X 3752(toolkit.)X 4002(Even)X 4177(when)X 4360(a)X 2520 4116(good)N 2685(view)X 2846(is)X 2915(possible,)X 3190(the)X 3299(overhead)X 3584(to)X 3661(construct)X 3946(that)X 4075(view)X 4236(using)X 2520 4188(the)N 2626(tools)X 2784(can)X 2902(be)X 2988(signi\256cant.)X 2664 4260(One)N 2817(of)X 2910(the)X 3031(key)X 3168(issues)X 3374(which)X 3584(distinguishes)X 3994(the)X 4116(meta-tool)X 2520 4332(approach)N 2809(from)X 2974(the)X 3087(toolkit)X 3300(approach)X 3589(involves)X 3858(the)X 3971(learning)X 4232(curve)X 2520 4404(to)N 2601(use)X 2722(each)X 2879(type)X 3028(of)X 3113(tool.)X 3286(As)X 3391(a)X 3448(user)X 3593(becomes)X 3870(more)X 4044(experienced)X 2520 4476(with)N 2682(a)X 2748(tool,)X 2912(the)X 3033(overhead)X 3330(is)X 3411(reduced)X 3672(as)X 3765(the)X 3886(user)X 4039(learns)X 4244(more)X 2520 4548(effective)N 2799(methods)X 3070(of)X 3157(using)X 3340(the)X 3455(tool,)X 3612(as)X 3699(shown)X 3914(in)X 3997(the)X 4112(following)X 2520 4620(expressions:)N 3 f 2876 4692(T)N 6 s 4706(Analysis)Y 4 s 3098 4715(1)N 9 s 9 f 3160 4692(=)N 3162(=)X 3 f 3238(T)X 6 s 4706(Learn)Y 3423(Tool)X 9 s 9 f 3558 4692(+)N 3560(+)X 3 f 3636(T)X 6 s 4706(Design)Y 3835(Analysis)X 4 s 4009 4715(1)N 9 s 2808 4869(T)N 6 s 4883(Analysis)Y 4 s 3030 4892(n)N 9 s 9 f 3094 4869(=)N 3096(=)X 3 f 3172(T)X 6 s 4883(Design)Y 3371(Analysis)X 4 s 3545 4892(n)N 9 s 9 f 3609 4869(-)N 3611(-)X 3 f 3687(f\(Experience\))X 1 f 2520 4998(The)N 2655(\256rst)X 2790(analysis)X 3045(includes)X 3308(time)X 3459(to)X 3538(learn)X 3705(the)X 3816(tool,)X 3969(along)X 4152(with)X 4304(the)X 2520 5070(time)N 2681(to)X 2770(design)X 2990(the)X 3110(view.)X 3318(Subsequently,)X 3756(the)X 3876(user's)X 4080(experience)X 2520 5142(continues)N 2825(to)X 2910(reduce)X 3131(the)X 3248(development)X 3650(time)X 3808(for)X 3922(each)X 4084(new)X 4234(view.)X 2520 5214(For)N 2663(a)X 2738(meta-tool,)X 3075(the)X 3206(time)X 3377(to)X 3476(learn)X 3662(the)X 3792(complexities)X 4202(of)X 4304(the)X 2520 5286(speci\256cation)N 2902(language)X 3180(can)X 3298(be)X 3384(larger)X 3570(than)X 3713(for)X 3816(a)X 3867(toolkit.)X 4110(However,)X 2520 5358(the)N 2633(solutions)X 2918(generated)X 3223(with)X 3376(the)X 3488(meta-tool)X 3788(are)X 3900(more)X 4072(specialized)X 2520 5430(and)N 2646(will)X 2780(likely)X 2966(produce)X 3220(more)X 3390(effective)X 3664(results.)X 3910(With)X 4076(the)X 4186(toolkit,)X 2520 5502(each)N 2678(new)X 2823(view)X 2988(must)X 3153(be)X 3246(reconstructed)X 3659(using)X 3840(the)X 3953(provided)X 4234(tools,)X 2520 5574(imposing)N 2807(a)X 2858(higher)X 3062(design)X 3270(time)X 3418(than)X 3562(a)X 3614(meta-tool)X 3910(in)X 3986(the)X 4094(long)X 4242(term.)X 2520 5646(This)N 2666(comparison)X 3020(is)X 3086(illustrated)X 3392(in)X 3466(Figure)X 3672(2.)X 2664 5718(In)N 2744(the)X 2852(short)X 3016(term,)X 3186(the)X 3294(toolkit)X 3503(requires)X 3757(less)X 3886(overhead)X 4171(to)X 4248(learn)X 2520 5790(and)N 2662(use.)X 2832(In)X 2930(the)X 3056(long)X 3222(term,)X 3410(the)X 3536(meta-tool)X 3850(can)X 3987(provide)X 4244(more)X 3 p %%Page: 3 3 9 s 0 xH 0 xS 1 f 3 f 1129 705(Toolkit)N 1371(Approach)X 1 f 40 s 1074 798 MXY 57 5 Dl 1184 807 MXY 57 5 Dl 1293 817 MXY 57 5 Dl 1402 826 MXY 57 5 Dl 1512 835 MXY 57 5 Dl 1621 844 MXY 57 5 Dl 1731 854 MXY 57 5 Dl 1840 863 MXY 57 5 Dl 1950 872 MXY 57 5 Dl 2059 882 MXY 57 5 Dl 2169 891 MXY 57 5 Dl 2061 1061 MXY 0 -263 Dl 98 0 Dl 2160 MX 0 263 Dl 1733 MX 0 -263 Dl 98 0 Dl 0 263 Dl 1404 MX 0 -263 Dl 98 0 Dl 0 263 Dl 1074 MX 0 -263 Dl 98 0 Dl 1173 MX 0 263 Dl 745 MX 0 -98 Dl 962 MY 98 0 Dl 844 MX 0 98 Dl 581 1061 MXY 1645 0 Dl 2169 1075 MXY 57 -14 Dl 2169 1046 MXY 57 14 Dl 3 f 10 s 2134 1142(time)N 9 s 1079 1290(Meta-Tool)N 1421(Approach)X 1 f 40 s 2061 1679 MXY 0 -98 Dl 1580 MY 98 0 Dl 2160 MX 0 98 Dl 1733 1679 MXY 0 -115 Dl 1563 MY 98 0 Dl 0 115 Dl 1404 1679 MXY 0 -164 Dl 1514 MY 98 0 Dl 0 164 Dl 1074 1679 MXY 0 -230 Dl 1448 MY 98 0 Dl 1173 MX 0 230 Dl 745 1679 MXY 0 -296 Dl 98 0 Dl 844 MX 0 296 Dl 581 MX 1645 0 Dl 2169 1693 MXY 57 -14 Dl 2169 1664 MXY 57 14 Dl 3 f 10 s 2134 1761(time)N 9 s 618 1888(Figure)N 840(2:)X 918(Toolkit)X 1160(&)X 1238(Meta-Tool)X 1580(Development)X 2002(Times)X 1 f 468 1981(powerful)N 751(analyses)X 1018(with)X 1169(less)X 1300(effort)X 1484(than)X 1632(forcing)X 1864(the)X 1976(toolkit)X 2188(to)X 2268(do)X 468 2053(the)N 575(job.)X 722(The)X 853(trade-off)X 1124(resembles)X 1431(the)X 1538("right)X 1723(tool)X 1854(for)X 1957(the)X 2064(right)X 2218(job")X 468 2125(argument,)N 778(as)X 859(the)X 968(overhead)X 1253(to)X 1330(make)X 1507(the)X 1616(toolkit)X 1825(work)X 1994(for)X 2099(a)X 2152(partic-)X 468 2197(ular)N 607(analysis)X 866(can)X 993(well)X 1144(surpass)X 1382(the)X 1496(meta-tool)X 1798(speci\256cation)X 2188(over-)X 468 2269(head.)N 3 f 468 2362(3.)N 540(Approach)X 1 f 612 2434(The)N 742(goal)X 884(of)X 962(the)X 1068(methodology)X 1466(presented)X 1760(here)X 1902(is)X 1968(to)X 2042(allow)X 2220(util-)X 468 2506(ization)N 690(of)X 775(more)X 948(advanced)X 1245(visualization)X 1638(techniques)X 1971(while)X 2156(reduc-)X 468 2578(ing)N 593(the)X 714(overhead)X 1011(in)X 1100(creating)X 1365(custom,)X 1624(visual)X 1830(analysis)X 2096(environ-)X 468 2650(ments.)N 699(Customizable)X 1118(use)X 1237(of)X 1320(these)X 1491(more)X 1662(sophisticated)X 2060(visualiza-)X 468 2722(tion)N 611(techniques)X 950(will)X 1093(provide)X 1344(a)X 1408(framework)X 1756(for)X 1872(experimentation)X 468 2794(within)N 674(the)X 783(visual)X 976(software)X 1245(analysis)X 1498(paradigm.)X 1827(The)X 1960(methodology)X 468 2866(will)N 620(also)X 776(allow)X 976(application)X 1336(of)X 1436(these)X 1624(advanced)X 1936(techniques)X 2284(to)X 468 2938(analyzing)N 790(parallel)X 1047(software.)X 1372(A)X 1465(prototype)X 1782(tool,)X 1953(IMPROV,)X 2292(is)X 468 3010(under)N 650(development)X 1040(to)X 1114(verify)X 1304(the)X 1410(validity)X 1648(of)X 1726(the)X 1832(concepts.)X 612 3082(The)N 753(central)X 978(concepts)X 1259(utilized)X 1504(in)X 1590(this)X 1724(methodology)X 2134(are)X 2252(the)X 468 3154(meta-tool)N 772(circulation)X 1108(architecture)X 1475(and)X 1606(the)X 1721(relationship)X 2088(mapping)X 468 3226(language.)N 802(The)X 952(architecture)X 1330(organizes)X 1644(the)X 1770(details)X 1996(of)X 2094(the)X 2220(user)X 468 3298(speci\256cation,)N 886(and)X 1025(provides)X 1308(a)X 1375(framework)X 1726(for)X 1845(combining)X 2188(those)X 468 3370(details)N 689(using)X 878(the)X 999(mapping)X 1284(language.)X 1614(The)X 1760(following)X 2074(two)X 2216(sub-)X 468 3442(sections)N 739(describe)X 1018(the)X 1145(methodology)X 1564(and)X 1707(the)X 1834(IMPROV)X 2152(design)X 468 3514(based)N 650(on)X 740(the)X 846(methodology,)X 1262(respectively.)X 3 f 468 3607(3.1.)N 594(Methodology)X 1 f 612 3679(For)N 752(the)X 881(purposes)X 1178(of)X 1279(the)X 1408(methodology,)X 1847(the)X 1976(speci\256cation)X 468 3751(details)N 679(of)X 762(the)X 872(visual)X 1066(analysis)X 1320(procedure)X 1630(are)X 1740(viewed)X 1970(as)X 2052(belonging)X 468 3823(to)N 542(three)X 3 f 704(components)X 1 f 1072(:)X 1188 3916(1.)N 1260(Events)X 1188 4009(2.)N 1260(Behavior)X 1188 4102(3.)N 1260(Graphics)X 468 4195(Typically,)N 807(information)X 1192(concerning)X 1558(the)X 1692(execution)X 2018(of)X 2124(parallel)X 468 4267(software)N 747(is)X 826(considered)X 1169(in)X 1256(the)X 1374(form)X 1544(of)X 1634(discrete)X 1888(occurrences,)X 2280(or)X 3 f 468 4339(events)N 1 f 660(.)X 720(Raw)X 876(event)X 1056(data)X 1200(is)X 1272(captured,)X 1562(during)X 1774(program)X 2042(execution,)X 468 4411(into)N 613(a)X 678(trace)X 851(that)X 992(describes)X 1293(the)X 1414(program)X 1691(behavior.)X 2012(The)X 2156(events)X 468 4483(encapsulate)N 829(the)X 942(internal)X 1187(behavior)X 1464(of)X 1549(the)X 1662(software,)X 1954(including)X 2252(the)X 468 4555(timing)N 676(of)X 755(speci\256c)X 994(actions.)X 1253(The)X 1384(sequences)X 1695(of)X 1774(events)X 1977(are)X 2084(analyzed)X 468 4627(in)N 542(tuning)X 744(software)X 1010(for)X 1112(performance)X 1494(and)X 1616(for)X 1718(debugging)X 2040(software.)X 612 4699(To)N 715(be)X 806(utilized,)X 1063(the)X 1174(raw)X 1305(event)X 1484(data)X 1628(must)X 1792(often)X 1964(be)X 2056(processed)X 468 4771(to)N 543(derive)X 742(the)X 849(desired)X 1076(information.)X 1470(The)X 3 f 1600(behavior)X 1 f 1890(component)X 2228(acts)X 468 4843(as)N 550(a)X 604(buffer)X 802(between)X 1064(the)X 1174(raw)X 1304(data)X 1446(and)X 1572(the)X 1682(output)X 1888(to)X 1966(the)X 2076(user,)X 2236(and)X 468 4915(provides)N 742(for)X 852(any)X 982(necessary)X 1287(manipulation)X 1692(or)X 1777(numerical)X 2090(analysis.)X 468 4987(Various)N 720(mathematical)X 1132(functions)X 1424(are)X 1536(applied)X 1772(to)X 1852(convert)X 2092(the)X 2204(indi-)X 468 5059(vidual)N 671(raw)X 802(event)X 981(instances)X 1268(into)X 1402(useful)X 1600(statistics,)X 1888(and)X 2014(to)X 2092(organize)X 468 5131(the)N 586(event)X 772(information.)X 1178(Results)X 1420(can)X 1550(be)X 1648(generated)X 1958(which)X 2164(reveal)X 468 5203(high-level)N 778(features)X 1024(and)X 1146(characteristics)X 1576(of)X 1654(program)X 1916(behavior.)X 612 5275(The)N 749(software)X 1022(behavior)X 1300(information,)X 1684(once)X 1846(derived,)X 2106(must)X 2272(be)X 468 5347(made)N 643(available)X 922(to)X 997(the)X 1104(user)X 1243(in)X 1318(a)X 1369(useful)X 1564(and)X 1687(meaningful)X 2034(form.)X 2229(In)X 2308(a)X 468 5419(program)N 755(visualization)X 1166(system,)X 1428(behavior)X 1724(is)X 1816(rendered)X 2112(visually)X 468 5491(using)N 3 f 672(graphics)X 1 f (.)S 1020(Graphics)X 1328(can)X 1476(provide)X 1743(intuitive,)X 2048(high-level)X 468 5563(interpretations)N 920(of)X 1016(program)X 1296(behavior)X 1584(by)X 1692(depicting)X 1996(the)X 2120(internal)X 468 5635(complexities)N 854(of)X 932(parallel)X 1166(software)X 1432(using)X 1606(visual)X 1796(analogies.)X 612 5707(The)N 754(central)X 980(dif\256culty)X 1274(in)X 1360(using)X 1546(visualization)X 1945(for)X 2060(analyzing)X 468 5779(parallel)N 710(software)X 984(is)X 1058(in)X 1139(integrating)X 1476(these)X 1649(three)X 1818(components)X 2191(in)X 2272(an)X 2520 684(ef\256cient,)N 2800(\257exible)X 3042(manner.)X 3320(The)X 3459(event)X 3642(and)X 3773(behavior)X 4052(information)X 2520 756(must)N 2678(be)X 2764(linked)X 2962(with)X 3108(the)X 3214(graphics)X 3476(to)X 3550(drive)X 3716(the)X 3822(dynamics)X 4116(of)X 4194(an)X 4280(ani-)X 2520 828(mation.)N 2784(The)X 2924(possibility)X 3253(for)X 3366(large)X 3539(amounts)X 3812(of)X 3901(detail,)X 4108(combined)X 2520 900(with)N 2669(a)X 2722(high)X 2870(degree)X 3082(of)X 3162(coupling)X 3434(among)X 3650(the)X 3758(different)X 4026(components,)X 2520 972(can)N 2638(result)X 2816(in)X 2890(highly)X 3092(complex)X 3358(and)X 3480(cumbersome)X 3866(speci\256cations.)X 2664 1044(There)N 2878(is)X 2973(no)X 3092(single)X 3311(speci\256cation)X 3722(approach)X 4033(that)X 4188(applies)X 2520 1116(equally)N 2758(well)X 2908(to)X 2990(details)X 3204(from)X 3370(all)X 3468(of)X 3553(the)X 3666(components.)X 4075(The)X 4212(nature)X 2520 1188(of)N 2598(the)X 2704(information)X 3062(in)X 3136(each)X 3286(of)X 3364(the)X 3470(components)X 3837(is)X 3904(unique,)X 4137(and)X 4260(each)X 2520 1260(component)N 2860(requires)X 3111(a)X 3162(different)X 3429(framework)X 3764(for)X 3867(specifying)X 4186(details.)X 2520 1332(Existing)N 2804(program)X 3092(visualization)X 3504(tools)X 3688(tend)X 3856(to)X 3956(emphasize)X 4304(the)X 2520 1404(speci\256cation)N 2939(of)X 3054(only)X 2 f 3236(one)X 1 f 3394(of)X 3508(the)X 3650(components,)X 4070(leading)X 4336(to)X 2520 1476(dif\256culties)N 2870(in)X 2968(the)X 3098(remaining)X 3432(components.)X 3858(The)X 4012(methodology)X 2520 1548(relieves)N 2767(this)X 2894(imbalance)X 3213(by)X 3308(specifying)X 3630(the)X 3740(fundamental)X 4122(details)X 4332(of)X 2520 1620(each)N 2675(component)X 3018(independently,)X 3467(utilizing)X 3730(the)X 3841(speci\256cation)X 4228(struc-)X 2520 1692(ture)N 2650(most)X 2808(natural)X 3026(for)X 3128(that)X 3254(component.)X 2664 1764(To)N 2768(allow)X 2952(this)X 3080(independence)X 3500(in)X 3580(component)X 3925(speci\256cations,)X 4360(a)X 2520 1836(means)N 2729(is)X 2802(required)X 3067(for)X 3176(ef\256ciently)X 3492(\256lling)X 3688(in)X 3768(the)X 3880(remaining)X 4196(depen-)X 2520 1908(dent)N 2677(details)X 2898(which)X 3107(relate)X 3300(the)X 3421(independent)X 3806(components.)X 4224(There)X 2520 1980(must)N 2681(be)X 2770(a)X 2822(common,)X 3112(underlying)X 3444(foundation)X 3776(to)X 3852(provide)X 4092(a)X 4144(frame)X 4332(of)X 2520 2052(reference)N 2822(for)X 2940(combining)X 3282(the)X 3404(diversely)X 3703(structured)X 4026(components.)X 2520 2124(The)N 2658(methodology)X 3063(supports)X 3332(these)X 3505(requirements)X 3906(by)X 4003(introducing)X 4360(a)X 2520 2196(mapping)N 2802(language)X 3092(for)X 3206(relating)X 3456(the)X 3575(details)X 3794(from)X 3965(different)X 4244(com-)X 2520 2268(ponents,)N 2804(in)X 2902(terms)X 3104(of)X 3206(fundamental)X 3608(constructs)X 3941(called)X 3 f 4154(entities)X 1 f 4374(.)X 2520 2340(These)N 2712(entities)X 2940(organize)X 3208(and)X 3332(encapsulate)X 3688(information)X 4048(into)X 4180(distinct)X 2520 2412(sets)N 2649(which)X 2846(contain)X 3078(closely)X 3302(related)X 3518(details,)X 3744(and)X 3868(provide)X 4108(a)X 4160(uniform)X 2520 2484(interface)N 2800(for)X 2912(accessing)X 3216(the)X 3332(information.)X 3736(The)X 3876(entities)X 4112(constitute)X 2520 2556(the)N 2626("building)X 2914(blocks")X 3150(for)X 3252(constructing)X 3626(a)X 3676(complete)X 3958(speci\256cation.)X 2664 2628(Entities)N 2902(within)X 3104(each)X 3254(component)X 3592(can)X 3711(be)X 3798(arranged)X 4069(in)X 4144(arbitrary)X 2520 2700(structures)N 2833(to)X 2922(suit)X 3059(the)X 3180(speci\256cation)X 3576(needs.)X 3808(The)X 3952(entities)X 4192(can)X 4324(be)X 2520 2772(constructed)N 2875(from)X 3038(several)X 3265(layers)X 3460(of)X 3543(low-level)X 3838(building)X 4102(blocks,)X 4332(or)X 3 f 2520 2844(sub-entities)N 1 f 2872(.)X 2943(Each)X 3122(entity)X 3321(consists)X 3584(of)X 3678(one)X 3816(or)X 3910(more)X 3 f 4092(attributes)X 1 f 2520 2916(which)N 2726(represent)X 3020(the)X 3139(individual)X 3462(details)X 3681(that)X 3820(describe)X 4091(the)X 4210(entity.)X 2520 2988(The)N 2651(collection)X 2954(of)X 3033(attributes,)X 3338(and)X 3460(sub-entities)X 3810(with)X 3956(their)X 4106(attributes,)X 2520 3060(forms)N 2721(an)X 2822(abstraction)X 3171(hierarchy)X 3476(for)X 3594(each)X 3760(entity.)X 3994(The)X 4140(mapping)X 2520 3132(language)N 2820(can)X 2960(reference)X 3268(entities)X 3516(anywhere)X 3836(in)X 3932(this)X 4076(abstraction)X 2520 3204(hierarchy,)N 2846(providing)X 3162(a)X 3231(highly)X 3452(\257exible)X 3705(means)X 3926(for)X 4047(relating)X 4304(the)X 2520 3276(independently)N 2946(speci\256ed)X 3220(details.)X 2664 3348(The)N 2799(entities)X 3030(for)X 3137(each)X 3292(component)X 3635(are)X 3746(collected)X 4029(into)X 4164(a)X 4220(single)X 3 f 2520 3420(module)N 1 f 2748(.)X 2802(Each)X 2964(module)X 3198(consists)X 3444(of)X 3522(two)X 3648(portions:)X 3096 3513(1.)N 3168(Speci\256cation)X 3096 3606(2.)N 3168(State)X 2520 3699(The)N 3 f 2658(speci\256cation)X 1 f 3065(portion)X 3300(includes)X 3567(declarations)X 3942(of)X 4029(the)X 4144(essential)X 2520 3771(characteristics)N 2951(of)X 3030(entities)X 3257(and)X 3380(their)X 3531(attributes.)X 3854(These)X 4044(declarations)X 2520 3843(provide)N 2769(structure)X 3050(for)X 3163(instances)X 3456(of)X 3546(the)X 3664(entities,)X 3920(and)X 4054(can)X 4184(specify)X 2520 3915(relationships)N 2907(among)X 3122(the)X 3229(entities)X 3456(within)X 3659(a)X 3710(module.)X 3980(The)X 3 f 4110(state)X 1 f 4272(por-)X 2520 3987(tion)N 2654(maintains)X 2956(values)X 3162(for)X 3268(speci\256c)X 3510(instances)X 3796(of)X 3878(entities,)X 4126(using)X 4304(the)X 2520 4059(speci\256ed)N 2794(structure.)X 2664 4131(In)N 2744(the)X 3 f 2852(events)X 3064(module)X 1 f 3292(,)X 3331(entities)X 3560(describe)X 3821(the)X 3930(structure)X 4203(of)X 4284(raw)X 2520 4203(events)N 2739(and)X 2878(their)X 3045(associated)X 3376(attribute)X 3650(data.)X 3840(Conditions)X 4190(can)X 4324(be)X 2520 4275(imposed)N 2786(using)X 2964(expressions)X 3322(on)X 3416(entities)X 3646(and)X 3772(their)X 3927(attribute)X 4190(values,)X 2520 4347(throughout)N 2855(the)X 2962(entity)X 3144(hierarchies,)X 3496(allowing)X 3766(detailed)X 4012(identi\256cation)X 2520 4419(of)N 2603(speci\256c)X 2846(occurrences.)X 3249(The)X 3384(state)X 3540(portion)X 3772(of)X 3856(the)X 3968(events)X 4176(module)X 2520 4491(maintains)N 2844(the)X 2975(data)X 3138(associated)X 3477(with)X 3648(speci\256c)X 3911(event)X 4110(instances.)X 2520 4563(These)N 2714(event)X 2892(instances)X 3179(are)X 3290(input)X 3461(from)X 3624(execution)X 3927(traces)X 4118(or)X 4201(can)X 4324(be)X 2520 4635(generated)N 2818(by)X 2908(the)X 3014(circulation)X 3340(architecture.)X 2664 4707(In)N 2745(the)X 3 f 2854(behavior)X 3147(module)X 1 f 3375(,)X 3414(the)X 3523(entities)X 3752(represent)X 4038(all)X 4132(variables)X 2520 4779(necessary)N 2829(to)X 2914(derive)X 3123(the)X 3240(software)X 3516(behavior)X 3796(of)X 3884(interest.)X 4160(Each)X 4332(of)X 2520 4851(these)N 3 f 2691(behavior)X 2986(variable)X 1 f 3261(entities)X 3492(is)X 3563(associated)X 3882(with)X 4033(an)X 4124(appropri-)X 2520 4923(ate)N 2635(data)X 2786(type,)X 2959(representing)X 3346(scalar)X 3545(values,)X 3778(arrays,)X 4003(or)X 4094(structures.)X 2520 4995(The)N 2650(declarations)X 3017(can)X 3136(include)X 3367(static)X 3538(relationships)X 3925(among)X 4140(behavior)X 2520 5067(variables,)N 2831(and)X 2968(can)X 3100(set)X 3212(initial)X 3412(values.)X 3664(The)X 3808(state)X 3972(portion)X 4212(of)X 4304(the)X 2520 5139(behavior)N 2796(module)X 3036(maintains)X 3340(the)X 3452(values)X 3660(of)X 3744(the)X 3856(behavior)X 4132(variables)X 2520 5211(throughout)N 2854(the)X 2960(analysis.)X 2664 5283(In)N 2758(the)X 3 f 2880(graphics)X 3178(module)X 1 f 3406(,)X 3459(the)X 3582(entities)X 3825(represent)X 4124(graphical)X 2520 5355(objects.)N 2779(The)X 2910(speci\256cation)X 3293(in)X 3368(the)X 3475(graphics)X 3738(module)X 3972(de\256nes)X 4194(a)X 4244(start-)X 2520 5427(ing)N 2648(point)X 2832(for)X 2952(the)X 3076(visual)X 3284(display,)X 3546(including)X 3854(\256xed,)X 4052(background)X 2520 5499(graphics)N 2801(and)X 2942(graphical)X 3247(reference)X 3552(points,)X 3783(along)X 3980(with)X 4144(dynamic)X 2520 5571(graphical)N 2820(objects)X 3056(and)X 3192(their)X 3356(starting)X 3604(or)X 3696(default)X 3928(positions.)X 4256(Sub-)X 2520 5643(entities)N 2760(in)X 2848(the)X 2968(graphics)X 3244(module)X 3491(correspond)X 3842(to)X 3929(any)X 4064(lower-level)X 2520 5715(building)N 2781(blocks,)X 3008(e.g.)X 3133(points,)X 3348(lines,)X 3523(etc.,)X 3664(which)X 3861(make)X 4038(up)X 4131(the)X 4240(high-)X 2520 5787(level)N 2704(graphical)X 3016(entities.)X 3304(The)X 3460(state)X 3636(of)X 3740(the)X 3872(graphical)X 4184(entities)X 4 p %%Page: 4 4 9 s 0 xH 0 xS 1 f 468 684(corresponds)N 836(to)X 912(the)X 1021(values)X 1226(of)X 1307(graphical)X 1596(attributes,)X 1903(including)X 2196(loca-)X 468 756(tion,)N 616(rotation,)X 876(scaling,)X 1116(etc.)X 612 828(These)N 804(three)X 968(modules)X 1232(are)X 1340(combined)X 1645(and)X 1770(organized)X 2075(using)X 2252(the)X 3 f 468 900(meta-tool)N 786(circulation)X 1144(architecture)X 1 f 1520(,)X 1564(which)X 1766(provides)X 2039(an)X 2132(orderly)X 468 972(\257ow)N 636(and)X 780(processing)X 1129(of)X 1230(information)X 1611(among)X 1848(the)X 1977(modules,)X 2280(as)X 468 1044(shown)N 682(in)X 764(Figure)X 978(3.)X 1076(State)X 1246(information)X 1612(for)X 1722(entity)X 1911(instances)X 2200(from)X 468 1116(different)N 742(modules)X 1012(circulates)X 1314(and)X 1444(is)X 1518(processed)X 1828(via)X 1943(a)X 2002(set)X 2109(of)X 3 f 2196(rela-)X 468 1188(tionships)N 1 f 744(.)X 809(These)X 1010(relationships)X 1407(identify)X 1660(changes)X 1920(in)X 2004(state)X 2164(of)X 2252(the)X 468 1260(entities)N 700(according)X 1008(to)X 1088(precise)X 1316(conditions)X 1640(on)X 1736(the)X 1848(entities)X 2080(and)X 2208(their)X 468 1332(attributes,)N 782(and)X 914(describe)X 1181(how)X 1332(entities)X 1567(in\257uence)X 1858(each)X 2017(other.)X 2228(The)X 468 1404(new)N 612(entity)X 800(states)X 985(are)X 1098(recirculated)X 1463(back)X 1624(into)X 1761(the)X 1874(modules)X 2143(for)X 2252(the)X 468 1476(next)N 611(iteration,)X 888(and)X 1011(the)X 1118(new)X 1257(graphical)X 1544(entity)X 1727(states)X 1906(are)X 2013(also)X 2148(passed)X 468 1548(along)N 646(to)X 720(update)X 930(the)X 1036(animation.)X 7 s 726 2219 MXY 294 187 De 3 f 802 2237(Events)N 1 f 1232 2974 MXY 0 -109 Dl 288 0 Dl 0 109 Dl -288 0 Dl 3 f 1269 2939(Simulator)N 1 f 1738 2219 MXY 294 172 De 3 f 1784 2237(Graphics)N 1 f 1278 3633 MXY 0 -97 Dl 213 0 Dl 0 97 Dl -213 0 Dl 3 f 1298 3601(Display)N 1 f 607 1934 MXY 172 Dc 3 f 632 1945(Input)N 1 f 1230 2219 MXY 294 187 De 1194 2651 MXY 366 115 De 1234 3385 MXY 288 0 Dl 72 -129 Dl -72 -122 Dl 3133 MY -288 0 Dl -72 126 Dl 72 125 Dl 730 2021 MXY 72 108 Dl 757 2089 MXY 43 39 Dl 781 2073 MXY 20 55 Dl 1378 2309 MXY 0 288 Dl 1363 2539 MXY 14 57 Dl 1392 2539 MXY -14 57 Dl 981 2291 MXY D~ 252 162 72 144 D~~ 1267 2552 MXY 38 44 Dl 1292 2539 MXY 12 58 Dl 1378 2712 MXY 0 154 Dl 1363 2809 MXY 14 57 Dl 1392 2809 MXY -14 57 Dl 2979 MY 0 154 Dl 1363 3075 MXY 14 57 Dl 1392 3075 MXY -14 57 Dl 1766 2276 MXY D~ -244 179 -72 140 D~~ 1463 2539 MXY -13 57 Dl 1489 2552 MXY -39 44 Dl 1381 3392 MXY 0 144 Dl 1367 3479 MXY 14 57 Dl 1395 3479 MXY -14 57 Dl 1485 2975 MXY D~ 0 72 197 0 540 -899 -288 -233 -35 216 D~~ 1894 2070 MXY 4 59 Dl 1923 2074 MXY -23 54 Dl 1431 2975 MXY D~ 0 108 144 18 216 -35 666 -918 -432 -396 -666 35 18 323 D~~ 1360 2054 MXY 17 56 Dl 1389 2052 MXY -10 58 Dl 1306 2975 MXY D~ 0 90 -198 0 -575 -702 -108 -576 395 -198 270 216 -144 323 D~~ 955 2070 MXY -10 58 Dl 982 2082 MXY -36 46 Dl 3 f 1262 3241(Animation)N 1298 3313(Control)N 1269 2237(Behavior)N 1219 2669(Relationships)N 9 s 887 3776(Figure)N 1109(3:)X 1187(Meta-Tool)X 1529(Architecture)X 1 f 612 3869(Each)N 775(relationship)X 1134(consists)X 1381(of)X 1460(a)X 3 f 1512(mapping)X 1 f 1804(which)X 2000(associates)X 2308(a)X 468 3941(set)N 571(of)X 654(conditions)X 977(on)X 1072(the)X 1183(state)X 1338(with)X 1489(a)X 1544(set)X 1646(of)X 1728(manipulations)X 2158(on)X 2252(the)X 468 4013(state.)N 667(The)X 810(mappings)X 1121(are)X 1240(speci\256ed)X 1528(using)X 1716(a)X 3 f 1780(relationship)X 2180(map-)X 468 4085(ping)N 622(language)X 1 f 898(,)X 934(and)X 1056(consist)X 1274(of)X 1352(a)X 1402(set)X 1500(of)X 3 f 1578(rules)X 1 f 1748(of)X 1826(the)X 1932(form:)X 1012 4178(Condition)N 9 f 1318 MX (->)174 987 oc 1 f 1407(Manipulation)X 468 4271(The)N 3 f 612(condition)X 1 f 932(or)X 1024("head")X 1252(of)X 1344(a)X 1408(rule)X 1552(is)X 1632(an)X 1732(expression)X 2072(imposing)X 468 4343(some)N 648(restriction)X 968(on)X 1068(the)X 1184(state)X 1344(of)X 1431(entities.)X 1702(The)X 3 f 1841(manipulation)X 1 f 2280(or)X 468 4415("body")N 690(of)X 768(a)X 818(rule)X 948(indicates)X 1222(some)X 1392(action)X 1586(to)X 1660(be)X 1747(carried)X 1966(out)X 2077(when)X 2252(the)X 468 4487(corresponding)N 906(condition)X 1204(is)X 1278(satis\256ed.)X 1576(These)X 1774(actions)X 2004(create,)X 2220(des-)X 468 4559(troy,)N 626(or)X 710(otherwise)X 1014(manipulate)X 1358(the)X 1470(state)X 1626(of)X 1710(entities,)X 1960(or)X 2044(their)X 2200(attri-)X 468 4631(butes.)N 612 4703(The)N 746(references)X 1064(to)X 1142(entities)X 1372(in)X 1450(the)X 1560(mapping)X 1835(rules)X 1998(can)X 2121(be)X 2212(very)X 468 4775(high-level)N 782(and)X 908(general,)X 1160(or)X 1241(can)X 1362(be)X 1451(very)X 1600(speci\256c)X 1841(and)X 1966(relate)X 2147(to)X 2224(pre-)X 468 4847(cise)N 605(attributes,)X 916(variable)X 1174(values,)X 1402(etc.)X 1548(For)X 1674(example,)X 1962(consider)X 2232(that)X 468 4919(events)N 701(can)X 850(be)X 967(referenced)X 1320(simply)X 1565(by)X 1686(whether)X 1967(or)X 2076(not)X 2216(they)X 468 4991(occurred,)N 767(or)X 856(more)X 1033(precisely)X 1322(by)X 1423(their)X 1584(timestamp)X 1913(or)X 2002(a)X 2064(particular)X 468 5063(data)N 612(value.)X 828(Similarly,)X 1138(a)X 1193(graphical)X 1484(image,)X 1701(say)X 1820(a)X 1875(rectangle,)X 2180(could)X 468 5135(be)N 555(directed)X 806(to)X 881(move)X 1060(in)X 1135(its)X 1222(entirety)X 1461(across)X 1660(the)X 1767(display,)X 2012(or)X 2092(could)X 2272(be)X 468 5207(distorted)N 754(by)X 860(moving)X 1114(only)X 1276(a)X 1342(single)X 1548(side)X 1698(or)X 1792(corner)X 2010(point.)X 2228(The)X 468 5279(bene\256t)N 682(of)X 760(this)X 882(\257exibility)X 1180(is)X 1247(that)X 1374(the)X 1481(user)X 1620(is)X 1687(not)X 1798(required)X 2057(to)X 2132(specify)X 468 5351(unnecessary)N 872(details,)X 1130(but)X 1274(can)X 1426(instrument)X 1786(precise)X 2041(control)X 2296(if)X 468 5423(desired.)N 753(In)X 854(addition,)X 1149(the)X 1278(focus)X 1475(of)X 1576(the)X 1705(mapping)X 1998(rules)X 2179(is)X 2268(on)X 468 5495(module)N 722(coupling)X 1012(relationships,)X 1436(not)X 1566(implementation)X 2055(details)X 2280(or)X 468 5567(\257ow)N 640(control.)X 924(The)X 1080(mapping)X 1377(rules)X 1562(describe)X 1847(the)X 1980(fundamental)X 468 5639(interaction)N 794(among)X 1008(events,)X 1228(behavior,)X 1516(and)X 1638(graphics.)X 612 5711(The)N 763(relationships)X 1170(speci\256ed)X 1465(using)X 1660(the)X 1788(mapping)X 2080(language)X 468 5783(constitute)N 779(the)X 898(details)X 1117(for)X 1232(a)X 3 f 1295(plug-in)X 1546(simulator)X 1 f (.)S 1909(This)X 2068(simulator)X 2520 684(applies)N 2749(the)X 2862(state)X 3019(information)X 3384(from)X 3549(the)X 3662(entities)X 3896(to)X 3978(the)X 4092(conditions)X 2520 756(of)N 2608(the)X 2724(relationships,)X 3137(and)X 3268(automatically)X 3687(derives)X 3922(new)X 4069(state)X 4228(infor-)X 2520 828(mation)N 2754(using)X 2945(the)X 3068(manipulation)X 3483(functions.)X 3822(The)X 3969(simulator)X 4276(also)X 2520 900(passes)N 2726(along)X 2907(a)X 2960(copy)X 3121(of)X 3202(the)X 3311(graphical)X 3600(state)X 3753(to)X 3830(produce)X 4083(the)X 4192(anima-)X 2520 972(tion.)N 2664 1044(The)N 2798(user)X 2940(can)X 3062(adjust)X 3256(and)X 3382(focus)X 3560(the)X 3671(animation)X 3982(using)X 4161(the)X 3 f 4272(ani-)X 2520 1116(mation)N 2755(control)X 2994(interface)X 1 f 3266(,)X 3303(which)X 3498(acts)X 3628(like)X 3754(a)X 3804(valve)X 3978(or)X 4056(lens)X 4190(to)X 4264(con-)X 2520 1188(trol)N 2644(the)X 2757(overall)X 2982(perspective)X 3335(onto)X 3488(the)X 3601(visual)X 3798(analysis.)X 4091(The)X 4228(speed)X 2520 1260(and)N 2643(direction)X 2918(of)X 2997(the)X 3104(animation)X 3411(can)X 3530(be)X 3617(set,)X 3734(as)X 3813(can)X 3932(display)X 4158(size)X 4288(and)X 2520 1332(zooming.)N 2839(In)X 2930(addition)X 3197(to)X 3284(these)X 3463(post-simulator)X 3910(adjustments,)X 4304(the)X 2520 1404(user)N 2665(can)X 2790(also)X 2931(interactively)X 3316(adjust)X 3512(the)X 3624(parameters)X 3964(of)X 4048(the)X 4160(analysis)X 2520 1476(at)N 2599(any)X 2730(time)X 2886(by)X 2986(modifying)X 3314(the)X 3430(relationships)X 3826(among)X 4050(the)X 4166(entities.)X 2520 1548(For)N 2662(example,)X 2966(the)X 3096(same)X 3285(behavior)X 3578(and)X 3723(graphics)X 4008(con\256guration)X 2520 1620(could)N 2700(be)X 2788(used)X 2940(with)X 3089(a)X 3142(different)X 3411(set)X 3512(of)X 3593(event)X 3770(de\256nitions)X 4095(to)X 4172(analyze)X 2520 1692(a)N 2578(different)X 2852(aspect)X 3058(of)X 3144(the)X 3258(software)X 3532(behavior)X 3810(using)X 3992(the)X 4106(same)X 4280(ani-)X 2520 1764(mation.)N 2664 1836(One)N 2815(exception)X 3126(to)X 3214(this)X 3350(modi\256cation)X 3746(capability,)X 4080(and)X 4216(to)X 4304(the)X 2520 1908(independence)N 2961(of)X 3066(the)X 3198(speci\256cation)X 3606(of)X 3710(modules,)X 4016(involves)X 4304(the)X 2520 1980(nature)N 2721(of)X 2802(the)X 2911(data)X 3052(that)X 3181(events)X 3386(can)X 3507(represent.)X 3828(Events)X 4046(are)X 4156(categor-)X 2520 2052(ized)N 2676(as)X 2772(being)X 2968(either)X 3 f 3168(qualitative)X 1 f 3532(or)X 3 f 3628(quantitative)X 1 f 4000(.)X 4072(Qualitative)X 2520 2124(events)N 2722(correspond)X 3060(to)X 3134(speci\256c)X 3372(conditions,)X 3708(having)X 3923(a)X 3974(value)X 4149(of)X 4228(either)X 2520 2196(TRUE)N 2732(or)X 2816(FALSE,)X 3078(such)X 3234(as)X 3318(having)X 3538(passed)X 3754(a)X 3810(particular)X 4110(point)X 4281(in)X 4360(a)X 2520 2268(computation.)N 2944(Quantitative)X 3328(events)X 3540(carry)X 3717(numerical)X 4034(information,)X 2520 2340(other)N 2693(than)X 2842(the)X 2954(timestamp,)X 3296(that)X 3428(describes)X 3720(the)X 3832(value)X 4012(of)X 4096(some)X 4272(pro-)X 2520 2412(gram)N 2688(metric)X 2892(or)X 2972(characteristic,)X 3394(or)X 3474(the)X 3582(result)X 3762(of)X 3842(some)X 4014(computation.)X 2520 2484(The)N 2661(use)X 2786(of)X 2875(these)X 3052(two)X 3189(types)X 3370(of)X 3459(events)X 3672(can)X 3800(be)X 3896(substantially)X 4288(dif-)X 2520 2556(ferent,)N 2735(requiring)X 3028(more)X 3206(than)X 3360(trivial)X 3562(adjustments)X 3936(in)X 4022(the)X 4140(behavior)X 2520 2628(and)N 2660(graphics)X 2939(modules)X 3218(when)X 3409(the)X 3532(event)X 3723(type)X 3882(is)X 3965(switched.)X 4292(For)X 2520 2700(example,)N 2818(instantiation)X 3210(of)X 3306(a)X 3374(metric)X 3595(value)X 3788(event)X 3981(in)X 4074(place)X 4263(of)X 4360(a)X 2520 2772(boolean)N 2768(event)X 2944(would)X 3144(likely)X 3328(require)X 3552(the)X 3659(addition)X 3914(of)X 3993(some)X 4164(numeri-)X 2520 2844(cal)N 2622(processing.)X 3 f 2520 2937(3.2.)N 2646(Example)X 2936(Design)X 1 f 2664 3009(This)N 2812(section)X 3036(describes)X 3324(the)X 3432(example)X 3696(design)X 3904(for)X 4008(the)X 4116(meta-tool)X 2520 3081(prototype)N 2817(IMPROV,)X 3136(based)X 3321(on)X 3414(the)X 3523(methodology.)X 3960(The)X 4092(discussion)X 2520 3153(here)N 2679(will)X 2826(be)X 2929(limited)X 3168(to)X 3259(an)X 3362(overview)X 3665(of)X 3760(the)X 3884(key)X 4024(features)X 4288(and)X 2520 3225(language)N 2798(syntax.)X 2664 3297(The)N 2803(speci\256cation)X 3194(of)X 3281(events)X 3492(in)X 3576(IMPROV)X 3884(is)X 3960(based)X 4152(on)X 4252(EDL)X 2520 3369(\(Event)N 2752(De\256nition)X 3084(Language\))X 3432([BaW83,Bat88].)X 3965(This)X 4132(language)X 2520 3441(allows)N 2728(primitive)X 3012(and)X 3136(compound)X 3461(events)X 3666(to)X 3743(be)X 3832(de\256ned,)X 4083(along)X 4264(with)X 2520 3513(appropriately)N 2937(typed)X 3130(attributes.)X 3467(Several)X 3716(operators)X 4016(are)X 4136(provided)X 2520 3585(for)N 2630(combining)X 2964(events)X 3174(into)X 3312(various)X 3550(types)X 3728(of)X 3814(sequential)X 4133(and)X 4264(con-)X 2520 3657(current)N 2748(compound)X 3076(events.)X 3319(An)X 3430(example)X 3697(of)X 3780(the)X 3891(format)X 4106(of)X 4189(a)X 4244(com-)X 2520 3729(pound)N 2718(event)X 2892(de\256nition)X 3186(using)X 3360(EDL)X 3518(is)X 3584(shown)X 3790(in)X 3864(Figure)X 4070(4.)X 2 f 2664 3822(event)N 1 f 2834()X 2 f 3282(is)X 1 f 2808 3894()N 3100()X 3272()X 3564()X 3736(...)X 3808()X 3980()X 2 f 2664 3966(cond)N 1 f 2808 4038(.)N 3350(==)X 3468(3;)X 2808 4110(.)N 3350(<=)X 3468(2)X 3522(*)X 3576(.;)X 2826 4182(.)N 2862(.)X 2898(.)X 2 f 2664 4254(with)N 1 f 2808 4326()N 3058(=)X 3135(.)X 3659(+)X 3718(4;)X 2808 4398()N 3058(=)X 3135(.)X 3659(-)X 3701(.;)X 2826 4470(.)N 2862(.)X 2898(.)X 2 f 2664 4542(end)N 3 f 2604 4635(Figure)N 2826(4:)X 2904(Example)X 3194(Compound)X 3556(Event)X 3754(De\256nition)X 4076(Format)X 1 f 2664 4728(Each)N 2827(event)X 3002(is)X 3069(de\256ned)X 3300(with)X 3447(a)X 3498(unique)X 3714(name,)X 3908(and)X 4032(consists)X 4280(of)X 4360(a)X 2520 4800(combination)N 2911(of)X 3002(one)X 3137(or)X 3228(more)X 3 f 3407(sub-events)X 1 f 3731(,)X 3780(possibly)X 4050("primitive".)X 2520 4872(This)N 2679(combination)X 3070(can)X 3202(indicate)X 3462(temporal)X 3750(relationships,)X 4168(such)X 4332(as)X 2520 4944(concurrent)N 2846(versus)X 3048(sequential,)X 3376(and)X 3498(other)X 3664(standard)X 3926(groupings.)X 4268(Any)X 2520 5016(attributes)N 2820(of)X 2912(the)X 3032(event)X 3220(are)X 3340(also)X 3488(de\256ned,)X 3750(with)X 3911(appropriate)X 4272(data)X 2520 5088(types)N 2690(and)X 2812(values)X 3014(derived)X 3248(from)X 3406(the)X 3512(sub-event)X 3810(attribute)X 4068(values.)X 2664 5160(The)N 2810(behavior)X 3096(variables)X 3390(for)X 3508(IMPROV)X 3822(are)X 3945(speci\256ed)X 4236(using)X 2520 5232(typical)N 2771(variable)X 3058(declaration)X 3433(syntax,)X 3694(such)X 3880(as)X 3994(found)X 4216(in)X 4326(C.)X 2520 5304(Behavior)N 2849(variables)X 3174(can)X 3340(be)X 3474(scalars,)X 3754(vectors,)X 4046(and)X 4216(multi-)X 2520 5376(dimensional)N 2900(arrays)X 3104(of)X 3192(a)X 3252(variety)X 3480(of)X 3567(data)X 3714(types.)X 3929(Some)X 4120(examples)X 2520 5448(are)N 2633(shown)X 2846(in)X 2927(Figure)X 3140(5.)X 3237(Note)X 3402(that)X 3536(multi-dimensional)X 4090(arrays)X 4292(can)X 2520 5520(be)N 2625(de\256ned)X 2874(with)X 3038(unspeci\256ed,)X 3420(or)X 3 f 3516(implicit)X 1 f (,)S 3806(dimension)X 4142(sizes,)X 4336(to)X 2520 5592(allow)N 2699(greater)X 2918(\257exibility)X 3217(in)X 3292(array)X 3460(interfacing.)X 3828(This)X 3976(implicit)X 4220(sizing)X 2520 5664(also)N 2656(proves)X 2868(useful)X 3064(for)X 3168("sparse")X 3428(arrays)X 3624(by)X 3716(utilizing)X 3976(a)X 4028(table-lookup)X 2520 5736(indexing)N 2790(scheme)X 3024(to)X 3098(avoid)X 3276(wasted)X 3494(storage.)X 2664 5808(It)N 2730(should)X 2944(be)X 3034(noted)X 3216(that)X 3346(the)X 3456(use)X 3574(of)X 3 f 3656(explicit)X 1 f 3902(array)X 4073(sizing)X 4268(may)X 5 p %%Page: 5 5 9 s 0 xH 0 xS 1 f 900 705(double)N 1114(util[128][128];)X 900 798(double)N 1114(x[][][];)X 900 891(char)N 1042(message[256];)X 900 984(int)N 994(i,j;)X 3 f 623 1077(Figure)N 845(5:)X 923(Example)X 1213(Behavior)X 1511(Variable)X 1797(Declarations)X 1 f 468 1170(be)N 560(necessary)X 864(in)X 944(some)X 1120(cases,)X 1314(e.g.)X 1443(to)X 1524(indicate)X 1777(the)X 1890(number)X 2135(of)X 2220(pro-)X 468 1242(cessors)N 708(used)X 872(in)X 960(an)X 1060(execution.)X 1408(Any)X 1564(such)X 1728(explicit)X 1976(speci\256cation)X 468 1314(requires)N 724(agreement)X 1048(among)X 1268(the)X 1380(modules.)X 1684(To)X 1788(alleviate)X 2056(this)X 2184(prob-)X 468 1386(lem,)N 619(IMPROV)X 924(is)X 996(designed)X 1276(to)X 1356(reduce)X 1572(or)X 1656(extend)X 1872(arrays)X 2072(as)X 2156(neces-)X 468 1458(sary)N 606(should)X 817(a)X 868(mismatch)X 1167(occur,)X 1364(and)X 1487(can)X 1606(instantiate)X 1921(implicit)X 2164(arrays)X 468 1530(appropriately)N 870(for)X 972(interfacing)X 1302(with)X 1448(explicit)X 1682(ones.)X 612 1602(The)N 756(graphical)X 1056(entities)X 1296(are)X 1416(statically)X 1708(de\256ned)X 1953(in)X 2042(IMPROV,)X 468 1674(such)N 635(that)X 778(the)X 901(user)X 1056(need)X 1226(only)X 1388(indicate)X 1650(the)X 1772(creation)X 2038(of)X 2132(desired)X 468 1746(instances.)N 814(Graphical)X 1144(entities)X 1398(implicitly)X 1724(carry)X 1918(attributes)X 2232(that)X 468 1818(specify)N 701(the)X 814(shape,)X 1021(size,)X 1176(rotation,)X 1443(and)X 1572(other)X 1744(de\256ning)X 2004(characteris-)X 468 1890(tics)N 597(for)X 710(the)X 827(given)X 1016(graphical)X 1313(object.)X 1554(The)X 1696(set)X 1806(of)X 1896(attributes)X 2194(for)X 2308(a)X 468 1962(graphical)N 771(object)X 982(actually)X 1245(overspecify)X 1616(the)X 1738(state)X 1904(of)X 1998(a)X 2064(particular)X 468 2034(instance,)N 752(such)X 914(that)X 1052(any)X 1187(combination)X 1578(which)X 1785(completely)X 2136(de\256nes)X 468 2106(the)N 577(instance)X 834(is)X 902(suf\256cient.)X 1226(For)X 1346(example,)X 1628(a)X 1680(circle)X 1860(could)X 2040(be)X 2128(de\256ned)X 468 2178(by)N 569(a)X 630(center)X 835(and)X 968(radius,)X 1191(or)X 1280(a)X 1341(center)X 1546(and)X 1679(diameter.)X 1996(Likewise,)X 2308(a)X 468 2250(rectangle)N 767(could)X 962(be)X 1064(de\256ned)X 1310(by)X 1416(specifying)X 1750(the)X 1872(location)X 2138(of)X 2232(two)X 468 2322(opposite)N 730(corners,)X 978(or)X 1056(by)X 1146(providing)X 1444(a)X 1494(length)X 1692(and)X 1814(width.)X 612 2394(The)N 744(speci\256cation)X 1128(language)X 1409(for)X 1514(the)X 1623(graphics)X 1888(is)X 1957(hybrid,)X 2184(using)X 468 2466(both)N 616(visual)X 808(and)X 932(textual)X 1147(representations.)X 1638(The)X 1769(visual)X 1960(manipulation)X 468 2538(allows)N 678(a)X 732(natural)X 955(interaction)X 1286(with)X 1437(the)X 1548(graphics,)X 1833(utilizing)X 2096(standard)X 468 2610(drawing)N 723(techniques.)X 1086(A)X 1157(precise)X 1380(textual)X 1595(representation)X 2022(mimics)X 2252(the)X 468 2682(graphical)N 758(manipulations,)X 1206(allowing)X 1480(straightforward)X 1946(integration)X 2280(of)X 468 2754(the)N 579(graphics)X 846(with)X 997(the)X 1108(other)X 1279(modules.)X 1582(There)X 1772(is)X 1842(a)X 1896(direct,)X 2100(unambi-)X 468 2826(guous)N 667(mapping)X 946(between)X 1214(the)X 1330(visual)X 1530(and)X 1662(textual)X 1886(representations,)X 468 2898(with)N 647(graphical)X 966(variables)X 1277(corresponding)X 1740(to)X 1846(graphical)X 2164(object)X 468 2970(instances.)N 797(This)X 954(allows)X 1171(automatic)X 1484(mirroring)X 1789(of)X 1878(one)X 2011(form)X 2180(while)X 468 3042(the)N 580(user)X 724(is)X 796(manipulating)X 1200(the)X 1312(other.)X 1520(The)X 1655(user)X 1798(can)X 1921(specify)X 2152(details)X 468 3114(using)N 644(either)X 829(representation,)X 1276(according)X 1581(to)X 1658(individual)X 1971(intuition)X 2236(and)X 468 3186(preferences;)N 839(those)X 1010(details)X 1217(best)X 1352(suited)X 1543(to)X 1618(graphics)X 1880(can)X 1998(be)X 2084(speci\256ed)X 468 3258(graphically,)N 829(and)X 952(the)X 1060(precision)X 1344(of)X 1424(text)X 1552(can)X 1672(be)X 1760(applied)X 1992(to)X 2068(re\256ne)X 2252(the)X 468 3330(details.)N 612 3402(The)N 744(relationship)X 1104(mapping)X 1377(language)X 1658(for)X 1763(IMPROV)X 2064(combines)X 468 3474(the)N 584(various)X 824(details)X 1040(of)X 1128(events,)X 1357(behavior)X 1636(variables,)X 1941(and)X 2072(graphical)X 468 3546(objects)N 702(into)X 844(a)X 906(complete)X 1200(analysis)X 1462(speci\256cation.)X 1892(Entities)X 2142(can)X 2272(be)X 468 3618(accessed)N 742(on)X 836(a)X 890(high)X 1040(level)X 1202(or)X 1284(using)X 1461(low-level)X 1754(attributes.)X 2079(The)X 2212(con-)X 468 3690(ditions)N 696(and)X 832(manipulations)X 1272(of)X 1364(the)X 1484(rules)X 1657(are)X 1778(expressions)X 2147(on)X 2252(the)X 468 3762(entities.)N 737(Condition)X 1050(expressions)X 1411(are)X 1524(speci\256ed)X 1804(using)X 1984(comparators)X 468 3834(much)N 647(like)X 774(standard)X 1037(C,)X 1122(such)X 1273(as)X 1352(==,)X 1471(!=,)X 1573(<=,)X 1692(>=,)X 1811(&&,)X 9 f 1960(||)X 1 f 1988(,)X 2025(etc.)X 2164(Mani-)X 468 3906(pulation)N 739(expressions)X 1110(consist)X 1344(of)X 1438(one)X 1576(or)X 1670(more)X 1852(statements,)X 2208(each)X 468 3978(representing)N 853(some)X 1034(action)X 1240(that)X 1378(manipulates)X 1756(the)X 1874(entities.)X 2148(Exam-)X 468 4050(ples)N 602(of)X 680(rules)X 838(are)X 944(given)X 1122(in)X 1196(Figure)X 1402(6.)X 2 f 612 4143(update)N 1 f 9 f 826 MX (->)174 987 oc 1 f 915(COLOR)X 1177({circle}[)X 2 f 1431(update)X 1 f 1627(.pe])X 2 f 1755(update)X 1 f 1951(.value;)X 3 f 612 4236(load)N 1 f 744([i])X 9 f 830(\263)X 1 f 888(10)X 9 f 996 MX (->)174 987 oc 1 f 1085(ROTATE)X 1387({image}[i])X 1719(\()X 3 f (load)S 1 f 1875([i])X 1961(*)X 3 f 2015(scale)X 1 f 2163(\);)X 612 4329({point}[i].x)N 9 f 970(\243)X 1 f 1028(SIN\()X 3 f 1168(current_time)X 1 f 1572(\))X 9 f 1614 MX (->)174 987 oc 2 f 1703(below)X 1 f 1875(;)X 3 f 1913(status)X 1 f 2093([i])X 2179(:=)X 2258(3;)X 3 f 671 4422(Figure)N 893(6:)X 971(Example)X 1261(Relationship)X 1667(Mapping)X 1965(Rules)X 1 f 612 4515(In)N 707(the)X 830(example,)X 1127(italics)X 1334(is)X 1417(used)X 1584(to)X 1675(represent)X 1974(events,)X 2212(bold)X 468 4587(represents)N 787(behavior)X 1066(variables,)X 1370(and)X 1500(the)X 1614(items)X 1796(enclosed)X 2074(in)X 2156(braces)X 468 4659(\({}\))N 610(indicate)X 862(references)X 1183(to)X 1264(graphical)X 1557(objects.)X 1822(The)X 1959(\256rst)X 2096(example)X 468 4731(rule)N 612(indicates)X 899(that)X 1038(whenever)X 1349(an)X 2 f 1448(update)X 1 f 1675(event)X 1862(occurs,)X 2099(a)X 2162(circle,)X 468 4803(representing)N 867(the)X 998(processing)X 1349(element)X 1620(that)X 1771(issued)X 1994(the)X 2 f 2126(update)X 1 f 2322(,)X 468 4875(changes)N 720(colors)X 916(based)X 1100(on)X 1192(the)X 1300(event)X 1476(attribute)X 1736("value".)X 2008(The)X 2140(second)X 468 4947(rule)N 601(speci\256es)X 870(that)X 1000(whenever)X 1302(an)X 1392(element)X 1642(of)X 1724(the)X 1834(behavior)X 2108(variable)X 468 5019(vector)N 3 f 687(load)X 1 f 858(is)X 944(greater)X 1182(than)X 1344(or)X 1442(equal)X 1636(to)X 1730(10,)X 1858(a)X 1928(corresponding)X 468 5091(graphical)N 766("image")X 1032(is)X 1110(rotated)X 1340(to)X 1426(a)X 1488(position)X 1750(computed)X 2065(using)X 2252(the)X 468 5163(behavior)N 756(variable)X 3 f 1023(scale)X 1 f 1171(.)X 1242(The)X 1389(third)X 1560(rule)X 1707(states)X 1902(that)X 2045(when)X 2236(any)X 468 5235(point)N 649(from)X 822(a)X 887(vector)X 1100(of)X 1193(points)X 1402(crosses)X 1643(a)X 1708(vertical)X 1957(boundary,)X 2280(as)X 468 5307(determined)N 828(by)X 936(comparing)X 1280(the)X 1404("x")X 1536(coordinate)X 1876(to)X 1968(a)X 2036(sine)X 2188(wave)X 468 5379(function)N 734(of)X 820(the)X 934(current)X 1164(time,)X 1336(a)X 2 f 1394(below)X 1 f 1593(event)X 1776(instance)X 2039(is)X 2114(created,)X 468 5451(and)N 595(the)X 706(corresponding)X 1140(behavior)X 1414(variable)X 3 f 1668(status)X 1 f 1870(is)X 1940(updated.)X 2226(It)X 2292(is)X 468 5523(clear)N 640(from)X 812(these)X 992(rules)X 1164(that)X 1305(very)X 1466(simple,)X 1709(as)X 1802(well)X 1959(as)X 2052(arbitrarily)X 468 5595(complex,)N 752(relationships)X 1138(are)X 1244(possible.)X 612 5667(Each)N 774(of)X 852(the)X 958(modules)X 1220(supports)X 1483(speci\256c)X 1722(syntax)X 1929(subsets)X 2156(within)X 468 5739(the)N 590(mapping)X 876(language.)X 1206(Details)X 1444(of)X 1538(the)X 1660(full)X 1794(mapping)X 2080(language)X 468 5811(grammar)N 747(are)X 854(presented)X 1149(in)X 1224([Koh92].)X 1523(As)X 1622(mentioned)X 1946(above,)X 2156(events)X 2520 684(may)N 2666(be)X 2756(utilized)X 2994(in)X 3071(two)X 3200(different)X 3469(ways,)X 3656(by)X 3749(their)X 3902(occurrence)X 4239(or)X 4320(by)X 2520 756(speci\256c)N 2774(attribute)X 3048(values.)X 3303(In)X 3398(a)X 3465(condition)X 3772(expression,)X 4133(an)X 4236(event)X 2520 828(reference)N 2814(with)X 2968(no)X 3066(attributes)X 3360(indicates)X 3641(that)X 3774(the)X 3887(desired)X 4120(condition)X 2520 900(on)N 2610(the)X 2716(event)X 2890(is)X 2956(merely)X 3174(the)X 3280(occurrence)X 3614(of)X 3692(an)X 3778(instance)X 4032(of)X 4110(that)X 4236(event)X 2520 972(at)N 2599(the)X 2714(current)X 2945(simulation)X 3276(time.)X 3467(Otherwise,)X 3808(if)X 3879(an)X 3974(event)X 4157(is)X 4232(refer-)X 2520 1044(enced)N 2707(with)X 2854(a)X 2906(particular)X 3202(attribute,)X 3480(the)X 3588(desired)X 3816(condition)X 4108(is)X 4176(that)X 4304(the)X 2520 1116(event)N 2711(has)X 2842(not)X 2969(only)X 3132(occurred,)X 3437(but)X 3564(that)X 3706(the)X 3828(given)X 4022(attribute)X 4296(has)X 2520 1188(satis\256ed)N 2774(some)X 2944(restriction)X 3255(on)X 3346(its)X 3433(value.)X 3644(An)X 3751(extension)X 4046(to)X 4121(this)X 4244(latter)X 2520 1260(case)N 2669(occurs)X 2882(when)X 3063(an)X 3156(event)X 3337(is)X 3410(referenced)X 3739(by)X 3836(its)X 3928(timestamp)X 4252(attri-)X 2520 1332(bute.)N 2706(In)X 2792(this)X 2922(case,)X 3090(the)X 3204(condition)X 3502(relates)X 3716(to)X 3798(the)X 3912(entire)X 4102(event)X 4284(his-)X 2520 1404(tory,)N 2684(and)X 2818(examines)X 3120(some)X 3302(subset)X 3511(of)X 3600(events)X 3813(in)X 3898(a)X 3959(particular)X 4264(time)X 2520 1476(frame.)N 2772(In)X 2881(the)X 3018(manipulation)X 3447(expressions,)X 3850(events)X 4083(can)X 4232(occur)X 2520 1548(without)N 2783(attributes,)X 3112(indicating)X 3442(the)X 3572(creation)X 3846(or)X 3948(deletion)X 4222(of)X 4324(an)X 2520 1620(instance)N 2780(of)X 2865(that)X 2998(event.)X 3215(Events)X 3436(attributes)X 3729(can)X 3854(also)X 3995(be)X 4088(referenced)X 2520 1692(in)N 2599(manipulation)X 3002(expressions)X 3360(as)X 3442(part)X 3576(of)X 3658(functions)X 3948(or)X 4030(calculations.)X 2520 1764(In)N 2600(this)X 2725(context,)X 2976(the)X 3085(event)X 3262(reference)X 3551(utilizes)X 3780(the)X 3889(value)X 4066(of)X 4147(an)X 4236(event)X 2520 1836(attribute)N 2778(for)X 2880(manipulating)X 3278(another)X 3512(entity.)X 2664 1908(The)N 2806(use)X 2932(of)X 3022(a)X 3085(behavior)X 3368(variable)X 3631(in)X 3718(a)X 3781(condition)X 4084(expression)X 2520 1980(implies)N 2760(a)X 2820(comparison)X 3184(of)X 3272(the)X 3388(value)X 3571(of)X 3658(that)X 3793(variable,)X 4070(or)X 4157(its)X 4252(attri-)X 2520 2052(butes,)N 2714(to)X 2794(some)X 2970(other)X 3142(value.)X 3358(Behavior)X 3646(variables)X 3931(in)X 4012(manipulation)X 2520 2124(expressions)N 2886(can)X 3016(indicate)X 3274(either)X 3468(modi\256cation)X 3862(of)X 3952(the)X 4070(variable)X 4332(or)X 2520 2196(attribute)N 2782(values,)X 3006(or)X 3088(their)X 3242(use)X 3360(in)X 3439(manipulating)X 3842(other)X 4013(entities.)X 4280(The)X 2520 2268(references)N 2866(to)X 2972(graphical)X 3290(objects)X 3544(appear)X 3785(in)X 3890(similar)X 4139(ways)X 4336(to)X 2520 2340(behavior)N 2808(variables.)X 3140(Graphical)X 3460(object)X 3673(variables)X 3970(can)X 4107(appear)X 4336(in)X 2520 2412(conditions)N 2848(expressions)X 3212(to)X 3296(evaluate)X 3564(comparisons)X 3956(of)X 4044(the)X 4160(location)X 2520 2484(and)N 2643(attributes)X 2930(of)X 3010(graphical)X 3298(objects.)X 3558(In)X 3638(manipulation)X 4038(expressions,)X 2520 2556(references)N 2842(to)X 2924(graphical)X 3218(objects)X 3448(can)X 3574(be)X 3668(used,)X 3844(like)X 3978(behavior)X 4256(vari-)X 2520 2628(ables,)N 2721(as)X 2816(values)X 3035(for)X 3154(mathematical)X 3577(expressions)X 3948(in)X 4040(assignments)X 2520 2700(and)N 2649(other)X 2822(operations.)X 3182(In)X 3266(addition,)X 3544(graphical)X 3836(objects)X 4064(can)X 4188(be)X 4280(part)X 2520 2772(of)N 2622(the)X 2752(special)X 2994(functions)X 3304(and)X 3450(operations)X 3792(that)X 3942(manipulate)X 4304(the)X 2520 2844(graphics)N 2782(to)X 2856(control)X 3078(animation.)X 2664 2916(Aside)N 2853(from)X 3014(the)X 3123(above)X 3316(functions)X 3606(for)X 3712(relating)X 3954(and)X 4080(manipulat-)X 2520 2988(ing)N 2633(events,)X 2856(behavior,)X 3147(and)X 3272(graphical)X 3561(entities,)X 3808(one)X 3932(special)X 4152(function)X 2520 3060(is)N 2603(also)X 2754(included)X 3037(speci\256cally)X 3400(for)X 3519(parallel)X 3770(analyses.)X 4085(To)X 4200(handle)X 2520 3132(many)N 2700(replicated)X 3004(instances)X 3288(of)X 3368(entities,)X 3614(as)X 3694(are)X 3802(likely)X 3986(to)X 4062(be)X 4149(found)X 4336(in)X 2520 3204(analyses)N 2804(with)X 2972(multiple)X 3252(identical)X 3540(processors,)X 3902(functional)X 4234(units,)X 2520 3276(etc.,)N 2665(a)X 2722(function)X 2987(is)X 3060(introduced)X 3393(for)X 3502(manipulating)X 3907(and)X 4036(constructing)X 2520 3348(large)N 2698(sets)X 2840(of)X 2934(entities.)X 3212(The)X 3358("REPLICATE")X 3841(function)X 4116(organizes)X 2520 3420(very)N 2674(large,)X 2862(complex)X 3136(arrangements)X 3550(of)X 3635(state)X 3792(and)X 3921(graphics,)X 4208(reduc-)X 2520 3492(ing)N 2642(the)X 2760(tedium)X 2990(in)X 3076(repeatedly)X 3406(specifying)X 3736(these)X 3914(details)X 4132(by)X 4234(hand.)X 2520 3564(For)N 2660(example,)X 2962(this)X 3106(function)X 3386(can)X 3526(produce)X 3798(large)X 3981(collections)X 4332(of)X 2520 3636(graphical)N 2806(entities)X 3032(in)X 3106(arbitrary)X 3372(patterns)X 3618(and)X 3740(layouts.)X 3 f 2520 3729(4.)N 2592(Illustrative)X 2950(Example)X 1 f 2664 3801(This)N 2813(sub-section)X 3162(provides)X 3432(a)X 3486(simple)X 3700(visual)X 3894(analysis)X 4148(example)X 2520 3873(that)N 2655(is)X 2730(speci\256ed)X 3012(using)X 3194(the)X 3308(proposed)X 3598(meta-tool)X 3900(design)X 4114(and)X 4244(map-)X 2520 3945(ping)N 2679(language.)X 3006(For)X 3137(this)X 3272(example,)X 3565(the)X 3684(module)X 3932(details)X 4152(are)X 4272(pro-)X 2520 4017(vided,)N 2736(along)X 2934(with)X 3100(the)X 3226(necessary)X 3544(mapping)X 3834(language)X 4131(rules)X 4308(for)X 2520 4089(specifying)N 2838(the)X 2944(functionality)X 3330(of)X 3408(the)X 3514(visual)X 3704(analysis.)X 3 f 2520 4182(4.1.)N 2646(Interprocess)X 3048(Communication)X 3562(Analysis)X 1 f 2664 4254(This)N 2822(analysis)X 3085(depicts)X 3320(the)X 3439(behavior)X 3722(of)X 3813(multiple)X 4084(concurrent)X 2520 4326(processes)N 2826(in)X 2912(a)X 2974(message)X 3248(passing)X 3494(environment.)X 3924(Each)X 4098(process)X 4344(is)X 2520 4398(represented)N 2872(by)X 2964(a)X 3016(circle,)X 3214(and)X 3339(these)X 3508(process)X 3745(circles)X 3954(are)X 4063(arranged)X 4336(in)X 2520 4470(a)N 2587(larger)X 2790(circle.)X 3021(As)X 3136(the)X 3259(processes)X 3570(execute,)X 3843(they)X 4002(enter)X 4180(various)X 2520 4542(states,)N 2724(that)X 2858(are)X 2973(identi\256ed)X 3272(by)X 2 f 3371(update)X 1 f 3594(events.)X 3841(For)X 3968(each)X 4127(state,)X 4304(the)X 2520 4614(corresponding)N 2966(process)X 3216(circle)X 3410(should)X 3636(change)X 3874(to)X 3963(an)X 4064(appropriate)X 2520 4686(color.)N 2738(The)X 2884(processes)X 3194(may)X 3352(communicate)X 3774(messages)X 4081(with)X 4244(other)X 2520 4758(processes,)N 2845(as)X 2936(identi\256ed)X 3239(by)X 2 f 3342(send)X 1 f 3505(and)X 2 f 3640(receive)X 1 f 3879(events.)X 4130(For)X 4260(each)X 2520 4830(such)N 2677(message,)X 2964(an)X 3057(arrow)X 3250(is)X 3323(to)X 3404(be)X 3497(created)X 3730(from)X 3895(the)X 4008(sender)X 4222(to)X 4304(the)X 2520 4902(receiver)N 2779(process)X 3022(circle,)X 3226(to)X 3308(be)X 3402(present)X 3636(during)X 3850(the)X 3964(time)X 4118(while)X 4304(the)X 2520 4974(message)N 2788(is)X 2860(in)X 2940(transit)X 3144(\(between)X 3432(the)X 2 f 3544(send)X 1 f 3701(event)X 3882(and)X 4011(the)X 4124(matching)X 2 f 2520 5046(receive)N 1 f 2748(event\).)X 2984(This)X 3131(display)X 3358(is)X 3425(essentially)X 3748(that)X 3875(used)X 4026(by)X 4117(the)X 4224(Ravel)X 2520 5118(visualization)N 2922(tool)X 3068(developed)X 3398(at)X 3484(Argonne)X 3771(National)X 4054(Laboratory.)X 2520 5190(The)N 2655(speci\256cation)X 3042(for)X 3149(this)X 3276(example)X 3542(is)X 3612(given)X 3794(in)X 3872(Figures)X 4110(7)X 4168(through)X 2520 5262(10)N 2610(below.)X 2664 5334(The)N 2806(three)X 2980(necessary)X 3290(events,)X 2 f 3522(update)X 1 f 3718(,)X 2 f 3766(send)X 1 f 3898(,)X 2 f 3946(receive)X 1 f 4154(,)X 4202(are)X 4320(all)X 2520 5406(primitive)N 2835(mappings)X 3166(from)X 3356(raw)X 3514(execution)X 3844(trace)X 4034(events.)X 4304(No)X 2520 5478(behavior)N 2811(variables)X 3110(are)X 3238(necessary)X 3558(for)X 3682(this)X 3826(analysis,)X 4116(only)X 4284(two)X 2520 5550(graphical)N 2816(object)X 3020(variables,)X 3326("crc")X 3502(and)X 3634("ln",)X 3795(for)X 3906(keeping)X 4161(track)X 4332(of)X 2520 5622(and)N 2645(referencing)X 2994(the)X 3104(pe)X 3194(circles)X 3404(and)X 3530(message)X 3796(arrows.)X 4050(The)X 4184(display)X 2520 5694(is)N 2593(constructed)X 2950(by)X 3047(creating)X 3304(a)X 3361(single)X 3558(circle)X 3743(and)X 3872(then)X 4020(replicating)X 4352(it)X 2520 5766(in)N 2599(another)X 2838(circle,)X 3039(using)X 3218(indices)X 3445(from)X 3608(0)X 3667(to)X 3746(7.)X 3841(The)X 3976(mapping)X 4252(rules)X 6 p %%Page: 6 6 9 s 0 xH 0 xS 1 f 2 f 756 705(event)N 1 f 926(update)X 2 f 1136(is)X 1 f 1202(primitive)X 1484("raw_update")X 2 f 756 777(with)N 1 f 900 849(int)N 994(pe;)X 900 921(int)N 994(state;)X 2 f 756 993(end)N 756 1086(event)N 1 f 926(send)X 2 f 1076(is)X 1 f 1142(primitive)X 1424("raw_send")X 2 f 756 1158(with)N 1 f 900 1230(int)N 994(src;)X 900 1302(int)N 994(dst;)X 2 f 756 1374(end)N 756 1467(event)N 1 f 926(receive)X 2 f 1152(is)X 1 f 1218(primitive)X 1500("raw_receive")X 2 f 756 1539(with)N 1 f 900 1611(int)N 994(src;)X 900 1683(int)N 994(dst;)X 2 f 756 1755(end)N 3 f 959 1848(Figure)N 1181(7:)X 1259(Event)X 1457(Speci\256cation)X 1 f 1160 1962(None)N 1334(Necessary.)X 3 f 766 2055(Figure)N 988(8:)X 1066(Behavior)X 1364(Variable)X 1650(Speci\256cation)X 1 f 11 s 961 2729 MXY 892 Dc 1317 2279 MXY 179 Dc 1764 2729 MXY 179 Dc 1325 3176 MXY 172 Dc 864 2733 MXY 187 Dc 1638 2412 MXY 172 Dc 1634 3043 MXY 172 Dc 1008 MX 172 Dc 1008 2412 MXY 172 Dc 9 s 756 3426(CREATE)N 1054({circle})X 1302(radius)X 1496(:=)X 1575(10;)X 756 3519(REPLICATE)N 1162(crc[])X 1316(:=)X 1395({circle})X 1643(IN)X 1737({circle})X 1985(0)X 2039(TO)X 2153(7;)X 3 f 893 3612(Figure)N 1115(9:)X 1193(Graphical)X 1523(Speci\256cation)X 2 f 756 3726(update)N 1 f 9 f 970 MX (->)174 987 oc 1 f 1059(COLOR)X 1321(crc[)X 2 f 1433(update)X 1 f 1629(.pe])X 2 f 1757(update)X 1 f 1953(.state;)X 2 f 756 3819(send)N 1 f 9 f 924 MX (->)174 987 oc 1 f 1013(ln[)X 2 f (send)S 1 f 1225(.src][)X 2 f 1375(send)X 1 f 1507(.dst])X 1651(:=)X 1730(CREATE)X 2028({line})X 900 3891(crc[)N 2 f 1012(send)X 1 f 1144(.src])X 1288(TO)X 1402(crc[)X 2 f 1514(send)X 1 f 1646(.dst])X 900 3963(ARROW)N 1186(end;)X 2 f 756 4056(receive)N 1 f 9 f 982 MX (->)174 987 oc 1 f 1071(DESTROY)X 1421(ln[)X 2 f (receive)S 1 f 1709(.src][)X 2 f 1859(receive)X 1 f 2067(.dst];)X 3 f 1001 4149(Figure)N 1223(10:)X 1337(Mapping)X 1635(Rules)X 1 f 468 4242(state)N 620(that)X 748(an)X 2 f 837(update)X 1 f 1054(event)X 1231(causes)X 1440(a)X 1493(re-coloring)X 1834(of)X 1915(the)X 2024(originating)X 468 4314(pe's)N 626(circle.)X 860(A)X 2 f 950(send)X 1 f 1120(event)X 1314(creates)X 1552(an)X 1657(arrowed)X 1930(line)X 2075(from)X 2252(the)X 468 4386(source)N 676(to)X 752(the)X 860(destination)X 1196(pe)X 1284(circle,)X 1482(saving)X 1691(a)X 1744(pointer)X 1969(to)X 2046(the)X 2155(line)X 2284(in)X 468 4458("ln".)N 652(Note)X 824(that)X 964(the)X 1084(line)X 1224(pointer)X 1460(is)X 1539(created)X 1778(with)X 1937(implicit)X 2192(array)X 468 4530(dimensions,)N 838(as)X 922(supported)X 1230(by)X 1327(the)X 1440(behavior)X 1717(variable)X 1974(declarations,)X 468 4602(to)N 547(avoid)X 730(allocation)X 1037(of)X 1120(the)X 1231(large)X 3 f 1398(n)X 6 s 1438 4574(2)N 1 f 9 s 1491 4602(full)N 1614(array.)X 1820(The)X 2 f 1954(receive)X 1 f 2184(event)X 468 4674(destroys)N 726(the)X 832(corresponding)X 1262(arrowed)X 1516(line)X 1642(created)X 1868(by)X 1958(the)X 2064(send.)X 3 f 468 4767(5.)N 540(Conclusion)X 1 f 612 4839(The)N 759(meta-tool)X 1070(design)X 1294(methodology)X 1710(presents)X 1982(an)X 2086(ef\256cient,)X 468 4911(\257exible,)N 734(and)X 870(powerful)X 1162(framework)X 1510(for)X 1626(constructing)X 2013(visual)X 2216(ana-)X 468 4983(lyses)N 638(for)X 748(parallel)X 990(software)X 1264(development.)X 1698(The)X 1837(circulation)X 2172(archi-)X 468 5055(tecture)N 692(separates)X 984(the)X 1100(concerns)X 1384(of)X 1472(the)X 1588(analysis)X 1848(into)X 1988(independent)X 468 5127(modules)N 745(and)X 882(provides)X 1163(a)X 1228(\257exible)X 1477(scheme)X 1726(of)X 1820(information)X 2194(\257ow.)X 468 5199(The)N 607(relationship)X 974(mapping)X 1253(language)X 1540(represents)X 1858(the)X 1972(relationships)X 468 5271(among)N 702(the)X 828(modules)X 1110(ef\256ciently)X 1440(and)X 1582(naturally.)X 1913(The)X 2064(prototype)X 468 5343(implementation,)N 969(IMPROV,)X 1298(is)X 1377(feasible)X 1632(and)X 1767(can)X 1898(mimic)X 2112(existing)X 468 5415(visualization)N 854(views,)X 1058(as)X 1137(well)X 1280(as)X 1359(supercede)X 1666(the)X 1773(existing)X 2020(technology)X 468 5487(by)N 558(providing)X 856(a)X 906(customizable)X 1304(paradigm.)X 3 f 3288 684(References)N 1 f 2520 784([BaW83])N 2844(P.)X 2929(C.)X 3022(Bates,)X 3227(J.)X 3300(C.)X 3393(Wileden,)X 3682("High-Level)X 4072(Debugging)X 2844 856(of)N 2929(Distributed)X 3278(Systems:)X 3580(The)X 3716(Behavioral)X 4056(Abstraction)X 2844 928(Approach,")N 3211(The)X 3358(Journal)X 3605(of)X 3700(Systems)X 3975(and)X 4114(Software,)X 2844 1000(Volume)N 3094(3,)X 3166(1983,)X 3346(pp.)X 3454(255-264.)X 2520 1121([Bat88])N 2844(P.)X 2956(C.)X 3076(Bates,)X 3308("Distributed)X 3716(Debugging)X 4090(Tools)X 4308(for)X 2844 1193(Heterogeneous)N 3298(Distributed)X 3644(Systems,")X 2 f 3954(Proceedings)X 4336(of)X 2844 1265(the)N 2963(Eighth)X 3186(International)X 3597(Conference)X 3960(on)X 4064(Distributed)X 2844 1337(Computing)N 3182(Systems)X 1 f 3428(June)X 3578(1988,)X 3758(pp.)X 3866(308-315.)X 2520 1458([CaK92])N 2844(T.)X 2930(L.)X 3017(Casavant,)X 3324(J.)X 3395(A.)X 3490(Kohl,)X 3677(Y.)X 3772(E.)X 3859(Papelis,)X 4110("Practical)X 2844 1530(Use)N 2989(of)X 3082(Visualization)X 3499(for)X 3616(Parallel)X 3868(Systems,")X 4188(Invited)X 2844 1602(Keynote)N 3110(Address)X 3368(Text)X 3522(for)X 3628(1992)X 3794(European)X 4092(Workshop)X 2844 1674(on)N 2941(Parallel)X 3186(Computers,)X 3544(Barcelona,)X 3878(Spain,)X 4084(March)X 4296(23-)X 2844 1746(24,)N 2952(1992.)X 2520 1867([CoK90])N 2844(A.)X 2942(L.)X 3033(Couch,)X 3268(D.)X 3367(W.)X 3482(Krumme,)X 3785("Monitoring)X 4172(Parallel)X 2844 1939(Executions)N 3189(in)X 3270(Real)X 3427(Time,")X 2 f 3652(Proceedings)X 4036(Fifth)X 4200(Distri-)X 2844 2011(buted)N 3036(Memory)X 3308(Computing)X 3660(Conference,)X 4043(IEEE)X 4232(Com-)X 2844 2083(puter)N 3014(Society)X 3240(Press,)X 3436(1990.)X 1 f 2520 2204([HeE91])N 2844(M.)X 2944(T.)X 3024(Heath,)X 3232(J.)X 3296(A.)X 3384(Etheridge,)X 3700("Visualizing)X 4081(the)X 4188(Perfor-)X 2844 2276(mance)N 3097(of)X 3222(Parallel)X 3506(Programs,")X 3894(IEEE)X 4114(Software,)X 2844 2348(Volume)N 3094(8,)X 3166(Number)X 3420(5,)X 3492(September)X 3818(1991,)X 3998(pp.)X 4106(29-40.)X 2520 2469([KoC91a])N 2844(J.)X 2916(A.)X 3012(Kohl,)X 3200(T.)X 3288(L.)X 3376(Casavant,)X 3685("Use)X 3854(of)X 3941(PARADISE:)X 4340(A)X 2844 2541(Meta-Tool)N 3231(for)X 3394(Visualizing)X 3805(Parallel)X 4104(Systems,")X 2844 2613(Proceedings)N 3228(of)X 3320(the)X 3441(Fifth)X 3614(International)X 4015(Parallel)X 4268(Pro-)X 2844 2685(cessing)N 3119(Symposium,)X 3544(Anaheim,)X 3888(California,)X 4260(May)X 2844 2757(1991,)N 3024(pp.)X 3132(561-567.)X 2520 2878([KoC91b])N 2844(J.)X 2908(A.)X 2996(Kohl,)X 3176(T.)X 3256(L.)X 3336(Casavant,)X 3636("Methodologies)X 4117(for)X 4220(Rapid)X 2844 2950(Prototyping)N 3203(of)X 3282(Tools)X 3465(for)X 3568(Visualizing)X 3918(the)X 4024(Performance)X 2844 3022(of)N 2937(Parallel)X 3190(Systems,")X 3511(Presentation)X 3900(at)X 3986(Workshop)X 4320(on)X 2844 3094(Parallel)N 3100(Computer)X 3424(Systems:)X 3720(Software)X 4015(Tools,)X 4232(Santa)X 2844 3166(Fe,)N 2952(New)X 3106(Mexico,)X 3362(October)X 3612(1991.)X 2520 3287([KoC92])N 2844(J.)X 2909(A.)X 2998(Kohl,)X 3179(T.)X 3260(L.)X 3341(Casavant,)X 3642("A)X 3743(Software)X 4022(Engineering,)X 2844 3359(Visualization)N 3268(Methodology)X 3696(for)X 3820(Parallel)X 4080(Processing)X 2844 3431(Systems,")N 3151(Proceedings)X 3522(of)X 3601(the)X 3708(Sixteenth)X 4000(Annual)X 4232(Inter-)X 2844 3503(national)N 3100(Computer)X 3412(Software)X 3696(&)X 3776(Applications)X 4168(Confer-)X 2844 3575(ence)N 3030(\(COMPSAC\),)X 3494(Chicago,)X 3807(Illinois,)X 4084(September)X 2844 3647(1992,)N 3024(pp.)X 3132(51-56.)X 2520 3768([Koh92])N 2844(J.)X 2909(A.)X 2998(Kohl,)X 3179("The)X 3340(Construction)X 3731(of)X 3810(Meta-Tools)X 4165(for)X 4268(Pro-)X 2844 3840(gram)N 3021(Visualization)X 3434(of)X 3523(Parallel)X 3772(Software,")X 4108(Technical)X 2844 3912(Report)N 3091(Number)X 3378(TR-ECE-920204,)X 3940(Department)X 4332(of)X 2844 3984(ECE,)N 3040(University)X 3386(of)X 3488(Iowa,)X 3691(Iowa)X 3876(City,)X 4059(IA,)X 4194(52242,)X 2844 4056(February)N 3122(1992.)X 2520 4177([Mye88])N 2844(B.)X 2941(A.)X 3042(Myers,)X 3275("The)X 3448(State)X 3623(of)X 3714(the)X 3833(Art)X 3960(in)X 4048(Visual)X 4268(Pro-)X 2844 4249(gramming)N 3208(and)X 3380(Program)X 3696(Visualization,")X 4196(Report)X 2844 4321(Number)N 3172(CMU-CS-88-114,)X 3787(Computer)X 4168(Science)X 2844 4393(Department,)N 3220(Carnegie)X 3498(Mellon,)X 3742(1988.)X 2520 4514([Nic90])N 2844(K.)X 2932(M.)X 3032(Nichols,)X 3292("Performance)X 3708(Tools,")X 3939(IEEE)X 4114(Software,)X 2844 4586(May)N 2994(1990,)X 3174(pp.)X 3282(21-30.)X 2520 4707([ReO91])N 2844(D.)X 2934(Reed,)X 3120(R.)X 3206(Olson,)X 3416(R.)X 3502(Aydt,)X 3684(T.)X 3766(Madhyastha,)X 4157(T.)X 4240(Birk-)X 2844 4779(ett,)N 2957(D.)X 3050(Jensen,)X 3283(B.)X 3372(Nazief,)X 3605(B.)X 3694(Totty,)X 3891("Scalable)X 4188(Perfor-)X 2844 4851(mance)N 3052(Environments)X 3476(for)X 3580(Parallel)X 3820(Systems,")X 2 f 4128(Proceed-)X 2844 4923(ings)N 3006(of)X 3104(the)X 3234(Sixth)X 3420(Distributed)X 3790(Memory)X 4072(Computing)X 2844 4995(Conference)N 1 f 3176(,)X 3237(IEEE)X 3436(Computer)X 3767(Society)X 4026(Press,)X 4240(April)X 2844 5067(1991.)N 2520 5188([Sta90])N 2844(J.)X 2916(T.)X 3004(Stasko,)X 3240("Tango:)X 3500(A)X 3579(Framework)X 3938(and)X 4069(System)X 4308(for)X 2844 5260(Algorithm)N 3166(Animation,")X 3544(IEEE)X 3722(Computer,)X 4049(Volume)X 4302(23,)X 2844 5332(Number)N 3098(9,)X 3170(September)X 3496(1990,)X 3676(pp.)X 3784(27-39.)X 6 p %%Trailer xt xs .