1: %!PS-Adobe-3.0
2: %%BoundingBox: (atend)
3: %%Pages: (atend)
4: %%PageOrder: (atend)
5: %%DocumentFonts: (atend)
6: %%Creator: Frame 5.1
7: %%DocumentData: Clean7Bit
8: %%EndComments
9: %%BeginProlog
10: %-
11: %- Frame ps_prolog 5.0, for use with Frame 5.0 products
12: %- This ps_prolog file is Copyright (c) 1986-1996 Adobe Systems, Incoporated.
13: %- All rights reserved. This ps_prolog file may be freely copied and
14: %- distributed in conjunction with documents created using FrameMaker,
15: %- FrameMaker/SGML FrameReader and FrameViewer as long as this
16: %- copyright notice is preserved.
17: %-
18: %- FrameMaker users specify the proper paper size for each print job in the
19: %- "Print" dialog's "Printer Paper Size" "Width" and "Height~ fields. If the
20: %- printer that the PS file is sent to does not support the requested paper
21: %- size, or if there is no paper tray of the proper size currently installed,
22: %- then the job will not be printed. The following flag, if set to true, will
23: %- cause the job to print on the default paper in such cases.
24: /FMAllowPaperSizeMismatch false def
25: %-
26: %- Frame products normally print colors as their true color on a color printer
27: %- or as shades of gray, based on luminance, on a black-and white printer. The
28: %- following flag, if set to true, forces all non-white colors to print as pure
29: %- black. This has no effect on bitmap images.
30: /FMPrintAllColorsAsBlack false def
31: %-
32: %- Frame products can either set their own line screens or use a printer's
33: %- default settings. Three flags below control this separately for no
34: %- separations, spot separations and process separations. If a flag
35: %- is true, then the default printer settings will not be changed. If it is
36: %- false, Frame products will use their own settings from a table based on
37: %- the printer's resolution.
38: /FMUseDefaultNoSeparationScreen true def
39: /FMUseDefaultSpotSeparationScreen true def
40: /FMUseDefaultProcessSeparationScreen false def
41: %-
42: %- For any given PostScript printer resolution, Frame products have two sets of
43: %- screen angles and frequencies for printing process separations, which are
44: %- recomended by Adobe. The following variable chooses the higher frequencies
45: %- when set to true or the lower frequencies when set to false. This is only
46: %- effective if the appropriate FMUseDefault...SeparationScreen flag is false.
47: /FMUseHighFrequencyScreens true def
48: %-
49: %- The following is a set of predefined optimal frequencies and angles for various
50: %- common dpi settings. This is taken from "Advances in Color Separation Using
51: %- PostScript Software Technology," from Adobe Systems (3/13/89 P.N. LPS 0043)
52: %- and corrolated with information which is in various PPD (4.0) files.
53: %-
54: %- The "dpiranges" figure is the minimum dots per inch device resolution which
55: %- can support this setting. The "low" and "high" values are controlled by the
56: %- setting of the FMUseHighFrequencyScreens flag above. The "TDot" flags control
57: %- the use of the "Yellow Triple Dot" feature whereby the frequency id divided by
58: %- three, but the dot function is "trippled" giving a block of 3x3 dots per cell.
59: %-
60: %- PatFreq is a compromise pattern frequency for ps Level 2 printers which is close
61: %- to the ideal WYSIWYG pattern frequency of 9 repetitions/inch but does not beat
62: %- (too badly) against the screen frequencies of any separations for that DPI.
63: % This is computed by taking dpi/9 as the ideal pixels per repetition, and then
64: % computing a tiling size in printer pixels for each of the four separations as
65: % (dpi/screenFreq)*(cos(screenAngle)+sin(screenAngle)) Actually, this is the same
66: % for Cyan and Magenta). Then, we take a "nice" LCM of the tile sizes close to
67: % the desired pattern tile where the beat factor is not more than 2 or 3.
68: %
69: /dpiranges [ 2540 2400 1693 1270 1200 635 600 0 ] def
70: /CMLowFreqs [ 100.402 94.8683 89.2289 100.402 94.8683 66.9349 63.2456 47.4342 ] def
71: /YLowFreqs [ 95.25 90.0 84.65 95.25 90.0 70.5556 66.6667 50.0 ] def
72: /KLowFreqs [ 89.8026 84.8528 79.8088 89.8026 84.8528 74.8355 70.7107 53.033 ] def
73: /CLowAngles [ 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 ] def
74: /MLowAngles [ 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 ] def
75: /YLowTDot [ true true false true true false false false ] def
76:
77: /CMHighFreqs [ 133.87 126.491 133.843 108.503 102.523 100.402 94.8683 63.2456 ] def
78: /YHighFreqs [ 127.0 120.0 126.975 115.455 109.091 95.25 90.0 60.0 ] def
79: /KHighFreqs [ 119.737 113.137 119.713 128.289 121.218 89.8026 84.8528 63.6395 ] def
80: /CHighAngles [ 71.5651 71.5651 71.5651 70.0169 70.0169 71.5651 71.5651 71.5651 ] def
81: /MHighAngles [ 18.4349 18.4349 18.4349 19.9831 19.9831 18.4349 18.4349 18.4349 ] def
82: /YHighTDot [ false false true false false true true false ] def
83:
84: /PatFreq [ 10.5833 10.0 9.4055 10.5833 10.0 10.5833 10.0 9.375 ] def
85: %-
86: %- PostScript Level 2 printers contain an "Accurate Screens" feature which can
87: %- improve process separation rendering at the expense of compute time. This
88: %- flag is ignored by PostScript Level 1 printers.
89: /FMUseAcccurateScreens true def
90: %-
91: %- The following PostScript procedure defines the spot function that Frame
92: %- products will use for process separations. You may un-comment-out one of
93: %- the alternative functions below, or use your own.
94: %-
95: %- Dot function
96: /FMSpotFunction {abs exch abs 2 copy add 1 gt
97: {1 sub dup mul exch 1 sub dup mul add 1 sub }
98: {dup mul exch dup mul add 1 exch sub }ifelse } def
99: %-
100: %- Line function
101: %- /FMSpotFunction { pop } def
102: %-
103: %- Elipse function
104: %- /FMSpotFunction { dup 5 mul 8 div mul exch dup mul exch add
105: %- sqrt 1 exch sub } def
106: %-
107: %-
108:
109: /FMversion (5.0) def % matches PS_VERSION in fmprintdriver
110:
111: % PostScript Level 1 = true, 2 = false
112: /fMLevel1 /languagelevel where {pop languagelevel} {1} ifelse 2 lt def
113:
114: % Set up Color vs. Black-and-White
115: /FMPColor
116: fMLevel1 {
117: false
118: /colorimage where {pop pop true} if
119: } {
120: % statusdict /processcolors known {
121: % statusdict /processcolors get exec
122: % } {1} ifelse
123: % 1 gt
124: true
125: } ifelse
126: def
127:
128: /FrameDict 400 dict def % should check this value each time changes made
129:
130: %
131: % For NeWS we add a fake errordict, so we can psh files
132: %
133: systemdict /errordict known not {/errordict 10 dict def
134: errordict /rangecheck {stop} put} if
135:
136: %- The readline in PS 23.0 doesn't recognize cr's as nl's on AppleTalk
137: FrameDict /tmprangecheck errordict /rangecheck get put % save old rangecheck
138: errordict /rangecheck {FrameDict /bug true put} put % will flag bug found
139: FrameDict /bug false put % flag bug not found
140: mark % since we're not sure what will happen next
141: %- Some PS machines read past the CR, so keep the following 3 lines together!
142: currentfile 5 string readline
143: 00
144: 0000000000
145: cleartomark % junk from readline and rangecheck
146: errordict /rangecheck FrameDict /tmprangecheck get put % restore rangecheck
147: FrameDict /bug get { % redefine readline if last one got a rangecheck
148: /readline {
149: /gstring exch def
150: /gfile exch def
151: /gindex 0 def
152: {
153: gfile read pop % get a char
154: dup 10 eq {exit} if % exit if LF
155: dup 13 eq {exit} if % exit if CR
156: gstring exch gindex exch put % store it away
157: /gindex gindex 1 add def % bump index
158: } loop
159: pop % eol character
160: gstring 0 gindex getinterval true % simulate real readline
161: } bind def
162: } if
163:
164: % outer-world defs
165:
166: /FMshowpage /showpage load def
167: /FMquit /quit load def
168:
169: /FMFAILURE { % enter with two error strings on the stack
170: dup = flush % send a copy of the message to the console
171: FMshowpage % msg on a page by itself, so it can't be, say, black on black
172: /Helvetica findfont 12 scalefont setfont
173: 72 200 moveto show
174: 72 220 moveto show
175: FMshowpage % we might be in the middle of some EPS, where "showpage"
176: FMquit % and "quit" are redefined
177: } def % only used once at most, so no bind
178:
179: /FMVERSION {
180: FMversion ne {
181: (Adobe Frame product version does not match ps_prolog! Check installation;)
182: (also check ~/fminit and ./fminit for old versions) FMFAILURE
183: } if
184: } def % only used at startup, so no bind
185:
186: /FMBADEPSF { % Call with bad operator name on stack (as a string)
187: (Adobe's PostScript Language Reference Manual, 2nd Edition, section H.2.4)
188: (says your EPS file is not valid, as it calls X )
189: dup dup (X) search pop exch pop exch pop length % parmstr errstr errstr indx
190: 5 -1 roll % errstr errstr index parmstr
191: putinterval % errstr
192: FMFAILURE
193: } def
194:
195: % standard concatprocs routine
196: /fmConcatProcs
197: {
198: /proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def
199: newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx
200: }def
201:
202: % Put all local variables here in alphabetical order.
203: FrameDict begin [
204: /ALDsave
205: /FMdicttop
206: /FMoptop
207: /FMpointsize
208: /FMsaveobject
209: /b
210: /bitmapsave
211: /blut
212: /bpside
213: /bs
214: /bstring
215: /bwidth
216: /c
217: /cf
218: /cs
219: /cynu
220: /depth
221: /edown
222: /fh
223: /fillvals
224: /fw
225: /fx
226: /fy
227: /g
228: /gfile
229: /gindex
230: /grnt
231: /gryt
232: /gstring
233: /height
234: /hh
235: /i
236: /im
237: /indx
238: /is
239: /k
240: /kk
241: /landscape
242: /lb
243: /len
244: /llx
245: /lly
246: /m
247: /magu
248: /manualfeed
249: /n
250: /offbits
251: /onbits
252: /organgle
253: /orgbangle
254: /orgbfreq
255: /orgbproc
256: /orgbxfer
257: /orgfreq
258: /orggangle
259: /orggfreq
260: /orggproc
261: /orggxfer
262: /orgmatrix
263: /orgproc
264: /orgrangle
265: /orgrfreq
266: /orgrproc
267: /orgrxfer
268: /orgxfer
269: /pagesave
270: /paperheight
271: /papersizedict
272: /paperwidth
273: /pos
274: /pwid
275: /r
276: /rad
277: /redt
278: /sl
279: /str
280: /tran
281: /u
282: /urx
283: /ury
284: /val
285: /width
286: /width
287: /ws
288: /ww
289: /x
290: /x1
291: /x2
292: /xindex
293: /xpoint
294: /xscale
295: /xx
296: /y
297: /y1
298: /y2
299: /yelu
300: /yindex
301: /ypoint
302: /yscale
303: /yy
304: ] { 0 def } forall
305:
306: % Start of PDF/Acrobat support
307:
308: % Bind def
309: /FmBD {bind def} bind def
310:
311: systemdict /pdfmark known {
312: /fMAcrobat true def
313:
314: % FmPD is a conditional PDFMark
315: /FmPD /pdfmark load def
316:
317: % FmPT is a show text operator which only show up when distiller is active
318: /FmPT /show load def
319:
320: % FmPD2 and FmPA are Acrobat 2.0-specific
321: currentdistillerparams /CoreDistVersion get 2000 ge {
322:
323: % FmPD2 is like FmPD but for Acrobat 2.0-specific PDF
324: /FmPD2 /pdfmark load def
325:
326: % x y/name FmPA
327: % is equivalent to
328: % [/Dest/name/View[/FitH x y FmDC exch pop]/DEST FmPD
329: % It is a shortcut for pagragraph Uinique ID designators whic occurr commonly.
330: /FmPA { mark exch /Dest exch 5 3 roll
331: /View [ /XYZ null 6 -2 roll FmDC exch pop null] /DEST FmPD
332: }FmBD
333: } {
334: % These are No-Ops for Distiller 1.0
335: /FmPD2 /cleartomark load def
336: /FmPA {pop pop pop}FmBD
337: } ifelse
338: } {
339: % these are the No-Ops for regular PostScript
340: /fMAcrobat false def
341: /FmPD /cleartomark load def
342: /FmPD2 /cleartomark load def
343: /FmPT /pop load def
344: /FmPA {pop pop pop}FmBD
345: } ifelse
346:
347: % This convert a set of X Y coordinates from the current user space to the default
348: % PostScript coordinates needed by some pdfmark variants. We also convert to
349: % integer because the distiller doesn't always like floats!
350: /FmDC {
351: transform fMDefaultMatrix itransform cvi exch cvi exch
352: }FmBD
353:
354: % This converts four numbers into a bounding box making sure the first two are maller than the last two
355: /FmBx {
356: dup 3 index lt {3 1 roll exch} if
357: 1 index 4 index lt {4 -1 roll 3 1 roll exch 4 1 roll} if
358: }FmBD
359:
360: % End of PDF/Acrobat support
361:
362: %
363: % Color separation code
364: %
365:
366: % Constants.
367:
368: /FMnone 0 def
369: /FMcyan 1 def
370: /FMmagenta 2 def
371: /FMyellow 3 def
372: /FMblack 4 def
373: /FMcustom 5 def
374:
375: /fMNegative false def % we are inverting the page
376:
377: % Variables.
378:
379: /FrameSepIs FMnone def % separation we are printing
380: % If FrameSepIs is FMcustom, this is the custom color
381: /FrameSepBlack 0 def
382: /FrameSepYellow 0 def
383: /FrameSepMagenta 0 def
384: /FrameSepCyan 0 def
385: /FrameSepRed 1 def
386: /FrameSepGreen 1 def
387: /FrameSepBlue 1 def
388: /FrameCurGray 1 def
389: /FrameCurPat null def
390:
391: /FrameCurColors [ 0 0 0 1 0 0 0 ] def % c m y k r g b
392:
393: % Utility routines
394:
395: /FrameColorEpsilon .001 def % epsilon by which values can differ and sill be equal
396: /eqepsilon { % v1 v2 eqeps bool
397: sub dup 0 lt {neg} if
398: FrameColorEpsilon le
399: } bind def
400:
401: % are the cmyk and cmykrgb arrays on the stack the same color?
402: /FrameCmpColorsCMYK { % [ c1 m1 y1 k1 ] [ c2 m2 y2 k2 r2 g2 b2] -> bool
403: 2 copy 0 get exch 0 get eqepsilon {
404: 2 copy 1 get exch 1 get eqepsilon {
405: 2 copy 2 get exch 2 get eqepsilon {
406: 3 get exch 3 get eqepsilon
407: } {pop pop false} ifelse
408: }{pop pop false} ifelse
409: } {pop pop false} ifelse
410: } bind def
411: % are the rgb and cmykrgb arrays on the stack the same color?
412: /FrameCmpColorsRGB { % [ r1 g1 b1 ] [ c2 m2 y2 k2 r2 g2 b2] -> bool
413: 2 copy 4 get exch 0 get eqepsilon {
414: 2 copy 5 get exch 1 get eqepsilon {
415: 6 get exch 2 get eqepsilon
416: }{pop pop false} ifelse
417: } {pop pop false} ifelse
418: } bind def
419:
420: % convert r g b to c m y k
421: /RGBtoCMYK { % r g b
422: 1 exch sub % r g y
423: 3 1 roll % y r g
424: 1 exch sub % y r m
425: 3 1 roll % m y r
426: 1 exch sub % m y c
427: 3 1 roll % c m y
428: 3 copy % c m y c m y
429: 2 copy % c m y c m y m y
430: le { pop } { exch pop } ifelse % c m y c min(m,y)
431: 2 copy % c m y c min(m,y) c min(m,y)
432: le { pop } { exch pop } ifelse % c m y min(c, min(m,y))
433: dup dup dup % c m y k k k k
434: 6 1 roll % c k m y k k k
435: 4 1 roll % c k m k y k k
436: 7 1 roll % k c k m k y k
437: sub % k c k m k y
438: 6 1 roll % y k c k m k
439: sub % y k c k m
440: 5 1 roll % m y k c k
441: sub % m y k c
442: 4 1 roll % c m y k
443: } bind def
444: /CMYKtoRGB { % c m y k CMYKtoRGB r g b
445: dup dup 4 -1 roll add % c m k k y+k
446: 5 1 roll 3 -1 roll add % y+k c k m+k
447: 4 1 roll add % m+k y+k c+k
448: 1 exch sub dup 0 lt {pop 0} if 3 1 roll % r m+k y+k
449: 1 exch sub dup 0 lt {pop 0} if exch % r b m+k
450: 1 exch sub dup 0 lt {pop 0} if exch % r g b
451: } bind def
452:
453: % Public routines
454:
455:
456: % Happens at the top of each page that is a separation
457: /FrameSepInit {
458: 1.0 RealSetgray
459: } bind def
460: % Tell the separation code that this separation is for a custom color
461: /FrameSetSepColor { % c m y k r g b
462: /FrameSepBlue exch def
463: /FrameSepGreen exch def
464: /FrameSepRed exch def
465: /FrameSepBlack exch def
466: /FrameSepYellow exch def
467: /FrameSepMagenta exch def
468: /FrameSepCyan exch def
469: /FrameSepIs FMcustom def
470: setCurrentScreen
471: } bind def
472: % Tell the separation code that this separation is Cyan
473: /FrameSetCyan {
474: /FrameSepBlue 1.0 def
475: /FrameSepGreen 1.0 def
476: /FrameSepRed 0.0 def
477: /FrameSepBlack 0.0 def
478: /FrameSepYellow 0.0 def
479: /FrameSepMagenta 0.0 def
480: /FrameSepCyan 1.0 def
481: /FrameSepIs FMcyan def
482: setCurrentScreen
483: } bind def
484:
485: % Tell the separation code that this separation is Magenta
486: /FrameSetMagenta {
487: /FrameSepBlue 1.0 def
488: /FrameSepGreen 0.0 def
489: /FrameSepRed 1.0 def
490: /FrameSepBlack 0.0 def
491: /FrameSepYellow 0.0 def
492: /FrameSepMagenta 1.0 def
493: /FrameSepCyan 0.0 def
494: /FrameSepIs FMmagenta def
495: setCurrentScreen
496: } bind def
497:
498: % Tell the separation code that this separation is Yellow
499: /FrameSetYellow {
500: /FrameSepBlue 0.0 def
501: /FrameSepGreen 1.0 def
502: /FrameSepRed 1.0 def
503: /FrameSepBlack 0.0 def
504: /FrameSepYellow 1.0 def
505: /FrameSepMagenta 0.0 def
506: /FrameSepCyan 0.0 def
507: /FrameSepIs FMyellow def
508: setCurrentScreen
509: } bind def
510:
511: % Tell the separation code that this separation is Black
512: /FrameSetBlack {
513: /FrameSepBlue 0.0 def
514: /FrameSepGreen 0.0 def
515: /FrameSepRed 0.0 def
516: /FrameSepBlack 1.0 def
517: /FrameSepYellow 0.0 def
518: /FrameSepMagenta 0.0 def
519: /FrameSepCyan 0.0 def
520: /FrameSepIs FMblack def
521: setCurrentScreen
522: } bind def
523:
524: % Tell the separation code we are not doing a separation
525: /FrameNoSep { %
526: /FrameSepIs FMnone def
527: setCurrentScreen
528: } bind def
529:
530: % Initialize the separation code with all the custom colors we are
531: % separating (not process colors)
532: /FrameSetSepColors { % list of arrays of [c m y k r g b] count
533: FrameDict begin
534: [ exch 1 add 1 roll ]
535: /FrameSepColors % array of arrays of colors we are separating
536: exch def end
537: } bind def
538:
539: % is this color array in the array of custom color separations?
540: /FrameColorInSepListCMYK { % [ c m y k ] -> bool
541: FrameSepColors { % color elem-of-array
542: exch dup 3 -1 roll % color color elem
543: FrameCmpColorsCMYK % color bool
544: { pop true exit } if
545: } forall % exits with either [color] or true
546: dup true ne {pop false} if
547: } bind def
548: /FrameColorInSepListRGB { % [ r g b ] -> bool
549: FrameSepColors { % color elem-of-array
550: exch dup 3 -1 roll % color color elem
551: FrameCmpColorsRGB % color bool
552: { pop true exit } if
553: } forall % exits with either [color] or true
554: dup true ne {pop false} if
555: } bind def
556:
557: % Level 1 color operators saved and redefined
558: /RealSetgray /setgray load def
559: /RealSetrgbcolor /setrgbcolor load def
560: /RealSethsbcolor /sethsbcolor load def
561: end
562:
563: % Setgray patch
564: /setgray { % num
565: FrameDict begin
566: FrameSepIs FMnone eq
567: { RealSetgray }
568: { % go to white unless the current sep color is black
569: FrameSepIs FMblack eq
570: { RealSetgray }
571: { FrameSepIs FMcustom eq
572: FrameSepRed 0 eq and
573: FrameSepGreen 0 eq and
574: FrameSepBlue 0 eq and {
575: RealSetgray
576: } {
577: 1 RealSetgray pop
578: } ifelse
579: } ifelse
580: } ifelse
581: end
582: } bind def
583: /setrgbcolor { % r g b
584: FrameDict begin
585: FrameSepIs FMnone eq
586: { RealSetrgbcolor }
587: {
588: 3 copy [ 4 1 roll ] % r g b [ r g b ]
589: FrameColorInSepListRGB
590: {
591: FrameSepBlue eq exch
592: FrameSepGreen eq and exch
593: FrameSepRed eq and
594: { 0 } { 1 } ifelse
595: }
596: {
597: FMPColor {
598: RealSetrgbcolor
599: currentcmykcolor
600: } {
601: RGBtoCMYK
602: } ifelse
603: FrameSepIs FMblack eq
604: {1.0 exch sub 4 1 roll pop pop pop} {
605: FrameSepIs FMyellow eq
606: {pop 1.0 exch sub 3 1 roll pop pop} {
607: FrameSepIs FMmagenta eq
608: {pop pop 1.0 exch sub exch pop } {
609: FrameSepIs FMcyan eq
610: {pop pop pop 1.0 exch sub }
611: {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse
612: } ifelse
613: RealSetgray
614: }
615: ifelse
616: end
617: } bind def
618: /sethsbcolor {
619: FrameDict begin
620: FrameSepIs FMnone eq
621: { RealSethsbcolor }
622: {
623: RealSethsbcolor % safe since we will overwrite the color state
624: currentrgbcolor % r g b - Let PostsCript to the conversion.
625: setrgbcolor % call our version
626: }
627: ifelse
628: end
629: } bind def
630: FrameDict begin
631:
632: /setcmykcolor where {
633: pop /RealSetcmykcolor /setcmykcolor load def
634: } {
635: /RealSetcmykcolor {
636: 4 1 roll
637: 3 { 3 index add 0 max 1 min 1 exch sub 3 1 roll} repeat
638: RealSetrgbcolor pop
639: } bind def
640: } ifelse
641: userdict /setcmykcolor { % c m y k
642: FrameDict begin
643: FrameSepIs FMnone eq
644: { RealSetcmykcolor }
645: {
646: 4 copy [ 5 1 roll ]
647: FrameColorInSepListCMYK
648: {
649: FrameSepBlack eq exch
650: FrameSepYellow eq and exch
651: FrameSepMagenta eq and exch
652: FrameSepCyan eq and
653: { 0 } { 1 } ifelse
654: }
655: {
656: FrameSepIs FMblack eq
657: {1.0 exch sub 4 1 roll pop pop pop} {
658: FrameSepIs FMyellow eq
659: {pop 1.0 exch sub 3 1 roll pop pop} {
660: FrameSepIs FMmagenta eq
661: {pop pop 1.0 exch sub exch pop } {
662: FrameSepIs FMcyan eq
663: {pop pop pop 1.0 exch sub }
664: {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse
665: } ifelse
666: RealSetgray
667: }
668: ifelse
669: end
670: } bind put
671:
672: % Set up a prototype pattern for PostScript Level 2
673: fMLevel1 {
674: % set up screen functions for the patterns in PS level 1
675: % each entry contains an angle, spot function, flipped spot function,
676: % gray level and frequency multiplier.
677: /patScreenDict 7 dict dup begin
678: <0f1e3c78f0e1c387> [ 45 { pop } {exch pop} .5 2 sqrt] FmBD
679: <0f87c3e1f0783c1e> [ 135 { pop } {exch pop} .5 2 sqrt] FmBD
680: <cccccccccccccccc> [ 0 { pop } dup .5 2 ] FmBD
681: <ffff0000ffff0000> [ 90 { pop } dup .5 2 ] FmBD
682: <8142241818244281> [ 45 { 2 copy lt {exch} if pop} dup .75 2 sqrt] FmBD
683: <03060c183060c081> [ 45 { pop } {exch pop} .875 2 sqrt] FmBD
684: <8040201008040201> [ 135 { pop } {exch pop} .875 2 sqrt] FmBD
685: end def
686: } { % prototype level 2 pattern dictionary
687: % define some PostScript procedures for known jaggy patterns.
688: /patProcDict 5 dict dup begin
689: <0f1e3c78f0e1c387> { 3 setlinewidth -1 -1 moveto 9 9 lineto stroke
690: 4 -4 moveto 12 4 lineto stroke
691: -4 4 moveto 4 12 lineto stroke} bind def
692: <0f87c3e1f0783c1e> { 3 setlinewidth -1 9 moveto 9 -1 lineto stroke
693: -4 4 moveto 4 -4 lineto stroke
694: 4 12 moveto 12 4 lineto stroke} bind def
695: <8142241818244281> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke
696: -1 -1 moveto 9 9 lineto stroke } bind def
697: <03060c183060c081> { 1 setlinewidth -1 -1 moveto 9 9 lineto stroke
698: 4 -4 moveto 12 4 lineto stroke
699: -4 4 moveto 4 12 lineto stroke} bind def
700: <8040201008040201> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke
701: -4 4 moveto 4 -4 lineto stroke
702: 4 12 moveto 12 4 lineto stroke} bind def
703: end def
704: /patDict 15 dict dup begin
705: /PatternType 1 def % Always 1 for PS Level 2
706: /PaintType 2 def % Uncolored pattern
707: /TilingType 3 def % constant spacing and faster tiling
708: /BBox [ 0 0 8 8 ] def % bounding box
709: /XStep 8 def % X offset
710: /YStep 8 def % Y offset
711: /PaintProc {
712: begin
713: patProcDict bstring known {
714: patProcDict bstring get exec
715: } {
716: 8 8 true [1 0 0 -1 0 8] bstring imagemask
717: } ifelse
718: end
719: } bind def
720: end def
721: } ifelse
722:
723: %combineColor puts together the current gray value (which could also be
724: %a fraction of on bits for a fill pattern and the current color and calls
725: %the appropriate function
726: %
727: /combineColor {
728: FrameSepIs FMnone eq
729: {
730: graymode fMLevel1 or not {
731: % Level 2 pattern
732: [/Pattern [/DeviceCMYK]] setcolorspace
733: FrameCurColors 0 4 getinterval aload pop FrameCurPat setcolor
734: } {
735: FrameCurColors 3 get 1.0 ge {
736: FrameCurGray RealSetgray
737: } {
738: fMAcrobat not FMPColor graymode and and {
739: 0 1 3 {
740: FrameCurColors exch get
741: 1 FrameCurGray sub mul
742: } for
743: RealSetcmykcolor
744: } {
745: 4 1 6 {
746: FrameCurColors exch get
747: graymode {
748: 1 exch sub 1 FrameCurGray sub mul 1 exch sub
749: } {
750: 1.0 lt {FrameCurGray} {1} ifelse
751: } ifelse
752: } for
753: RealSetrgbcolor
754: } ifelse
755: } ifelse
756: } ifelse
757: } { % separation case
758: FrameCurColors 0 4 getinterval aload
759: FrameColorInSepListCMYK {
760: FrameSepBlack eq exch
761: FrameSepYellow eq and exch
762: FrameSepMagenta eq and exch
763: FrameSepCyan eq and
764: FrameSepIs FMcustom eq and
765: { FrameCurGray } { 1 } ifelse
766: } {
767: FrameSepIs FMblack eq
768: {FrameCurGray 1.0 exch sub mul 1.0 exch sub 4 1 roll pop pop pop} {
769: FrameSepIs FMyellow eq
770: {pop FrameCurGray 1.0 exch sub mul 1.0 exch sub 3 1 roll pop pop} {
771: FrameSepIs FMmagenta eq
772: {pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub exch pop } {
773: FrameSepIs FMcyan eq
774: {pop pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub }
775: {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse
776: } ifelse
777: graymode fMLevel1 or not {
778: % Level 2 pattern
779: [/Pattern [/DeviceGray]] setcolorspace
780: FrameCurPat setcolor
781: } {
782: graymode not fMLevel1 and {
783: % Level 1 patterns are either all there or not there at all
784: dup 1 lt {pop FrameCurGray} if
785: } if
786: RealSetgray
787: } ifelse
788: } ifelse
789: } bind def
790:
791: /savematrix {
792: orgmatrix currentmatrix pop
793: } bind def
794: /restorematrix {
795: orgmatrix setmatrix
796: } bind def
797: /fMDefaultMatrix matrix defaultmatrix def
798: /fMatrix2 matrix def
799: /dpi 72 0 fMDefaultMatrix dtransform
800: dup mul exch dup mul add sqrt def
801:
802: % freq and sangle are used for ps Level 1 pattern building.
803: /freq dpi dup 72 div round dup 0 eq {pop 1} if 8 mul div def
804: /sangle 1 0 fMDefaultMatrix dtransform exch atan def
805: sangle fMatrix2 rotate
806: fMDefaultMatrix fMatrix2 concatmatrix
807: dup 0 get /sflipx exch def
808: 3 get /sflipy exch def
809:
810: %
811: % screen index depending on dpi
812: % - screenIndex smallint
813: /screenIndex {
814: 0 1 dpiranges length 1 sub { dup dpiranges exch get 1 sub dpi le {exit} {pop} ifelse } for
815: } bind def
816:
817: %
818: % These routines get the standard Adobe frequencies, angles, and spot functions
819: % depending on the DPI
820: %
821: % - getCyanScreen freq angle spotfunction
822: /getCyanScreen {
823: FMUseHighFrequencyScreens { CHighAngles CMHighFreqs} {CLowAngles CMLowFreqs} ifelse
824: screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load
825: } bind def
826:
827: %
828: % - getMagentaScreen freq angle spotFunction
829: /getMagentaScreen {
830: FMUseHighFrequencyScreens { MHighAngles CMHighFreqs } {MLowAngles CMLowFreqs} ifelse
831: screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load
832: } bind def
833:
834: %
835: % - getYellowScreen freq angle spotFunction
836: % note that some of these use a "tripple dot" function at 1/3 the frequency
837: /getYellowScreen {
838: FMUseHighFrequencyScreens { YHighTDot YHighFreqs} { YLowTDot YLowFreqs } ifelse
839: screenIndex dup 3 1 roll get 3 1 roll get { 3 div
840: {2 { 1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch} repeat
841: FMSpotFunction } } {/FMSpotFunction load } ifelse
842: 0.0 exch
843: } bind def
844:
845: %
846: % - getBlackScreen freq angle spotFunction
847: /getBlackScreen {
848: FMUseHighFrequencyScreens { KHighFreqs } { KLowFreqs } ifelse
849: screenIndex get 45.0 /FMSpotFunction load
850: } bind def
851:
852: %
853: % - getSpotScreen freq angle spotFunction
854: /getSpotScreen {
855: getBlackScreen
856: } bind def
857:
858: %
859: % - getCompositeScreen freq angle spotFunction
860: /getCompositeScreen {
861: getBlackScreen
862: } bind def
863:
864: % FmSetScreen sets the screen for either PostScript Level 1 or Level 2 and optionally
865: % sets the accuratescreens flag in the latter case
866: % freq angle spotfunction FMSetScreen -
867: /FMSetScreen
868: fMLevel1 { /setscreen load
869: }{ {
870: 8 dict begin
871: /HalftoneType 1 def
872: /SpotFunction exch def
873: /Angle exch def
874: /Frequency exch def
875: /AccurateScreens FMUseAcccurateScreens def
876: currentdict end sethalftone
877: } bind } ifelse
878: def
879:
880: % This sets the default screen as was set at the beginning of the job
881: % - setDefaultScreen -
882: /setDefaultScreen {
883: FMPColor {
884: orgrxfer cvx orggxfer cvx orgbxfer cvx orgxfer cvx setcolortransfer
885: }
886: {
887: orgxfer cvx settransfer
888: } ifelse
889: orgfreq organgle orgproc cvx setscreen
890: } bind def
891:
892: % This sets the current screen depending on FrameSepIs
893: % - setCurrentScreen -
894: /setCurrentScreen {
895: FrameSepIs FMnone eq {
896: FMUseDefaultNoSeparationScreen {
897: setDefaultScreen
898: } {
899: getCompositeScreen FMSetScreen
900: } ifelse
901: } {
902: FrameSepIs FMcustom eq {
903: FMUseDefaultSpotSeparationScreen {
904: setDefaultScreen
905: } {
906: getSpotScreen FMSetScreen
907: } ifelse
908: } {
909: FMUseDefaultProcessSeparationScreen {
910: setDefaultScreen
911: } {
912: FrameSepIs FMcyan eq {
913: getCyanScreen FMSetScreen
914: } {
915: FrameSepIs FMmagenta eq {
916: getMagentaScreen FMSetScreen
917: } {
918: FrameSepIs FMyellow eq {
919: getYellowScreen FMSetScreen
920: } {
921: getBlackScreen FMSetScreen
922: } ifelse
923: } ifelse
924: } ifelse
925: } ifelse
926: } ifelse
927: } ifelse
928: } bind def
929:
930:
931: end
932:
933: % End of Color separation code
934: %
935:
936: /FMDOCUMENT { % xscale yscale edown negative paperwidth paperheight manfeed numcopies numfonts
937: array /FMfonts exch def % Why isn't this in FrameDict???
938: /#copies exch def
939: FrameDict begin
940: 0 ne /manualfeed exch def
941: /paperheight exch def
942: /paperwidth exch def
943: 0 ne /fMNegative exch def % invert page
944: 0 ne /edown exch def % flip page along y axis
945: /yscale exch def
946: /xscale exch def
947:
948: fMLevel1 {
949: manualfeed {setmanualfeed} if
950: /FMdicttop countdictstack 1 add def % some PS's leave junk on dict ...
951: /FMoptop count def % ...or on operand stack...
952: setpapername % This stuff may alter the transfer/screen/angle
953: manualfeed {true} {papersize} ifelse % true->more work to do
954: {manualpapersize} {false} ifelse % true->more work to do
955: {desperatepapersize} {false} ifelse % true->failed completely
956: {papersizefailure} if
957: count -1 FMoptop {pop pop} for
958: countdictstack -1 FMdicttop {pop end} for %...if tray not installed
959: }
960: {2 dict
961: dup /PageSize [paperwidth paperheight] put
962: manualfeed {dup /ManualFeed manualfeed put} if
963: {setpagedevice} stopped {papersizefailure} if
964: }
965: ifelse % fMLevel1
966:
967: FMPColor {
968: currentcolorscreen
969: cvlit /orgproc exch def
970: /organgle exch def
971: /orgfreq exch def
972: cvlit /orgbproc exch def
973: /orgbangle exch def
974: /orgbfreq exch def
975: cvlit /orggproc exch def
976: /orggangle exch def
977: /orggfreq exch def
978: cvlit /orgrproc exch def
979: /orgrangle exch def
980: /orgrfreq exch def
981:
982: currentcolortransfer
983: fMNegative {
984: 1 1 4 {
985: pop { 1 exch sub } fmConcatProcs 4 1 roll
986: } for
987: 4 copy
988: setcolortransfer
989: } if
990: cvlit /orgxfer exch def
991: cvlit /orgbxfer exch def
992: cvlit /orggxfer exch def
993: cvlit /orgrxfer exch def
994: } {
995: currentscreen
996: cvlit /orgproc exch def
997: /organgle exch def
998: /orgfreq exch def
999:
1000: currenttransfer
1001: fMNegative {
1002: { 1 exch sub } fmConcatProcs
1003: dup settransfer
1004: } if
1005: cvlit /orgxfer exch def
1006: } ifelse
1007:
1008: end % FrameDict
1009: } def % only used at startup, so no bind
1010:
1011: /FMBEGINPAGE { % pagewidth pageheight landscape color-arrays count
1012: FrameDict begin % for the whole page...
1013: /pagesave save def
1014: 3.86 setmiterlimit
1015: /landscape exch 0 ne def
1016: landscape { % check for landscape
1017: 90 rotate 0 exch dup /pwid exch def neg translate pop
1018: }{
1019: pop /pwid exch def
1020: } ifelse
1021: edown { [-1 0 0 1 pwid 0] concat } if
1022: % paint the whole page in "white". If the page is inverted, then
1023: % this will actually paint our black background
1024: 0 0 moveto paperwidth 0 lineto paperwidth paperheight lineto
1025: 0 paperheight lineto 0 0 lineto 1 setgray fill
1026: xscale yscale scale
1027: /orgmatrix matrix def
1028: gsave % for CLIP
1029: } def % only used infrequently, so no bind
1030:
1031: /FMENDPAGE {
1032: grestore % for CLIP
1033: pagesave restore
1034: end % FrameDict
1035: showpage
1036: } def % only used infrequently, so no bind
1037:
1038: /FMFONTDEFINE { % fontindex nonstd_encoding fontname --
1039: FrameDict begin
1040: findfont % fontindex nonstd_encoding font
1041: ReEncode % fontindex font'
1042: 1 index exch % fontindex fontindex font'
1043: definefont % fontindex font"
1044: FMfonts 3 1 roll % FMfonts fontindex font"
1045: put
1046: end % FrameDict
1047: } def % only used infrequently, so no bind
1048:
1049: /FMFILLS {
1050: FrameDict begin dup
1051: array /fillvals exch def
1052: dict /patCache exch def
1053: end % framedict
1054: } def % Only called once, so no bind
1055:
1056: /FMFILL {
1057: FrameDict begin
1058: fillvals 3 1 roll put
1059: end % FrameDict
1060: } def % only used infrequently, so no bind
1061:
1062: % Set things to a known, quiescent state, for when we switch to another writer
1063: /FMNORMALIZEGRAPHICS {
1064: newpath
1065: 1 setlinewidth
1066: 0 setlinecap
1067: 0 0 0 sethsbcolor
1068: 0 setgray % Not FMsetgray; only called outside of our environment!
1069: } bind def
1070:
1071: /FMBEGINEPSF { % <theta> llx lly urx ury fw fh fx fy
1072: end % FrameDict
1073: /FMEPSF save def % in userdict
1074: /showpage {} def % this def is in userdict
1075: %- See Adobe's "PostScript Language Reference Manual, 2nd Edition", page 714.
1076: %- "...the following operators MUST NOT be used in an EPS file:" (emphasis ours)
1077: /banddevice {(banddevice) FMBADEPSF} def
1078: /clear {(clear) FMBADEPSF} def
1079: /cleardictstack {(cleardictstack) FMBADEPSF} def % FMBADEPSF knows this is the longest!
1080: /copypage {(copypage) FMBADEPSF} def
1081: /erasepage {(erasepage) FMBADEPSF} def
1082: /exitserver {(exitserver) FMBADEPSF} def
1083: /framedevice {(framedevice) FMBADEPSF} def
1084: /grestoreall {(grestoreall) FMBADEPSF} def
1085: /initclip {(initclip) FMBADEPSF} def
1086: /initgraphics {(initgraphics) FMBADEPSF} def
1087: % /initmatrix {(initmatrix) FMBADEPSF} def % Aldus Freehand 4.0 epsf uses this harmlessly <Gus 4/26/95>
1088: /quit {(quit) FMBADEPSF} def
1089: /renderbands {(renderbands) FMBADEPSF} def
1090: /setglobal {(setglobal) FMBADEPSF} def
1091: /setpagedevice {(setpagedevice) FMBADEPSF} def
1092: /setshared {(setshared) FMBADEPSF} def
1093: /startjob {(startjob) FMBADEPSF} def
1094: /lettertray {(lettertray) FMBADEPSF} def
1095: /letter {(letter) FMBADEPSF} def
1096: /lettersmall {(lettersmall) FMBADEPSF} def
1097: /11x17tray {(11x17tray) FMBADEPSF} def
1098: /11x17 {(11x17) FMBADEPSF} def
1099: /ledgertray {(ledgertray) FMBADEPSF} def
1100: /ledger {(ledger) FMBADEPSF} def
1101: /legaltray {(legaltray) FMBADEPSF} def
1102: /legal {(legal) FMBADEPSF} def
1103: /statementtray {(statementtray) FMBADEPSF} def
1104: /statement {(statement) FMBADEPSF} def
1105: /executivetray {(executivetray) FMBADEPSF} def
1106: /executive {(executive) FMBADEPSF} def
1107: /a3tray {(a3tray) FMBADEPSF} def
1108: /a3 {(a3) FMBADEPSF} def
1109: /a4tray {(a4tray) FMBADEPSF} def
1110: /a4 {(a4) FMBADEPSF} def
1111: /a4small {(a4small) FMBADEPSF} def
1112: /b4tray {(b4tray) FMBADEPSF} def
1113: /b4 {(b4) FMBADEPSF} def
1114: /b5tray {(b5tray) FMBADEPSF} def
1115: /b5 {(b5) FMBADEPSF} def
1116: FMNORMALIZEGRAPHICS % in case we're in a strange state
1117: [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall % neat trick
1118: fx fw 2 div add fy fh 2 div add translate
1119: rotate
1120: fw 2 div neg fh 2 div neg translate
1121: fw urx llx sub div fh ury lly sub div scale % then scale
1122: llx neg lly neg translate % then compensate for LL offset
1123: /FMdicttop countdictstack 1 add def % high-water mark of dict stack
1124: /FMoptop count def % tricky! "/FMoptop" on stack
1125: } bind def
1126:
1127: /FMENDEPSF {
1128: count -1 FMoptop {pop pop} for % clear EPS junk from operand stack
1129: countdictstack -1 FMdicttop {pop end} for % ditto for dict stack
1130: FMEPSF restore
1131: FrameDict begin % for the whole page...
1132: } bind def
1133:
1134: FrameDict begin % put most defs here
1135:
1136: /setmanualfeed {
1137: %%BeginFeature *ManualFeed True
1138: statusdict /manualfeed true put
1139: %%EndFeature
1140: } bind def
1141:
1142: /max {2 copy lt {exch} if pop} bind def
1143: /min {2 copy gt {exch} if pop} bind def
1144: /inch {72 mul} def
1145:
1146: /pagedimen { % name width height
1147: paperheight sub abs 16 lt exch % 16pt is an arbitrary slop amount
1148: paperwidth sub abs 16 lt and
1149: {/papername exch def} {pop} ifelse
1150: } bind def
1151:
1152: /setpapername { % Already set up: paperwidth paperheight and manualfeed
1153: /papersizedict 14 dict def % one for /papername, one for /unknown
1154: papersizedict begin
1155: /papername /unknown def % in case no match
1156: /Letter 8.5 inch 11.0 inch pagedimen
1157: /LetterSmall 7.68 inch 10.16 inch pagedimen
1158: /Tabloid 11.0 inch 17.0 inch pagedimen
1159: /Ledger 17.0 inch 11.0 inch pagedimen
1160: /Legal 8.5 inch 14.0 inch pagedimen
1161: /Statement 5.5 inch 8.5 inch pagedimen
1162: /Executive 7.5 inch 10.0 inch pagedimen
1163: /A3 11.69 inch 16.5 inch pagedimen
1164: /A4 8.26 inch 11.69 inch pagedimen
1165: /A4Small 7.47 inch 10.85 inch pagedimen
1166: /B4 10.125 inch 14.33 inch pagedimen
1167: /B5 7.16 inch 10.125 inch pagedimen
1168: end
1169: } bind def
1170:
1171: /papersize {
1172: papersizedict begin
1173: /Letter {lettertray letter} def
1174: /LetterSmall {lettertray lettersmall} def
1175: /Tabloid {11x17tray 11x17} def
1176: /Ledger {ledgertray ledger} def
1177: /Legal {legaltray legal} def
1178: /Statement {statementtray statement} def
1179: /Executive {executivetray executive} def
1180: /A3 {a3tray a3} def
1181: /A4 {a4tray a4} def
1182: /A4Small {a4tray a4small} def
1183: /B4 {b4tray b4} def
1184: /B5 {b5tray b5} def
1185: /unknown {unknown} def
1186: papersizedict dup papername known {papername} {/unknown} ifelse get
1187: end
1188: statusdict begin stopped end % return true if more work to do
1189: } bind def
1190:
1191: /manualpapersize {
1192: papersizedict begin
1193: /Letter {letter} def
1194: /LetterSmall {lettersmall} def
1195: /Tabloid {11x17} def
1196: /Ledger {ledger} def
1197: /Legal {legal} def
1198: /Statement {statement} def
1199: /Executive {executive} def
1200: /A3 {a3} def
1201: /A4 {a4} def
1202: /A4Small {a4small} def
1203: /B4 {b4} def
1204: /B5 {b5} def
1205: /unknown {unknown} def
1206: papersizedict dup papername known {papername} {/unknown} ifelse get
1207: end
1208: stopped % return true if more work to do
1209: } bind def
1210:
1211: /desperatepapersize {
1212: statusdict /setpageparams known
1213: {
1214: paperwidth paperheight 0 1
1215: statusdict begin
1216: {setpageparams} stopped % return true iff failed
1217: end
1218: } {true} ifelse % return true iff failed
1219: } bind def
1220:
1221: /papersizefailure {
1222: FMAllowPaperSizeMismatch not
1223: {
1224: (The requested paper size is not available in any currently-installed tray)
1225: (Edit the PS file to "FMAllowPaperSizeMismatch true" to use default tray)
1226: FMFAILURE } if
1227: } def
1228:
1229: %
1230: % Font re-encoding to include diacritics
1231: %
1232: /DiacriticEncoding [
1233:
1234: /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1235: /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1236: /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1237: /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1238: /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl
1239: /numbersign /dollar /percent /ampersand /quotesingle /parenleft
1240: /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
1241: /two /three /four /five /six /seven /eight /nine /colon /semicolon
1242: /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K
1243: /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash
1244: /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h
1245: /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar
1246: /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute
1247: /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis
1248: /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis
1249: /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve
1250: /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex
1251: /udieresis /dagger /.notdef /cent /sterling /section /bullet
1252: /paragraph /germandbls /registered /copyright /trademark /acute
1253: /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef
1254: /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1255: /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown
1256: /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef
1257: /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde
1258: /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright
1259: /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis
1260: /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl
1261: /periodcentered /quotesinglbase /quotedblbase /perthousand
1262: /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute
1263: /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve
1264: /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron
1265: /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron
1266:
1267: ] def
1268:
1269: /ReEncode { % nonstd_encoding font -- reencodedfont
1270: dup % nonstd_encoding font font
1271: length % nonstd_encoding font dictlength
1272: dict begin % nonstd_encoding font % currentdict = newdict
1273: {% forall % forall is over font to be copied
1274: 1 index /FID ne % skip FID
1275: {def} % defs go into newfontdict which is currentdict
1276: {pop pop} ifelse % copy all keys including /Encoding
1277: } forall % nonstd_encoding
1278: 0 eq {/Encoding DiacriticEncoding def} if % --
1279: currentdict % push a copy of the copied font dict onto operand stack
1280: end % font' % before popping it off dictionary stack
1281: } bind def
1282:
1283: FMPColor
1284: % setup procs for color printing
1285: {
1286:
1287: /BEGINBITMAPCOLOR { % iw, ih, width, height, theta, x y
1288: BITMAPCOLOR} def
1289: /BEGINBITMAPCOLORc { % iw, ih, width, height, theta, x y
1290: BITMAPCOLORc} def
1291: /BEGINBITMAPTRUECOLOR {
1292: BITMAPTRUECOLOR } def
1293: /BEGINBITMAPTRUECOLORc {
1294: BITMAPTRUECOLORc } def
1295: /BEGINBITMAPCMYK {
1296: BITMAPCMYK } def
1297: /BEGINBITMAPCMYKc {
1298: BITMAPCMYKc } def
1299: }
1300: % setup procs for B&W printing
1301: {
1302: /BEGINBITMAPCOLOR { % iw, ih, width, height, theta, x y
1303: BITMAPGRAY} def
1304: /BEGINBITMAPCOLORc { % iw, ih, width, height, theta, x y
1305: BITMAPGRAYc} def
1306: /BEGINBITMAPTRUECOLOR {
1307: BITMAPTRUEGRAY } def
1308: /BEGINBITMAPTRUECOLORc {
1309: BITMAPTRUEGRAYc } def
1310: /BEGINBITMAPCMYK {
1311: BITMAPCMYKGRAY } def
1312: /BEGINBITMAPCMYKc {
1313: BITMAPCMYKGRAYc } def
1314: }
1315: ifelse
1316:
1317: /K { % c m y k r g b SEPARATION
1318: FMPrintAllColorsAsBlack {
1319: dup 1 eq 2 index 1 eq and 3 index 1 eq and not
1320: {7 {pop} repeat 0 0 0 1 0 0 0} if
1321: } if
1322: FrameCurColors astore
1323: pop combineColor
1324: } bind def
1325: %
1326: % graymode is true if we are just doing gray fills, this way do not keep calling
1327: % setscreen. I don't know what the cost is on calling setscreen with defaults, but
1328: % this is easy to keep track of, and we know for sure we aren't wasting cycles.
1329: % if graymode is false and fMLevel1 is false, then we are using Level 2 patterns.
1330: %
1331: /graymode true def
1332:
1333: % used by level 1 patterns
1334: % defaultflip matrixentry fmGetFlit -> eith -1 or 1
1335: fMLevel1 {
1336: /fmGetFlip {
1337: fMatrix2 exch get mul 0 lt { -1 } { 1 } ifelse
1338: } FmBD
1339: } if
1340:
1341: /setPatternMode {
1342: fMLevel1 {
1343: 2 index patScreenDict exch known {
1344: pop pop
1345: patScreenDict exch get aload pop % angle spot fspot gray mult
1346: freq % freq
1347: mul % times multiplier
1348: 5 2 roll % angle spot fspot gray mult freq -> gray freq angle spot fspot
1349: fMatrix2 currentmatrix 1 get 0 ne {
1350: 3 -1 roll 90 add 3 1 roll % landscape
1351: sflipx 1 fmGetFlip sflipy 2 fmGetFlip neg mul
1352: } { % portrait
1353: sflipx 0 fmGetFlip sflipy 3 fmGetFlip mul
1354: } ifelse
1355: 0 lt {exch pop} {pop} ifelse % take regular or flipped spot function
1356: fMNegative {
1357: {neg} fmConcatProcs % invert spot function
1358: } if
1359: bind
1360: % we need to bypass any screen filter and go directly to systemdict
1361: % to avoid problems with Kodak Precision calibration software
1362: % <Gus 9/13/93>
1363: systemdict /setscreen get exec % leave graylevel on stack
1364: /FrameCurGray exch def
1365: } {
1366: /bwidth exch def
1367: /bpside exch def
1368: /bstring exch def
1369: /onbits 0 def /offbits 0 def
1370: freq sangle landscape {90 add} if
1371: {/ypoint exch def
1372: /xpoint exch def
1373: /xindex xpoint 1 add 2 div bpside mul cvi def
1374: /yindex ypoint 1 add 2 div bpside mul cvi def
1375: bstring yindex bwidth mul xindex 8 idiv add get
1376: 1 7 xindex 8 mod sub bitshift and 0 ne fMNegative {not} if
1377: {/onbits onbits 1 add def 1}
1378: {/offbits offbits 1 add def 0}
1379: ifelse
1380: }
1381: setscreen
1382: offbits offbits onbits add div fMNegative {1.0 exch sub} if
1383: /FrameCurGray exch def
1384: } ifelse
1385: } { % Level 2 version
1386: pop pop
1387: dup patCache exch known {
1388: patCache exch get
1389: } { % not in cache
1390: dup
1391: patDict /bstring 3 -1 roll put
1392: patDict
1393: 9 PatFreq screenIndex get div dup matrix scale
1394: % 9 orgfreq
1395: % organgle sin abs organgle cos abs add div
1396: % dup 16 div round dup 0 le {pop 1} if % Unix pattern size
1397: % dup 9 div round dup 0 le {pop 1} if % Mac larger (WYSIWYG) size
1398: % div div dup matrix scale % This gives Unix pattern size.
1399: makepattern
1400: dup
1401: patCache 4 -1 roll 3 -1 roll put
1402: } ifelse
1403: /FrameCurGray 0 def
1404: /FrameCurPat exch def
1405: } ifelse
1406: /graymode false def
1407: combineColor
1408: } bind def
1409:
1410: /setGrayScaleMode {
1411: graymode not {
1412: /graymode true def
1413: fMLevel1 {
1414: setCurrentScreen
1415: } if
1416: } if
1417: /FrameCurGray exch def
1418: combineColor
1419: } bind def
1420:
1421: /normalize {
1422: transform round exch round exch itransform
1423: } bind def
1424:
1425: /dnormalize {
1426: dtransform round exch round exch idtransform
1427: } bind def
1428:
1429: /lnormalize { % line widths are always odd so that arrow heads work
1430: 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop
1431: } bind def
1432:
1433: /H { % THICK
1434: lnormalize setlinewidth
1435: } bind def
1436:
1437: /Z {
1438: setlinecap
1439: } bind def
1440:
1441: % This is used to fill or stroke white behind a Level 2 pattern
1442: /PFill {
1443: graymode fMLevel1 or not {
1444: gsave 1 setgray eofill grestore
1445: } if
1446: } bind def
1447: /PStroke {
1448: graymode fMLevel1 or not {
1449: gsave 1 setgray stroke grestore
1450: } if
1451: stroke
1452: } bind def
1453:
1454: /X { % TEXTURE
1455: fillvals exch get
1456: dup type /stringtype eq
1457: {8 1 setPatternMode} % Silly to pass parameters here
1458: {setGrayScaleMode}
1459: ifelse
1460: } bind def
1461:
1462: /V { % FILL
1463: PFill gsave eofill grestore
1464: } bind def
1465:
1466: /Vclip {
1467: clip
1468: } bind def
1469:
1470: /Vstrk {
1471: currentlinewidth exch setlinewidth PStroke setlinewidth
1472: } bind def
1473:
1474: /N { % PEN
1475: PStroke
1476: } bind def
1477:
1478: /Nclip {
1479: strokepath clip newpath
1480: } bind def
1481:
1482: /Nstrk {
1483: currentlinewidth exch setlinewidth PStroke setlinewidth
1484: } bind def
1485:
1486: /M {newpath moveto} bind def
1487: /E {lineto} bind def
1488: /D {curveto} bind def
1489: /O {closepath} bind def
1490:
1491: /L { % POLYLINE
1492: /n exch def
1493: newpath
1494: normalize
1495: moveto
1496: 2 1 n {pop normalize lineto} for
1497: } bind def
1498:
1499: /Y { % POLYGON !!!
1500: L % POLYLINE
1501: closepath
1502: } bind def
1503:
1504: /R { % RECT x1 y1 x2 y2
1505: /y2 exch def
1506: /x2 exch def
1507: /y1 exch def
1508: /x1 exch def
1509: x1 y1
1510: x2 y1
1511: x2 y2
1512: x1 y2
1513: 4 Y % POLYGON
1514: } bind def
1515:
1516: /rarc % Leaves all sorts of junk on the operand stack for caller to clear off
1517: {rad % arcto might fail if we're scaled way down
1518: arcto
1519: } bind def
1520:
1521: /RR { % ROUNDRECT x1 y1 x2 y2 r
1522: /rad exch def
1523: normalize
1524: /y2 exch def
1525: /x2 exch def
1526: normalize
1527: /y1 exch def
1528: /x1 exch def
1529: mark
1530: newpath
1531: {
1532: x1 y1 rad add moveto
1533: x1 y2 x2 y2 rarc
1534: x2 y2 x2 y1 rarc
1535: x2 y1 x1 y1 rarc
1536: x1 y1 x1 y2 rarc
1537: closepath
1538: } stopped {x1 y1 x2 y2 R} if % in case rarc failed for degenerate arcs
1539: cleartomark
1540: } bind def
1541:
1542: /RRR { % ROUNDRECT ROTATED xs ys x1 y1 x2 y2 x3 y3 x4 y4 r
1543: /rad exch def
1544: normalize /y4 exch def /x4 exch def
1545: normalize /y3 exch def /x3 exch def
1546: normalize /y2 exch def /x2 exch def
1547: normalize /y1 exch def /x1 exch def
1548: newpath
1549: normalize moveto % eats xs ys
1550: mark
1551: {
1552: x2 y2 x3 y3 rarc
1553: x3 y3 x4 y4 rarc
1554: x4 y4 x1 y1 rarc
1555: x1 y1 x2 y2 rarc
1556: closepath
1557: } stopped
1558: {x1 y1 x2 y2 x3 y3 x4 y4 newpath moveto lineto lineto lineto closepath} if
1559: cleartomark
1560: } bind def
1561:
1562: /C { % CLIP
1563: grestore
1564: gsave
1565: R % RECT
1566: clip
1567: setCurrentScreen
1568: } bind def
1569:
1570: /CP { % CLIPPOLY p1x p1y p2x p2y ... n
1571: grestore
1572: gsave
1573: Y % POLYGON
1574: clip
1575: setCurrentScreen
1576: } bind def
1577:
1578: /F { % FONT
1579: FMfonts exch get
1580: FMpointsize scalefont
1581: setfont
1582: } bind def
1583:
1584: /Q { % POINTSIZE (& font)
1585: /FMpointsize exch def
1586: F % could be slightly optimized here
1587: } bind def
1588:
1589: /T { % TEXT <string> <x> <y>
1590: moveto show
1591: } bind def
1592:
1593: % Callers of RF (rotate/flip) must gsave (or save) first; (g)restore when done
1594: /RF { % <flip> <theta>
1595: rotate
1596: 0 ne {-1 1 scale} if
1597: } bind def
1598:
1599: /TF { % TEXTFLIPROTATE <string> <flip> <theta> <x> <y>
1600: gsave
1601: moveto
1602: RF
1603: show
1604: grestore
1605: } bind def
1606:
1607: /P { % PADTEXT <pad> <string> <x> <y>
1608: moveto
1609: 0 32 3 2 roll widthshow
1610: } bind def
1611:
1612: /PF { % PADTEXTFLIPROTATE <pad> <string> <flip> <theta> <x> <y>
1613: gsave
1614: moveto
1615: RF
1616: 0 32 3 2 roll widthshow
1617: grestore
1618: } bind def
1619:
1620: /S { % SPREADTEXT <spread> <string> <x> <y>
1621: moveto
1622: 0 exch ashow
1623: } bind def
1624:
1625: /SF { % SPREADTEXTFLIPROTATE <spread> <string> <flip> <theta> <x> <y>
1626: gsave
1627: moveto
1628: RF
1629: 0 exch ashow
1630: grestore
1631: } bind def
1632:
1633: /B { % PADSPREADTEXT <pad> <spread> <string> <x> <y>
1634: moveto
1635: 0 32 4 2 roll 0 exch awidthshow
1636: } bind def
1637:
1638: /BF { % PADSPREADTEXTFLIPROTATE <pad> <spread> <string> <flip> <theta> <x> <y>
1639: gsave
1640: moveto
1641: RF
1642: 0 32 4 2 roll 0 exch awidthshow
1643: grestore
1644: } bind def
1645:
1646: /G { % ARCFILL theta1 theta2 width height x y
1647: gsave
1648: newpath
1649: normalize translate 0.0 0.0 moveto % eats x y
1650: dnormalize scale % eats width height
1651: 0.0 0.0 1.0 5 3 roll arc % eats theta1 theta2
1652: closepath
1653: PFill fill
1654: grestore
1655: } bind def
1656:
1657: /Gstrk {
1658: savematrix
1659: newpath
1660: 2 index 2 div add exch 3 index 2 div sub exch % theta1 theta2 width height x y
1661: normalize 2 index 2 div sub exch 3 index 2 div add exch % theta1 theta2 width height x y
1662: translate
1663: scale % eats width height
1664: 0.0 0.0 1.0 5 3 roll arc % eats theta1 theta2
1665: restorematrix
1666: currentlinewidth exch setlinewidth PStroke setlinewidth
1667: } bind def
1668:
1669: /Gclip { % ARCFILL theta1 theta2 width height x y swid
1670: newpath
1671: savematrix
1672: normalize translate 0.0 0.0 moveto % eats x y
1673: dnormalize scale % eats width height
1674: 0.0 0.0 1.0 5 3 roll arc % eats theta1 theta2
1675: closepath
1676: clip newpath
1677: restorematrix
1678: } bind def
1679:
1680: /GG { % ARCFILL ROTATED theta1 theta2 width height angle x y
1681: gsave
1682: newpath
1683: normalize translate 0.0 0.0 moveto % eats x y
1684: rotate % eats angle
1685: dnormalize scale % eats width height
1686: 0.0 0.0 1.0 5 3 roll arc % eats theta1 theta2
1687: closepath
1688: PFill
1689: fill
1690: grestore
1691: } bind def
1692:
1693: /GGclip { % ARCFILL ROTATED theta1 theta2 width height angle x y
1694: savematrix
1695: newpath
1696: normalize translate 0.0 0.0 moveto % eats x y
1697: rotate % eats angle
1698: dnormalize scale % eats width height
1699: 0.0 0.0 1.0 5 3 roll arc % eats theta1 theta2
1700: closepath
1701: clip newpath
1702: restorematrix
1703: } bind def
1704:
1705: /GGstrk { % ARCFILL ROTATED swid theta1 theta2 width height angle x y
1706: savematrix
1707: newpath
1708: normalize translate 0.0 0.0 moveto % eats x y
1709: rotate % eats angle
1710: dnormalize scale % eats width height
1711: 0.0 0.0 1.0 5 3 roll arc % eats theta1 theta2
1712: closepath
1713: restorematrix
1714: currentlinewidth exch setlinewidth PStroke setlinewidth
1715: } bind def
1716:
1717: /A { % ARCPEN theta1 theta2 width height x y
1718: gsave
1719: savematrix
1720: newpath
1721: 2 index 2 div add exch 3 index 2 div sub exch % theta1 theta2 width height x y
1722: normalize 2 index 2 div sub exch 3 index 2 div add exch % theta1 theta2 width height x y
1723: translate
1724: scale % eats width height
1725: 0.0 0.0 1.0 5 3 roll arc % eats theta1 theta2
1726: restorematrix
1727: PStroke
1728: grestore
1729: } bind def
1730:
1731: /Aclip {
1732: newpath
1733: savematrix
1734: normalize translate 0.0 0.0 moveto % eats x y
1735: dnormalize scale % eats width height
1736: 0.0 0.0 1.0 5 3 roll arc % eats theta1 theta2
1737: closepath
1738: strokepath clip newpath
1739: restorematrix
1740: } bind def
1741:
1742: /Astrk {
1743: Gstrk
1744: } bind def
1745:
1746: /AA { % ARCPEN ROTATED theta1 theta2 width height angle x y
1747: gsave
1748: savematrix
1749: newpath
1750: % theta1 theta2 width height angle x y
1751: 3 index 2 div add exch 4 index 2 div sub exch
1752: % theta1 theta2 width height angle x y
1753: normalize 3 index 2 div sub exch 4 index 2 div add exch
1754: translate % eats x y
1755: rotate % eats angle
1756: scale % eats width height
1757: 0.0 0.0 1.0 5 3 roll arc % eats theta1 theta2
1758: restorematrix
1759: PStroke
1760: grestore
1761: } bind def
1762:
1763: /AAclip {
1764: savematrix
1765: newpath
1766: normalize translate 0.0 0.0 moveto % eats x y
1767: rotate % eats angle
1768: dnormalize scale % eats width height
1769: 0.0 0.0 1.0 5 3 roll arc % eats theta1 theta2
1770: closepath
1771: strokepath clip newpath
1772: restorematrix
1773: } bind def
1774:
1775: /AAstrk {
1776: GGstrk
1777: } bind def
1778:
1779: /BEGINPRINTCODE { % -x -y width height
1780: /FMdicttop countdictstack 1 add def % high-water mark of dict stack
1781: /FMoptop count 7 sub def % tricky! 7 params on stack, plus "/FMoptop"
1782: /FMsaveobject save def
1783: userdict begin % insulate user from FrameDict; not in /FMdicttop count
1784: /showpage {} def % this def is in userdict
1785: FMNORMALIZEGRAPHICS % in case we're in a strange state
1786: 3 index neg 3 index neg translate
1787: } bind def
1788:
1789: /ENDPRINTCODE {
1790: count -1 FMoptop {pop pop} for % clear user junk from operand stack
1791: countdictstack -1 FMdicttop {pop end} for % ditto for dict stack
1792: FMsaveobject restore % this is now safe, unless user very malicious
1793: } bind def
1794:
1795: /gn { % get a number in a funny encoding scheme
1796: 0 % result on stack
1797: { 46 mul % shift old digits
1798: cf read pop % get next character
1799: 32 sub % zero is the space character
1800: dup 46 lt {exit} if % quit if we're the last digit
1801: 46 sub add % add in this digit and loop around for next
1802: } loop
1803: add % result on stack
1804: } bind def
1805:
1806: /cfs { % create a string of length "sl" filled with "val"s
1807: /str sl string def % create string as "str"
1808: 0 1 sl 1 sub {str exch val put} for % fill array
1809: str def % define real array name, too; name is on stack from caller
1810: } bind def
1811:
1812: /ic [ % "case" stmt list of procedures that the image commands should call
1813: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
1814: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
1815: 0
1816: {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx}
1817: {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx}
1818: {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12}
1819: {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh}
1820: {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh}
1821: {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl}
1822: {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl}
1823: {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl}
1824: {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl}
1825: ] def
1826:
1827: /ms { % make all the strings
1828: /sl exch def % remember length of currently existing strings
1829: /val 255 def % that's white
1830: /ws cfs % make "ws" a string filled with white
1831: /im cfs % and "im" is a complete image scanline
1832: /val 0 def % that's black
1833: /bs cfs % make "bs" a string filled with black
1834: /cs cfs % here's where we'll put complete command lines
1835: } bind def
1836:
1837: 400 ms % make strings that will be plenty long for most applications
1838:
1839: /ip { % image procedure; reads and executes commands to make scanlines
1840: is % leave image string and...
1841: 0 % ...image position on stack all through this procedure
1842: cf cs readline pop % get a string of commands
1843: { ic exch get exec % execute next command
1844: add % all commands leave a length on the stack; update pos
1845: } forall % step through all commands
1846: pop % get rid of image position pointer
1847: % image string left on stack, so it's returned to image primitive
1848: } bind def
1849: /rip { % this is similar to ip above, except for 24 bit images
1850: % this takes an extra argument, the width of the image
1851: % do red
1852: bis ris copy pop % copy blue to red
1853: is
1854: 0
1855: cf cs readline pop
1856: { ic exch get exec
1857: add
1858: } forall
1859: pop pop % remove is and position from stack
1860: ris gis copy pop % copy red to green
1861: dup is exch % position of green is width bytes into is
1862: % do green
1863: cf cs readline pop
1864: { ic exch get exec
1865: add
1866: } forall
1867: pop pop
1868: gis bis copy pop % copy green to blue
1869: dup add is exch % position of blue is 2*width bytes into is
1870: % do blue
1871: cf cs readline pop
1872: { ic exch get exec
1873: add
1874: } forall
1875: pop
1876:
1877: } bind def
1878:
1879: /rip4 { % this is similar to ip above, except for 32 bit images
1880: % this takes an extra argument, the width of the image
1881: % do cyan
1882: kis cis copy pop % copy black to cyan
1883: is
1884: 0
1885: cf cs readline pop
1886: { ic exch get exec
1887: add
1888: } forall
1889: pop pop % remove is and position from stack
1890: cis mis copy pop % copy cyan to magenta
1891: dup is exch % position of magenta is width bytes into is
1892: % do magenta
1893: cf cs readline pop
1894: { ic exch get exec
1895: add
1896: } forall
1897: pop pop
1898: mis yis copy pop % copy magenta to yellow
1899: dup dup add is exch % position of yellow is 2*width bytes into is
1900: % do yellow
1901: cf cs readline pop
1902: { ic exch get exec
1903: add
1904: } forall
1905: pop pop
1906: yis kis copy pop % copy yellow to black
1907: 3 mul is exch % position of black is 3*width bytes into is
1908: % do black
1909: cf cs readline pop
1910: { ic exch get exec
1911: add
1912: } forall
1913: pop
1914:
1915: } bind def
1916:
1917:
1918: /wh { % fill a number of bytes with "white"
1919: /len exch def % number of bytes to fill
1920: /pos exch def % position to put them at
1921: ws 0 len getinterval im pos len getinterval copy pop
1922: pos len % remember where we got to
1923: } bind def
1924:
1925: /bl { % fill a number of bytes with "black"
1926: /len exch def % number of bytes to fill
1927: /pos exch def % position to put them at
1928: bs 0 len getinterval im pos len getinterval copy pop
1929: pos len % remember where we got to
1930: } bind def
1931:
1932: /s1 1 string def
1933:
1934: /fl { % fill a number of bytes with a specific hex value
1935: /len exch def % number of bytes to fill
1936: /pos exch def % position to put them at
1937: /val cf s1 readhexstring pop 0 get def
1938: pos 1 pos len add 1 sub {im exch val put} for
1939: pos len % remember where we got to
1940: } bind def
1941:
1942: /hx { % read hex bytes directly; on entry, stack has <str> <pos> <len>
1943: 3 copy getinterval % stack has <str> <pos> <len> <substr>
1944: cf exch readhexstring pop pop % stack back to <str> <pos> <len>
1945: } bind def
1946:
1947: /wbytes { % width depth -> wb find width in bytes given 1, 2, 8 or 24 or 32
1948: dup dup
1949: 8 gt { pop 8 idiv mul }
1950: { 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } ifelse
1951: } bind def
1952: /BEGINBITMAPBWc { % iw, ih, width, height, theta, x y
1953: 1 {} COMMONBITMAPc
1954: } bind def
1955: /BEGINBITMAPGRAYc { % iw, ih, width, height, theta, x y
1956: 8 {} COMMONBITMAPc
1957: } bind def
1958: /BEGINBITMAP2BITc { % iw, ih, width, height, theta, x y
1959: 2 {} COMMONBITMAPc
1960: } bind def
1961: %
1962: % Common routine for imaging compressed images
1963: %
1964: /COMMONBITMAPc { % iw, ih, width, height, theta, x y depth proc
1965: % (x,y) is the lower left corner of the image
1966: /cvtProc exch def
1967: /depth exch def
1968: gsave
1969: % rotate about center of image
1970: 3 index 2 div add exch % iw ih width height theta y+(height/2) x
1971: 4 index 2 div add exch % iw ih width height theta x+(width/2) y+(height/2)
1972: translate % iw ih width height theta
1973: rotate % iw ih width height
1974: 1 index 2 div neg % iw ih width height -(width/2)
1975: 1 index 2 div neg % iw ih width height -(width/2) -(height/2)
1976: translate % iw ih width height
1977: scale % iw ih
1978: /height exch def /width exch def
1979: /lb width depth wbytes def % so "lb" has width in bytes
1980: sl lb lt {lb ms} if % maybe make bigger strings
1981: /bitmapsave save def % LW+ has a buggy memory leak!
1982: cvtProc % run the desired proc after save has occurred
1983: /is im 0 lb getinterval def % image substring
1984: ws 0 lb getinterval is copy pop % whiten it
1985: /cf currentfile def % evaluate "currentfile" only once
1986: width height depth [width 0 0 height neg 0 height] % top to bottom
1987: {ip} image % zap!
1988: bitmapsave restore % avoid occasional disaster on the LW+
1989: grestore
1990: } bind def
1991: /BEGINBITMAPBW { % iw, ih, width, height, theta, x y
1992: 1 {} COMMONBITMAP
1993: } bind def
1994: /BEGINBITMAPGRAY { % iw, ih, width, height, theta, x y
1995: 8 {} COMMONBITMAP
1996: } bind def
1997: /BEGINBITMAP2BIT { % iw, ih, width, height, theta, x y
1998: 2 {} COMMONBITMAP
1999: } bind def
2000: %
2001: % Common routine for uncompressed images
2002: %
2003: /COMMONBITMAP { % iw, ih, width, height, theta, x y depth proc
2004: /cvtProc exch def
2005: /depth exch def
2006: gsave
2007: % rotate about center of image
2008: 3 index 2 div add exch % iw ih width height theta y+(height/2) x
2009: 4 index 2 div add exch % iw ih width height theta x+(width/2) y+(height/2)
2010: translate % iw ih width height theta
2011: rotate % iw ih width height
2012: 1 index 2 div neg % iw ih width height -(width/2)
2013: 1 index 2 div neg % iw ih width height -(width/2) -(height/2)
2014: translate % iw ih width height
2015: scale % iw ih
2016: /height exch def /width exch def
2017: /bitmapsave save def % LW+ has a buggy memory leak!
2018: cvtProc % run the desired proc after save has occurred
2019: /is width depth wbytes string def
2020: /cf currentfile def % evaluate "currentfile" only once
2021: width height depth [width 0 0 height neg 0 height] % top to bottom
2022: {cf is readhexstring pop} image
2023: bitmapsave restore % avoid occasional disaster on the LW+
2024: grestore
2025: } bind def
2026:
2027: %
2028: % All this hairy color setup stuff gus wrote on the mac, I just copied and
2029: % changed the variable names to be humanly readable.
2030:
2031: /ngrayt 256 array def
2032: /nredt 256 array def
2033: /nbluet 256 array def
2034: /ngreent 256 array def
2035:
2036: fMLevel1 {
2037: /colorsetup {
2038: currentcolortransfer
2039: /gryt exch def
2040: /blut exch def
2041: /grnt exch def
2042: /redt exch def
2043: 0 1 255 {
2044: /indx exch def
2045: /cynu 1 red indx get 255 div sub def
2046: /magu 1 green indx get 255 div sub def
2047: /yelu 1 blue indx get 255 div sub def
2048: /kk cynu magu min yelu min def
2049: % The HP PaintJet XL300 ignores the gray transfer curve but still sets its
2050: % default black generation and undercolor removal functions as if it is
2051: % used. This causes black colors not to work. Bug#56844 <Gus 2/22/93>
2052: % - We go back to the old (correct?) way of doing this since this code
2053: % is now bypassed for PS Level 2 printers in favor of colorSetup2 which
2054: % uses PS Level 2 indexed color, which is much cleaner. <Gus 3/3/93>
2055: /u kk currentundercolorremoval exec def
2056: %- /u 0 def
2057: nredt indx 1 0 cynu u sub max sub redt exec put
2058: ngreent indx 1 0 magu u sub max sub grnt exec put
2059: nbluet indx 1 0 yelu u sub max sub blut exec put
2060: ngrayt indx 1 kk currentblackgeneration exec sub gryt exec put
2061: } for
2062: {255 mul cvi nredt exch get}
2063: {255 mul cvi ngreent exch get}
2064: {255 mul cvi nbluet exch get}
2065: {255 mul cvi ngrayt exch get}
2066: setcolortransfer
2067: {pop 0} setundercolorremoval
2068: {} setblackgeneration
2069: } bind def
2070: }
2071: {
2072: % Here, we set up indexed color for imaging on PS Level 2 without mucking around
2073: % with the transfer functions.
2074:
2075: /colorSetup2 {
2076: [ /Indexed /DeviceRGB 255
2077: {dup red exch get 255 div
2078: exch dup green exch get 255 div
2079: exch blue exch get 255 div}
2080: ] setcolorspace
2081: } bind def
2082: } ifelse
2083:
2084: %
2085: % Setup a transfer function to convert psuedo color values into grayscale
2086: % values based on the color lookup tables.
2087: %
2088: /fakecolorsetup {
2089: /tran 256 string def
2090: 0 1 255 {/indx exch def
2091: tran indx
2092: red indx get 77 mul
2093: green indx get 151 mul
2094: blue indx get 28 mul
2095: add add 256 idiv put} for
2096: currenttransfer
2097: {255 mul cvi tran exch get 255.0 div}
2098: exch fmConcatProcs settransfer
2099: } bind def
2100: %
2101: % image a color image
2102: %
2103: /BITMAPCOLOR { % iw, ih, width, height, theta, x y
2104: /depth 8 def
2105: gsave
2106: % rotate about center of image
2107: 3 index 2 div add exch % iw ih width height theta y+(height/2) x
2108: 4 index 2 div add exch % iw ih width height theta x+(width/2) y+(height/2)
2109: translate % iw ih width height theta
2110: rotate % iw ih width height
2111: 1 index 2 div neg % iw ih width height -(width/2)
2112: 1 index 2 div neg % iw ih width height -(width/2) -(height/2)
2113: translate % iw ih width height
2114: scale % iw ih
2115: /height exch def /width exch def
2116: /bitmapsave save def
2117: fMLevel1 {
2118: colorsetup
2119: /is width depth wbytes string def
2120: /cf currentfile def % evaluate "currentfile" only once
2121: width height depth [width 0 0 height neg 0 height] % top to bottom
2122: {cf is readhexstring pop} {is} {is} true 3 colorimage
2123: } {
2124: colorSetup2
2125: /is width depth wbytes string def
2126: /cf currentfile def % evaluate "currentfile" only once
2127: 7 dict dup begin
2128: /ImageType 1 def
2129: /Width width def
2130: /Height height def
2131: /ImageMatrix [width 0 0 height neg 0 height] def
2132: /DataSource {cf is readhexstring pop} bind def
2133: /BitsPerComponent depth def
2134: /Decode [0 255] def
2135: end image
2136: } ifelse
2137: bitmapsave restore
2138: grestore
2139: } bind def
2140: %
2141: % Compressed color image rendering
2142: %
2143: /BITMAPCOLORc { % iw, ih, width, height, theta, x y
2144: /depth 8 def
2145: gsave
2146: % rotate about center of image
2147: 3 index 2 div add exch % iw ih width height theta y+(height/2) x
2148: 4 index 2 div add exch % iw ih width height theta x+(width/2) y+(height/2)
2149: translate % iw ih width height theta
2150: rotate % iw ih width height
2151: 1 index 2 div neg % iw ih width height -(width/2)
2152: 1 index 2 div neg % iw ih width height -(width/2) -(height/2)
2153: translate % iw ih width height
2154: scale % iw ih
2155: /height exch def /width exch def
2156: /lb width depth wbytes def % so "lb" has width in bytes
2157: sl lb lt {lb ms} if % maybe make bigger strings
2158: /bitmapsave save def
2159: fMLevel1 {
2160: colorsetup
2161: /is im 0 lb getinterval def % image substring
2162: ws 0 lb getinterval is copy pop % whiten it
2163: /cf currentfile def % evaluate "currentfile" only once
2164: width height depth [width 0 0 height neg 0 height] % top to bottom
2165: {ip} {is} {is} true 3 colorimage
2166: } {
2167: colorSetup2
2168: /is im 0 lb getinterval def % image substring
2169: ws 0 lb getinterval is copy pop % whiten it
2170: /cf currentfile def % evaluate "currentfile" only once
2171: 7 dict dup begin
2172: /ImageType 1 def
2173: /Width width def
2174: /Height height def
2175: /ImageMatrix [width 0 0 height neg 0 height] def
2176: /DataSource {ip} bind def
2177: /BitsPerComponent depth def
2178: /Decode [0 255] def
2179: end image
2180: } ifelse
2181: bitmapsave restore
2182: grestore
2183: } bind def
2184: /BITMAPTRUECOLORc {
2185: /depth 24 def
2186: gsave
2187: % rotate about center of image
2188: 3 index 2 div add exch % iw ih width height theta y+(height/2) x
2189: 4 index 2 div add exch % iw ih width height theta x+(width/2) y+(height/2)
2190: translate % iw ih width height theta
2191: rotate % iw ih width height
2192: 1 index 2 div neg % iw ih width height -(width/2)
2193: 1 index 2 div neg % iw ih width height -(width/2) -(height/2)
2194: translate % iw ih width height
2195: scale % iw ih
2196: /height exch def /width exch def
2197: /lb width depth wbytes def % so "lb" has width in bytes
2198: sl lb lt {lb ms} if % maybe make bigger strings
2199: /bitmapsave save def
2200:
2201: /is im 0 lb getinterval def % Whole scanline
2202: /ris im 0 width getinterval def % red part of im
2203: /gis im width width getinterval def % green part of im
2204: /bis im width 2 mul width getinterval def % blue part of im
2205:
2206: ws 0 lb getinterval is copy pop
2207: /cf currentfile def
2208: width height 8 [width 0 0 height neg 0 height]
2209: {width rip pop ris} {gis} {bis} true 3 colorimage
2210: bitmapsave restore
2211: grestore
2212: } bind def
2213: /BITMAPCMYKc {
2214: /depth 32 def
2215: gsave
2216: % rotate about center of image
2217: 3 index 2 div add exch % iw ih width height theta y+(height/2) x
2218: 4 index 2 div add exch % iw ih width height theta x+(width/2) y+(height/2)
2219: translate % iw ih width height theta
2220: rotate % iw ih width height
2221: 1 index 2 div neg % iw ih width height -(width/2)
2222: 1 index 2 div neg % iw ih width height -(width/2) -(height/2)
2223: translate % iw ih width height
2224: scale % iw ih
2225: /height exch def /width exch def
2226: /lb width depth wbytes def % so "lb" has width in bytes
2227: sl lb lt {lb ms} if % maybe make bigger strings
2228: /bitmapsave save def
2229:
2230: /is im 0 lb getinterval def % Whole scanline
2231: /cis im 0 width getinterval def % cyan part of im
2232: /mis im width width getinterval def % magenta part of im
2233: /yis im width 2 mul width getinterval def % yellow part of im
2234: /kis im width 3 mul width getinterval def % black part of im
2235:
2236: ws 0 lb getinterval is copy pop
2237: /cf currentfile def
2238: width height 8 [width 0 0 height neg 0 height]
2239: {width rip4 pop cis} {mis} {yis} {kis} true 4 colorimage
2240: bitmapsave restore
2241: grestore
2242: } bind def
2243: /BITMAPTRUECOLOR {
2244: gsave
2245: % rotate about center of image
2246: 3 index 2 div add exch % iw ih width height theta y+(height/2) x
2247: 4 index 2 div add exch % iw ih width height theta x+(width/2) y+(height/2)
2248: translate % iw ih width height theta
2249: rotate % iw ih width height
2250: 1 index 2 div neg % iw ih width height -(width/2)
2251: 1 index 2 div neg % iw ih width height -(width/2) -(height/2)
2252: translate % iw ih width height
2253: scale % iw ih
2254: /height exch def /width exch def
2255: /bitmapsave save def
2256: /is width string def
2257: /gis width string def
2258: /bis width string def
2259: /cf currentfile def
2260: width height 8 [width 0 0 height neg 0 height]
2261: { cf is readhexstring pop }
2262: { cf gis readhexstring pop }
2263: { cf bis readhexstring pop }
2264: true 3 colorimage
2265: bitmapsave restore
2266: grestore
2267: } bind def
2268: /BITMAPCMYK {
2269: gsave
2270: % rotate about center of image
2271: 3 index 2 div add exch % iw ih width height theta y+(height/2) x
2272: 4 index 2 div add exch % iw ih width height theta x+(width/2) y+(height/2)
2273: translate % iw ih width height theta
2274: rotate % iw ih width height
2275: 1 index 2 div neg % iw ih width height -(width/2)
2276: 1 index 2 div neg % iw ih width height -(width/2) -(height/2)
2277: translate % iw ih width height
2278: scale % iw ih
2279: /height exch def /width exch def
2280: /bitmapsave save def
2281: /is width string def
2282: /mis width string def
2283: /yis width string def
2284: /kis width string def
2285: /cf currentfile def
2286: width height 8 [width 0 0 height neg 0 height]
2287: { cf is readhexstring pop }
2288: { cf mis readhexstring pop }
2289: { cf yis readhexstring pop }
2290: { cf kis readhexstring pop }
2291: true 4 colorimage
2292: bitmapsave restore
2293: grestore
2294: } bind def
2295: %
2296: % image a color image to a b&width device
2297: %
2298: /BITMAPTRUEGRAYc {
2299: /depth 24 def
2300: gsave
2301: % rotate about center of image
2302: 3 index 2 div add exch % iw ih width height theta y+(height/2) x
2303: 4 index 2 div add exch % iw ih width height theta x+(width/2) y+(height/2)
2304: translate % iw ih width height theta
2305: rotate % iw ih width height
2306: 1 index 2 div neg % iw ih width height -(width/2)
2307: 1 index 2 div neg % iw ih width height -(width/2) -(height/2)
2308: translate % iw ih width height
2309: scale % iw ih
2310: /height exch def /width exch def
2311: /lb width depth wbytes def % so "lb" has width in bytes
2312: sl lb lt {lb ms} if % maybe make bigger strings
2313: /bitmapsave save def
2314:
2315: /is im 0 lb getinterval def % Whole scanline
2316: /ris im 0 width getinterval def % red part of im
2317: /gis im width width getinterval def % green part of im
2318: /bis im width 2 mul width getinterval def % blue part of im
2319: ws 0 lb getinterval is copy pop
2320: /cf currentfile def
2321: width height 8 [width 0 0 height neg 0 height]
2322: {width rip pop ris gis bis width gray} image
2323: bitmapsave restore
2324: grestore
2325: } bind def
2326: /BITMAPCMYKGRAYc {
2327: /depth 32 def
2328: gsave
2329: % rotate about center of image
2330: 3 index 2 div add exch % iw ih width height theta y+(height/2) x
2331: 4 index 2 div add exch % iw ih width height theta x+(width/2) y+(height/2)
2332: translate % iw ih width height theta
2333: rotate % iw ih width height
2334: 1 index 2 div neg % iw ih width height -(width/2)
2335: 1 index 2 div neg % iw ih width height -(width/2) -(height/2)
2336: translate % iw ih width height
2337: scale % iw ih
2338: /height exch def /width exch def
2339: /lb width depth wbytes def % so "lb" has width in bytes
2340: sl lb lt {lb ms} if % maybe make bigger strings
2341: /bitmapsave save def
2342:
2343: /is im 0 lb getinterval def % Whole scanline
2344: /cis im 0 width getinterval def % cyan part of im
2345: /mis im width width getinterval def % magenta part of im
2346: /yis im width 2 mul width getinterval def % yellow part of im
2347: /kis im width 3 mul width getinterval def % black part of im
2348: ws 0 lb getinterval is copy pop
2349: /cf currentfile def
2350: width height 8 [width 0 0 height neg 0 height]
2351: {width rip pop cis mis yis kis width cgray} image
2352: bitmapsave restore
2353: grestore
2354: } bind def
2355: /cgray { % c m y k width
2356: /ww exch def
2357: /k exch def
2358: /y exch def
2359: /m exch def
2360: /c exch def
2361: 0 1 ww 1 sub { /i exch def c i get m i get y i get k i get CMYKtoRGB
2362: .144 mul 3 1 roll .587 mul 3 1 roll .299 mul add add
2363: c i 3 -1 roll floor cvi put } for
2364: c
2365: } bind def
2366: /gray { % r g b width
2367: /ww exch def
2368: /b exch def
2369: /g exch def
2370: /r exch def
2371: 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul
2372: b i get .114 mul add add r i 3 -1 roll floor cvi put } for
2373: r
2374: } bind def
2375: /BITMAPTRUEGRAY {
2376: gsave
2377: % rotate about center of image
2378: 3 index 2 div add exch % iw ih width height theta y+(height/2) x
2379: 4 index 2 div add exch % iw ih width height theta x+(width/2) y+(height/2)
2380: translate % iw ih width height theta
2381: rotate % iw ih width height
2382: 1 index 2 div neg % iw ih width height -(width/2)
2383: 1 index 2 div neg % iw ih width height -(width/2) -(height/2)
2384: translate % iw ih width height
2385: scale % iw ih
2386: /height exch def /width exch def
2387: /bitmapsave save def
2388: /is width string def
2389: /gis width string def
2390: /bis width string def
2391: /cf currentfile def
2392: width height 8 [width 0 0 height neg 0 height]
2393: { cf is readhexstring pop
2394: cf gis readhexstring pop
2395: cf bis readhexstring pop width gray} image
2396: bitmapsave restore
2397: grestore
2398: } bind def
2399: /BITMAPCMYKGRAY {
2400: gsave
2401: % rotate about center of image
2402: 3 index 2 div add exch % iw ih width height theta y+(height/2) x
2403: 4 index 2 div add exch % iw ih width height theta x+(width/2) y+(height/2)
2404: translate % iw ih width height theta
2405: rotate % iw ih width height
2406: 1 index 2 div neg % iw ih width height -(width/2)
2407: 1 index 2 div neg % iw ih width height -(width/2) -(height/2)
2408: translate % iw ih width height
2409: scale % iw ih
2410: /height exch def /width exch def
2411: /bitmapsave save def
2412: /is width string def
2413: /yis width string def
2414: /mis width string def
2415: /kis width string def
2416: /cf currentfile def
2417: width height 8 [width 0 0 height neg 0 height]
2418: { cf is readhexstring pop
2419: cf mis readhexstring pop
2420: cf yis readhexstring pop
2421: cf kis readhexstring pop width cgray} image
2422: bitmapsave restore
2423: grestore
2424: } bind def
2425: /BITMAPGRAY { % iw, ih, width, height, theta, x y
2426: 8 {fakecolorsetup} COMMONBITMAP
2427: } bind def
2428: /BITMAPGRAYc { % iw, ih, width, height, theta, x y
2429: 8 {fakecolorsetup} COMMONBITMAPc
2430: } bind def
2431: /ENDBITMAP {
2432: } bind def
2433: end % of FrameDict definitions
2434:
2435: % OPI stuff
2436: /ALDmatrix matrix def ALDmatrix currentmatrix pop
2437: /StartALD {
2438: /ALDsave save def
2439: savematrix
2440: ALDmatrix setmatrix
2441: } bind def
2442: /InALD {
2443: restorematrix
2444: } bind def
2445: /DoneALD {
2446: ALDsave restore
2447: } bind def
2448:
2449: % Dashed lines stuff
2450: /I { setdash } bind def
2451: /J { [] 0 setdash } bind def
2452:
2453: %%EndProlog
2454: %%BeginSetup
2455: (5.0) FMVERSION
2456: 1 1 0 0 595.28 839.05 0 1 9 FMDOCUMENT
2457: 0 0 /Times-Roman FMFONTDEFINE
2458: 1 0 /Times-Bold FMFONTDEFINE
2459: 2 0 /Times-Italic FMFONTDEFINE
2460: 3 0 /Courier FMFONTDEFINE
2461: 4 0 /Courier-Bold FMFONTDEFINE
2462: 32 FMFILLS
2463: 0 0 FMFILL
2464: 1 0.1 FMFILL
2465: 2 0.3 FMFILL
2466: 3 0.5 FMFILL
2467: 4 0.7 FMFILL
2468: 5 0.9 FMFILL
2469: 6 0.97 FMFILL
2470: 7 1 FMFILL
2471: 8 <0f1e3c78f0e1c387> FMFILL
2472: 9 <0f87c3e1f0783c1e> FMFILL
2473: 10 <cccccccccccccccc> FMFILL
2474: 11 <ffff0000ffff0000> FMFILL
2475: 12 <8142241818244281> FMFILL
2476: 13 <03060c183060c081> FMFILL
2477: 14 <8040201008040201> FMFILL
2478: 16 1 FMFILL
2479: 17 0.9 FMFILL
2480: 18 0.7 FMFILL
2481: 19 0.5 FMFILL
2482: 20 0.3 FMFILL
2483: 21 0.1 FMFILL
2484: 22 0.03 FMFILL
2485: 23 0 FMFILL
2486: 24 <f0e1c3870f1e3c78> FMFILL
2487: 25 <f0783c1e0f87c3e1> FMFILL
2488: 26 <3333333333333333> FMFILL
2489: 27 <0000ffff0000ffff> FMFILL
2490: 28 <7ebddbe7e7dbbd7e> FMFILL
2491: 29 <fcf9f3e7cf9f3f7e> FMFILL
2492: 30 <7fbfdfeff7fbfdfe> FMFILL
2493: %%EndSetup
2494: %%Page: "1" 1
2495: %%BeginPaperSize: A4
2496: %%EndPaperSize
2497: 595.28 839.05 0 FMBEGINPAGE
2498: [0 0 0 1 0 0 0]
2499: [ 0 1 1 0 1 0 0]
2500: [ 1 0 1 0 0 1 0]
2501: [ 1 1 0 0 0 0 1]
2502: [ 1 0 0 0 0 1 1]
2503: [ 0 1 0 0 1 0 1]
2504: [ 0 0 1 0 1 1 0]
2505: 7 FrameSetSepColors
2506: FrameNoSep
2507: 0 0 0 1 0 0 0 K
2508: J
2509: 0 0 0 1 0 0 0 K
2510: 0 0 0 1 0 0 0 K
2511: 0 0 0 1 0 0 0 K
2512: 90 -120/G837264 FmPA
2513: 0 12 Q
2514: 0 X
2515: 0 0 0 1 0 0 0 K
2516: (1) 292.29 93.77 T
2517: 40 601/G837268 FmPA
2518: 1 F
2519: (Task Frames) 267.37 664.52 T
2520: 121 31/G1021658 FmPA
2521: 0 F
2522: (Burkhard D. Steinmacher) 221.32 631.52 T
2523: (-Buro) 344.05 631.52 T
2524: (w) 371.75 631.52 T
2525: 121 64/G1021659 FmPA
2526: 2 F
2527: (P) 203.66 605.52 T
2528: (ostfac) 210.04 605.52 T
2529: (h 1163, 73241 W) 238.52 605.52 T
2530: (ernau, Germany) 319.42 605.52 T
2531: 121 90/G1021660 FmPA
2532: (b) 266.9 591.52 T
2533: (ur) 272.66 591.52 T
2534: (ow@ifh.de) 282.79 591.52 T
2535: (http://www) 254.85 577.52 T
2536: (.tsia.or) 307.32 577.52 T
2537: (g) 340.88 577.52 T
2538: 0 F
2539: (April 13, 2000) 265.7 544.52 T
2540: 121 151/G988247 FmPA
2541: 5.22 (F) 137.88 502.51 P
2542: 5.22 (orty years ago Dijkstra introduced the current con) 144.37 502.51 P
2543: 5.22 (v) 419.37 502.51 P
2544: 5.22 (entional) 425.19 502.51 P
2545: 121 193/G999131 FmPA
2546: 0.3 (e) 137.88 488.51 P
2547: 0.3 (x) 143.02 488.51 P
2548: 0.3 (ecution of routines. It places acti) 148.84 488.51 P
2549: 0.3 (v) 306.68 488.51 P
2550: 0.3 (ation frames onto a stack. Each) 312.39 488.51 P
2551: 2.14 (frame is the internal state of an e) 137.88 474.51 P
2552: 2.14 (x) 309.63 474.51 P
2553: 2.14 (ecuting routine. The resulting) 315.45 474.51 P
2554: (application e) 137.88 460.51 T
2555: (x) 199.35 460.51 T
2556: (ecution is not easily helped by an e) 205.17 460.51 T
2557: (xternal system.) 373.3 460.51 T
2558: 1.57 (This presentation proposes an alternati) 137.88 446.51 P
2559: 1.57 (v) 329.15 446.51 P
2560: 1.57 (e e) 334.97 446.51 P
2561: 1.57 (x) 350.01 446.51 P
2562: 1.57 (ecution of routines. It) 355.83 446.51 P
2563: 2.31 (places task frames onto the stack. A task frame is the call of a) 137.88 432.51 P
2564: 1.25 (routine to be e) 137.88 418.51 P
2565: 1.25 (x) 210.43 418.51 P
2566: 1.25 (ecuted. The feasibility of the alternati) 216.25 418.51 P
2567: 1.25 (v) 402.16 418.51 P
2568: 1.25 (e e) 407.98 418.51 P
2569: 1.25 (x) 422.7 418.51 P
2570: 1.25 (ecution) 428.52 418.51 P
2571: 7.24 (is demonstrated by a crude implementation. As described) 137.88 404.51 P
2572: 1.24 (else) 137.88 390.51 P
2573: 1.24 (where, an application which e) 156.24 390.51 P
2574: 1.24 (x) 304.64 390.51 P
2575: 1.24 (ecutes in terms of tasks can be) 310.46 390.51 P
2576: 5.67 (pro) 137.88 376.51 P
2577: 5.67 (vided by an e) 153.69 376.51 P
2578: 5.67 (xternal system with a transparent reliable,) 234.85 376.51 P
2579: 2.35 (distrib) 137.88 362.51 P
2580: 2.35 (uted, heterogeneous, adapti) 168.31 362.51 P
2581: 2.35 (v) 304.02 362.51 P
2582: 2.35 (e, dynamic, real-time, parallel,) 309.83 362.51 P
2583: 0.82 (secure or other e) 137.88 348.51 P
2584: 0.82 (x) 219.79 348.51 P
2585: 0.82 (ecution. By e) 225.61 348.51 P
2586: 0.82 (xtending the crude implementation,) 290.74 348.51 P
2587: (this presentation outlines a simple transparent parallel e) 137.88 334.51 T
2588: (x) 404.66 334.51 T
2589: (ecution.) 410.48 334.51 T
2590: 1 F
2591: (1 Intr) 120.87 303.52 T
2592: (oduction) 156.32 303.52 T
2593: 121 392/G988301 FmPA
2594: 0 F
2595: -0.23 (This presentation proposes an alternati) 120.87 284.52 P
2596: -0.23 (v) 304.94 284.52 P
2597: -0.23 (e to the current con) 310.76 284.52 P
2598: -0.23 (v) 401.99 284.52 P
2599: -0.23 (entional e) 407.81 284.52 P
2600: -0.23 (x) 454.39 284.52 P
2601: -0.23 (ecu-) 460.21 284.52 P
2602: 121 411/G1007542 FmPA
2603: 2.45 (tion of routines. An application can use either or both e) 120.87 270.52 P
2604: 2.45 (x) 410.11 270.52 P
2605: 2.45 (ecutions. F) 415.93 270.52 P
2606: 2.45 (or) 470.86 270.52 P
2607: -0.24 (e) 120.87 256.52 P
2608: -0.24 (xample, the alternati) 126.02 256.52 P
2609: -0.24 (v) 223.55 256.52 P
2610: -0.24 (e e) 229.37 256.52 P
2611: -0.24 (x) 242.61 256.52 P
2612: -0.24 (ecution thus introduces additional techniques for) 248.43 256.52 P
2613: (the implementation of a programming language.) 120.87 242.52 T
2614: 1.93 (The current con) 137.88 228.52 P
2615: 1.93 (v) 217.22 228.52 P
2616: 1.93 (entional e) 223.04 228.52 P
2617: 1.93 (x) 271.78 228.52 P
2618: 1.93 (ecution of routines generally requires an) 277.6 228.52 P
2619: 121 467/G1008151 FmPA
2620: 0.25 (application to include the details of its reliable, distrib) 120.87 214.52 P
2621: 0.25 (uted, heterogeneous,) 381.63 214.52 P
2622: 1.74 (adapti) 120.87 200.52 P
2623: 1.74 (v) 149.9 200.52 P
2624: 1.74 (e, dynamic, real-time, parallel, secure or other desired e) 155.72 200.52 P
2625: 1.74 (x) 436.71 200.52 P
2626: 1.74 (ecution.) 442.53 200.52 P
2627: 1.48 (Thus for e) 120.87 186.52 P
2628: 1.48 (xample, a \336nance e) 172.98 186.52 P
2629: 1.48 (xpert also needs to be a parallel e) 269.89 186.52 P
2630: 1.48 (x) 439.71 186.52 P
2631: 1.48 (ecution) 445.53 186.52 P
2632: (e) 120.87 172.52 T
2633: (xpert in order to produce a \336nance application with a parallel e) 126.02 172.52 T
2634: (x) 427.43 172.52 T
2635: (ecution.) 433.25 172.52 T
2636: 0.2 (In contrast, the alternati) 137.88 158.52 P
2637: 0.2 (v) 252.16 158.52 P
2638: 0.2 (e e) 257.98 158.52 P
2639: 0.2 (x) 271.66 158.52 P
2640: 0.2 (ecution of routines allo) 277.48 158.52 P
2641: 0.2 (ws an e) 388.79 158.52 P
2642: 0.2 (xternal sys-) 425 158.52 P
2643: 121 537/G1007274 FmPA
2644: 1.03 (tem to pro) 120.87 144.52 P
2645: 1.03 (vide an application with a transparent e) 172.07 144.52 P
2646: 1.03 (x) 366.68 144.52 P
2647: 1.03 (ecution. A transparent) 372.5 144.52 P
2648: -0.14 (e) 120.87 130.52 P
2649: -0.14 (x) 126.02 130.52 P
2650: -0.14 (ecution is not visible to the application. This di) 131.84 130.52 P
2651: -0.14 (vision of labour yields the) 356.09 130.52 P
2652: 0 0 0 1 0 0 0 K
2653: [/Creator(FrameMaker xm5.1.1P1b)/DOCINFO FmPD2
2654: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
2655: [/Dest/P.1/DEST FmPD2
2656: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
2657: FMENDPAGE
2658: %%EndPage: "1" 1
2659: %%Page: "2" 2
2660: 595.28 839.05 0 FMBEGINPAGE
2661: [0 0 0 1 0 0 0]
2662: [ 0 1 1 0 1 0 0]
2663: [ 1 0 1 0 0 1 0]
2664: [ 1 1 0 0 0 0 1]
2665: [ 1 0 0 0 0 1 1]
2666: [ 0 1 0 0 1 0 1]
2667: [ 0 0 1 0 1 1 0]
2668: 7 FrameSetSepColors
2669: FrameNoSep
2670: 0 0 0 1 0 0 0 K
2671: 0 0 0 1 0 0 0 K
2672: 0 0 0 1 0 0 0 K
2673: 90 959/G837264 FmPA
2674: 0 12 Q
2675: 0 X
2676: 0 0 0 1 0 0 0 K
2677: (2) 292.29 93.77 T
2678: 40 238/G837268 FmPA
2679: 0.89 (usual bene\336ts. Returning to the abo) 120.87 664.52 P
2680: 0.89 (v) 295.12 664.52 P
2681: 0.89 (e e) 300.94 664.52 P
2682: 0.89 (xample, a \336nance e) 315.31 664.52 P
2683: 0.89 (xpert need not) 410.43 664.52 P
2684: -0 (also be a parallel e) 120.87 650.52 P
2685: -0 (x) 209.98 650.52 P
2686: -0 (ecution e) 215.8 650.52 P
2687: -0 (xpert in order to produce a \336nance application) 259.27 650.52 P
2688: 0.02 (with a parallel e) 120.87 636.52 P
2689: 0.02 (x) 197.73 636.52 P
2690: 0.02 (ecution. V) 203.55 636.52 P
2691: 0.02 (ice v) 252.84 636.52 P
2692: 0.02 (ersa, the parallel e) 275.67 636.52 P
2693: 0.02 (x) 362.85 636.52 P
2694: 0.02 (ecution e) 368.67 636.52 P
2695: 0.02 (xpert need not) 412.17 636.52 P
2696: 0.12 (also be an e) 120.87 622.52 P
2697: 0.12 (xpert in \336nance nor in an) 177.38 622.52 P
2698: 0.12 (y other application domain in order to) 298.13 622.52 P
2699: 0.16 (produce a system which pro) 120.87 608.52 P
2700: 0.16 (vides an application with a transparent parallel) 255.96 608.52 P
2701: (e) 120.87 594.52 T
2702: (x) 126.02 594.52 T
2703: (ecution.) 131.84 594.52 T
2704: 0.42 (Of course e) 137.88 580.52 P
2705: 0.42 (v) 193.72 580.52 P
2706: 0.42 (en with a transparent e) 199.54 580.52 P
2707: 0.42 (x) 309.67 580.52 P
2708: 0.42 (ecution some details of the e) 315.49 580.52 P
2709: 0.42 (x) 454.39 580.52 P
2710: 0.42 (ecu-) 460.21 580.52 P
2711: 121 724/G1008169 FmPA
2712: -0.02 (tion are part of the application. F) 120.87 566.52 P
2713: -0.02 (or e) 278.21 566.52 P
2714: -0.02 (xample, such details may include real-) 296.33 566.52 P
2715: 3.4 (time or reliability requirements or include constraints on the time or) 120.87 552.52 P
2716: 3.39 (resource costs of the e) 120.87 538.52 P
2717: 3.39 (x) 240.9 538.52 P
2718: 3.39 (ecution. T) 246.72 538.52 P
2719: 3.39 (ransparent are the e) 298.36 538.52 P
2720: 3.39 (x) 401.99 538.52 P
2721: 3.39 (ecution details) 407.81 538.52 P
2722: 0.39 (needed to meet such requirements and constraints. Another e) 120.87 524.52 P
2723: 0.39 (xample is the) 416.08 524.52 P
2724: 1.79 (demand by a transparent parallel e) 120.87 510.51 P
2725: 1.79 (x) 294.58 510.51 P
2726: 1.79 (ecution that the application contains) 300.4 510.51 P
2727: 2.16 (relati) 120.87 496.51 P
2728: 2.16 (v) 145.23 496.51 P
2729: 2.16 (ely ob) 151.05 496.51 P
2730: 2.16 (vious implicit parallelism. T) 182.69 496.51 P
2731: 2.16 (ransparent parallelism does not) 324.75 496.51 P
2732: 2.84 (magically transform an inherently sequential application into one with) 120.87 482.51 P
2733: (implicit parallelism.) 120.87 468.51 T
2734: 0.29 (The alternati) 137.88 454.51 P
2735: 0.29 (v) 198.85 454.51 P
2736: 0.29 (e e) 204.67 454.51 P
2737: 0.29 (x) 218.44 454.51 P
2738: 0.29 (ecution of routines is a result of the T) 224.26 454.51 P
2739: 0.29 (ask System and) 405.61 454.51 P
2740: 121 598/G1019397 FmPA
2741: 1.39 (Item Architecture \050TSIA\051, a model for transparent application e) 120.87 440.51 P
2742: 1.39 (x) 436.71 440.51 P
2743: 1.39 (ecution.) 442.53 440.51 P
2744: 0.56 (The name TSIA is used for both the model and for systems implementing) 120.87 426.51 P
2745: 0.26 (the model. In man) 120.87 412.51 P
2746: 0.26 (y real-w) 208.8 412.51 P
2747: 0.26 (orld projects, a TSIA pro) 248.59 412.51 P
2748: 0.26 (vides a simple applica-) 369.76 412.51 P
2749: 1.92 (tion with a transparent e) 120.87 398.51 P
2750: 1.92 (x) 244.35 398.51 P
2751: 1.92 (ecution [Di) 250.17 398.51 P
2752: 1.92 (viding]. TSIA is suitable for man) 306.11 398.51 P
2753: 1.92 (y) 474.86 398.51 P
2754: 1.75 (applications, not just for the simple applications serv) 120.87 384.51 P
2755: 1.75 (ed to date. V) 386.28 384.51 P
2756: 1.75 (arious) 451.53 384.51 P
2757: 3.21 (aspects of this suitability are sho) 120.87 370.51 P
2758: 3.21 (wn else) 292.92 370.51 P
2759: 3.21 (where [Alternati) 332.15 370.51 P
2760: 3.21 (v) 414.03 370.51 P
2761: 3.21 (e][Data\337o) 419.85 370.51 P
2762: 3.21 (w]) 468.2 370.51 P
2763: ([TSIA]. This presentation sho) 120.87 356.51 T
2764: (ws other aspects of this suitability) 263.88 356.51 T
2765: (.) 426.1 356.51 T
2766: -0.21 (The aspects of this presentation concern an alternati) 137.88 342.51 P
2767: -0.21 (v) 385.05 342.51 P
2768: -0.21 (e e) 390.88 342.51 P
2769: -0.21 (x) 404.14 342.51 P
2770: -0.21 (ecution of rou-) 409.96 342.51 P
2771: 121 486/G1020303 FmPA
2772: -0.16 (tines. It places task frames onto a stack. A task frame is the call of a routine) 120.87 328.51 P
2773: 0.41 (to be e) 120.87 314.52 P
2774: 0.41 (x) 153.5 314.52 P
2775: 0.41 (ecuted. By contrast, the current con) 159.32 314.52 P
2776: 0.41 (v) 331.19 314.52 P
2777: 0.41 (entional e) 337.01 314.52 P
2778: 0.41 (x) 384.23 314.52 P
2779: 0.41 (ecution of routines) 390.05 314.52 P
2780: 1.33 (places acti) 120.87 300.52 P
2781: 1.33 (v) 172.21 300.52 P
2782: 1.33 (ation frames onto a stack. An acti) 177.91 300.52 P
2783: 1.33 (v) 346.54 300.52 P
2784: 1.33 (ation frame is the internal) 352.24 300.52 P
2785: (state of an e) 120.87 286.52 T
2786: (x) 178.34 286.52 T
2787: (ecuting routine.) 184.16 286.52 T
2788: 0.76 (TSIA is one of a succession of data\337o) 137.88 272.52 P
2789: 0.76 (w models. W) 325.21 272.52 P
2790: 0.76 (ith TSIA, a simple) 389.91 272.52 P
2791: 121 416/G1019580 FmPA
2792: 3.45 (and po) 120.87 258.52 P
2793: 3.45 (werful data\337o) 156.35 258.52 P
2794: 3.45 (w model is achie) 226.49 258.52 P
2795: 3.45 (v) 317.53 258.52 P
2796: 3.45 (ed [Data\337o) 323.35 258.52 P
2797: 3.45 (w]. In the data\337o) 380.16 258.52 P
2798: 3.45 (w) 472.2 258.52 P
2799: 2.06 (model, an e) 120.87 244.52 P
2800: 2.06 (x) 180.47 244.52 P
2801: 2.06 (ecuting application is a directed ac) 186.29 244.52 P
2802: 2.06 (yclic graph \050dag\051. Each) 362.71 244.52 P
2803: 0.82 (node of the graph is a task. Each arc of the graph is an item produced by) 120.87 230.52 P
2804: 0.56 (one task and used by another) 120.87 216.52 P
2805: 0.56 (. The e) 261.99 216.52 P
2806: 0.56 (x) 295.92 216.52 P
2807: 0.56 (ecution of the application consists of) 301.74 216.52 P
2808: 0.93 (e) 120.87 202.52 P
2809: 0.93 (x) 126.02 202.52 P
2810: 0.93 (ecuting the tasks of the graph. The e) 131.84 202.52 P
2811: 0.93 (x) 312.15 202.52 P
2812: 0.93 (ecution of a task may change the) 317.97 202.52 P
2813: 1.05 (graph and may use or produce the items of the task. The data\337o) 120.87 188.52 P
2814: 1.05 (w model) 438.14 188.52 P
2815: 1.98 (thus is a form of graph reduction. F) 120.87 174.52 P
2816: 1.98 (or e) 304.52 174.52 P
2817: 1.98 (xample, ALICE [ALICE] is an) 324.64 174.52 P
2818: -0.24 (implementation of graph reduction with man) 120.87 160.52 P
2819: -0.24 (y similarities to the implemen-) 334.48 160.52 P
2820: 1.81 (tation of data\337o) 120.87 146.52 P
2821: 1.81 (w by Cilk-NO) 200.19 146.52 P
2822: 1.81 (W and its precursors [Cilk-1][Cilk-NO) 272.07 146.52 P
2823: 1.81 (W]) 465.54 146.52 P
2824: ([PCM].) 120.87 132.52 T
2825: 0 0 0 1 0 0 0 K
2826: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
2827: [/Dest/P.2/DEST FmPD2
2828: [/Rect[290 394 341 407]/Border[0 0 0]/Page 42/View[/XYZ null 121 704 FmDC exch pop null]/LNK FmPD
2829: [/Rect[341 254 393 267]/Border[0 0 0]/Page 42/View[/XYZ null 121 746 FmDC exch pop null]/LNK FmPD
2830: [/Rect[408 170 452 183]/Border[0 0 0]/Page 41/View[/XYZ null 121 682 FmDC exch pop null]/LNK FmPD
2831: [/Rect[368 366 429 379]/Border[0 0 0]/Page 41/View[/XYZ null 121 612 FmDC exch pop null]/LNK FmPD
2832: [/Rect[429 366 481 379]/Border[0 0 0]/Page 42/View[/XYZ null 121 746 FmDC exch pop null]/LNK FmPD
2833: [/Rect[121 352 124 366]/Border[0 0 0]/Page 42/View[/XYZ null 121 746 FmDC exch pop null]/LNK FmPD
2834: [/Rect[121 352 156 365]/Border[0 0 0]/Page 43/View[/XYZ null 121 676 FmDC exch pop null]/LNK FmPD
2835: [/Rect[381 142 420 155]/Border[0 0 0]/Page 41/View[/XYZ null 121 542 FmDC exch pop null]/LNK FmPD
2836: [/Rect[420 142 481 155]/Border[0 0 0]/Page 42/View[/XYZ null 121 816 FmDC exch pop null]/LNK FmPD
2837: [/Rect[121 128 124 142]/Border[0 0 0]/Page 42/View[/XYZ null 121 816 FmDC exch pop null]/LNK FmPD
2838: [/Rect[121 128 154 141]/Border[0 0 0]/Page 42/View[/XYZ null 121 550 FmDC exch pop null]/LNK FmPD
2839: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
2840: FMENDPAGE
2841: %%EndPage: "2" 2
2842: %%Page: "3" 3
2843: 595.28 839.05 0 FMBEGINPAGE
2844: [0 0 0 1 0 0 0]
2845: [ 0 1 1 0 1 0 0]
2846: [ 1 0 1 0 0 1 0]
2847: [ 1 1 0 0 0 0 1]
2848: [ 1 0 0 0 0 1 1]
2849: [ 0 1 0 0 1 0 1]
2850: [ 0 0 1 0 1 1 0]
2851: 7 FrameSetSepColors
2852: FrameNoSep
2853: 0 0 0 1 0 0 0 K
2854: 0 0 0 1 0 0 0 K
2855: 0 0 0 1 0 0 0 K
2856: 90 959/G837264 FmPA
2857: 0 12 Q
2858: 0 X
2859: 0 0 0 1 0 0 0 K
2860: (3) 292.29 93.77 T
2861: 40 238/G837268 FmPA
2862: 0.1 (In the succession of data\337o) 137.88 664.52 P
2863: 0.1 (w models, that of Cilk-NO) 268.62 664.52 P
2864: 0.1 (W and its precur-) 396.92 664.52 P
2865: 121 808/G1007350 FmPA
2866: 0.77 (sors is the closest model to that of TSIA. Cilk-NO) 120.87 650.52 P
2867: 0.77 (W pro) 368 650.52 P
2868: 0.77 (vides a subset of) 398.91 650.52 P
2869: 0.29 (the C programming language with a transparent reliable, adapti) 120.87 636.52 P
2870: 0.29 (v) 426.49 636.52 P
2871: 0.29 (e and par-) 432.31 636.52 P
2872: 0.05 (allel e) 120.87 622.52 P
2873: 0.05 (x) 149.73 622.52 P
2874: 0.05 (ecution. In Cilk-NO) 155.55 622.52 P
2875: 0.05 (W and its precursors, an application e) 251.56 622.52 P
2876: 0.05 (x) 432.66 622.52 P
2877: 0.05 (ecutes in) 438.48 622.52 P
2878: (terms of tasks using a structure similar to a stack.) 120.87 608.52 T
2879: 0.56 (A TSIA using a stack of task frames, as in the alternati) 137.88 594.52 P
2880: 0.56 (v) 406.31 594.52 P
2881: 0.56 (e e) 412.13 594.52 P
2882: 0.56 (x) 426.16 594.52 P
2883: 0.56 (ecution of) 431.98 594.52 P
2884: 121 738/G1019717 FmPA
2885: 1.97 (routines, brie\337y has been introduced else) 120.87 580.52 P
2886: 1.97 (where [Data\337o) 327.02 580.52 P
2887: 1.97 (w]. Instead of a) 400.33 580.52 P
2888: 1.92 (stack, other structures may be used for tasks and may be necessary for) 120.87 566.52 P
2889: 0.44 (implementing some programming language features or e) 120.87 552.52 P
2890: 0.44 (x) 395.29 552.52 P
2891: 0.44 (ecution features.) 401.11 552.52 P
2892: -0.25 (Other presentations of TSIA generally refer to a task pool, thus not specify-) 120.87 538.52 P
2893: (ing the structure [Alternati) 120.87 524.52 T
2894: (v) 248.21 524.52 T
2895: (e][Data\337o) 254.03 524.52 T
2896: (w][TSIA].) 302.38 524.52 T
2897: 1.38 (The current con) 137.88 510.51 P
2898: 1.38 (v) 216.12 510.51 P
2899: 1.38 (entional e) 221.94 510.51 P
2900: 1.38 (x) 270.13 510.51 P
2901: 1.38 (ecution of routines is brie\337y described in) 275.95 510.51 P
2902: 121 654/G1019810 FmPA
2903: 3.17 (section) 120.87 496.51 P
2904: 3.17 (2. The alternati) 157.86 496.51 P
2905: 3.17 (v) 236.89 496.51 P
2906: 3.17 (e e) 242.71 496.51 P
2907: 3.17 (x) 259.36 496.51 P
2908: 3.17 (ecution of routines is brie\337y described in) 265.18 496.51 P
2909: 1.99 (section) 120.87 482.51 P
2910: 1.99 (3. In order to clearly present the alternati) 157.86 482.51 P
2911: 1.99 (v) 367.44 482.51 P
2912: 1.99 (e e) 373.26 482.51 P
2913: 1.99 (x) 388.73 482.51 P
2914: 1.99 (ecution, section) 394.55 482.51 P
2915: 1.99 (4) 474.86 482.51 P
2916: 3.34 (brie\337y describes a programming language with a syntax close to the) 120.87 468.51 P
2917: 0.32 (semantics of the alternati) 120.87 454.51 P
2918: 0.32 (v) 241.84 454.51 P
2919: 0.32 (e e) 247.66 454.51 P
2920: 0.32 (x) 261.45 454.51 P
2921: 0.32 (ecution of routines. Section) 267.27 454.51 P
2922: 0.32 (5 sho) 403.22 454.51 P
2923: 0.32 (ws a crude) 428.91 454.51 P
2924: 0.3 (implementation of the programming language, thus demonstrating the fea-) 120.87 440.51 P
2925: 1.65 (sibility of the alternati) 120.87 426.51 P
2926: 1.65 (v) 231.85 426.51 P
2927: 1.65 (e e) 237.67 426.51 P
2928: 1.65 (x) 252.79 426.51 P
2929: 1.65 (ecution of routines. Section) 258.61 426.51 P
2930: 1.65 (6 sho) 398.55 426.51 P
2931: 1.65 (ws that the) 425.57 426.51 P
2932: 0.62 (current con) 120.87 412.51 P
2933: 0.62 (v) 175.32 412.51 P
2934: 0.62 (entional e) 181.14 412.51 P
2935: 0.62 (x) 228.57 412.51 P
2936: 0.62 (ecution of routines can be treated as a special case) 234.39 412.51 P
2937: 0.05 (of the alternati) 120.87 398.51 P
2938: 0.05 (v) 190.65 398.51 P
2939: 0.05 (e e) 196.47 398.51 P
2940: 0.05 (x) 209.99 398.51 P
2941: 0.05 (ecution. As sho) 215.81 398.51 P
2942: 0.05 (wn in section) 289.93 398.51 P
2943: 0.05 (7, in the crude implemen-) 357.02 398.51 P
2944: -0.09 (tation of the alternati) 120.87 384.51 P
2945: -0.09 (v) 220.62 384.51 P
2946: -0.09 (e e) 226.44 384.51 P
2947: -0.09 (x) 239.83 384.51 P
2948: -0.09 (ecution, the time o) 245.65 384.51 P
2949: -0.09 (v) 334.52 384.51 P
2950: -0.09 (erhead for calling a routine is) 340.35 384.51 P
2951: -0.29 (about four times that in the current con) 120.87 370.51 P
2952: -0.29 (v) 305.29 370.51 P
2953: -0.29 (entional e) 311.11 370.51 P
2954: -0.29 (x) 357.63 370.51 P
2955: -0.29 (ecution. F) 363.45 370.51 P
2956: -0.29 (or man) 410.98 370.51 P
2957: -0.29 (y appli-) 444.16 370.51 P
2958: 0.08 (cations, such an additional o) 120.87 356.51 P
2959: 0.08 (v) 257.33 356.51 P
2960: 0.08 (erhead is small enough to be ne) 263.15 356.51 P
2961: 0.08 (gligible. Sim-) 414.77 356.51 P
2962: 0.71 (ilarly) 120.87 342.51 P
2963: 0.71 (, as sho) 145.42 342.51 P
2964: 0.71 (wn in section) 182.21 342.51 P
2965: 0.71 (8, iteration using tail recursion can ha) 250.63 342.51 P
2966: 0.71 (v) 435.63 342.51 P
2967: 0.71 (e a time) 441.45 342.51 P
2968: 0.34 (o) 120.87 328.51 P
2969: 0.34 (v) 126.69 328.51 P
2970: 0.34 (erhead within an order of magnitude as small as that of a loop. The cur-) 132.51 328.51 P
2971: 2.93 (rent con) 120.87 314.52 P
2972: 2.93 (v) 162.3 314.52 P
2973: 2.93 (entional e) 168.12 314.52 P
2974: 2.93 (x) 217.87 314.52 P
2975: 2.93 (ecution of routines allo) 223.68 314.52 P
2976: 2.93 (ws the amount of memory) 343.16 314.52 P
2977: 0.74 (space occupied by local v) 120.87 300.52 P
2978: 0.74 (ariables to depend on the v) 246.85 300.52 P
2979: 0.74 (alues of one or more) 379.24 300.52 P
2980: 0.28 (ar) 120.87 286.52 P
2981: 0.28 (guments of the routine. This also is allo) 129.98 286.52 P
2982: 0.28 (wed by the alternati) 321.62 286.52 P
2983: 0.28 (v) 417.14 286.52 P
2984: 0.28 (e e) 422.96 286.52 P
2985: 0.28 (x) 436.71 286.52 P
2986: 0.28 (ecution,) 442.53 286.52 P
2987: 0.36 (as demonstrated in section) 120.87 272.52 P
2988: 0.36 (9 using an array e) 251.92 272.52 P
2989: 0.36 (xample. A simple transparent) 338.48 272.52 P
2990: 1.88 (parallel e) 120.87 258.52 P
2991: 1.88 (x) 166.88 258.52 P
2992: 1.88 (ecution is outlined in section) 172.7 258.52 P
2993: 1.88 (10. The alternati) 321.22 258.52 P
2994: 1.88 (v) 403.66 258.52 P
2995: 1.88 (e e) 409.48 258.52 P
2996: 1.88 (x) 424.84 258.52 P
2997: 1.88 (ecution of) 430.66 258.52 P
2998: (routines is brie\337y compared in section) 120.87 244.52 T
2999: (11 to some related w) 307.52 244.52 T
3000: (ork.) 407.38 244.52 T
3001: 1 F
3002: (2 Acti) 120.87 213.52 T
3003: (v) 157.07 213.52 T
3004: (ation Frames) 162.95 213.52 T
3005: 121 357/G1007143 FmPA
3006: 0 F
3007: 0.54 (The current con) 120.87 194.52 P
3008: 0.54 (v) 197.43 194.52 P
3009: 0.54 (entional e) 203.25 194.52 P
3010: 0.54 (x) 250.6 194.52 P
3011: 0.54 (ecution of routines is based on a stack of acti-) 256.42 194.52 P
3012: 121 338/G1007557 FmPA
3013: -0.25 (v) 120.87 180.52 P
3014: -0.25 (ation frames [Stack]. An acti) 126.57 180.52 P
3015: -0.25 (v) 263.57 180.52 P
3016: -0.25 (ation frame is the internal state of an e) 269.27 180.52 P
3017: -0.25 (x) 451.05 180.52 P
3018: -0.25 (ecut-) 456.87 180.52 P
3019: -0.23 (ing routine. When a routine is called, its acti) 120.87 166.52 P
3020: -0.23 (v) 331.34 166.52 P
3021: -0.23 (ation frame is pushed onto the) 337.04 166.52 P
3022: 0.19 (stack. When a routine e) 120.87 152.52 P
3023: 0.19 (xits, its acti) 234.41 152.52 P
3024: 0.19 (v) 289.5 152.52 P
3025: 0.19 (ation frame is popped of) 295.2 152.52 P
3026: 0.19 (f the stack. At) 412.97 152.52 P
3027: 0.52 (an) 120.87 138.52 P
3028: 0.52 (y gi) 132.02 138.52 P
3029: 0.52 (v) 150.57 138.52 P
3030: 0.52 (en time, only the routine of the topmost frame is e) 156.39 138.52 P
3031: 0.52 (x) 401.7 138.52 P
3032: 0.52 (ecuting. A par-) 407.52 138.52 P
3033: 0 0 0 1 0 0 0 K
3034: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
3035: [/Dest/P.3/DEST FmPD2
3036: 136 365/M9.16190.1Heading.2.Description.of.Dijkstra.amd.Me FmPA
3037: 136 365/I1.1007245 FmPA
3038: [/Rect[158 492 164 505]/Border[0 0 0]/Page 3/View[/XYZ null 136 365 FmDC exch pop null]/LNK FmPD
3039: [/Rect[158 478 164 491]/Border[0 0 0]/Page 5/View[/XYZ null 136 435 FmDC exch pop null]/LNK FmPD
3040: [/Rect[475 478 481 491]/Border[0 0 0]/Page 7/View[/XYZ null 136 365 FmDC exch pop null]/LNK FmPD
3041: [/Rect[403 450 409 463]/Border[0 0 0]/Page 11/View[/XYZ null 136 771 FmDC exch pop null]/LNK FmPD
3042: [/Rect[189 176 223 189]/Border[0 0 0]/Page 43/View[/XYZ null 121 746 FmDC exch pop null]/LNK FmPD
3043: [/Rect[399 422 405 435]/Border[0 0 0]/Page 15/View[/XYZ null 136 351 FmDC exch pop null]/LNK FmPD
3044: [/Rect[202 520 263 533]/Border[0 0 0]/Page 41/View[/XYZ null 121 612 FmDC exch pop null]/LNK FmPD
3045: [/Rect[263 520 315 533]/Border[0 0 0]/Page 42/View[/XYZ null 121 746 FmDC exch pop null]/LNK FmPD
3046: [/Rect[361 576 413 589]/Border[0 0 0]/Page 42/View[/XYZ null 121 746 FmDC exch pop null]/LNK FmPD
3047: [/Rect[357 394 363 407]/Border[0 0 0]/Page 20/View[/XYZ null 136 491 FmDC exch pop null]/LNK FmPD
3048: [/Rect[251 338 257 351]/Border[0 0 0]/Page 23/View[/XYZ null 136 334 FmDC exch pop null]/LNK FmPD
3049: [/Rect[252 268 258 281]/Border[0 0 0]/Page 27/View[/XYZ null 136 816 FmDC exch pop null]/LNK FmPD
3050: [/Rect[321 254 333 267]/Border[0 0 0]/Page 30/View[/XYZ null 142 627 FmDC exch pop null]/LNK FmPD
3051: [/Rect[308 240 320 253]/Border[0 0 0]/Page 39/View[/XYZ null 142 715 FmDC exch pop null]/LNK FmPD
3052: [/Rect[315 520 350 533]/Border[0 0 0]/Page 43/View[/XYZ null 121 676 FmDC exch pop null]/LNK FmPD
3053: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
3054: FMENDPAGE
3055: %%EndPage: "3" 3
3056: %%Page: "4" 4
3057: 595.28 839.05 0 FMBEGINPAGE
3058: [0 0 0 1 0 0 0]
3059: [ 0 1 1 0 1 0 0]
3060: [ 1 0 1 0 0 1 0]
3061: [ 1 1 0 0 0 0 1]
3062: [ 1 0 0 0 0 1 1]
3063: [ 0 1 0 0 1 0 1]
3064: [ 0 0 1 0 1 1 0]
3065: 7 FrameSetSepColors
3066: FrameNoSep
3067: 0 0 0 1 0 0 0 K
3068: 0 0 0 1 0 0 0 K
3069: 0 0 0 1 0 0 0 K
3070: 90 959/G837264 FmPA
3071: 0 12 Q
3072: 0 X
3073: 0 0 0 1 0 0 0 K
3074: (4) 292.29 93.77 T
3075: 40 238/G837268 FmPA
3076: 1.01 (ent routine, suspended during the e) 120.87 664.52 P
3077: 1.01 (x) 293.71 664.52 P
3078: 1.01 (ecution of its child, continues e) 299.53 664.52 P
3079: 1.01 (x) 454.39 664.52 P
3080: 1.01 (ecu-) 460.21 664.52 P
3081: (tion after the return of its child.) 120.87 650.52 T
3082: -0.04 (As an e) 137.88 636.52 P
3083: -0.04 (xample, Figure) 173.6 636.52 P
3084: -0.04 (1b\051 sho) 249.22 636.52 P
3085: -0.04 (ws snapshots of the stack during the e) 284.54 636.52 P
3086: -0.04 (x) 465.72 636.52 P
3087: -0.04 (e-) 471.54 636.52 P
3088: 121 780/G1007595 FmPA
3089: 0.5 (cution of the routine) 120.87 622.52 P
3090: 3 F
3091: 1.2 (d) 223.53 622.52 P
3092: 0 F
3093: 0.5 ( of the pseudocode in Figure) 230.73 622.52 P
3094: 0.5 (1a\051. If the state within) 373.21 622.52 P
3095: 0.5 (an e) 120.87 608.52 P
3096: 0.5 (x) 140.85 608.52 P
3097: 0.5 (ecuting routine is ignored, then the snapshots sho) 146.67 608.52 P
3098: 0.5 (w each distinguish-) 386.53 608.52 P
3099: 0.35 (able state in the e) 120.87 594.52 P
3100: 0.35 (x) 205.41 594.52 P
3101: 0.35 (ecution. F) 211.23 594.52 P
3102: 0.35 (or simplicity) 259.41 594.52 P
3103: 0.35 (, the ar) 319.99 594.52 P
3104: 0.35 (guments and bodies of the) 353.46 594.52 P
3105: (routines are elided.) 120.87 580.52 T
3106: 1.27 (In general, an e) 137.88 237.2 P
3107: 1.27 (x) 215.47 237.2 P
3108: 1.27 (ecuting routine is supposed to ef) 221.29 237.2 P
3109: 1.27 (\336ciently produce its) 382.99 237.2 P
3110: 121 381/G1009103 FmPA
3111: 2.84 (output and other e) 120.87 223.2 P
3112: 2.84 (xternal ef) 216.2 223.2 P
3113: 2.84 (fects. An unstructured e) 264.39 223.2 P
3114: 2.84 (x) 387.37 223.2 P
3115: 2.84 (ecution has more) 393.19 223.2 P
3116: -0.06 (de) 120.87 209.2 P
3117: -0.06 (grees of freedom than a structured e) 132.02 209.2 P
3118: -0.06 (x) 304.06 209.2 P
3119: -0.06 (ecution and thus allo) 309.88 209.2 P
3120: -0.06 (ws a more ef) 409.04 209.2 P
3121: -0.06 (\336-) 470.19 209.2 P
3122: 0.07 (cient e) 120.87 195.2 P
3123: 0.07 (x) 152.42 195.2 P
3124: 0.07 (ecution. Thus a routine has an unstructured e) 158.24 195.2 P
3125: 0.07 (x) 373.86 195.2 P
3126: 0.07 (ecution. In general, a) 379.68 195.2 P
3127: -0.25 (routine need not ha) 120.87 181.2 P
3128: -0.25 (v) 212.2 181.2 P
3129: -0.25 (e a structured e) 218.02 181.2 P
3130: -0.25 (x) 290.08 181.2 P
3131: -0.25 (ecution since there is no e) 295.9 181.2 P
3132: -0.25 (xternal inter-) 418.79 181.2 P
3133: (est in the internal e) 120.87 167.2 T
3134: (x) 212.01 167.2 T
3135: (ecution of a routine.) 217.83 167.2 T
3136: 1.21 (A structured e) 137.88 153.2 P
3137: 1.21 (x) 208.1 153.2 P
3138: 1.21 (ecution mo) 213.91 153.2 P
3139: 1.21 (v) 268.61 153.2 P
3140: 1.21 (es from one structured state to another) 274.43 153.2 P
3141: 1.21 (. A) 464.99 153.2 P
3142: 121 297/G1008094 FmPA
3143: 0.28 (structured state clearly describes the items of the state and their dependen-) 120.87 139.2 P
3144: 0 0 0 1 0 0 0 K
3145: 0 0 0 1 0 0 0 K
3146: 0 0 0 1 0 0 0 K
3147: 121 708/G1009003 FmPA
3148: 0 0 0 1 0 0 0 K
3149: 1 F
3150: (a\051) 123.87 553.52 T
3151: 0 0 0 1 0 0 0 K
3152: 121 697/G1009004 FmPA
3153: 0 0 0 1 0 0 0 K
3154: 3 11 Q
3155: (a\050...\051 { ... }) 126.7 540.18 T
3156: 0 0 0 1 0 0 0 K
3157: 121 684/G1009005 FmPA
3158: 0 0 0 1 0 0 0 K
3159: (b\050...\051 { ... }) 126.7 526.18 T
3160: 0 0 0 1 0 0 0 K
3161: 121 670/G1009006 FmPA
3162: 0 0 0 1 0 0 0 K
3163: (c\050...\051 { ... a\050...\051 ... }) 126.7 512.18 T
3164: 0 0 0 1 0 0 0 K
3165: 121 656/G1009007 FmPA
3166: 0 0 0 1 0 0 0 K
3167: (d\050...\051 { ... b\050...\051 ... c\050...\051 ... }) 126.7 498.18 T
3168: 0 0 0 1 0 0 0 K
3169: 121 642/G1009008 FmPA
3170: 0 0 0 1 0 0 0 K
3171: 0 0 0 1 0 0 0 K
3172: 121 631/G1009009 FmPA
3173: 0 0 0 1 0 0 0 K
3174: 121 533/G1009056 FmPA
3175: 0 0 0 1 0 0 0 K
3176: 0 0 0 1 0 0 0 K
3177: 0 0 0 1 0 0 0 K
3178: 121 434/G1009096 FmPA
3179: 0 0 0 1 0 0 0 K
3180: 121 427/G1009098 FmPA
3181: 0 12 Q
3182: (Figure) 123.87 273.2 T
3183: (1) 158.2 273.2 T
3184: (a\051 Pseudocode for the routine) 172.06 273.2 T
3185: 3 F
3186: (d) 316.36 273.2 T
3187: 0 F
3188: ( executed using a stack of:) 323.56 273.2 T
3189: 121 417/G1009100 FmPA
3190: (b\051 Activation frames. c\051 Task frames.) 172.06 259.2 T
3191: 120.87 568.27 120.87 255.45 2 L
3192: V
3193: 0.5 H
3194: 0 Z
3195: N
3196: 480.87 568.27 480.87 255.45 2 L
3197: V
3198: N
3199: 120.62 568.52 481.12 568.52 2 L
3200: V
3201: N
3202: 120.62 484.51 481.12 484.51 2 L
3203: V
3204: 2 H
3205: N
3206: 120.62 386.36 481.12 386.36 2 L
3207: V
3208: N
3209: 120.62 288.2 481.12 288.2 2 L
3210: V
3211: 0.5 H
3212: N
3213: 120.62 255.2 481.12 255.2 2 L
3214: V
3215: N
3216: 120.87 386.36 480.87 484.51 C
3217: 0 0 0 1 0 0 0 K
3218: 120.87 393.36 480.87 484.51 C
3219: 0 0 0 1 0 0 0 K
3220: 1 12 Q
3221: 0 X
3222: 0 0 0 1 0 0 0 K
3223: (b\051 Activation Frames) 124.5 469.54 T
3224: 166.22 427.14 180.4 441.31 R
3225: 5 X
3226: V
3227: 0.5 H
3228: 2 Z
3229: 0 X
3230: N
3231: 208.74 427.14 222.92 441.31 R
3232: 5 X
3233: V
3234: 0 X
3235: N
3236: 3 11 Q
3237: (d) 212.53 430.77 T
3238: 0 0 0 1 0 0 0 K
3239: 0 0 0 1 0 0 0 K
3240: 208.74 441.31 222.92 455.49 R
3241: 5 X
3242: V
3243: 0 X
3244: N
3245: (b) 212.53 444.94 T
3246: 0 0 0 1 0 0 0 K
3247: 0 0 0 1 0 0 0 K
3248: 251.26 427.14 265.43 441.31 R
3249: 5 X
3250: V
3251: 0 X
3252: N
3253: (d) 255.05 430.77 T
3254: 293.78 427.14 307.96 441.31 R
3255: 5 X
3256: V
3257: 0 X
3258: N
3259: (d) 297.57 430.77 T
3260: 0 0 0 1 0 0 0 K
3261: 0 0 0 1 0 0 0 K
3262: 293.78 441.31 307.96 455.49 R
3263: 5 X
3264: V
3265: 0 X
3266: N
3267: (c) 297.57 444.94 T
3268: 0 0 0 1 0 0 0 K
3269: 0 0 0 1 0 0 0 K
3270: 378.82 427.14 392.99 441.31 R
3271: 5 X
3272: V
3273: 0 X
3274: N
3275: (d) 382.61 430.77 T
3276: 0 0 0 1 0 0 0 K
3277: 0 0 0 1 0 0 0 K
3278: 378.82 441.31 392.99 455.49 R
3279: 5 X
3280: V
3281: 0 X
3282: N
3283: (c) 382.61 444.94 T
3284: 0 0 0 1 0 0 0 K
3285: 0 0 0 1 0 0 0 K
3286: 336.3 427.14 350.47 441.31 R
3287: 5 X
3288: V
3289: 0 X
3290: N
3291: (d) 340.09 430.77 T
3292: 0 0 0 1 0 0 0 K
3293: 0 0 0 1 0 0 0 K
3294: 336.3 441.31 350.47 455.49 R
3295: 5 X
3296: V
3297: 0 X
3298: N
3299: (c) 340.09 444.94 T
3300: 0 0 0 1 0 0 0 K
3301: 0 0 0 1 0 0 0 K
3302: 336.3 455.49 350.47 469.66 R
3303: 5 X
3304: V
3305: 0 X
3306: N
3307: (a) 340.09 459.11 T
3308: 0 0 0 1 0 0 0 K
3309: 0 0 0 1 0 0 0 K
3310: 421.34 427.14 435.51 441.31 R
3311: 5 X
3312: V
3313: 0 X
3314: N
3315: (d) 425.13 430.77 T
3316: 0 0 0 1 0 0 0 K
3317: 0 0 0 1 0 0 0 K
3318: (d) 170.01 430.77 T
3319: 90 450 1.5 1.5 348.71 410.81 G
3320: 350.21 410.81 350.21 414.61 363.46 410.81 350.21 407.02 4 Y
3321: 3 H
3322: 0 Z
3323: N
3324: 350.21 410.81 350.21 414.61 363.46 410.81 350.21 407.02 4 Y
3325: V
3326: 232.84 410.81 348.71 410.81 2 L
3327: 2 Z
3328: N
3329: 0 12 Q
3330: (T) 288.41 396.64 T
3331: (ime) 295.32 396.64 T
3332: 0 0 0 1 0 0 0 K
3333: 120.87 386.36 480.87 484.51 C
3334: 0 -0.71 595.28 839.76 C
3335: 120.87 288.2 480.87 386.36 C
3336: 120.87 295.2 480.87 386.36 C
3337: 0 0 0 1 0 0 0 K
3338: 1 12 Q
3339: 0 X
3340: 0 0 0 1 0 0 0 K
3341: (c\051 Task Frames) 124.5 371.39 T
3342: 187.48 328.98 201.65 343.16 R
3343: 5 X
3344: V
3345: 0.5 H
3346: 2 Z
3347: 0 X
3348: N
3349: 230 328.98 244.18 343.16 R
3350: N
3351: 3 11 Q
3352: (c) 233.79 332.61 T
3353: 0 0 0 1 0 0 0 K
3354: 0 0 0 1 0 0 0 K
3355: 230 343.16 244.18 357.33 R
3356: N
3357: (b) 233.79 346.78 T
3358: 0 0 0 1 0 0 0 K
3359: 0 0 0 1 0 0 0 K
3360: 442.6 328.98 456.77 343.16 R
3361: 5 X
3362: V
3363: 0 X
3364: N
3365: (a) 446.39 332.61 T
3366: 0 0 0 1 0 0 0 K
3367: 0 0 0 1 0 0 0 K
3368: (d) 191.27 332.61 T
3369: 90 450 1.5 1.5 348.71 312.66 G
3370: 350.21 312.66 350.21 316.46 363.46 312.66 350.21 308.86 4 Y
3371: 3 H
3372: 0 Z
3373: N
3374: 350.21 312.66 350.21 316.46 363.46 312.66 350.21 308.86 4 Y
3375: V
3376: 232.84 312.66 348.71 312.66 2 L
3377: 2 Z
3378: N
3379: 0 12 Q
3380: (T) 288.41 298.48 T
3381: (ime) 295.32 298.48 T
3382: 144.96 328.98 159.14 343.16 R
3383: 0.5 H
3384: N
3385: 3 11 Q
3386: (d) 148.75 332.61 T
3387: 0 0 0 1 0 0 0 K
3388: 0 0 0 1 0 0 0 K
3389: 272.52 328.98 286.7 343.16 R
3390: N
3391: (c) 276.31 332.61 T
3392: 0 0 0 1 0 0 0 K
3393: 0 0 0 1 0 0 0 K
3394: 272.52 343.16 286.7 357.33 R
3395: 5 X
3396: V
3397: 0 X
3398: N
3399: (b) 276.31 346.78 T
3400: 0 0 0 1 0 0 0 K
3401: 0 0 0 1 0 0 0 K
3402: 400.08 328.98 414.25 343.16 R
3403: N
3404: (a) 403.87 332.61 T
3405: 0 0 0 1 0 0 0 K
3406: 0 0 0 1 0 0 0 K
3407: 315.04 328.98 329.21 343.16 R
3408: N
3409: (c) 318.83 332.61 T
3410: 0 0 0 1 0 0 0 K
3411: 0 0 0 1 0 0 0 K
3412: 357.56 328.98 371.73 343.16 R
3413: 5 X
3414: V
3415: 0 X
3416: N
3417: (c) 361.35 332.61 T
3418: 0 0 0 1 0 0 0 K
3419: 120.87 288.2 480.87 386.36 C
3420: 0 -0.71 595.28 839.76 C
3421: 0 0 0 1 0 0 0 K
3422: 0 0 0 1 0 0 0 K
3423: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
3424: [/Dest/P.4/DEST FmPD2
3425: 164 425/M9.53156.Figure.Figure40.a.Ia.code.of.a.simple.application.definition.b.The.execution.of.the.applica FmPA
3426: 164 425/I1.1009099 FmPA
3427: [/Rect[215 632 255 645]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
3428: [/Rect[339 618 379 631]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
3429: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
3430: FMENDPAGE
3431: %%EndPage: "4" 4
3432: %%Page: "5" 5
3433: 595.28 839.05 0 FMBEGINPAGE
3434: [0 0 0 1 0 0 0]
3435: [ 0 1 1 0 1 0 0]
3436: [ 1 0 1 0 0 1 0]
3437: [ 1 1 0 0 0 0 1]
3438: [ 1 0 0 0 0 1 1]
3439: [ 0 1 0 0 1 0 1]
3440: [ 0 0 1 0 1 1 0]
3441: 7 FrameSetSepColors
3442: FrameNoSep
3443: 0 0 0 1 0 0 0 K
3444: 0 0 0 1 0 0 0 K
3445: 0 0 0 1 0 0 0 K
3446: 90 959/G837264 FmPA
3447: 0 12 Q
3448: 0 X
3449: 0 0 0 1 0 0 0 K
3450: (5) 292.29 93.77 T
3451: 40 238/G837268 FmPA
3452: 0.17 (cies. Since a structured e) 120.87 664.52 P
3453: 0.17 (x) 240.32 664.52 P
3454: 0.17 (ecution clearly describes the e) 246.14 664.52 P
3455: 0.17 (x) 391.25 664.52 P
3456: 0.17 (ecution, an e) 397.07 664.52 P
3457: 0.17 (xter-) 458.2 664.52 P
3458: 4.99 (nal interest is better serv) 120.87 650.52 P
3459: 4.99 (ed by a structured e) 257.97 650.52 P
3460: 4.99 (x) 371.74 650.52 P
3461: 4.99 (ecution than by an) 377.56 650.52 P
3462: (unstructured e) 120.87 636.52 T
3463: (x) 189 636.52 T
3464: (ecution.) 194.82 636.52 T
3465: 2.44 (The internal state of an e) 137.88 622.52 P
3466: 2.44 (x) 268.85 622.52 P
3467: 2.44 (ecuting routine is gi) 274.67 622.52 P
3468: 2.44 (v) 377.35 622.52 P
3469: 2.44 (en by an acti) 383.17 622.52 P
3470: 2.44 (v) 451.16 622.52 P
3471: 2.44 (ation) 456.86 622.52 P
3472: 121 766/G1008063 FmPA
3473: 0.7 (frame. It includes the state of local v) 120.87 608.52 P
3474: 0.7 (ariables and the program counter) 300.75 608.52 P
3475: 0.7 (. As) 460.83 608.52 P
3476: -0.09 (described abo) 120.87 594.52 P
3477: -0.09 (v) 186.91 594.52 P
3478: -0.09 (e, the state generally is unstructured. F) 192.73 594.52 P
3479: -0.09 (or e) 377.33 594.52 P
3480: -0.09 (xample, an analy-) 395.39 594.52 P
3481: -0.16 (sis might be required to determine the li) 120.87 580.52 P
3482: -0.16 (v) 311.14 580.52 P
3483: -0.16 (e v) 316.96 580.52 P
3484: -0.16 (ariables. Dead v) 330.83 580.52 P
3485: -0.16 (ariables are not) 407.86 580.52 P
3486: 0.23 (items of the state. Thus an acti) 120.87 566.52 P
3487: 0.23 (v) 268.28 566.52 P
3488: 0.23 (ation frame might not e) 273.98 566.52 P
3489: 0.23 (v) 387.27 566.52 P
3490: 0.23 (en clearly identify) 393.08 566.52 P
3491: 1.65 (the items of the state, ne) 120.87 552.52 P
3492: 1.65 (v) 245.49 552.52 P
3493: 1.65 (er mind their dependencies. In Figure) 251.31 552.52 P
3494: 1.65 (1b\051, the) 442.55 552.52 P
3495: 1.73 (acti) 120.87 538.52 P
3496: 1.73 (v) 137.9 538.52 P
3497: 1.73 (ation frames are shaded in order to illustrate their unstructured and) 143.6 538.52 P
3498: (hence opaque nature.) 120.87 524.52 T
3499: -0.08 (In the current con) 137.88 510.51 P
3500: -0.08 (v) 222.13 510.51 P
3501: -0.08 (entional e) 227.95 510.51 P
3502: -0.08 (x) 274.68 510.51 P
3503: -0.08 (ecution of routines, the state of an e) 280.5 510.51 P
3504: -0.08 (x) 451.05 510.51 P
3505: -0.08 (ecut-) 456.87 510.51 P
3506: 121 654/G1008029 FmPA
3507: 0.51 (ing application is gi) 120.87 496.51 P
3508: 0.51 (v) 217.09 496.51 P
3509: 0.51 (en by a stack of acti) 222.91 496.51 P
3510: 0.51 (v) 320.78 496.51 P
3511: 0.51 (ation frames. Since each acti) 326.48 496.51 P
3512: 0.51 (v) 465.84 496.51 P
3513: 0.51 (a-) 471.54 496.51 P
3514: -0.06 (tion frame is unstructured, the current con) 120.87 482.51 P
3515: -0.06 (v) 321.65 482.51 P
3516: -0.06 (entional e) 327.48 482.51 P
3517: -0.06 (x) 374.23 482.51 P
3518: -0.06 (ecution of routines is) 380.05 482.51 P
3519: (an unstructured e) 120.87 468.51 T
3520: (x) 203.33 468.51 T
3521: (ecution.) 209.15 468.51 T
3522: -0.13 (F) 137.88 454.51 P
3523: -0.13 (or an e) 144.37 454.51 P
3524: -0.13 (xample of the unstructured e) 176.58 454.51 P
3525: -0.13 (x) 313.18 454.51 P
3526: -0.13 (ecution, assume that the routine) 319 454.51 P
3527: 3 F
3528: -0.31 (d) 473.66 454.51 P
3529: 121 598/G1008324 FmPA
3530: 0 F
3531: 0.68 (in Figure) 120.87 440.51 P
3532: 0.68 (1a\051 has no code after calling the routine) 168.22 440.51 P
3533: 3 F
3534: 1.63 (c) 366.94 440.51 P
3535: 0 F
3536: 0.68 (. Then in the last four) 374.14 440.51 P
3537: 1.62 (snapshots of Figure) 120.87 426.51 P
3538: 1.62 (1b\051, the entire frame) 221.11 426.51 P
3539: 3 F
3540: 3.89 (d) 328.56 426.51 P
3541: 0 F
3542: 1.62 ( is dead and irrele) 335.76 426.51 P
3543: 1.62 (v) 427.25 426.51 P
3544: 1.62 (ant to the) 432.95 426.51 P
3545: 2.67 (state of the e) 120.87 412.51 P
3546: 2.67 (x) 189.69 412.51 P
3547: 2.67 (ecution. In other w) 195.51 412.51 P
3548: 2.67 (ords, the e) 294.06 412.51 P
3549: 2.67 (x) 348.88 412.51 P
3550: 2.67 (ecution does not pro) 354.7 412.51 P
3551: 2.67 (vide) 460.2 412.51 P
3552: 0.11 (proper tail calls [RABBIT]. This lack of proper tail calling is one aspect of) 120.87 398.51 P
3553: (the unstructured nature of the current con) 120.87 384.51 T
3554: (v) 319 384.51 T
3555: (entional e) 324.82 384.51 T
3556: (x) 371.63 384.51 T
3557: (ecution of routines.) 377.45 384.51 T
3558: 0.05 (External interests in the application e) 137.88 370.51 P
3559: 0.05 (x) 316.27 370.51 P
3560: 0.05 (ecution are not well serv) 322.09 370.51 P
3561: 0.05 (ed by an) 440.1 370.51 P
3562: 121 514/G1008465 FmPA
3563: 0.41 (unstructured e) 120.87 356.51 P
3564: 0.41 (x) 189.41 356.51 P
3565: 0.41 (ecution. F) 195.23 356.51 P
3566: 0.41 (or e) 243.45 356.51 P
3567: 0.41 (xample, a stack of acti) 262 356.51 P
3568: 0.41 (v) 370.96 356.51 P
3569: 0.41 (ation frames does not) 376.66 356.51 P
3570: -0.09 (easily allo) 120.87 342.51 P
3571: -0.09 (w an e) 169.48 342.51 P
3572: -0.09 (xternal system to pro) 200.44 342.51 P
3573: -0.09 (vide an application with a transparent) 300.99 342.51 P
3574: 0.63 (reliable, distrib) 120.87 328.51 P
3575: 0.63 (uted, heterogeneous, adapti) 193.92 328.51 P
3576: 0.63 (v) 326.18 328.51 P
3577: 0.63 (e, dynamic, real-time, parallel,) 332.01 328.51 P
3578: (secure or other e) 120.87 314.52 T
3579: (x) 200.32 314.52 T
3580: (ecution.) 206.14 314.52 T
3581: 1 F
3582: (3 T) 120.87 283.52 T
3583: (ask Frames) 142.77 283.52 T
3584: 121 427/G1007434 FmPA
3585: 0 F
3586: 1.24 (F) 120.87 264.52 P
3587: 1.24 (or the e) 127.36 264.52 P
3588: 1.24 (x) 165.66 264.52 P
3589: 1.24 (ecution of routines, task frames are an alternati) 171.48 264.52 P
3590: 1.24 (v) 405.16 264.52 P
3591: 1.24 (e to acti) 410.98 264.52 P
3592: 1.24 (v) 451.16 264.52 P
3593: 1.24 (ation) 456.86 264.52 P
3594: 121 408/G1008356 FmPA
3595: (frames. A task frame is the call of a routine to be e) 120.87 250.52 T
3596: (x) 363.63 250.52 T
3597: (ecuted.) 369.45 250.52 T
3598: 0.49 (Using a stack of task frames, routines e) 137.88 236.52 P
3599: 0.49 (x) 329.74 236.52 P
3600: 0.49 (ecute as follo) 335.56 236.52 P
3601: 0.49 (ws. The topmost) 400.22 236.52 P
3602: 121 380/G1008481 FmPA
3603: 0.25 (task frame is popped from the stack and the call of the routine is e) 120.87 222.52 P
3604: 0.25 (x) 440.72 222.52 P
3605: 0.25 (ecuted.) 446.54 222.52 P
3606: 1.42 (If the routine calls other routines, those task frames are pushed onto the) 120.87 208.52 P
3607: 1.5 (stack. In other w) 120.87 194.52 P
3608: 1.5 (ords, in its e) 205.24 194.52 P
3609: 1.5 (x) 268.24 194.52 P
3610: 1.5 (ecution a task frame can replace itself by) 274.06 194.52 P
3611: 2.58 (other task frames. Thus the ne) 120.87 180.52 P
3612: 2.58 (w topmost frame is topmost among the) 278.08 180.52 P
3613: 1.17 (replacement frames; otherwise it is the frame belo) 120.87 166.52 P
3614: 1.17 (w the original topmost) 369.02 166.52 P
3615: (frame. The procedure repeats for the ne) 120.87 152.52 T
3616: (w topmost frame.) 310.16 152.52 T
3617: 0 0 0 1 0 0 0 K
3618: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
3619: [/Dest/P.5/DEST FmPD2
3620: 136 435/M9.23440.1Heading.3.Task.Stack FmPA
3621: 136 435/I1.1007446 FmPA
3622: [/Rect[408 548 449 561]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
3623: [/Rect[134 436 174 449]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
3624: [/Rect[187 422 227 435]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
3625: [/Rect[199 394 251 407]/Border[0 0 0]/Page 42/View[/XYZ null 121 480 FmDC exch pop null]/LNK FmPD
3626: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
3627: FMENDPAGE
3628: %%EndPage: "5" 5
3629: %%Page: "6" 6
3630: 595.28 839.05 0 FMBEGINPAGE
3631: [0 0 0 1 0 0 0]
3632: [ 0 1 1 0 1 0 0]
3633: [ 1 0 1 0 0 1 0]
3634: [ 1 1 0 0 0 0 1]
3635: [ 1 0 0 0 0 1 1]
3636: [ 0 1 0 0 1 0 1]
3637: [ 0 0 1 0 1 1 0]
3638: 7 FrameSetSepColors
3639: FrameNoSep
3640: 0 0 0 1 0 0 0 K
3641: 0 0 0 1 0 0 0 K
3642: 0 0 0 1 0 0 0 K
3643: 90 959/G837264 FmPA
3644: 0 12 Q
3645: 0 X
3646: 0 0 0 1 0 0 0 K
3647: (6) 292.29 93.77 T
3648: 40 238/G837268 FmPA
3649: 0.02 (As an e) 137.88 664.52 P
3650: 0.02 (xample, Figure) 173.72 664.52 P
3651: 0.02 (1c\051 sho) 249.4 664.52 P
3652: 0.02 (ws snapshots of the stack during the e) 284.11 664.52 P
3653: 0.02 (x) 465.72 664.52 P
3654: 0.02 (e-) 471.54 664.52 P
3655: 121 808/G1008357 FmPA
3656: 0.5 (cution of the routine) 120.87 650.52 P
3657: 3 F
3658: 1.2 (d) 223.53 650.52 P
3659: 0 F
3660: 0.5 ( of the pseudocode in Figure) 230.73 650.52 P
3661: 0.5 (1a\051. If the state within) 373.21 650.52 P
3662: 0.5 (an e) 120.87 636.52 P
3663: 0.5 (x) 140.85 636.52 P
3664: 0.5 (ecuting routine is ignored, then the snapshots sho) 146.67 636.52 P
3665: 0.5 (w each distinguish-) 386.53 636.52 P
3666: (able state in the e) 120.87 622.52 T
3667: (x) 204 622.52 T
3668: (ecution.) 209.82 622.52 T
3669: 0.69 (In Figure) 137.88 608.52 P
3670: 0.69 (1c\051, initially on the stack is the task frame for the call to the) 185.9 608.52 P
3671: 121 752/G1008382 FmPA
3672: 0.09 (routine) 120.87 594.52 P
3673: 3 F
3674: 0.23 (d) 157.96 594.52 P
3675: 0 F
3676: 0.09 (. Since it is the topmost frame,) 165.16 594.52 P
3677: 3 F
3678: 0.23 (d) 315.48 594.52 P
3679: 0 F
3680: 0.09 ( e) 322.68 594.52 P
3681: 0.09 (x) 330.93 594.52 P
3682: 0.09 (ecutes and is popped from the) 336.75 594.52 P
3683: 0.96 (stack. Since) 120.87 580.52 P
3684: 3 F
3685: 2.31 (d) 183.12 580.52 P
3686: 0 F
3687: 0.96 ( calls) 190.32 580.52 P
3688: 3 F
3689: 2.31 (b) 220.23 580.52 P
3690: 0 F
3691: 0.96 ( and) 227.43 580.52 P
3692: 3 F
3693: 2.31 (c) 252.68 580.52 P
3694: 0 F
3695: 0.96 (, their task frames are pushed onto the stack.) 259.88 580.52 P
3696: 0.28 (Then) 120.87 566.52 P
3697: 3 F
3698: 0.67 (b) 148.81 566.52 P
3699: 0 F
3700: 0.28 ( e) 156.01 566.52 P
3701: 0.28 (x) 164.44 566.52 P
3702: 0.28 (ecutes and its task frame is popped from the stack. In the e) 170.26 566.52 P
3703: 0.28 (x) 454.39 566.52 P
3704: 0.28 (ecu-) 460.21 566.52 P
3705: 1.07 (tion of) 120.87 552.52 P
3706: 3 F
3707: 2.58 (c) 157.68 552.52 P
3708: 0 F
3709: 1.07 (, its task frame is replaced by one calling the routine) 164.88 552.52 P
3710: 3 F
3711: 2.58 (a) 430.65 552.52 P
3712: 0 F
3713: 1.07 (. Then) 437.85 552.52 P
3714: 3 F
3715: 2.58 (a) 473.66 552.52 P
3716: 0 F
3717: (e) 120.87 538.52 T
3718: (x) 126.02 538.52 T
3719: (ecutes and its task frame is popped from the stack.) 131.84 538.52 T
3720: 1.67 (An application e) 137.88 524.52 P
3721: 1.67 (x) 220.36 524.52 P
3722: 1.67 (ecuted using task frames has the same result when) 226.18 524.52 P
3723: 121 668/G1008426 FmPA
3724: 0.16 (e) 120.87 510.51 P
3725: 0.16 (x) 126.02 510.51 P
3726: 0.16 (ecuted using acti) 131.84 510.51 P
3727: 0.16 (v) 212.51 510.51 P
3728: 0.16 (ation frames. In other w) 218.21 510.51 P
3729: 0.16 (ords, the application de\336nition) 333.71 510.51 P
3730: 1.67 (is independent of its e) 120.87 496.51 P
3731: 1.67 (x) 232.69 496.51 P
3732: 1.67 (ecution. F) 238.51 496.51 P
3733: 1.67 (or e) 288 496.51 P
3734: 1.67 (xample, acti) 307.82 496.51 P
3735: 1.67 (v) 367.84 496.51 P
3736: 1.67 (ation frames and task) 373.54 496.51 P
3737: 0.03 (frames e) 120.87 482.51 P
3738: 0.03 (x) 161.69 482.51 P
3739: 0.03 (ecute routines in depth-\336rst order) 167.51 482.51 P
3740: 0.03 (. An) 326.92 482.51 P
3741: 0.03 (y input/output or other non-) 347.43 482.51 P
3742: -0.27 (local ef) 120.87 468.51 P
3743: -0.27 (fects of the routines thus ha) 155.95 468.51 P
3744: -0.27 (v) 286.67 468.51 P
3745: -0.27 (e the same order in both e) 292.49 468.51 P
3746: -0.27 (x) 414.65 468.51 P
3747: -0.27 (ecutions. An) 420.47 468.51 P
3748: 0.98 (application e) 120.87 454.51 P
3749: 0.98 (x) 183.32 454.51 P
3750: 0.98 (ecution using either or both e) 189.14 454.51 P
3751: 0.98 (x) 334.16 454.51 P
3752: 0.98 (ecutions has the same result.) 339.98 454.51 P
3753: 0.14 (Since the application e) 120.87 440.51 P
3754: 0.14 (x) 230.11 440.51 P
3755: 0.14 (ecution maintains the same result under either e) 235.93 440.51 P
3756: 0.14 (x) 465.72 440.51 P
3757: 0.14 (e-) 471.54 440.51 P
3758: 1.6 (cution, the e) 120.87 426.51 P
3759: 1.6 (x) 182.88 426.51 P
3760: 1.6 (ecution of routines using task frames introduces additional) 188.7 426.51 P
3761: (techniques for the implementation of a programming language.) 120.87 412.51 T
3762: 1.88 (Once started, a task e) 137.88 398.51 P
3763: 1.88 (x) 247.53 398.51 P
3764: 1.88 (ecutes to completion, without w) 253.35 398.51 P
3765: 1.88 (aiting or sus-) 414.43 398.51 P
3766: 121 542/G1008516 FmPA
3767: 3.39 (pending. In other w) 120.87 384.51 P
3768: 3.39 (ords, the e) 224.9 384.51 P
3769: 3.39 (x) 281.16 384.51 P
3770: 3.39 (ecution is nonblocking. This criterion) 286.98 384.51 P
3771: (de\336nes a task.) 120.87 370.51 T
3772: 0.84 (Thus in an e) 137.88 356.51 P
3773: 0.84 (x) 199.21 356.51 P
3774: 0.84 (ecution of routines using task frames, the e) 205.03 356.51 P
3775: 0.84 (x) 416.71 356.51 P
3776: 0.84 (ecution of a) 422.53 356.51 P
3777: 121 500/G1020580 FmPA
3778: -0.23 (child routine does not return to its parent. This is in contrast to an e) 120.87 342.51 P
3779: -0.23 (x) 439.71 342.51 P
3780: -0.23 (ecution) 445.53 342.51 P
3781: 0.94 (using acti) 120.87 328.51 P
3782: 0.94 (v) 167.85 328.51 P
3783: 0.94 (ation frames. A task frame thus does not allo) 173.54 328.51 P
3784: 0.94 (w a parent to use) 395.77 328.51 P
3785: 1.23 (the output of its child. This includes local items returned by the child as) 120.87 314.52 P
3786: (well as an) 120.87 300.52 T
3787: (y nonlocal ef) 168.68 300.52 T
3788: (fects of the child.) 231.03 300.52 T
3789: 0.01 (F) 137.88 286.52 P
3790: 0.01 (or e) 144.37 286.52 P
3791: 0.01 (xample, in routine) 162.53 286.52 P
3792: 3 F
3793: 0.03 (c) 253.23 286.52 P
3794: 0 F
3795: 0.01 ( of Figure) 260.43 286.52 P
3796: 0.01 (1a\051, the output of the call to routine) 310.78 286.52 P
3797: 121 430/G1008561 FmPA
3798: 3 F
3799: 1.68 (a) 120.87 272.52 P
3800: 0 F
3801: 0.7 ( is not used by the subsequent elided code. If this were not the case, the) 128.07 272.52 P
3802: 1.21 (routine) 120.87 258.52 P
3803: 3 F
3804: 2.89 (c) 159.07 258.52 P
3805: 0 F
3806: 1.21 ( easily could be automatically translated into conformance. The) 166.27 258.52 P
3807: -0.09 (of) 120.87 244.52 P
3808: -0.09 (fending code is replaced by calls to routines containing that code. F) 130.56 244.52 P
3809: -0.09 (or the) 453.3 244.52 P
3810: (routine) 120.87 230.52 T
3811: 3 F
3812: (c) 157.86 230.52 T
3813: 0 F
3814: (, the translation might be:) 165.06 230.52 T
3815: 3 F
3816: (h\050...\051 { ... }) 149.21 216.52 T
3817: 121 360/G1008428 FmPA
3818: (c\050...\051 { ... a\050...\051 h\050...\051 }) 149.21 202.52 T
3819: 121 346/G1008606 FmPA
3820: 0 F
3821: -0.1 (Routine) 120.87 188.52 P
3822: 3 F
3823: -0.23 (h) 161.77 188.52 P
3824: 0 F
3825: -0.1 ( contains the code dependent on the output of the call to) 168.98 188.52 P
3826: 3 F
3827: -0.23 (a) 439.1 188.52 P
3828: 0 F
3829: -0.1 (. Alter-) 446.3 188.52 P
3830: 121 332/G1008785 FmPA
3831: 0.78 (nati) 120.87 174.52 P
3832: 0.78 (v) 138.57 174.52 P
3833: 0.78 (ely) 144.39 174.52 P
3834: 0.78 (, instead of introducing the routine) 158.27 174.52 P
3835: 3 F
3836: 1.87 (h) 331.92 174.52 P
3837: 0 F
3838: 0.78 (, the original routine) 339.12 174.52 P
3839: 3 F
3840: 1.87 (c) 443.22 174.52 P
3841: 0 F
3842: 0.78 ( could) 450.42 174.52 P
3843: 0.43 (be e) 120.87 160.52 P
3844: 0.43 (x) 140.77 160.52 P
3845: 0.43 (ecuted using an acti) 146.59 160.52 P
3846: 0.43 (v) 242.55 160.52 P
3847: 0.43 (ation frame. The ability to ha) 248.25 160.52 P
3848: 0.43 (v) 390.12 160.52 P
3849: 0.43 (e task frames and) 395.94 160.52 P
3850: (acti) 120.87 146.52 T
3851: (v) 137.9 146.52 T
3852: (ation frames on the stack is described in section) 143.6 146.52 T
3853: (6.) 375.89 146.52 T
3854: 0 0 0 1 0 0 0 K
3855: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
3856: [/Dest/P.6/DEST FmPD2
3857: [/Rect[215 660 255 673]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
3858: [/Rect[339 646 379 659]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
3859: [/Rect[276 282 317 295]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
3860: [/Rect[152 604 192 617]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
3861: [/Rect[376 142 382 155]/Border[0 0 0]/Page 15/View[/XYZ null 136 351 FmDC exch pop null]/LNK FmPD
3862: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
3863: FMENDPAGE
3864: %%EndPage: "6" 6
3865: %%Page: "7" 7
3866: 595.28 839.05 0 FMBEGINPAGE
3867: [0 0 0 1 0 0 0]
3868: [ 0 1 1 0 1 0 0]
3869: [ 1 0 1 0 0 1 0]
3870: [ 1 1 0 0 0 0 1]
3871: [ 1 0 0 0 0 1 1]
3872: [ 0 1 0 0 1 0 1]
3873: [ 0 0 1 0 1 1 0]
3874: 7 FrameSetSepColors
3875: FrameNoSep
3876: 0 0 0 1 0 0 0 K
3877: 0 0 0 1 0 0 0 K
3878: 0 0 0 1 0 0 0 K
3879: 90 959/G837264 FmPA
3880: 0 12 Q
3881: 0 X
3882: 0 0 0 1 0 0 0 K
3883: (7) 292.29 93.77 T
3884: 40 238/G837268 FmPA
3885: 1.03 (As described in the pre) 137.88 664.52 P
3886: 1.03 (vious section for an e) 252.34 664.52 P
3887: 1.03 (x) 358.92 664.52 P
3888: 1.03 (ecution using acti) 364.74 664.52 P
3889: 1.03 (v) 451.16 664.52 P
3890: 1.03 (ation) 456.86 664.52 P
3891: 121 808/G1008786 FmPA
3892: 0.37 (frames, a routine has an unstructured e) 120.87 650.52 P
3893: 0.37 (x) 308.53 650.52 P
3894: 0.37 (ecution. This also holds true when) 314.35 650.52 P
3895: 0.62 (using task frames. Thus in Figure) 120.87 636.52 P
3896: 0.62 (1c\051 for task frames, as in Figure) 287.6 636.52 P
3897: 0.62 (1b\051 for) 447.26 636.52 P
3898: 1 (acti) 120.87 622.52 P
3899: 1 (v) 137.9 622.52 P
3900: 1 (ation frames, the frame of an e) 143.6 622.52 P
3901: 1 (x) 296.38 622.52 P
3902: 1 (ecuting routine is shaded in order to) 302.2 622.52 P
3903: (illustrate its unstructured and hence opaque nature.) 120.87 608.52 T
3904: 0.27 (In contrast to the e) 137.88 594.52 P
3905: 0.27 (x) 228.1 594.52 P
3906: 0.27 (ecution of a routine, the call of a routine is a single) 233.92 594.52 P
3907: 121 738/G1009117 FmPA
3908: 0.25 (structured state. A call, or equi) 120.87 580.52 P
3909: 0.25 (v) 269.45 580.52 P
3910: 0.25 (alently its task frame, consists of the name) 275.15 580.52 P
3911: 0.67 (of the routine and the ar) 120.87 566.52 P
3912: 0.67 (guments to the routine. In routine) 238.98 566.52 P
3913: 3 F
3914: 1.61 (d) 406.67 566.52 P
3915: 0 F
3916: 0.67 ( of Figure) 413.87 566.52 P
3917: 0.67 (1a\051) 465.54 566.52 P
3918: -0.01 (for e) 120.87 552.52 P
3919: -0.01 (xample, the call of routine) 143 552.52 P
3920: 3 F
3921: -0.03 (c) 272.25 552.52 P
3922: 0 F
3923: -0.01 ( might be) 279.45 552.52 P
3924: 3 F
3925: -0.03 (c\0507,v\051) 327.75 552.52 P
3926: 0 F
3927: -0.01 (. Then in the e) 370.95 552.52 P
3928: -0.01 (x) 439.71 552.52 P
3929: -0.01 (ecution) 445.53 552.52 P
3930: -0.23 (of Figure) 120.87 538.52 P
3931: -0.23 (1c\051, the contents of the task frame) 167.97 538.52 P
3932: 3 F
3933: -0.54 (c) 332.35 538.52 P
3934: 0 F
3935: -0.23 ( are the three items) 339.55 538.52 P
3936: 3 F
3937: -0.54 (c) 432.72 538.52 P
3938: 0 F
3939: -0.23 (,) 439.92 538.52 P
3940: 3 F
3941: -0.54 (7) 445.7 538.52 P
3942: 0 F
3943: -0.23 (,) 452.9 538.52 P
3944: 3 F
3945: -0.54 (v) 458.67 538.52 P
3946: 0 F
3947: -0.23 (. In) 465.09 538.52 P
3948: 1.13 (Figure) 120.87 524.52 P
3949: 1.13 (1c\051, the task frames are unshaded in order to illustrate their struc-) 155.2 524.52 P
3950: (tured and hence clear nature.) 120.87 510.51 T
3951: 0.65 (F) 137.88 496.51 P
3952: 0.65 (or e) 144.37 496.51 P
3953: 0.65 (xample, unlik) 163.16 496.51 P
3954: 0.65 (e an acti) 229.69 496.51 P
3955: 0.65 (v) 270.67 496.51 P
3956: 0.65 (ation frame, a task frame does not require) 276.37 496.51 P
3957: 121 640/G1009118 FmPA
3958: 0.09 (analysis in order to determine the li) 120.87 482.51 P
3959: 0.09 (v) 291.08 482.51 P
3960: 0.09 (e items. The routine and its ar) 296.9 482.51 P
3961: 0.09 (guments) 440.19 482.51 P
3962: 1.08 (generally are li) 120.87 468.51 P
3963: 1.08 (v) 194.71 468.51 P
3964: 1.08 (e. The declaration of the routine can state if the) 200.53 468.51 P
3965: 1.08 (y are not) 436.71 468.51 P
3966: ([Alternati) 120.87 454.51 T
3967: (v) 167.22 454.51 T
3968: (e].) 173.04 454.51 T
3969: 0.45 (In the alternati) 137.88 440.51 P
3970: 0.45 (v) 208.46 440.51 P
3971: 0.45 (e e) 214.27 440.51 P
3972: 0.45 (x) 228.2 440.51 P
3973: 0.45 (ecution of routines, the state of an e) 234.02 440.51 P
3974: 0.45 (x) 408.27 440.51 P
3975: 0.45 (ecuting appli-) 414.09 440.51 P
3976: 121 584/G1009246 FmPA
3977: 1.2 (cation is gi) 120.87 426.51 P
3978: 1.2 (v) 175.63 426.51 P
3979: 1.2 (en by stack of task frames. Each task frame is structured. In) 181.45 426.51 P
3980: -0.12 (addition, the dependencies between tasks are structured, as described in the) 120.87 412.51 P
3981: 0.37 (ne) 120.87 398.51 P
3982: 0.37 (xt section. Thus the alternati) 132.02 398.51 P
3983: 0.37 (v) 269.53 398.51 P
3984: 0.37 (e e) 275.35 398.51 P
3985: 0.37 (x) 289.2 398.51 P
3986: 0.37 (ecution of routines is a structured e) 295.02 398.51 P
3987: 0.37 (x) 465.72 398.51 P
3988: 0.37 (e-) 471.54 398.51 P
3989: -0.05 (cution. F) 120.87 384.51 P
3990: -0.05 (or e) 163.31 384.51 P
3991: -0.05 (xample, unlik) 181.41 384.51 P
3992: -0.05 (e the current con) 247.24 384.51 P
3993: -0.05 (v) 326.92 384.51 P
3994: -0.05 (entional e) 332.74 384.51 P
3995: -0.05 (x) 379.5 384.51 P
3996: -0.05 (ecution, the alterna-) 385.32 384.51 P
3997: (ti) 120.87 370.51 T
3998: (v) 127.24 370.51 T
3999: (e e) 133.06 370.51 T
4000: (x) 146.54 370.51 T
4001: (ecution pro) 152.36 370.51 T
4002: (vides proper tail calling.) 206.5 370.51 T
4003: 0.74 (A structured e) 137.88 356.51 P
4004: 0.74 (x) 207.16 356.51 P
4005: 0.74 (ecution mo) 212.98 356.51 P
4006: 0.74 (v) 267.21 356.51 P
4007: 0.74 (es from one structured state to another) 273.03 356.51 P
4008: 0.74 (. As) 460.79 356.51 P
4009: 121 500/G1009247 FmPA
4010: -0.11 (illustrated in Figure) 120.87 342.51 P
4011: -0.11 (1c\051, between the e) 218.31 342.51 P
4012: -0.11 (x) 305.09 342.51 P
4013: -0.11 (ecution of routines the stack of task) 310.91 342.51 P
4014: 0.49 (frames is in a structured state. The state within an e) 120.87 328.51 P
4015: 0.49 (x) 371.9 328.51 P
4016: 0.49 (ecuting routine is not) 377.72 328.51 P
4017: (of e) 120.87 314.52 T
4018: (xternal interest.) 139.01 314.52 T
4019: 2.49 (External interests in the application e) 137.88 300.52 P
4020: 2.49 (x) 328.47 300.52 P
4021: 2.49 (ecution are well serv) 334.29 300.52 P
4022: 2.49 (ed by a) 441.22 300.52 P
4023: 121 444/G1009255 FmPA
4024: 0.73 (structured e) 120.87 286.52 P
4025: 0.73 (x) 177.73 286.52 P
4026: 0.73 (ecution. F) 183.55 286.52 P
4027: 0.73 (or e) 232.1 286.52 P
4028: 0.73 (xample, a simple transparent parallel e) 250.97 286.52 P
4029: 0.73 (x) 439.71 286.52 P
4030: 0.73 (ecution) 445.53 286.52 P
4031: 0.78 (is outlined in section) 120.87 272.52 P
4032: 0.78 (10. Similarly) 225.88 272.52 P
4033: 0.78 (, tasks allo) 288.56 272.52 P
4034: 0.78 (w an e) 340.83 272.52 P
4035: 0.78 (xternal system to pro-) 373.53 272.52 P
4036: 0.66 (vide an application with a transparent reliable, distrib) 120.87 258.52 P
4037: 0.66 (uted, heterogeneous,) 381.22 258.52 P
4038: (adapti) 120.87 244.52 T
4039: (v) 149.9 244.52 T
4040: (e, dynamic, real-time, secure or other e) 155.72 244.52 T
4041: (x) 343.14 244.52 T
4042: (ecution [Di) 348.96 244.52 T
4043: (viding][TSIA].) 402.99 244.52 T
4044: 1 F
4045: (4 A TSIA Language) 120.87 213.52 T
4046: 121 357/G1007221 FmPA
4047: 0 F
4048: 0.1 (The pre) 120.87 194.52 P
4049: 0.1 (vious section introduced an application e) 157.66 194.52 P
4050: 0.1 (x) 354.3 194.52 P
4051: 0.1 (ecution in terms of tasks.) 360.12 194.52 P
4052: 121 338/G1009331 FmPA
4053: -0.02 (The e) 120.87 180.52 P
4054: -0.02 (x) 147.65 180.52 P
4055: -0.02 (ecution is a result of the T) 153.47 180.52 P
4056: -0.02 (ask System and Item Architecture \050TSIA\051,) 277.69 180.52 P
4057: -0.07 (a model for transparent application e) 120.87 166.52 P
4058: -0.07 (x) 296.65 166.52 P
4059: -0.07 (ecution. TSIA is described else) 302.47 166.52 P
4060: -0.07 (where) 451.55 166.52 P
4061: 0.44 ([Data\337o) 120.87 152.52 P
4062: 0.44 (w][TSIA]. In this presentation, a task is a call of a routine. In par-) 159.89 152.52 P
4063: 0 0 0 1 0 0 0 K
4064: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
4065: [/Dest/P.7/DEST FmPD2
4066: 136 365/M9.33054.1Heading.4.A.TSIA.Language FmPA
4067: 136 365/I1.1019825 FmPA
4068: [/Rect[253 632 294 645]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
4069: [/Rect[413 632 453 645]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
4070: [/Rect[431 562 472 575]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
4071: [/Rect[134 534 174 547]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
4072: [/Rect[121 520 161 533]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
4073: [/Rect[184 338 224 351]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
4074: [/Rect[121 148 173 161]/Border[0 0 0]/Page 42/View[/XYZ null 121 746 FmDC exch pop null]/LNK FmPD
4075: [/Rect[173 148 207 161]/Border[0 0 0]/Page 43/View[/XYZ null 121 676 FmDC exch pop null]/LNK FmPD
4076: [/Rect[121 450 182 463]/Border[0 0 0]/Page 41/View[/XYZ null 121 612 FmDC exch pop null]/LNK FmPD
4077: [/Rect[226 268 238 281]/Border[0 0 0]/Page 30/View[/XYZ null 142 627 FmDC exch pop null]/LNK FmPD
4078: [/Rect[387 240 438 253]/Border[0 0 0]/Page 42/View[/XYZ null 121 704 FmDC exch pop null]/LNK FmPD
4079: [/Rect[438 240 472 253]/Border[0 0 0]/Page 43/View[/XYZ null 121 676 FmDC exch pop null]/LNK FmPD
4080: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
4081: FMENDPAGE
4082: %%EndPage: "7" 7
4083: %%Page: "8" 8
4084: 595.28 839.05 0 FMBEGINPAGE
4085: [0 0 0 1 0 0 0]
4086: [ 0 1 1 0 1 0 0]
4087: [ 1 0 1 0 0 1 0]
4088: [ 1 1 0 0 0 0 1]
4089: [ 1 0 0 0 0 1 1]
4090: [ 0 1 0 0 1 0 1]
4091: [ 0 0 1 0 1 1 0]
4092: 7 FrameSetSepColors
4093: FrameNoSep
4094: 0 0 0 1 0 0 0 K
4095: 0 0 0 1 0 0 0 K
4096: 0 0 0 1 0 0 0 K
4097: 90 959/G837264 FmPA
4098: 0 12 Q
4099: 0 X
4100: 0 0 0 1 0 0 0 K
4101: (8) 292.29 93.77 T
4102: 40 238/G837268 FmPA
4103: 0.38 (ticular) 120.87 664.52 P
4104: 0.38 (, this presentation focuses on the e) 151.05 664.52 P
4105: 0.38 (x) 318.14 664.52 P
4106: 0.38 (ecution of routines using a stack) 323.96 664.52 P
4107: (of task frames.) 120.87 650.52 T
4108: 3.47 (As described in the pre) 137.88 636.52 P
4109: 3.47 (vious section, for an e) 262.09 636.52 P
4110: 3.47 (x) 381.44 636.52 P
4111: 3.47 (ecution using task) 387.26 636.52 P
4112: 121 780/G1009364 FmPA
4113: 2.02 (frames, the state within an e) 120.87 622.52 P
4114: 2.02 (x) 265.44 622.52 P
4115: 2.02 (ecuting routine is not of e) 271.26 622.52 P
4116: 2.02 (xternal interest.) 404.19 622.52 P
4117: 0.13 (Thus the implementation of a routine is completely open. F) 120.87 608.52 P
4118: 0.13 (or e) 406.47 608.52 P
4119: 0.13 (xample, the) 424.74 608.52 P
4120: 0.27 (routine could be implemented in a v) 120.87 594.52 P
4121: 0.27 (ariety of programming languages. The) 295.49 594.52 P
4122: 0.79 (use of task frames is not restricted to a particular programming language.) 120.87 580.52 P
4123: 2.39 (Instead, task frames pro) 120.87 566.52 P
4124: 2.39 (vide additional techniques to implement a pro-) 242.51 566.52 P
4125: (gramming language.) 120.87 552.52 T
4126: 2.68 (F) 137.88 538.52 P
4127: 2.68 (ollo) 144.37 538.52 P
4128: 2.68 (wing the real-w) 162.74 538.52 P
4129: 2.68 (orld success of imperati) 243.3 538.52 P
4130: 2.68 (v) 365.36 538.52 P
4131: 2.68 (e languages and their) 371.17 538.52 P
4132: 121 682/G1009381 FmPA
4133: 0.94 (e) 120.87 524.52 P
4134: 0.94 (xtensions, this and other presentations of TSIA use an e) 126.02 524.52 P
4135: 0.94 (xtended impera-) 401.61 524.52 P
4136: 0.64 (ti) 120.87 510.51 P
4137: 0.64 (v) 127.24 510.51 P
4138: 0.64 (e language. A further description of the language and man) 133.06 510.51 P
4139: 0.64 (y application) 417.89 510.51 P
4140: 0.89 (e) 120.87 496.51 P
4141: 0.89 (xamples are a) 126.02 496.51 P
4142: 0.89 (v) 193.53 496.51 P
4143: 0.89 (ailable else) 199.23 496.51 P
4144: 0.89 (where [TSIA]. Since the syntax is close to the) 253.47 496.51 P
4145: 1.28 (TSIA semantics, the language is called a TSIA language. By choice, the) 120.87 482.51 P
4146: (imperati) 120.87 468.51 T
4147: (v) 160.56 468.51 T
4148: (e part of the language is similar to the C programming language.) 166.38 468.51 T
4149: 2.42 (The imperati) 137.88 454.51 P
4150: 2.42 (v) 201.65 454.51 P
4151: 2.42 (e part of the language e) 207.48 454.51 P
4152: 2.42 (x) 331.71 454.51 P
4153: 2.42 (ecutes within a routine. The) 337.53 454.51 P
4154: 121 598/G1009385 FmPA
4155: (other part of the language is the task part and concerns calls to routines.) 120.87 440.51 T
4156: 2.5 (The TSIA language of this presentation is designed to help clearly) 137.88 426.51 P
4157: 121 570/G1009418 FmPA
4158: 0.31 (present TSIA and to demonstrate its feasibility) 120.87 412.51 P
4159: 0.31 (. A crude implementation is) 345.95 412.51 P
4160: 0.02 (described in the ne) 120.87 398.51 P
4161: 0.02 (xt section. A TSIA language with a sophisticated imple-) 211.06 398.51 P
4162: (mentation is described else) 120.87 384.51 T
4163: (where [Cilk-1][Cilk-NO) 250.22 384.51 T
4164: (W][PCM].) 366.77 384.51 T
4165: 1.72 (F) 137.88 370.51 P
4166: 1.72 (or a routine written in a TSIA language, the e) 144.37 370.51 P
4167: 1.72 (x) 377.63 370.51 P
4168: 1.72 (ecution proceeds as) 383.45 370.51 P
4169: 121 514/G1009399 FmPA
4170: 0.32 (usual, e) 120.87 356.51 P
4171: 0.32 (xcept that calls to other routines yield the replacement tasks on the) 157.67 356.51 P
4172: 1.02 (stack, as brie\337y described in the pre) 120.87 342.51 P
4173: 1.02 (vious section. This alternati) 298.96 342.51 P
4174: 1.02 (v) 434.37 342.51 P
4175: 1.02 (e imple-) 440.19 342.51 P
4176: 2.59 (mentation of routines is kno) 120.87 328.51 P
4177: 2.59 (wn as dele) 265.59 328.51 P
4178: 2.59 (g) 321.24 328.51 P
4179: 2.59 (ation in other presentations of) 327.18 328.51 P
4180: (TSIA. Dele) 120.87 314.52 T
4181: (g) 176.01 314.52 T
4182: (ation also of) 181.95 314.52 T
4183: (fers other bene\336ts [Alternati) 240.98 314.52 T
4184: (v) 376.31 314.52 T
4185: (e][Data\337o) 382.13 314.52 T
4186: (w][TSIA].) 430.48 314.52 T
4187: 0.49 (A task consists of items: ins, inouts and outs. An in is an item used by) 137.88 300.52 P
4188: 121 444/G1009511 FmPA
4189: 0.79 (the task. An inout is an item modi\336ed by the task. An out is an item pro-) 120.87 286.52 P
4190: 0.45 (duced by the task. An inout beha) 120.87 272.52 P
4191: 0.45 (v) 280.99 272.52 P
4192: 0.45 (es lik) 286.81 272.52 P
4193: 0.45 (e an in and an out. An item can be) 312.81 272.52 P
4194: (of arbitrary size and comple) 120.87 258.52 T
4195: (xity) 255.32 258.52 T
4196: (.) 273.21 258.52 T
4197: 0.98 (One of the ins is the instruction of the task and represents the actions) 137.88 244.52 P
4198: 121 388/G1009512 FmPA
4199: 1.16 (e) 120.87 230.52 P
4200: 1.16 (x) 126.02 230.52 P
4201: 1.16 (ecuted by the task. An instruction can be as small as a single machine) 131.84 230.52 P
4202: 1.45 (instruction or as lar) 120.87 216.52 P
4203: 1.45 (ge as a million-line program. In this presentation, an) 217.98 216.52 P
4204: 7.37 (instruction is a routine. The syntax used is) 120.87 202.52 P
4205: 3 F
4206: 17.68 (routine\050in,) 385.46 202.52 P
4207: 0 F
4208: 7.37 (...) 464.66 202.52 P
4209: 3 F
4210: 17.68 (;) 473.66 202.52 P
4211: -0.46 (inout,) 120.87 188.52 P
4212: 0 F
4213: -0.19 (...) 164.07 188.52 P
4214: 3 F
4215: -0.46 (;out,) 173.07 188.52 P
4216: 0 F
4217: -0.19 (...) 209.07 188.52 P
4218: 3 F
4219: -0.46 (\051) 218.07 188.52 P
4220: 0 F
4221: -0.19 (. The syntax is con) 225.27 188.52 P
4222: -0.19 (v) 314.35 188.52 P
4223: -0.19 (entional, e) 320.17 188.52 P
4224: -0.19 (xcept that a semi-colon) 369.79 188.52 P
4225: 0.59 (\050) 120.87 174.52 P
4226: 3 F
4227: 1.42 (;) 124.86 174.52 P
4228: 0 F
4229: 0.59 (\051 separates the ins from the inouts and another semi-colon separates the) 132.06 174.52 P
4230: (inouts from the outs.) 120.87 160.52 T
4231: 0.11 (In order to demonstrate the TSIA language, Figure) 137.88 146.52 P
4232: 0.11 (2a\051 repeats the code) 384.91 146.52 P
4233: 121 290/G1009675 FmPA
4234: 0.57 (of Figure) 120.87 132.52 P
4235: 0.57 (1a\051, b) 168.77 132.52 P
4236: 0.57 (ut with the ar) 196.42 132.52 P
4237: 0.57 (guments and bodies of the routines. The rou-) 261.57 132.52 P
4238: 0 0 0 1 0 0 0 K
4239: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
4240: [/Dest/P.8/DEST FmPD2
4241: [/Rect[287 492 321 505]/Border[0 0 0]/Page 43/View[/XYZ null 121 676 FmDC exch pop null]/LNK FmPD
4242: [/Rect[351 142 391 155]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4243: [/Rect[134 128 175 141]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
4244: [/Rect[321 380 382 393]/Border[0 0 0]/Page 42/View[/XYZ null 121 816 FmDC exch pop null]/LNK FmPD
4245: [/Rect[382 380 415 393]/Border[0 0 0]/Page 42/View[/XYZ null 121 550 FmDC exch pop null]/LNK FmPD
4246: [/Rect[330 310 391 323]/Border[0 0 0]/Page 41/View[/XYZ null 121 612 FmDC exch pop null]/LNK FmPD
4247: [/Rect[283 380 321 393]/Border[0 0 0]/Page 41/View[/XYZ null 121 542 FmDC exch pop null]/LNK FmPD
4248: [/Rect[391 310 443 323]/Border[0 0 0]/Page 42/View[/XYZ null 121 746 FmDC exch pop null]/LNK FmPD
4249: [/Rect[443 310 478 323]/Border[0 0 0]/Page 43/View[/XYZ null 121 676 FmDC exch pop null]/LNK FmPD
4250: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
4251: FMENDPAGE
4252: %%EndPage: "8" 8
4253: %%Page: "9" 9
4254: 595.28 839.05 0 FMBEGINPAGE
4255: [0 0 0 1 0 0 0]
4256: [ 0 1 1 0 1 0 0]
4257: [ 1 0 1 0 0 1 0]
4258: [ 1 1 0 0 0 0 1]
4259: [ 1 0 0 0 0 1 1]
4260: [ 0 1 0 0 1 0 1]
4261: [ 0 0 1 0 1 1 0]
4262: 7 FrameSetSepColors
4263: FrameNoSep
4264: 0 0 0 1 0 0 0 K
4265: 0 0 0 1 0 0 0 K
4266: 0 0 0 1 0 0 0 K
4267: 90 959/G837264 FmPA
4268: 0 12 Q
4269: 0 X
4270: 0 0 0 1 0 0 0 K
4271: (9) 292.29 93.77 T
4272: 40 238/G837268 FmPA
4273: 0.08 (tines are used in Figure) 120.87 664.52 P
4274: 0.08 (2b\051, which sho) 236.19 664.52 P
4275: 0.08 (ws snapshots of the stack during the) 307.05 664.52 P
4276: -0.05 (e) 120.87 650.52 P
4277: -0.05 (x) 126.02 650.52 P
4278: -0.05 (ecution of the application) 131.84 650.52 P
4279: 3 F
4280: -0.12 (d\050;;q\051) 256.94 650.52 P
4281: 0 F
4282: -0.05 (. The item) 300.14 650.52 P
4283: 3 F
4284: -0.12 (q) 351.98 650.52 P
4285: 0 F
4286: -0.05 ( is assumed to be used by) 359.18 650.52 P
4287: 1.07 (some subsequent task not included in the illustration here. The e) 120.87 636.52 P
4288: 1.07 (x) 439.71 636.52 P
4289: 1.07 (ecution) 445.53 636.52 P
4290: 1.7 (illustrated in Figure) 120.87 622.52 P
4291: 1.7 (2b\051 is lik) 221.93 622.52 P
4292: 1.7 (e that in Figure) 267.88 622.52 P
4293: 1.7 (1c\051, e) 348.97 622.52 P
4294: 1.7 (xcept that Figure) 377.14 622.52 P
4295: 1.7 (2b\051) 464.86 622.52 P
4296: -0.24 (does not sho) 120.87 608.52 P
4297: -0.24 (w snapshots of e) 180.1 608.52 P
4298: -0.24 (x) 258.86 608.52 P
4299: -0.24 (ecuting routines. Thus Figure) 264.68 608.52 P
4300: -0.24 (2b\051 only sho) 408.3 608.52 P
4301: -0.24 (ws) 467.53 608.52 P
4302: 3.88 (the structured states of the stack between the e) 120.87 594.52 P
4303: 3.88 (x) 374.3 594.52 P
4304: 3.88 (ecution of routines.) 380.12 594.52 P
4305: -0 (Figure) 120.87 580.52 P
4306: -0 (2b\051 includes comments sho) 155.2 580.52 P
4307: -0 (wing the v) 285.88 580.52 P
4308: -0 (alues of items in the snapshot.) 336.23 580.52 P
4309: 0.64 (A crude implementation of this application e) 120.87 566.52 P
4310: 0.64 (x) 339.17 566.52 P
4311: 0.64 (ecution using task frames is) 344.98 566.52 P
4312: (described in the ne) 120.87 552.52 T
4313: (xt section.) 211 552.52 T
4314: 0.76 (An application e) 137.88 538.52 P
4315: 0.76 (x) 218.54 538.52 P
4316: 0.76 (ecution using task frames is a directed ac) 224.35 538.52 P
4317: 0.76 (yclic graph) 426.45 538.52 P
4318: 121 682/G1019961 FmPA
4319: 0.09 (\050dag\051 [Data\337o) 120.87 524.52 P
4320: 0.09 (w]. Each node of the graph is a task. Each arc of the graph is) 188.3 524.52 P
4321: -0.05 (an out of one task and an in of another) 120.87 510.51 P
4322: -0.05 (. As gi) 304.06 510.51 P
4323: -0.05 (v) 335.33 510.51 P
4324: -0.05 (en by the arcs, the dependen-) 341.15 510.51 P
4325: (cies between tasks are structured and e) 120.87 496.51 T
4326: (xplicit.) 306.63 496.51 T
4327: 0.86 (The e) 137.88 482.51 P
4328: 0.86 (x) 165.54 482.51 P
4329: 0.86 (ecution of the application consists of e) 171.36 482.51 P
4330: 0.86 (x) 360.96 482.51 P
4331: 0.86 (ecuting the tasks of the) 366.78 482.51 P
4332: 121 626/G1020015 FmPA
4333: 0.18 (graph. The e) 120.87 468.51 P
4334: 0.18 (x) 181.37 468.51 P
4335: 0.18 (ecution of a task may change the graph and may e) 187.19 468.51 P
4336: 0.18 (v) 428.66 468.51 P
4337: 0.18 (aluate the) 434.36 468.51 P
4338: 0.05 (items of the task. An e) 120.87 454.51 P
4339: 0.05 (x) 228.93 454.51 P
4340: 0.05 (ecution of routines using task frames thus is a form) 234.76 454.51 P
4341: 0.46 (of graph reduction. This is illustrated in Figure) 120.87 440.51 P
4342: 0.46 (2c\051, using the e) 351.74 440.51 P
4343: 0.46 (x) 426.26 440.51 P
4344: 0.46 (ecution of) 432.08 440.51 P
4345: 0.52 (the application) 120.87 426.51 P
4346: 3 F
4347: 1.25 (d\050;;q\051) 195.9 426.51 P
4348: 0 F
4349: 0.52 (. In Figure) 239.1 426.51 P
4350: 0.52 (2c\051, each graph corresponds to a snap-) 293.47 426.51 P
4351: 0.17 (shot of the stack sho) 120.87 412.51 P
4352: 0.17 (wn in Figure) 219.24 412.51 P
4353: 0.17 (2b\051. The application e) 283.91 412.51 P
4354: 0.17 (x) 389.55 412.51 P
4355: 0.17 (ecution is a struc-) 395.37 412.51 P
4356: (tured e) 120.87 398.51 T
4357: (x) 153.68 398.51 T
4358: (ecution, mo) 159.5 398.51 T
4359: (ving from one structured state to another) 215.98 398.51 T
4360: (.) 410.62 398.51 T
4361: 0.56 (Instead of a graphical illustration lik) 137.88 384.51 P
4362: 0.56 (e that in Figure) 314.86 384.51 P
4363: 0.56 (2c\051, this and other) 392.53 384.51 P
4364: 121 528/G1020096 FmPA
4365: -0.14 (presentations of TSIA generally use a te) 120.87 370.51 P
4366: -0.14 (xtual representation of a graph. F) 312.46 370.51 P
4367: -0.14 (or) 470.86 370.51 P
4368: 0.19 (e) 120.87 356.51 P
4369: 0.19 (xample, instead of using the second snapshot illustrated in Figure) 126.02 356.51 P
4370: 0.19 (2c\051, the) 444.69 356.51 P
4371: -0.08 (presentations simply use the te) 120.87 342.51 P
4372: -0.08 (xt) 267.68 342.51 P
4373: 3 F
4374: -0.2 (b\050;w;\051) 279.93 342.51 P
4375: -0.2 (c\050w;;q\051) 326.05 342.51 P
4376: 0 F
4377: -0.08 (. A top-to-bottom and) 376.45 342.51 P
4378: 0.67 (left-to-right order is used for the dependencies between tasks. A task pro-) 120.87 328.51 P
4379: -0.2 (ducing an out precedes an) 120.87 314.52 P
4380: -0.2 (y task which uses that item as an in. F) 244.54 314.52 P
4381: -0.2 (or e) 424.58 314.52 P
4382: -0.2 (xample,) 442.53 314.52 P
4383: 1.79 (the graph) 120.87 300.52 P
4384: 3 F
4385: 4.29 (b\050;w;\051) 172.43 300.52 P
4386: 4.29 (c\050w;;q\051) 220.42 300.52 P
4387: 0 F
4388: 1.79 ( is not the same as the graph) 270.82 300.52 P
4389: 3 F
4390: 4.29 ( c\050w;;q\051) 418.97 300.52 P
4391: 1.72 (b\050;w;\051) 120.87 286.52 P
4392: 0 F
4393: 0.72 (. The order is f) 164.07 286.52 P
4394: 0.72 (amiliar) 237.8 286.52 P
4395: 0.72 (. F) 271.14 286.52 P
4396: 0.72 (or e) 284.34 286.52 P
4397: 0.72 (xample, it is the order of an impera-) 303.21 286.52 P
4398: 1.26 (ti) 120.87 272.52 P
4399: 1.26 (v) 127.24 272.52 P
4400: 1.26 (e programming language. The order is that of the TSIA language pre-) 133.06 272.52 P
4401: (sented here.) 120.87 258.52 T
4402: 1.91 (The order is suitable for a sequential e) 137.88 244.52 P
4403: 1.91 (x) 334.67 244.52 P
4404: 1.91 (ecution. As demonstrated in) 340.49 244.52 P
4405: 121 388/G1020113 FmPA
4406: (Figure) 120.87 230.52 T
4407: (2b\051, the order of tasks on the stack is an e) 155.2 230.52 T
4408: (xample of such an order) 353.98 230.52 T
4409: (.) 469.29 230.52 T
4410: 2.88 (Since some tasks may be independent, the total order may not be) 137.88 216.52 P
4411: 121 360/G1020130 FmPA
4412: -0.07 (unique. In other w) 120.87 202.52 P
4413: -0.07 (ords, the dependencies between tasks may specify only a) 208.51 202.52 P
4414: 0.31 (partial order) 120.87 188.52 P
4415: 0.31 (. Independent tasks may be switched in the total order without) 179.49 188.52 P
4416: 0.04 (af) 120.87 174.52 P
4417: 0.04 (fecting the results of the application. Independent tasks thus may e) 129.89 174.52 P
4418: 0.04 (x) 449.72 174.52 P
4419: 0.04 (ecute) 455.54 174.52 P
4420: (in either order or in parallel.) 120.87 160.52 T
4421: -0.17 (In the graph of an application e) 137.88 146.52 P
4422: -0.17 (x) 286.65 146.52 P
4423: -0.17 (ecution, an arc or item is unique, b) 292.47 146.52 P
4424: -0.17 (ut its) 457.35 146.52 P
4425: 121 290/G1020155 FmPA
4426: 1.12 (name is arbitrary) 120.87 132.52 P
4427: 1.12 (. As long as all occurrences are changed, an arc or item) 203.64 132.52 P
4428: 0 0 0 1 0 0 0 K
4429: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
4430: [/Dest/P.9/DEST FmPD2
4431: [/Rect[317 436 358 449]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4432: [/Rect[259 422 299 435]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4433: [/Rect[202 660 242 673]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4434: [/Rect[188 618 228 631]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4435: [/Rect[315 618 355 631]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
4436: [/Rect[431 618 471 631]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4437: [/Rect[374 604 414 617]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4438: [/Rect[121 576 161 589]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4439: [/Rect[250 408 290 421]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4440: [/Rect[358 380 399 393]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4441: [/Rect[410 352 451 365]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4442: [/Rect[149 520 201 533]/Border[0 0 0]/Page 42/View[/XYZ null 121 746 FmDC exch pop null]/LNK FmPD
4443: [/Rect[121 226 161 239]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4444: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
4445: FMENDPAGE
4446: %%EndPage: "9" 9
4447: %%Page: "10" 10
4448: 595.28 839.05 0 FMBEGINPAGE
4449: [0 0 0 1 0 0 0]
4450: [ 0 1 1 0 1 0 0]
4451: [ 1 0 1 0 0 1 0]
4452: [ 1 1 0 0 0 0 1]
4453: [ 1 0 0 0 0 1 1]
4454: [ 0 1 0 0 1 0 1]
4455: [ 0 0 1 0 1 1 0]
4456: 7 FrameSetSepColors
4457: FrameNoSep
4458: 0 0 0 1 0 0 0 K
4459: 0 0 0 1 0 0 0 K
4460: 0 0 0 1 0 0 0 K
4461: 90 959/G837264 FmPA
4462: 0 12 Q
4463: 0 X
4464: 0 0 0 1 0 0 0 K
4465: (10) 289.29 93.77 T
4466: 40 238/G837268 FmPA
4467: 0.01 (may be arbitrarily renamed. F) 120.87 215.38 P
4468: 0.01 (or e) 263.72 215.38 P
4469: 0.01 (xample, the graph) 281.88 215.38 P
4470: 3 F
4471: 0.04 (b\050;w;\051) 371.23 215.38 P
4472: 0.04 (c\050w;;q\051) 417.45 215.38 P
4473: 0 F
4474: 0.01 ( of) 467.85 215.38 P
4475: (Figure) 120.87 201.38 T
4476: (2b\051 or) 155.2 201.38 T
4477: (c\051 is equi) 187.19 201.38 T
4478: (v) 230.88 201.38 T
4479: (alent to the graph) 236.58 201.38 T
4480: 3 F
4481: (b\050;v;\051) 323.24 201.38 T
4482: (c\050v;;q\051) 369.44 201.38 T
4483: 0 F
4484: (.) 419.84 201.38 T
4485: -0.2 (Instead of using task frames, the TSIA code of Figure) 137.88 187.38 P
4486: -0.2 (2a\051 could e) 396.99 187.38 P
4487: -0.2 (x) 449.72 187.38 P
4488: -0.2 (ecute) 455.54 187.38 P
4489: 121 331/G1019960 FmPA
4490: 1.15 (using acti) 120.87 173.38 P
4491: 1.15 (v) 168.05 173.38 P
4492: 1.15 (ation frames. The latter e) 173.75 173.38 P
4493: 1.15 (x) 298.45 173.38 P
4494: 1.15 (ecution w) 304.27 173.38 P
4495: 1.15 (ould correspond to that of) 352.29 173.38 P
4496: 1.06 (the C code sho) 120.87 159.38 P
4497: 1.06 (wn in Figure) 194.73 159.38 P
4498: 1.06 (2d\051. Since the TSIA code of Figure) 261.17 159.38 P
4499: 1.06 (2a\051 does) 439.48 159.38 P
4500: 0.63 (not use an) 120.87 145.38 P
4501: 0.63 (y language features not present in C, it only dif) 170.61 145.38 P
4502: 0.63 (fers in syntax to) 401.97 145.38 P
4503: -0.3 (the C code of Figure) 120.87 131.38 P
4504: -0.3 (2d\051. The e) 221.32 131.38 P
4505: -0.3 (x) 269.53 131.38 P
4506: -0.3 (ecution is illustrated in Figure) 275.35 131.38 P
4507: -0.3 (1b\051. A crude) 421.15 131.38 P
4508: 0 0 0 1 0 0 0 K
4509: 0 0 0 1 0 0 0 K
4510: 0 0 0 1 0 0 0 K
4511: 121 812/G1009530 FmPA
4512: 0 0 0 1 0 0 0 K
4513: 1 F
4514: (a\051) 123.87 657.52 T
4515: 0 0 0 1 0 0 0 K
4516: 121 801/G1009531 FmPA
4517: 0 0 0 1 0 0 0 K
4518: 3 11 Q
4519: (a\050int x;; int y\051 { y=2*x; }) 126.7 644.18 T
4520: 0 0 0 1 0 0 0 K
4521: 121 788/G1009532 FmPA
4522: 0 0 0 1 0 0 0 K
4523: (b\050;int x;\051 { x=x+3; }) 126.7 630.18 T
4524: 0 0 0 1 0 0 0 K
4525: 121 774/G1009533 FmPA
4526: 0 0 0 1 0 0 0 K
4527: (c\050int x;; int y\051 { if \050x>0\051 a\050x;;y\051; else y=-1; }) 126.7 616.18 T
4528: 0 0 0 1 0 0 0 K
4529: 121 760/G1009534 FmPA
4530: 0 0 0 1 0 0 0 K
4531: (d\050;;int v\051 { int w=4; b\050;w;\051 c\050w;;v\051; }) 126.7 602.18 T
4532: 0 0 0 1 0 0 0 K
4533: 121 746/G1009535 FmPA
4534: 0 0 0 1 0 0 0 K
4535: 0 0 0 1 0 0 0 K
4536: 121 735/G1009536 FmPA
4537: 0 0 0 1 0 0 0 K
4538: 0 0 0 1 0 0 0 K
4539: 121 637/G1009623 FmPA
4540: 0 0 0 1 0 0 0 K
4541: 0 0 0 1 0 0 0 K
4542: 121 523/G1020032 FmPA
4543: 0 0 0 1 0 0 0 K
4544: 0 0 0 1 0 0 0 K
4545: 121 516/G1009749 FmPA
4546: 0 0 0 1 0 0 0 K
4547: 1 12 Q
4548: (d\051) 123.87 361.38 T
4549: 0 0 0 1 0 0 0 K
4550: 121 505/G1009750 FmPA
4551: 0 0 0 1 0 0 0 K
4552: 3 11 Q
4553: (void a\050int x, int *y\051 { *y=2*x; }) 126.7 348.05 T
4554: 0 0 0 1 0 0 0 K
4555: 121 492/G1009754 FmPA
4556: 0 0 0 1 0 0 0 K
4557: (void b\050int *x\051 { *x=*x+3; }) 126.7 334.05 T
4558: 0 0 0 1 0 0 0 K
4559: 121 478/G1009775 FmPA
4560: 0 0 0 1 0 0 0 K
4561: (void c\050int x,int *y\051 { if \050x>0\051 a\050x,y\051; else *y=-1; }) 126.7 320.05 T
4562: 0 0 0 1 0 0 0 K
4563: 121 464/G1009776 FmPA
4564: 0 0 0 1 0 0 0 K
4565: (void d\050int *v\051 { int w=4; b\050&w\051; c\050w,v\051; }) 126.7 306.05 T
4566: 0 0 0 1 0 0 0 K
4567: 121 450/G1009777 FmPA
4568: 0 0 0 1 0 0 0 K
4569: 0 0 0 1 0 0 0 K
4570: 121 439/G1009755 FmPA
4571: 0 0 0 1 0 0 0 K
4572: 121 432/G1009625 FmPA
4573: 0 12 Q
4574: (Figure) 123.87 277.38 T
4575: (2) 158.2 277.38 T
4576: (a\051 Some example code in the TSIA language.) 172.06 277.38 T
4577: 121 421/G1009627 FmPA
4578: (b\051 Its execution on the stack using task frames.) 172.06 263.38 T
4579: (c\051 The execution of b\051 illustrated as graphs.) 172.06 249.38 T
4580: (d\051 The code of a\051 in the C programming language.) 172.06 235.38 T
4581: 120.87 672.27 120.87 231.63 2 L
4582: V
4583: 0.5 H
4584: 0 Z
4585: N
4586: 480.87 672.27 480.87 231.63 2 L
4587: V
4588: N
4589: 120.62 672.52 481.12 672.52 2 L
4590: V
4591: N
4592: 120.62 588.52 481.12 588.52 2 L
4593: V
4594: 2 H
4595: N
4596: 120.62 490.36 481.12 490.36 2 L
4597: V
4598: N
4599: 120.62 376.38 481.12 376.38 2 L
4600: V
4601: N
4602: 120.62 292.38 481.12 292.38 2 L
4603: V
4604: 0.5 H
4605: N
4606: 120.62 231.38 481.12 231.38 2 L
4607: V
4608: N
4609: 120.87 490.36 480.87 588.52 C
4610: 0 0 0 1 0 0 0 K
4611: 120.87 497.36 480.87 588.52 C
4612: 0 0 0 1 0 0 0 K
4613: 1 12 Q
4614: 0 X
4615: 0 0 0 1 0 0 0 K
4616: (b\051) 124.5 573.54 T
4617: 207.84 531.14 261.7 545.31 R
4618: 0.5 H
4619: 2 Z
4620: N
4621: 3 11 Q
4622: (c\050w;;q\051) 211.67 534.77 T
4623: (b\050;w;\051) 214.97 548.94 T
4624: 90 450 1.5 1.5 348.71 514.81 G
4625: 350.21 514.81 350.21 518.61 363.46 514.81 350.21 511.02 4 Y
4626: 3 H
4627: 0 Z
4628: N
4629: 350.21 514.81 350.21 518.61 363.46 514.81 350.21 511.02 4 Y
4630: V
4631: 232.84 514.81 348.71 514.81 2 L
4632: 2 Z
4633: N
4634: 0 12 Q
4635: (T) 288.41 500.64 T
4636: (ime) 295.32 500.64 T
4637: 3 11 Q
4638: (d\050;;q\051) 146.94 534.77 T
4639: (a\050w;;q\051) 347.73 534.77 T
4640: (c\050w;;q\051) 279.7 534.77 T
4641: 207.84 545.31 261.7 559.49 R
4642: 0.5 H
4643: N
4644: 139.81 531.14 193.66 545.31 R
4645: N
4646: 275.87 531.14 329.73 545.31 R
4647: N
4648: 343.9 531.14 397.76 545.31 R
4649: N
4650: (// w=4) 214.97 563.17 T
4651: (// w=7) 283 549.5 T
4652: (// w=7) 351.03 549.5 T
4653: 0 0 0 1 0 0 0 K
4654: 0 0 0 1 0 0 0 K
4655: (// q=14) 415.73 534.77 T
4656: 0 0 0 1 0 0 0 K
4657: 120.87 490.36 480.87 588.52 C
4658: 0 -0.71 595.28 839.76 C
4659: 120.87 376.38 480.87 490.36 C
4660: 120.87 383.38 480.87 490.36 C
4661: 0 0 0 1 0 0 0 K
4662: 1 12 Q
4663: 0 X
4664: 0 0 0 1 0 0 0 K
4665: (c\051) 124.5 475.39 T
4666: 3 11 Q
4667: (c\050w;;q\051) 211.67 436.61 T
4668: (b\050;w;\051) 214.97 467.45 T
4669: 90 450 1.5 1.5 348.71 399.99 G
4670: 350.21 399.99 350.21 403.79 363.46 399.99 350.21 396.19 4 Y
4671: 3 H
4672: 0 Z
4673: N
4674: 350.21 399.99 350.21 403.79 363.46 399.99 350.21 396.19 4 Y
4675: V
4676: 232.84 399.99 348.71 399.99 2 L
4677: 2 Z
4678: N
4679: 0 12 Q
4680: (T) 288.41 385.82 T
4681: (ime) 295.32 385.82 T
4682: 3 11 Q
4683: (d\050;;q\051) 146.94 436.61 T
4684: (a\050w;;q\051) 347.73 436.61 T
4685: (c\050w;;q\051) 279.7 436.61 T
4686: 0.5 H
4687: 90 450 28.35 8.5 234.25 439.33 A
4688: 90 450 28.35 8.5 234.25 470.51 A
4689: 233.03 455.38 235.76 454.2 228.94 445.84 230.29 456.55 4 Y
4690: 0 Z
4691: N
4692: 233.03 455.38 235.76 454.2 228.94 445.84 230.29 456.55 4 Y
4693: V
4694: 237.09 464.85 233.13 455.61 2 L
4695: 2 Z
4696: N
4697: 175.34 424.49 178.32 424.49 175.34 414.12 172.36 424.49 4 Y
4698: 0 Z
4699: N
4700: 175.34 424.49 178.32 424.49 175.34 414.12 172.36 424.49 4 Y
4701: V
4702: 175.34 433.05 175.34 424.74 2 L
4703: 2 Z
4704: N
4705: 90 450 28.35 8.5 166.74 439.33 A
4706: 90 450 28.35 8.5 302.8 439.33 A
4707: 90 450 28.35 8.5 370.83 439.33 A
4708: 382.77 424.49 385.74 424.49 382.77 414.12 379.79 424.49 4 Y
4709: 0 Z
4710: N
4711: 382.77 424.49 385.74 424.49 382.77 414.12 379.79 424.49 4 Y
4712: V
4713: 382.77 433.05 382.77 424.74 2 L
4714: 2 Z
4715: N
4716: 314.73 424.49 317.71 424.49 314.73 414.12 311.76 424.49 4 Y
4717: 0 Z
4718: N
4719: 314.73 424.49 317.71 424.49 314.73 414.12 311.76 424.49 4 Y
4720: V
4721: 314.73 433.05 314.73 424.74 2 L
4722: 2 Z
4723: N
4724: 246.7 424.49 249.68 424.49 246.7 414.12 243.73 424.49 4 Y
4725: 0 Z
4726: N
4727: 246.7 424.49 249.68 424.49 246.7 414.12 243.73 424.49 4 Y
4728: V
4729: 246.7 433.05 246.7 424.74 2 L
4730: 2 Z
4731: N
4732: 0 0 0 1 0 0 0 K
4733: 120.87 376.38 480.87 490.36 C
4734: 0 -0.71 595.28 839.76 C
4735: 0 0 0 1 0 0 0 K
4736: 0 0 0 1 0 0 0 K
4737: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
4738: [/Dest/P.10/DEST FmPD2
4739: 164 429/M9.17317.Figure.Figure2.a.Pseudocode.for.the.routine.d.executed.using FmPA
4740: 164 429/I1.1009688 FmPA
4741: [/Rect[387 127 427 140]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
4742: [/Rect[363 183 403 196]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4743: [/Rect[227 155 267 168]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4744: [/Rect[405 155 445 168]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4745: [/Rect[187 127 227 140]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4746: [/Rect[121 197 161 210]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4747: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
4748: FMENDPAGE
4749: %%EndPage: "10" 10
4750: %%Page: "11" 11
4751: 595.28 839.05 0 FMBEGINPAGE
4752: [0 0 0 1 0 0 0]
4753: [ 0 1 1 0 1 0 0]
4754: [ 1 0 1 0 0 1 0]
4755: [ 1 1 0 0 0 0 1]
4756: [ 1 0 0 0 0 1 1]
4757: [ 0 1 0 0 1 0 1]
4758: [ 0 0 1 0 1 1 0]
4759: 7 FrameSetSepColors
4760: FrameNoSep
4761: 0 0 0 1 0 0 0 K
4762: 0 0 0 1 0 0 0 K
4763: 0 0 0 1 0 0 0 K
4764: 90 959/G837264 FmPA
4765: 0 12 Q
4766: 0 X
4767: 0 0 0 1 0 0 0 K
4768: (11) 289.29 93.77 T
4769: 40 238/G837268 FmPA
4770: 2.54 (implementation of this application e) 120.87 664.52 P
4771: 2.54 (x) 304.17 664.52 P
4772: 2.54 (ecution using acti) 309.99 664.52 P
4773: 2.54 (v) 399.43 664.52 P
4774: 2.54 (ation frames is) 405.13 664.52 P
4775: (described in section) 120.87 650.52 T
4776: (6.) 219.18 650.52 T
4777: 1 F
4778: (5 A Crude Implementation) 120.87 619.52 T
4779: 121 763/G1007503 FmPA
4780: 0 F
4781: 1.63 (This section sho) 120.87 600.52 P
4782: 1.63 (ws a crude implementation of the TSIA language intro-) 201.84 600.52 P
4783: 121 744/G1009870 FmPA
4784: 2.33 (duced in the pre) 120.87 586.52 P
4785: 2.33 (vious section, thus demonstrating the feasibility of the) 204.54 586.52 P
4786: 1.32 (alternati) 120.87 572.52 P
4787: 1.32 (v) 159.89 572.52 P
4788: 1.32 (e implementation of routines. The implementation uses C as an) 165.71 572.52 P
4789: 0.77 (intermediate language. A compiler from TSIA code to the intermediate C) 120.87 558.52 P
4790: (code does not e) 120.87 544.52 T
4791: (xist yet. The e) 195 544.52 T
4792: (xamples sho) 262.82 544.52 T
4793: (wn here are manually compiled.) 322.18 544.52 T
4794: 0.52 (In addition to the intermediate C code, an application also requires the) 137.88 530.52 P
4795: 121 674/G1010644 FmPA
4796: 0.87 (code in Figure) 120.87 516.52 P
4797: 0.87 (3. The stack pointer) 194.93 516.52 P
4798: 3 F
4799: 2.08 (_sp) 296.72 516.52 P
4800: 0 F
4801: 0.87 ( points to the topmost task frame) 318.32 516.52 P
4802: 0.76 (and is initialized such that the stack is empty) 120.87 502.51 P
4803: 0.76 (. The routine) 340.84 502.51 P
4804: 3 F
4805: 1.83 (_xtop) 407.79 502.51 P
4806: 0 F
4807: 0.76 ( repeat-) 443.79 502.51 P
4808: 0.38 (edly e) 120.87 488.51 P
4809: 0.38 (x) 150.06 488.51 P
4810: 0.38 (ecutes the topmost task frame, until the stack is empty) 155.88 488.51 P
4811: 0.38 (. The routine) 418.45 488.51 P
4812: 0.57 (_) 120.87 474.51 P
4813: 3 F
4814: 1.37 (xtop) 126.87 474.51 P
4815: 0 F
4816: 0.57 ( assumes that the \336rst w) 155.67 474.51 P
4817: 0.57 (ord of a task frame points to the routine to) 273.4 474.51 P
4818: 0.38 (be called. The routine) 120.87 460.51 P
4819: 3 F
4820: 0.9 (_xtop) 230.01 460.51 P
4821: 0 F
4822: 0.38 ( is one of se) 266.01 460.51 P
4823: 0.38 (v) 324.54 460.51 P
4824: 0.38 (eral v) 330.36 460.51 P
4825: 0.38 (ariations on a mechanism) 357.42 460.51 P
4826: (kno) 120.87 446.51 T
4827: (wn as the UUO handler [ghc][RABBIT][sml2c].) 138.57 446.51 T
4828: 1.33 (Figure) 137.88 257.52 P
4829: 1.33 (4 sho) 172.21 257.52 P
4830: 1.33 (ws the intermediate C code resulting from compiling the) 198.91 257.52 P
4831: 121 401/G1010588 FmPA
4832: 1.8 (TSIA code in Figure) 120.87 243.52 P
4833: 1.8 (2a\051. Figure) 228.26 243.52 P
4834: 1.8 (5 sho) 285.71 243.52 P
4835: 1.8 (ws an application which calls the) 312.88 243.52 P
4836: -0.17 (routine) 120.87 229.52 P
4837: 3 F
4838: -0.4 (d) 157.7 229.52 P
4839: 0 F
4840: -0.17 ( of Figure) 164.9 229.52 P
4841: -0.17 (4. The code of Figures) 214.9 229.52 P
4842: -0.17 (3, 4, and) 325.54 229.52 P
4843: -0.17 (5 may be compiled and) 369.54 229.52 P
4844: (e) 120.87 215.52 T
4845: (x) 126.02 215.52 T
4846: (ecuted as a usual C application. As e) 131.84 215.52 T
4847: (xpected, the output is) 307.62 215.52 T
4848: 3 F
4849: (14) 413.28 215.52 T
4850: 0 F
4851: (.) 427.68 215.52 T
4852: 1.67 (In order to easily identify items introduced by the compilation, their) 137.88 201.52 P
4853: 121 345/G1010198 FmPA
4854: 0.22 (names be) 120.87 187.52 P
4855: 0.22 (gin with an underscore. This also reduces the chance of their col-) 165.89 187.52 P
4856: (lision with names in the application.) 120.87 173.52 T
4857: -0.07 (In order to e) 137.88 159.52 P
4858: -0.07 (xplain the compilation, attention initially is restricted to the) 196.45 159.52 P
4859: 121 303/G1010209 FmPA
4860: 0.3 (routine) 120.87 145.52 P
4861: 3 F
4862: 0.72 (a\050x;;y\051{y=2*x;}) 158.16 145.52 P
4863: 0 F
4864: 0.3 ( of Figure) 266.16 145.52 P
4865: 0.3 (2a\051 and its intermediate C code in) 317.09 145.52 P
4866: 2.14 (Figure) 120.87 131.52 P
4867: 2.14 (4. The compilation of the routine) 155.2 131.52 P
4868: 3 F
4869: 5.14 (a\050x;;y\051) 329.71 131.52 P
4870: 0 F
4871: 2.14 ( yields the structure) 380.11 131.52 P
4872: 0 0 0 1 0 0 0 K
4873: 0 0 0 1 0 0 0 K
4874: 0 0 0 1 0 0 0 K
4875: 121 574/G1010650 FmPA
4876: 0 0 0 1 0 0 0 K
4877: 3 11 Q
4878: (#define _SSIZE 250000) 126.7 420.18 T
4879: 0 0 0 1 0 0 0 K
4880: 121 564/G1010651 FmPA
4881: 0 0 0 1 0 0 0 K
4882: (int _stack[_SSIZE];) 126.7 406.18 T
4883: ( /* int for alignment */) 311.5 406.18 T
4884: 0 0 0 1 0 0 0 K
4885: 121 550/G1010918 FmPA
4886: 0 0 0 1 0 0 0 K
4887: (char *_sp = \050char*\051\050_stack+_SSIZE\051;) 126.7 392.18 T
4888: 0 0 0 1 0 0 0 K
4889: 121 536/G1010919 FmPA
4890: 0 0 0 1 0 0 0 K
4891: 0 0 0 1 0 0 0 K
4892: 121 522/G1010654 FmPA
4893: 0 0 0 1 0 0 0 K
4894: (void _xtop\050void\051 {) 126.7 364.18 T
4895: 0 0 0 1 0 0 0 K
4896: 121 508/G1010655 FmPA
4897: 0 0 0 1 0 0 0 K
4898: (while \050_sp<\050char *\051\050_stack+_SSIZE\051\051 {) 139.9 350.18 T
4899: 0 0 0 1 0 0 0 K
4900: 121 494/G1010656 FmPA
4901: 0 0 0 1 0 0 0 K
4902: (\050*\050\050void\050**\051\050void\051\051_sp\051\051\050\051;) 153.1 336.18 T
4903: 0 0 0 1 0 0 0 K
4904: 121 480/G1010657 FmPA
4905: 0 0 0 1 0 0 0 K
4906: ( }) 126.7 322.18 T
4907: 0 0 0 1 0 0 0 K
4908: 121 466/G1010658 FmPA
4909: 0 0 0 1 0 0 0 K
4910: (}) 126.7 308.18 T
4911: 0 0 0 1 0 0 0 K
4912: 121 452/G1010659 FmPA
4913: 0 0 0 1 0 0 0 K
4914: 0 0 0 1 0 0 0 K
4915: 121 441/G1010660 FmPA
4916: 0 0 0 1 0 0 0 K
4917: 121 434/G1010662 FmPA
4918: 0 12 Q
4919: (Figure) 123.87 279.52 T
4920: (3) 158.2 279.52 T
4921: -0.66 (The stack and code to repeatedly e) 172.06 279.52 P
4922: -0.66 (x) 333.87 279.52 P
4923: -0.66 (ecute the topmost task frame) 339.69 279.52 P
4924: -0.66 (.) 475.03 279.52 P
4925: 121 423/G1010664 FmPA
4926: 120.87 434.26 120.87 275.77 2 L
4927: V
4928: 0.5 H
4929: 0 Z
4930: N
4931: 480.87 434.26 480.87 275.77 2 L
4932: V
4933: N
4934: 120.62 434.51 481.12 434.51 2 L
4935: V
4936: N
4937: 120.62 294.52 481.12 294.52 2 L
4938: V
4939: N
4940: 120.62 275.52 481.12 275.52 2 L
4941: V
4942: N
4943: 0 0 0 1 0 0 0 K
4944: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
4945: [/Dest/P.11/DEST FmPD2
4946: 164 431/M9.14480.Figure.Figure4.Intermediate.C.code.from.compiling.TSIA.code.in.Figure2a FmPA
4947: 164 431/I1.1010663 FmPA
4948: 136 771/M9.33711.1Heading.5.A.Crude.Implementation FmPA
4949: 136 771/I1.1014467 FmPA
4950: [/Rect[219 646 225 659]/Border[0 0 0]/Page 15/View[/XYZ null 136 351 FmDC exch pop null]/LNK FmPD
4951: [/Rect[251 239 292 252]/Border[0 0 0]/Page 13/View[/XYZ null 164 418 FmDC exch pop null]/LNK FmPD
4952: [/Rect[138 253 178 266]/Border[0 0 0]/Page 13/View[/XYZ null 164 599 FmDC exch pop null]/LNK FmPD
4953: [/Rect[194 239 234 252]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4954: [/Rect[161 512 201 525]/Border[0 0 0]/Page 11/View[/XYZ null 164 431 FmDC exch pop null]/LNK FmPD
4955: [/Rect[181 225 221 238]/Border[0 0 0]/Page 13/View[/XYZ null 164 599 FmDC exch pop null]/LNK FmPD
4956: [/Rect[337 225 343 238]/Border[0 0 0]/Page 13/View[/XYZ null 164 599 FmDC exch pop null]/LNK FmPD
4957: [/Rect[326 225 332 238]/Border[0 0 0]/Page 11/View[/XYZ null 164 431 FmDC exch pop null]/LNK FmPD
4958: [/Rect[370 225 376 238]/Border[0 0 0]/Page 13/View[/XYZ null 164 418 FmDC exch pop null]/LNK FmPD
4959: [/Rect[283 141 323 154]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
4960: [/Rect[121 127 161 140]/Border[0 0 0]/Page 13/View[/XYZ null 164 599 FmDC exch pop null]/LNK FmPD
4961: [/Rect[255 442 280 455]/Border[0 0 0]/Page 42/View[/XYZ null 121 648 FmDC exch pop null]/LNK FmPD
4962: [/Rect[280 442 332 455]/Border[0 0 0]/Page 42/View[/XYZ null 121 480 FmDC exch pop null]/LNK FmPD
4963: [/Rect[332 442 369 455]/Border[0 0 0]/Page 43/View[/XYZ null 121 816 FmDC exch pop null]/LNK FmPD
4964: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
4965: FMENDPAGE
4966: %%EndPage: "11" 11
4967: %%Page: "12" 12
4968: 595.28 839.05 0 FMBEGINPAGE
4969: [0 0 0 1 0 0 0]
4970: [ 0 1 1 0 1 0 0]
4971: [ 1 0 1 0 0 1 0]
4972: [ 1 1 0 0 0 0 1]
4973: [ 1 0 0 0 0 1 1]
4974: [ 0 1 0 0 1 0 1]
4975: [ 0 0 1 0 1 1 0]
4976: 7 FrameSetSepColors
4977: FrameNoSep
4978: 0 0 0 1 0 0 0 K
4979: 0 0 0 1 0 0 0 K
4980: 0 0 0 1 0 0 0 K
4981: 90 959/G837264 FmPA
4982: 0 12 Q
4983: 0 X
4984: 0 0 0 1 0 0 0 K
4985: (12) 289.29 93.77 T
4986: 40 238/G837268 FmPA
4987: 0 0 0 1 0 0 0 K
4988: 0 0 0 1 0 0 0 K
4989: 0 0 0 1 0 0 0 K
4990: 121 812/G1010125 FmPA
4991: 0 0 0 1 0 0 0 K
4992: 3 11 Q
4993: (extern char *_sp; /* The stack pointer. */) 126.7 658.18 T
4994: 0 0 0 1 0 0 0 K
4995: 121 802/G1010126 FmPA
4996: 0 0 0 1 0 0 0 K
4997: 0 0 0 1 0 0 0 K
4998: 121 788/G1010127 FmPA
4999: 0 0 0 1 0 0 0 K
5000: (/* a\050int x;; int y\051 { y=2*x; } */) 126.7 630.18 T
5001: 0 0 0 1 0 0 0 K
5002: 121 774/G1010128 FmPA
5003: 0 0 0 1 0 0 0 K
5004: -0.32 (typedef struct {void \050*_f\051\050void\051; int x;int *y;} _s_a;) 126.7 616.18 P
5005: 0 0 0 1 0 0 0 K
5006: 121 760/G1010129 FmPA
5007: 0 0 0 1 0 0 0 K
5008: (void _f_a\050void\051 {) 126.7 602.18 T
5009: 0 0 0 1 0 0 0 K
5010: 121 746/G1010130 FmPA
5011: 0 0 0 1 0 0 0 K
5012: ( _s_a *_p = \050_s_a *\051_sp;) 126.7 588.18 T
5013: 0 0 0 1 0 0 0 K
5014: 121 732/G1010131 FmPA
5015: 0 0 0 1 0 0 0 K
5016: ( *\050_p->y\051 = 2*_p->x;) 126.7 574.18 T
5017: 0 0 0 1 0 0 0 K
5018: 121 718/G1010132 FmPA
5019: 0 0 0 1 0 0 0 K
5020: ( _sp += sizeof\050*_p\051;) 126.7 560.18 T
5021: 0 0 0 1 0 0 0 K
5022: 121 704/G1010133 FmPA
5023: 0 0 0 1 0 0 0 K
5024: (}) 126.7 546.18 T
5025: 0 0 0 1 0 0 0 K
5026: 121 690/G1010134 FmPA
5027: 0 0 0 1 0 0 0 K
5028: 0 0 0 1 0 0 0 K
5029: 121 676/G1010135 FmPA
5030: 0 0 0 1 0 0 0 K
5031: (/* b\050;int x;\051 { x=x+3; } */) 126.7 518.18 T
5032: 0 0 0 1 0 0 0 K
5033: 121 662/G1010136 FmPA
5034: 0 0 0 1 0 0 0 K
5035: (typedef struct {void \050*_f\051\050void\051; int *x;} _s_b;) 126.7 504.18 T
5036: 0 0 0 1 0 0 0 K
5037: 121 648/G1010137 FmPA
5038: 0 0 0 1 0 0 0 K
5039: (void _f_b\050void\051 {) 126.7 490.18 T
5040: 0 0 0 1 0 0 0 K
5041: 121 634/G1010138 FmPA
5042: 0 0 0 1 0 0 0 K
5043: ( _s_b *_p = \050_s_b *\051_sp;) 126.7 476.18 T
5044: 0 0 0 1 0 0 0 K
5045: 121 620/G1010139 FmPA
5046: 0 0 0 1 0 0 0 K
5047: ( *\050_p->x\051 = *\050_p->x\051+3;) 126.7 462.18 T
5048: 0 0 0 1 0 0 0 K
5049: 121 606/G1010140 FmPA
5050: 0 0 0 1 0 0 0 K
5051: ( _sp += sizeof\050*_p\051;) 126.7 448.18 T
5052: 0 0 0 1 0 0 0 K
5053: 121 592/G1010141 FmPA
5054: 0 0 0 1 0 0 0 K
5055: (}) 126.7 434.18 T
5056: 0 0 0 1 0 0 0 K
5057: 121 578/G1010142 FmPA
5058: 0 0 0 1 0 0 0 K
5059: 0 0 0 1 0 0 0 K
5060: 121 564/G1010143 FmPA
5061: 0 0 0 1 0 0 0 K
5062: -0.2 (/* c\050int x;; int y\051 { if \050x>0\051 a\050x;;y\051; else y=-1; }*/) 126.7 406.18 P
5063: 0 0 0 1 0 0 0 K
5064: 121 550/G1010144 FmPA
5065: 0 0 0 1 0 0 0 K
5066: -0.32 (typedef struct {void \050*_f\051\050void\051; int x;int *y;} _s_c;) 126.7 392.18 P
5067: 0 0 0 1 0 0 0 K
5068: 121 536/G1010145 FmPA
5069: 0 0 0 1 0 0 0 K
5070: (void _f_c\050void\051 {) 126.7 378.18 T
5071: 0 0 0 1 0 0 0 K
5072: 121 522/G1010146 FmPA
5073: 0 0 0 1 0 0 0 K
5074: ( _s_c *_p = \050_s_c *\051_sp;) 126.7 364.18 T
5075: 0 0 0 1 0 0 0 K
5076: 121 508/G1010147 FmPA
5077: 0 0 0 1 0 0 0 K
5078: ( if \050\050_p->x\051>0\051 {) 126.7 350.18 T
5079: 0 0 0 1 0 0 0 K
5080: 121 494/G1010148 FmPA
5081: 0 0 0 1 0 0 0 K
5082: ( _s_a *_a1;) 126.7 336.18 T
5083: 0 0 0 1 0 0 0 K
5084: 121 480/G1010149 FmPA
5085: 0 0 0 1 0 0 0 K
5086: -0.32 ( /*_sp +=sizeof\050*_p\051-sizeof\050_s_a\051;*/ /*Same size.*/) 126.7 322.18 P
5087: 0 0 0 1 0 0 0 K
5088: 121 466/G1010150 FmPA
5089: 0 0 0 1 0 0 0 K
5090: ( _a1 = \050_s_a *\051_sp;) 126.7 308.18 T
5091: 0 0 0 1 0 0 0 K
5092: 121 452/G1010151 FmPA
5093: 0 0 0 1 0 0 0 K
5094: ( _a1->_f = _f_a;) 126.7 294.18 T
5095: 0 0 0 1 0 0 0 K
5096: 121 438/G1010152 FmPA
5097: 0 0 0 1 0 0 0 K
5098: ( /* _a1->x = _p->x; */ /* Already is true. */) 126.7 280.18 T
5099: 0 0 0 1 0 0 0 K
5100: 121 424/G1010153 FmPA
5101: 0 0 0 1 0 0 0 K
5102: ( /* _a1->y = _p->y; */ /* Already is true. */) 126.7 266.18 T
5103: 0 0 0 1 0 0 0 K
5104: 121 410/G1010154 FmPA
5105: 0 0 0 1 0 0 0 K
5106: ( }) 126.7 252.18 T
5107: 0 0 0 1 0 0 0 K
5108: 121 396/G1010155 FmPA
5109: 0 0 0 1 0 0 0 K
5110: ( else {) 126.7 238.18 T
5111: 0 0 0 1 0 0 0 K
5112: 121 382/G1010156 FmPA
5113: 0 0 0 1 0 0 0 K
5114: ( *\050_p->y\051=-1;) 126.7 224.18 T
5115: 0 0 0 1 0 0 0 K
5116: 121 368/G1010157 FmPA
5117: 0 0 0 1 0 0 0 K
5118: ( _sp += sizeof\050*_p\051;) 126.7 210.18 T
5119: 0 0 0 1 0 0 0 K
5120: 121 354/G1010158 FmPA
5121: 0 0 0 1 0 0 0 K
5122: ( }) 126.7 196.18 T
5123: 0 0 0 1 0 0 0 K
5124: 121 340/G1010159 FmPA
5125: 0 0 0 1 0 0 0 K
5126: (}) 126.7 182.18 T
5127: 0 0 0 1 0 0 0 K
5128: 121 326/G1010160 FmPA
5129: 0 0 0 1 0 0 0 K
5130: 0 0 0 1 0 0 0 K
5131: 121 312/G1010210 FmPA
5132: 0 0 0 1 0 0 0 K
5133: 0 0 0 1 0 0 0 K
5134: 121 298/G1010211 FmPA
5135: 0 0 0 1 0 0 0 K
5136: 0 0 0 1 0 0 0 K
5137: 121 287/G1010161 FmPA
5138: 0 0 0 1 0 0 0 K
5139: 120.87 672.27 120.87 140.77 2 L
5140: V
5141: 0.5 H
5142: 0 Z
5143: N
5144: 480.87 672.27 480.87 140.77 2 L
5145: V
5146: N
5147: 120.62 672.52 481.12 672.52 2 L
5148: V
5149: N
5150: 120.62 140.52 481.12 140.52 2 L
5151: V
5152: N
5153: 0 0 0 1 0 0 0 K
5154: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
5155: [/Dest/P.12/DEST FmPD2
5156: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
5157: FMENDPAGE
5158: %%EndPage: "12" 12
5159: %%Page: "13" 13
5160: 595.28 839.05 0 FMBEGINPAGE
5161: [0 0 0 1 0 0 0]
5162: [ 0 1 1 0 1 0 0]
5163: [ 1 0 1 0 0 1 0]
5164: [ 1 1 0 0 0 0 1]
5165: [ 1 0 0 0 0 1 1]
5166: [ 0 1 0 0 1 0 1]
5167: [ 0 0 1 0 1 1 0]
5168: 7 FrameSetSepColors
5169: FrameNoSep
5170: 0 0 0 1 0 0 0 K
5171: 0 0 0 1 0 0 0 K
5172: 0 0 0 1 0 0 0 K
5173: 90 959/G837264 FmPA
5174: 0 12 Q
5175: 0 X
5176: 0 0 0 1 0 0 0 K
5177: (13) 289.29 93.77 T
5178: 40 238/G837268 FmPA
5179: 3 F
5180: 2.41 ({*_f,x,*y}) 120.87 246.52 P
5181: 0 F
5182: 1 ( of type) 192.87 246.52 P
5183: 3 F
5184: 2.41 (_s_a) 235.54 246.52 P
5185: 0 F
5186: 1 (, as well as the routine) 264.34 246.52 P
5187: 3 F
5188: 2.41 (_f_a\050\051) 380.67 246.52 P
5189: 0 F
5190: 1 (. The struc-) 423.87 246.52 P
5191: 0.56 (ture describes a task frame for calling the routine. In the frame,) 120.87 232.52 P
5192: 3 F
5193: 1.36 (_f) 433.56 232.52 P
5194: 0 F
5195: 0.56 ( points) 447.96 232.52 P
5196: 1.09 (to the routine) 120.87 218.52 P
5197: 3 F
5198: 2.61 (_f_a) 191.13 218.52 P
5199: 0 F
5200: 1.09 ( and is used to e) 219.93 218.52 P
5201: 1.09 (x) 302.18 218.52 P
5202: 1.09 (ecute the frame. The routine) 308 218.52 P
5203: 3 F
5204: 2.61 (_f_a) 452.06 218.52 P
5205: 0 F
5206: 0.02 (has no usual ar) 120.87 204.52 P
5207: 0.02 (guments, since it recei) 192.35 204.52 P
5208: 0.02 (v) 299.42 204.52 P
5209: 0.02 (es its ar) 305.23 204.52 P
5210: 0.02 (guments) 341.71 204.52 P
5211: 3 F
5212: 0.04 (x) 385.39 204.52 P
5213: 0 F
5214: 0.02 ( and) 392.59 204.52 P
5215: 3 F
5216: 0.04 (y) 415.95 204.52 P
5217: 0 F
5218: 0.02 ( via the task) 423.15 204.52 P
5219: 0.4 (frame. On entry to) 120.87 190.52 P
5220: 3 F
5221: 0.97 (_f_a) 214.12 190.52 P
5222: 0 F
5223: 0.4 (, the stack pointer) 242.93 190.52 P
5224: 3 F
5225: 0.97 (_sp) 332.86 190.52 P
5226: 0 F
5227: 0.4 ( points to the frame of the) 354.46 190.52 P
5228: 3.19 (call.) 120.87 176.52 P
5229: 3 F
5230: 7.67 (_p) 147.39 176.52 P
5231: 0 F
5232: 3.19 ( gi) 161.79 176.52 P
5233: 3.19 (v) 177.02 176.52 P
5234: 3.19 (es structured access to the frame. Thus the original code) 182.84 176.52 P
5235: 3 F
5236: 6.38 (y=2*x) 120.87 162.52 P
5237: 0 F
5238: 2.66 ( is compiled to) 156.87 162.52 P
5239: 3 F
5240: 6.38 (*\050_p->y\051=2*_p->x) 241.51 162.52 P
5241: 0 F
5242: 2.66 (. The in) 356.71 162.52 P
5243: 3 F
5244: 6.38 (x) 404.69 162.52 P
5245: 0 F
5246: 2.66 ( is passed by) 411.89 162.52 P
5247: 1.99 (v) 120.87 148.52 P
5248: 1.99 (alue, while the out) 126.57 148.52 P
5249: 3 F
5250: 4.78 (y) 226.18 148.52 P
5251: 0 F
5252: 1.99 ( is passed by reference. Since the e) 233.38 148.52 P
5253: 1.99 (x) 414.41 148.52 P
5254: 1.99 (ecution of a) 420.23 148.52 P
5255: 0 0 0 1 0 0 0 K
5256: 0 0 0 1 0 0 0 K
5257: 0 0 0 1 0 0 0 K
5258: 121 812/G1010175 FmPA
5259: 0 0 0 1 0 0 0 K
5260: 3 11 Q
5261: (/* d\050;;int v\051 { int w=4; b\050;w;\051; c\050w;;v\051; } */) 126.7 658.18 T
5262: 0 0 0 1 0 0 0 K
5263: 121 802/G1010176 FmPA
5264: 0 0 0 1 0 0 0 K
5265: (typedef struct {void \050*_f\051\050void\051; int *v;} _s_d;) 126.7 644.18 T
5266: 0 0 0 1 0 0 0 K
5267: 121 788/G1010177 FmPA
5268: 0 0 0 1 0 0 0 K
5269: (void _f_d\050void\051 {) 126.7 630.18 T
5270: 0 0 0 1 0 0 0 K
5271: 121 774/G1010178 FmPA
5272: 0 0 0 1 0 0 0 K
5273: ( typedef struct { _s_b _b1; _s_c _c1;} _s_b_c;) 126.7 616.18 T
5274: 0 0 0 1 0 0 0 K
5275: 121 760/G1010179 FmPA
5276: 0 0 0 1 0 0 0 K
5277: ( _s_b_c *_c;) 126.7 602.18 T
5278: 0 0 0 1 0 0 0 K
5279: 121 746/G1010180 FmPA
5280: 0 0 0 1 0 0 0 K
5281: ( _sp += -sizeof\050_s_b_c\051 + sizeof\050_s_d\051;) 126.7 588.18 T
5282: 0 0 0 1 0 0 0 K
5283: 121 732/G1010181 FmPA
5284: 0 0 0 1 0 0 0 K
5285: ( _c = \050_s_b_c *\051_sp;) 126.7 574.18 T
5286: 0 0 0 1 0 0 0 K
5287: 121 718/G1010182 FmPA
5288: 0 0 0 1 0 0 0 K
5289: ( _c->_b1._f = _f_b;) 126.7 560.18 T
5290: 0 0 0 1 0 0 0 K
5291: 121 704/G1010183 FmPA
5292: 0 0 0 1 0 0 0 K
5293: ( _c->_b1.x = &_c->_c1.x;) 126.7 546.18 T
5294: 0 0 0 1 0 0 0 K
5295: 121 690/G1010184 FmPA
5296: 0 0 0 1 0 0 0 K
5297: 0 0 0 1 0 0 0 K
5298: 121 676/G1010185 FmPA
5299: 0 0 0 1 0 0 0 K
5300: ( _c->_c1._f = _f_c;) 126.7 518.18 T
5301: 0 0 0 1 0 0 0 K
5302: 121 662/G1010186 FmPA
5303: 0 0 0 1 0 0 0 K
5304: ( _c->_c1.x = 4;) 126.7 504.18 T
5305: 0 0 0 1 0 0 0 K
5306: 121 648/G1010187 FmPA
5307: 0 0 0 1 0 0 0 K
5308: ( /* _c->_c1.y Already is ok. */) 126.7 490.18 T
5309: 0 0 0 1 0 0 0 K
5310: 121 634/G1010188 FmPA
5311: 0 0 0 1 0 0 0 K
5312: (}) 126.7 476.18 T
5313: 0 0 0 1 0 0 0 K
5314: 121 620/G1010189 FmPA
5315: 0 0 0 1 0 0 0 K
5316: 0 0 0 1 0 0 0 K
5317: 121 609/G1010190 FmPA
5318: 0 0 0 1 0 0 0 K
5319: 121 602/G1010192 FmPA
5320: 0 12 Q
5321: (Figure) 123.87 447.51 T
5322: (4) 158.2 447.51 T
5323: (Intermediate C code from compiling TSIA code in) 172.06 447.51 T
5324: (Figure) 418.02 447.51 T
5325: (2) 452.35 447.51 T
5326: (a\051.) 458.35 447.51 T
5327: 121 591/G1010196 FmPA
5328: 0 0 0 1 0 0 0 K
5329: 0 0 0 1 0 0 0 K
5330: 0 0 0 1 0 0 0 K
5331: 121 575/G1010250 FmPA
5332: 0 0 0 1 0 0 0 K
5333: 3 11 Q
5334: (main\050\051 {) 126.7 421.18 T
5335: 0 0 0 1 0 0 0 K
5336: 121 565/G1010264 FmPA
5337: 0 0 0 1 0 0 0 K
5338: ( int q;) 126.7 407.18 T
5339: 0 0 0 1 0 0 0 K
5340: 121 551/G1010306 FmPA
5341: 0 0 0 1 0 0 0 K
5342: ( _s_d *s;) 126.7 393.18 T
5343: 0 0 0 1 0 0 0 K
5344: 121 537/G1010307 FmPA
5345: 0 0 0 1 0 0 0 K
5346: ( _sp -= sizeof\050_s_d\051;) 126.7 379.18 T
5347: 0 0 0 1 0 0 0 K
5348: 121 523/G1010315 FmPA
5349: 0 0 0 1 0 0 0 K
5350: ( s = \050_s_d *\051_sp;) 126.7 365.18 T
5351: 0 0 0 1 0 0 0 K
5352: 121 509/G1010316 FmPA
5353: 0 0 0 1 0 0 0 K
5354: ( s->_f = _f_d;) 126.7 351.18 T
5355: 0 0 0 1 0 0 0 K
5356: 121 495/G1010317 FmPA
5357: 0 0 0 1 0 0 0 K
5358: ( s->v = &q;) 126.7 337.18 T
5359: 0 0 0 1 0 0 0 K
5360: 121 481/G1010318 FmPA
5361: 0 0 0 1 0 0 0 K
5362: ( _xtop\050\051;) 126.7 323.18 T
5363: 0 0 0 1 0 0 0 K
5364: 121 467/G1010319 FmPA
5365: 0 0 0 1 0 0 0 K
5366: ( printf\050"%d\134n",q\051;) 126.7 309.18 T
5367: 0 0 0 1 0 0 0 K
5368: 121 453/G1010320 FmPA
5369: 0 0 0 1 0 0 0 K
5370: (}) 126.7 295.18 T
5371: 0 0 0 1 0 0 0 K
5372: 121 439/G1010322 FmPA
5373: 0 0 0 1 0 0 0 K
5374: 0 0 0 1 0 0 0 K
5375: 121 428/G1010265 FmPA
5376: 0 0 0 1 0 0 0 K
5377: 121 421/G1010267 FmPA
5378: 0 12 Q
5379: (Figure) 123.87 266.52 T
5380: (5) 158.2 266.52 T
5381: (A) 172.06 266.52 T
5382: (n application which calls the routine) 180.72 266.52 T
5383: 3 F
5384: (d) 358.03 266.52 T
5385: 0 F
5386: ( of Figure) 365.23 266.52 T
5387: (4) 415.56 266.52 T
5388: (.) 421.56 266.52 T
5389: 121 410/G1010272 FmPA
5390: 120.87 672.27 120.87 443.76 2 L
5391: V
5392: 0.5 H
5393: 0 Z
5394: N
5395: 480.87 672.27 480.87 443.76 2 L
5396: V
5397: N
5398: 120.62 672.52 481.12 672.52 2 L
5399: V
5400: N
5401: 120.62 462.51 481.12 462.51 2 L
5402: V
5403: N
5404: 120.62 443.51 481.12 443.51 2 L
5405: V
5406: N
5407: 120.87 435.26 120.87 262.77 2 L
5408: V
5409: N
5410: 480.87 435.26 480.87 262.77 2 L
5411: V
5412: N
5413: 120.62 435.51 481.12 435.51 2 L
5414: V
5415: N
5416: 120.62 281.52 481.12 281.52 2 L
5417: V
5418: N
5419: 120.62 262.52 481.12 262.52 2 L
5420: V
5421: N
5422: 0 0 0 1 0 0 0 K
5423: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
5424: [/Dest/P.13/DEST FmPD2
5425: 164 599/M9.34860.Figure.Figure3.Intermediate.C.code.from.compiling.TSIA.code.in.Figure2a FmPA
5426: 164 599/I1.1010212 FmPA
5427: 164 418/M9.33807.Figure.Figure5.Intermediate.C.code.from.compiling.TSIA.code.in.Figure2a FmPA
5428: 164 418/I1.1010374 FmPA
5429: [/Rect[418 443 458 456]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
5430: [/Rect[381 262 422 275]/Border[0 0 0]/Page 13/View[/XYZ null 164 599 FmDC exch pop null]/LNK FmPD
5431: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
5432: FMENDPAGE
5433: %%EndPage: "13" 13
5434: %%Page: "14" 14
5435: 595.28 839.05 0 FMBEGINPAGE
5436: [0 0 0 1 0 0 0]
5437: [ 0 1 1 0 1 0 0]
5438: [ 1 0 1 0 0 1 0]
5439: [ 1 1 0 0 0 0 1]
5440: [ 1 0 0 0 0 1 1]
5441: [ 0 1 0 0 1 0 1]
5442: [ 0 0 1 0 1 1 0]
5443: 7 FrameSetSepColors
5444: FrameNoSep
5445: 0 0 0 1 0 0 0 K
5446: 0 0 0 1 0 0 0 K
5447: 0 0 0 1 0 0 0 K
5448: 90 959/G837264 FmPA
5449: 0 12 Q
5450: 0 X
5451: 0 0 0 1 0 0 0 K
5452: (14) 289.29 93.77 T
5453: 40 238/G837268 FmPA
5454: 1.34 (frame remo) 120.87 664.52 P
5455: 1.34 (v) 177.67 664.52 P
5456: 1.34 (es it from the stack, the stack pointer is incremented by the) 183.49 664.52 P
5457: (size of the frame. The compilation of the routine) 120.87 650.52 T
5458: 3 F
5459: (b) 356.82 650.52 T
5460: 0 F
5461: ( is v) 364.02 650.52 T
5462: (ery similar) 383.85 650.52 T
5463: (.) 434.85 650.52 T
5464: 0.07 (The compilation of the routine) 137.88 636.52 P
5465: 3 F
5466: 0.16 (c) 287.86 636.52 P
5467: 0 F
5468: 0.07 ( introduces some aspects be) 295.07 636.52 P
5469: 0.07 (yond those) 428.46 636.52 P
5470: 121 780/G1010421 FmPA
5471: 1.34 (described abo) 120.87 622.52 P
5472: 1.34 (v) 188.34 622.52 P
5473: 1.34 (e for the routine) 194.16 622.52 P
5474: 3 F
5475: 3.22 (a) 279.51 622.52 P
5476: 0 F
5477: 1.34 (. In particular) 286.71 622.52 P
5478: 1.34 (, when) 353.9 622.52 P
5479: 3 F
5480: 3.22 (x>0) 391.57 622.52 P
5481: 0 F
5482: 1.34 ( then the task) 413.17 622.52 P
5483: 3 F
5484: -0.05 (c\050x;;y\051) 120.87 608.52 P
5485: 0 F
5486: -0.02 ( replaces itself by the task) 171.27 608.52 P
5487: 3 F
5488: -0.05 (a\050x;;y\051) 298.46 608.52 P
5489: 0 F
5490: -0.02 (. Since the tw) 348.86 608.52 P
5491: -0.02 (o frames ha) 414.01 608.52 P
5492: -0.02 (v) 469.71 608.52 P
5493: -0.02 (e) 475.53 608.52 P
5494: -0.02 (the same size, the stack pointer does not change. The items) 120.87 594.52 P
5495: 3 F
5496: -0.06 (x) 406.88 594.52 P
5497: 0 F
5498: -0.02 ( and) 414.08 594.52 P
5499: 3 F
5500: -0.06 (y) 437.36 594.52 P
5501: 0 F
5502: -0.02 ( remain) 444.56 594.52 P
5503: (as is in the frame. Only) 120.87 580.52 T
5504: 3 F
5505: (_f_c) 235.85 580.52 T
5506: 0 F
5507: ( is replaced by) 264.65 580.52 T
5508: 3 F
5509: (_f_a) 337.3 580.52 T
5510: 0 F
5511: ( in the frame.) 366.1 580.52 T
5512: 3.67 (The compilation of) 137.88 566.52 P
5513: 3 F
5514: 8.8 (d) 243.87 566.52 P
5515: 0 F
5516: 3.67 ( also introduces some aspects be) 251.07 566.52 P
5517: 3.67 (yond those) 424.86 566.52 P
5518: 121 710/G1010422 FmPA
5519: 0.34 (described abo) 120.87 552.52 P
5520: 0.34 (v) 187.34 552.52 P
5521: 0.34 (e. In its e) 193.16 552.52 P
5522: 0.34 (x) 237.97 552.52 P
5523: 0.34 (ecution, the routine) 243.79 552.52 P
5524: 3 F
5525: 0.81 (d) 340.79 552.52 P
5526: 0 F
5527: 0.34 ( calls tw) 347.99 552.52 P
5528: 0.34 (o routines. In other) 388.54 552.52 P
5529: 1 (w) 120.87 538.52 P
5530: 1 (ords, the task) 129.41 538.52 P
5531: 3 F
5532: 2.4 (d\050;;v\051) 199.08 538.52 P
5533: 0 F
5534: 1 ( replaces itself by the tasks) 242.28 538.52 P
5535: 3 F
5536: 2.4 (b\050;w;\051) 380.26 538.52 P
5537: 2.4 (c\050w;;v\051) 427.46 538.52 P
5538: 0 F
5539: 1 (.) 477.86 538.52 P
5540: 0.35 (The structure) 120.87 524.52 P
5541: 3 F
5542: 0.85 (_c) 188.23 524.52 P
5543: 0 F
5544: 0.35 ( of type) 202.62 524.52 P
5545: 3 F
5546: 0.85 (_s_b_c) 243.35 524.52 P
5547: 0 F
5548: 0.35 ( is used for the tw) 286.55 524.52 P
5549: 0.35 (o replacement frames.) 373.86 524.52 P
5550: 0.77 (The stack pointer is mo) 120.87 510.51 P
5551: 0.77 (v) 236.41 510.51 P
5552: 0.77 (ed to its ne) 242.23 510.51 P
5553: 0.77 (w position. F) 296.57 510.51 P
5554: 0.77 (or the task) 360.93 510.51 P
5555: 3 F
5556: 1.84 (b\050;w;\051) 416.23 510.51 P
5557: 0 F
5558: 0.77 (, the) 459.43 510.51 P
5559: 1.07 (pointers for the routine) 120.87 496.51 P
5560: 3 F
5561: 2.57 (_f_b) 238.47 496.51 P
5562: 0 F
5563: 1.07 ( and for the ar) 267.27 496.51 P
5564: 1.07 (gument) 338.64 496.51 P
5565: 3 F
5566: 2.57 (x) 378.72 496.51 P
5567: 0 F
5568: 1.07 ( are written into its) 385.92 496.51 P
5569: 1.81 (frame. F) 120.87 482.51 P
5570: 1.81 (or the task) 163.15 482.51 P
5571: 3 F
5572: 4.34 (c\050w;;v\051) 221.56 482.51 P
5573: 0 F
5574: 1.81 (, the pointer to the routine) 271.96 482.51 P
5575: 3 F
5576: 4.34 (_f_c) 410.46 482.51 P
5577: 0 F
5578: 1.81 ( and the) 439.26 482.51 P
5579: 0.61 (v) 120.87 468.51 P
5580: 0.61 (alue) 126.57 468.51 P
5581: 3 F
5582: 1.47 (4) 150.17 468.51 P
5583: 0 F
5584: 0.61 ( are written into its frame. In the replacement of the task) 157.37 468.51 P
5585: 3 F
5586: 1.47 (d\050;;v\051) 437.66 468.51 P
5587: 0 F
5588: (by the tasks) 120.87 454.51 T
5589: 3 F
5590: (b\050;w;\051) 180.53 454.51 T
5591: (c\050w;;v\051) 226.73 454.51 T
5592: 0 F
5593: (, the item) 277.13 454.51 T
5594: 3 F
5595: (v) 325.13 454.51 T
5596: 0 F
5597: ( remains as is on the stack.) 332.33 454.51 T
5598: 1.78 (Figure) 137.88 440.51 P
5599: 1.78 (5 sho) 172.21 440.51 P
5600: 1.78 (ws an application which calls the routine) 199.35 440.51 P
5601: 3 F
5602: 4.27 (d) 410.78 440.51 P
5603: 0 F
5604: 1.78 ( of Figure) 417.98 440.51 P
5605: 1.78 (4.) 471.86 440.51 P
5606: 121 584/G1010436 FmPA
5607: -0.09 (First the stack pointer is decremented to mak) 120.87 426.51 P
5608: -0.09 (e room for the frame, which is) 335.76 426.51 P
5609: -0.18 (referred to using) 120.87 412.51 P
5610: 3 F
5611: -0.44 (s) 202.63 412.51 P
5612: 0 F
5613: -0.18 (. The pointers for the routine) 209.83 412.51 P
5614: 3 F
5615: -0.44 (_f_d) 349.7 412.51 P
5616: 0 F
5617: -0.18 ( and for the ar) 378.5 412.51 P
5618: -0.18 (gument) 444.86 412.51 P
5619: 3 F
5620: 1.95 (v) 120.87 398.51 P
5621: 0 F
5622: 0.81 ( are written into the frame. The frame is e) 128.07 398.51 P
5623: 0.81 (x) 335.15 398.51 P
5624: 0.81 (ecuted by calling the routine) 340.97 398.51 P
5625: 3 F
5626: 1.86 (_xtop) 120.87 384.51 P
5627: 0 F
5628: 0.77 (, which returns when the stack is empty) 156.87 384.51 P
5629: 0.77 (. In other w) 351.47 384.51 P
5630: 0.77 (ords, when the) 408.99 384.51 P
5631: 0.6 (call to) 120.87 370.51 P
5632: 3 F
5633: 1.44 (d) 154.74 370.51 P
5634: 0 F
5635: 0.6 ( and all the resulting calls to routines ha) 161.93 370.51 P
5636: 0.6 (v) 357.82 370.51 P
5637: 0.6 (e e) 363.64 370.51 P
5638: 0.6 (x) 377.72 370.51 P
5639: 0.6 (ecuted. As e) 383.54 370.51 P
5640: 0.6 (xpected) 443.54 370.51 P
5641: (follo) 120.87 356.51 T
5642: (wing the e) 143.24 356.51 T
5643: (x) 193.05 356.51 T
5644: (ecution, the v) 198.87 356.51 T
5645: (alue of) 263.56 356.51 T
5646: 3 F
5647: (q) 299.55 356.51 T
5648: 0 F
5649: ( is) 306.75 356.51 T
5650: 3 F
5651: (14) 320.75 356.51 T
5652: 0 F
5653: (.) 335.15 356.51 T
5654: 2 (Figure) 137.88 342.51 P
5655: 2 (2b\051 sho) 172.21 342.51 P
5656: 2 (ws snapshots of the stack during the e) 209.57 342.51 P
5657: 2 (x) 405.05 342.51 P
5658: 2 (ecution of the) 410.87 342.51 P
5659: 121 486/G1017034 FmPA
5660: 0.98 (application) 120.87 328.51 P
5661: 3 F
5662: 2.35 (d\050;;q\051) 178.17 328.51 P
5663: 0 F
5664: 0.98 (. The crude implementation easily is instrumented to) 221.37 328.51 P
5665: 0.31 (sho) 120.87 314.52 P
5666: 0.31 (w the snapshots. In the loop of the routine) 137.24 314.52 P
5667: 3 F
5668: 0.74 (_xtop) 344.67 314.52 P
5669: 0 F
5670: 0.31 (, a call to the routine) 380.67 314.52 P
5671: 3 F
5672: -0.11 (_contents\050\051) 120.87 300.52 P
5673: 0 F
5674: -0.05 ( of Figure) 200.07 300.52 P
5675: -0.05 (6 is inserted before the e) 250.3 300.52 P
5676: -0.05 (x) 367.52 300.52 P
5677: -0.05 (ecution of the topmost) 373.34 300.52 P
5678: (task.) 120.87 286.52 T
5679: 0 0 0 1 0 0 0 K
5680: 0 0 0 1 0 0 0 K
5681: 0 0 0 1 0 0 0 K
5682: 121 414/G1017019 FmPA
5683: 0 0 0 1 0 0 0 K
5684: 3 11 Q
5685: (/* Assume stack contains ints or pointers. */) 126.7 260.18 T
5686: 0 0 0 1 0 0 0 K
5687: 121 404/G1017020 FmPA
5688: 0 0 0 1 0 0 0 K
5689: (void _contents\050void\051 {) 126.7 246.18 T
5690: 0 0 0 1 0 0 0 K
5691: 121 390/G1017058 FmPA
5692: 0 0 0 1 0 0 0 K
5693: ( int *p;) 126.7 232.18 T
5694: 0 0 0 1 0 0 0 K
5695: 121 376/G1017059 FmPA
5696: 0 0 0 1 0 0 0 K
5697: (for) 139.9 218.18 T
5698: (\050p=\050int*\051_sp;) 166.3 218.18 T
5699: (p<_stack+_SSIZE;) 258.7 218.18 T
5700: (p++\051) 370.9 218.18 T
5701: 0 0 0 1 0 0 0 K
5702: 121 362/G1017060 FmPA
5703: 0 0 0 1 0 0 0 K
5704: (printf\050\322%8p:%8X==%10d\134n\323,p,*p,*p\051;) 153.1 204.18 T
5705: 0 0 0 1 0 0 0 K
5706: 121 348/G1017061 FmPA
5707: 0 0 0 1 0 0 0 K
5708: (puts\050\322End of snapshot of the stack.\323\051;) 139.9 190.18 T
5709: 0 0 0 1 0 0 0 K
5710: 121 334/G1017062 FmPA
5711: 0 0 0 1 0 0 0 K
5712: (}) 126.7 176.18 T
5713: 0 0 0 1 0 0 0 K
5714: 121 320/G1017063 FmPA
5715: 0 0 0 1 0 0 0 K
5716: 0 0 0 1 0 0 0 K
5717: 121 309/G1017029 FmPA
5718: 0 0 0 1 0 0 0 K
5719: 121 302/G1017031 FmPA
5720: 0 12 Q
5721: (Figure) 123.87 147.52 T
5722: (6) 158.2 147.52 T
5723: (A routine to sho) 172.06 147.52 T
5724: (w the contents of the stack.) 249.42 147.52 T
5725: 121 291/G1017033 FmPA
5726: 120.87 274.27 120.87 143.77 2 L
5727: V
5728: 0.5 H
5729: 0 Z
5730: N
5731: 480.87 274.27 480.87 143.77 2 L
5732: V
5733: N
5734: 120.62 274.52 481.12 274.52 2 L
5735: V
5736: N
5737: 120.62 162.52 481.12 162.52 2 L
5738: V
5739: N
5740: 120.62 143.52 481.12 143.52 2 L
5741: V
5742: N
5743: 0 0 0 1 0 0 0 K
5744: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
5745: [/Dest/P.14/DEST FmPD2
5746: 164 299/M9.25322.Figure.Figure6.A.routine.to.show.the.contents.of.the.stack FmPA
5747: 164 299/I1.1017081 FmPA
5748: [/Rect[138 338 178 351]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
5749: [/Rect[138 436 178 449]/Border[0 0 0]/Page 13/View[/XYZ null 164 418 FmDC exch pop null]/LNK FmPD
5750: [/Rect[438 436 478 449]/Border[0 0 0]/Page 13/View[/XYZ null 164 599 FmDC exch pop null]/LNK FmPD
5751: [/Rect[216 296 256 309]/Border[0 0 0]/Page 14/View[/XYZ null 164 299 FmDC exch pop null]/LNK FmPD
5752: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
5753: FMENDPAGE
5754: %%EndPage: "14" 14
5755: %%Page: "15" 15
5756: 595.28 839.05 0 FMBEGINPAGE
5757: [0 0 0 1 0 0 0]
5758: [ 0 1 1 0 1 0 0]
5759: [ 1 0 1 0 0 1 0]
5760: [ 1 1 0 0 0 0 1]
5761: [ 1 0 0 0 0 1 1]
5762: [ 0 1 0 0 1 0 1]
5763: [ 0 0 1 0 1 1 0]
5764: 7 FrameSetSepColors
5765: FrameNoSep
5766: 0 0 0 1 0 0 0 K
5767: 0 0 0 1 0 0 0 K
5768: 0 0 0 1 0 0 0 K
5769: 90 959/G837264 FmPA
5770: 0 12 Q
5771: 0 X
5772: 0 0 0 1 0 0 0 K
5773: (15) 289.29 93.77 T
5774: 40 238/G837268 FmPA
5775: 2.86 (In the application of Figure) 120.87 664.52 P
5776: 2.86 (5, inserting the follo) 266.63 664.52 P
5777: 2.86 (wing code sho) 372.25 664.52 P
5778: 2.86 (ws the) 447 664.52 P
5779: 121 808/G1017056 FmPA
5780: (addresses of interest.) 120.87 650.52 T
5781: 3 F
5782: (printf\050"_f_a==%p\134n",_f_a\051;) 149.21 636.52 T
5783: 121 780/G1010773 FmPA
5784: (printf\050"_f_b==%p\134n",_f_b\051;) 149.21 622.52 T
5785: 121 766/G1010775 FmPA
5786: (printf\050"_f_c==%p\134n",_f_c\051;) 149.21 608.52 T
5787: 121 752/G1010776 FmPA
5788: (printf\050"_f_d==%p\134n",_f_d\051;) 149.21 594.52 T
5789: 121 738/G1010777 FmPA
5790: (printf\050"&q ==%p\134n", &q\051;) 149.21 580.52 T
5791: 121 724/G1010778 FmPA
5792: 0 F
5793: (The output of the e) 120.87 566.52 T
5794: (x) 212.01 566.52 T
5795: (ecution follo) 217.83 566.52 T
5796: (ws.) 278.52 566.52 T
5797: 121 710/G1009871 FmPA
5798: 3 F
5799: (_f_a==10c10) 149.21 552.52 T
5800: 121 696/G1010789 FmPA
5801: (_f_b==10c78) 149.21 538.52 T
5802: 121 682/G1010791 FmPA
5803: (_f_c==10ce8) 149.21 524.52 T
5804: 121 668/G1010792 FmPA
5805: (_f_d==10d88) 149.21 510.51 T
5806: 121 654/G1010793 FmPA
5807: (&q ==efffe838) 149.21 496.51 T
5808: 121 640/G1010794 FmPA
5809: (115450: 10D88== 69000) 163.62 482.51 T
5810: 121 626/G1010796 FmPA
5811: ( 115454:EFFFE838==-268441544) 149.21 468.51 T
5812: 121 612/G1010797 FmPA
5813: (End of snapshot of the stack.) 149.21 454.51 T
5814: 121 598/G1010798 FmPA
5815: (115444: 10C78== 68728) 163.62 440.51 T
5816: 121 584/G1010800 FmPA
5817: ( 115448: 115450== 1135696) 149.21 426.51 T
5818: 121 570/G1010801 FmPA
5819: ( 11544c: 10CE8== 68840) 149.21 412.51 T
5820: 121 556/G1010802 FmPA
5821: ( 115450: 4== 4) 149.21 398.51 T
5822: 121 542/G1010803 FmPA
5823: ( 115454:EFFFE838==-268441544) 149.21 384.51 T
5824: 121 528/G1010804 FmPA
5825: (End of snapshot of the stack.) 149.21 370.51 T
5826: 121 514/G1010805 FmPA
5827: ( 11544c: 10CE8== 68840) 149.21 356.51 T
5828: 121 500/G1010807 FmPA
5829: ( 115450: 7== 7) 149.21 342.51 T
5830: 121 486/G1010808 FmPA
5831: ( 115454:EFFFE838==-268441544) 149.21 328.51 T
5832: 121 472/G1010809 FmPA
5833: (End of snapshot of the stack.) 149.21 314.52 T
5834: 121 458/G1010810 FmPA
5835: (11544c: 10C10== 68624) 163.62 300.52 T
5836: 121 444/G1010812 FmPA
5837: ( 115450: 7== 7) 149.21 286.52 T
5838: 121 430/G1010813 FmPA
5839: ( 115454:EFFFE838==-268441544) 149.21 272.52 T
5840: 121 416/G1010814 FmPA
5841: (End of snapshot of the stack.) 149.21 258.52 T
5842: 121 402/G1010815 FmPA
5843: (14) 149.21 244.52 T
5844: 121 388/G1010816 FmPA
5845: 0 F
5846: (The snapshots of the output and of Figure) 120.87 230.52 T
5847: (2b\051 match e) 324.18 230.52 T
5848: (xactly) 380.66 230.52 T
5849: (.) 409.2 230.52 T
5850: 121 374/G1010817 FmPA
5851: 1 F
5852: (6 An Acti) 120.87 199.52 T
5853: (v) 175.41 199.52 T
5854: (ation Frame is lik) 181.29 199.52 T
5855: (e a T) 271.5 199.52 T
5856: (ask Frame) 295.73 199.52 T
5857: 121 343/G1007104 FmPA
5858: 0 F
5859: 0.19 (A suspended acti) 120.87 180.52 P
5860: 0.19 (v) 202.94 180.52 P
5861: 0.19 (ation frame is similar to a task frame [Cilk-2]. The simi-) 208.64 180.52 P
5862: 121 324/G1015295 FmPA
5863: 0.34 (larity is demonstrated in this section using a crude implementation of acti-) 120.87 166.52 P
5864: 0.3 (v) 120.87 152.52 P
5865: 0.3 (ation frames. The implementation is compatible with that of section) 126.57 152.52 P
5866: 0.3 (5 for) 457.57 152.52 P
5867: 0.34 (task frames. The similarity allo) 120.87 138.52 P
5868: 0.34 (ws an application e) 271.6 138.52 P
5869: 0.34 (x) 364.77 138.52 P
5870: 0.34 (ecution to ha) 370.59 138.52 P
5871: 0.34 (v) 433.04 138.52 P
5872: 0.34 (e a stack) 438.86 138.52 P
5873: 0 0 0 1 0 0 0 K
5874: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
5875: [/Dest/P.15/DEST FmPD2
5876: 136 351/M9.10663.1Heading.6.An.Activation.Frame.is.like.a.Task.Frame FmPA
5877: 136 351/I1.1017235 FmPA
5878: [/Rect[232 660 273 673]/Border[0 0 0]/Page 13/View[/XYZ null 164 418 FmDC exch pop null]/LNK FmPD
5879: [/Rect[290 226 330 239]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
5880: [/Rect[389 176 428 189]/Border[0 0 0]/Page 41/View[/XYZ null 121 444 FmDC exch pop null]/LNK FmPD
5881: [/Rect[458 148 464 161]/Border[0 0 0]/Page 11/View[/XYZ null 136 771 FmDC exch pop null]/LNK FmPD
5882: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
5883: FMENDPAGE
5884: %%EndPage: "15" 15
5885: %%Page: "16" 16
5886: 595.28 839.05 0 FMBEGINPAGE
5887: [0 0 0 1 0 0 0]
5888: [ 0 1 1 0 1 0 0]
5889: [ 1 0 1 0 0 1 0]
5890: [ 1 1 0 0 0 0 1]
5891: [ 1 0 0 0 0 1 1]
5892: [ 0 1 0 0 1 0 1]
5893: [ 0 0 1 0 1 1 0]
5894: 7 FrameSetSepColors
5895: FrameNoSep
5896: 0 0 0 1 0 0 0 K
5897: 0 0 0 1 0 0 0 K
5898: 0 0 0 1 0 0 0 K
5899: 90 959/G837264 FmPA
5900: 0 12 Q
5901: 0 X
5902: 0 0 0 1 0 0 0 K
5903: (16) 289.29 93.77 T
5904: 40 238/G837268 FmPA
5905: -0.03 (with acti) 120.87 664.52 P
5906: -0.03 (v) 162.2 664.52 P
5907: -0.03 (ation frames and task frames. The current con) 167.9 664.52 P
5908: -0.03 (v) 387.11 664.52 P
5909: -0.03 (entional e) 392.93 664.52 P
5910: -0.03 (x) 439.71 664.52 P
5911: -0.03 (ecution) 445.53 664.52 P
5912: -0.08 (of routines--using acti) 120.87 650.52 P
5913: -0.08 (v) 226.39 650.52 P
5914: -0.08 (ation frames, thus can be treated as a special case of) 232.09 650.52 P
5915: (the alternati) 120.87 636.52 T
5916: (v) 177.56 636.52 T
5917: (e e) 183.38 636.52 T
5918: (x) 196.85 636.52 T
5919: (ecution--using task frames.) 202.67 636.52 T
5920: 0.54 (As an e) 137.88 622.52 P
5921: 0.54 (xample, the application of Figure) 174.77 622.52 P
5922: 0.54 (2a\051 may be compiled to ha) 339.59 622.52 P
5923: 0.54 (v) 469.71 622.52 P
5924: 0.54 (e) 475.53 622.52 P
5925: 121 766/G1016121 FmPA
5926: -0.13 (an e) 120.87 608.52 P
5927: -0.13 (x) 140.21 608.52 P
5928: -0.13 (ecution using acti) 146.03 608.52 P
5929: -0.13 (v) 230.13 608.52 P
5930: -0.13 (ation frames. The resulting intermediate C code for) 235.83 608.52 P
5931: -0.06 (the routines) 120.87 594.52 P
5932: 3 F
5933: -0.14 (c) 180.08 594.52 P
5934: 0 F
5935: -0.06 ( and) 187.28 594.52 P
5936: 3 F
5937: -0.14 (d) 210.5 594.52 P
5938: 0 F
5939: -0.06 ( is sho) 217.7 594.52 P
5940: -0.06 (wn in Figures) 247.95 594.52 P
5941: -0.06 (7 and) 316.84 594.52 P
5942: -0.06 (8, respecti) 346.11 594.52 P
5943: -0.06 (v) 395.07 594.52 P
5944: -0.06 (ely) 400.89 594.52 P
5945: -0.06 (. The call of a) 414.78 594.52 P
5946: -0.01 (routine is a task frame, e) 120.87 194.52 P
5947: -0.01 (v) 238.49 194.52 P
5948: -0.01 (en when acti) 244.31 194.52 P
5949: -0.01 (v) 304.64 194.52 P
5950: -0.01 (ation frames are used. In the e) 310.34 194.52 P
5951: -0.01 (x) 454.39 194.52 P
5952: -0.01 (ecu-) 460.21 194.52 P
5953: 0.21 (tion of a task frame, its routine may con) 120.87 180.52 P
5954: 0.21 (v) 313.73 180.52 P
5955: 0.21 (ert the task frame to an acti) 319.55 180.52 P
5956: 0.21 (v) 451.16 180.52 P
5957: 0.21 (ation) 456.86 180.52 P
5958: (frame. Such con) 120.87 166.52 T
5959: (v) 198.7 166.52 T
5960: (ersion is demonstrated by the compiled routines) 204.52 166.52 T
5961: 3 F
5962: (c) 437.5 166.52 T
5963: 0 F
5964: ( and) 444.7 166.52 T
5965: 3 F
5966: (d) 468.03 166.52 T
5967: 0 F
5968: (.) 475.23 166.52 T
5969: 1.34 (Since the routine) 137.88 152.52 P
5970: 3 F
5971: 3.2 (a) 226.21 152.52 P
5972: 0 F
5973: 1.34 ( does not call an) 233.4 152.52 P
5974: 1.34 (y routines, its e) 316.55 152.52 P
5975: 1.34 (x) 393.71 152.52 P
5976: 1.34 (ecution using an) 399.53 152.52 P
5977: 121 296/G1016534 FmPA
5978: -0.04 (acti) 120.87 138.52 P
5979: -0.04 (v) 137.9 138.52 P
5980: -0.04 (ation frame is the same as that using a task frame. The same is true for) 143.6 138.52 P
5981: 0 0 0 1 0 0 0 K
5982: 0 0 0 1 0 0 0 K
5983: 0 0 0 1 0 0 0 K
5984: 121 722/G1016133 FmPA
5985: 0 0 0 1 0 0 0 K
5986: 3 11 Q
5987: (extern char *_sp; /* The stack pointer. */) 126.7 568.18 T
5988: 0 0 0 1 0 0 0 K
5989: 121 712/G1016134 FmPA
5990: 0 0 0 1 0 0 0 K
5991: 0 0 0 1 0 0 0 K
5992: 121 698/G1016188 FmPA
5993: 0 0 0 1 0 0 0 K
5994: -0.2 (/* c\050int x;; int y\051 { if \050x>0\051 a\050x;;y\051; else y=-1; }*/) 126.7 540.18 P
5995: 0 0 0 1 0 0 0 K
5996: 121 684/G1016319 FmPA
5997: 0 0 0 1 0 0 0 K
5998: (typedef struct {void \050*_f\051\050void\051; int _entry;) 126.7 526.18 T
5999: 0 0 0 1 0 0 0 K
6000: 121 670/G1016295 FmPA
6001: 0 0 0 1 0 0 0 K
6002: ( int x; int *y;} _s_c;) 126.7 512.18 T
6003: 0 0 0 1 0 0 0 K
6004: 121 656/G1016296 FmPA
6005: 0 0 0 1 0 0 0 K
6006: (void _a_c\050void\051 {) 126.7 498.18 T
6007: 0 0 0 1 0 0 0 K
6008: 121 642/G1016297 FmPA
6009: 0 0 0 1 0 0 0 K
6010: ( _s_c *_p = \050_s_c *\051_sp;) 126.7 484.18 T
6011: 0 0 0 1 0 0 0 K
6012: 121 628/G1016298 FmPA
6013: 0 0 0 1 0 0 0 K
6014: ( switch\050_p->_entry\051 {) 126.7 470.18 T
6015: 0 0 0 1 0 0 0 K
6016: 121 614/G1016299 FmPA
6017: 0 0 0 1 0 0 0 K
6018: ( case 0:;) 126.7 456.18 T
6019: 0 0 0 1 0 0 0 K
6020: 121 600/G1016300 FmPA
6021: 0 0 0 1 0 0 0 K
6022: ( if \050\050_p->x\051>0\051 {) 126.7 442.18 T
6023: 0 0 0 1 0 0 0 K
6024: 121 586/G1016301 FmPA
6025: 0 0 0 1 0 0 0 K
6026: ( _s_a *_a1;) 126.7 428.18 T
6027: 0 0 0 1 0 0 0 K
6028: 121 572/G1016302 FmPA
6029: 0 0 0 1 0 0 0 K
6030: ( _sp -= sizeof\050_s_a\051; _a1 = \050_s_a *\051_sp;) 126.7 414.18 T
6031: 0 0 0 1 0 0 0 K
6032: 121 558/G1016303 FmPA
6033: 0 0 0 1 0 0 0 K
6034: -0.55 ( _a1->_f = _f_a; _a1->x = _p->x; _a1->y = _p->y;) 126.7 400.18 P
6035: 0 0 0 1 0 0 0 K
6036: 121 544/G1016304 FmPA
6037: 0 0 0 1 0 0 0 K
6038: ( _p->_entry=1; return;) 126.7 386.18 T
6039: 0 0 0 1 0 0 0 K
6040: 121 530/G1016305 FmPA
6041: 0 0 0 1 0 0 0 K
6042: ( case 1:;) 126.7 372.18 T
6043: 0 0 0 1 0 0 0 K
6044: 121 516/G1016306 FmPA
6045: 0 0 0 1 0 0 0 K
6046: ( }) 126.7 358.18 T
6047: 0 0 0 1 0 0 0 K
6048: 121 502/G1016307 FmPA
6049: 0 0 0 1 0 0 0 K
6050: ( else *\050_p->y\051=-1;) 126.7 344.18 T
6051: 0 0 0 1 0 0 0 K
6052: 121 488/G1016308 FmPA
6053: 0 0 0 1 0 0 0 K
6054: ( }) 126.7 330.18 T
6055: 0 0 0 1 0 0 0 K
6056: 121 474/G1016309 FmPA
6057: 0 0 0 1 0 0 0 K
6058: ( _sp += sizeof\050*_p\051;) 126.7 316.18 T
6059: 0 0 0 1 0 0 0 K
6060: 121 460/G1016310 FmPA
6061: 0 0 0 1 0 0 0 K
6062: (}) 126.7 302.18 T
6063: 0 0 0 1 0 0 0 K
6064: 121 446/G1016311 FmPA
6065: 0 0 0 1 0 0 0 K
6066: (void _f_c\050void\051 {) 126.7 288.18 T
6067: 0 0 0 1 0 0 0 K
6068: 121 432/G1016312 FmPA
6069: 0 0 0 1 0 0 0 K
6070: ( _s_c *_p = \050_s_c *\051_sp;) 126.7 274.18 T
6071: 0 0 0 1 0 0 0 K
6072: 121 418/G1016313 FmPA
6073: 0 0 0 1 0 0 0 K
6074: ( _p->_f = _a_c; _p->_entry = 0;) 126.7 260.18 T
6075: 0 0 0 1 0 0 0 K
6076: 121 404/G1016314 FmPA
6077: 0 0 0 1 0 0 0 K
6078: (}) 126.7 246.18 T
6079: 0 0 0 1 0 0 0 K
6080: 121 390/G1016315 FmPA
6081: 0 0 0 1 0 0 0 K
6082: 0 0 0 1 0 0 0 K
6083: 121 379/G1016144 FmPA
6084: 0 0 0 1 0 0 0 K
6085: 121 372/G1016146 FmPA
6086: 0 12 Q
6087: (Figure) 123.87 217.52 T
6088: (7) 158.2 217.52 T
6089: (Routine) 172.06 217.52 T
6090: 3 F
6091: (c) 213.06 217.52 T
6092: 0 F
6093: ( of Figure) 220.26 217.52 T
6094: (2) 270.59 217.52 T
6095: (a\051 compiled to use an activation frame.) 276.59 217.52 T
6096: 121 361/G1016151 FmPA
6097: 120.87 582.27 120.87 213.77 2 L
6098: V
6099: 0.5 H
6100: 0 Z
6101: N
6102: 480.87 582.27 480.87 213.77 2 L
6103: V
6104: N
6105: 120.62 582.52 481.12 582.52 2 L
6106: V
6107: N
6108: 120.62 232.52 481.12 232.52 2 L
6109: V
6110: N
6111: 120.62 213.52 481.12 213.52 2 L
6112: V
6113: N
6114: 0 0 0 1 0 0 0 K
6115: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
6116: [/Dest/P.16/DEST FmPD2
6117: 164 369/M9.23036.Figure.Figure6.An.application.which.calls.the.routine.d.of.Figure4 FmPA
6118: 164 369/I1.1016272 FmPA
6119: [/Rect[305 618 346 631]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
6120: [/Rect[317 590 323 603]/Border[0 0 0]/Page 16/View[/XYZ null 164 369 FmDC exch pop null]/LNK FmPD
6121: [/Rect[236 213 277 226]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
6122: [/Rect[346 590 352 603]/Border[0 0 0]/Page 17/View[/XYZ null 164 389 FmDC exch pop null]/LNK FmPD
6123: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
6124: FMENDPAGE
6125: %%EndPage: "16" 16
6126: %%Page: "17" 17
6127: 595.28 839.05 0 FMBEGINPAGE
6128: [0 0 0 1 0 0 0]
6129: [ 0 1 1 0 1 0 0]
6130: [ 1 0 1 0 0 1 0]
6131: [ 1 1 0 0 0 0 1]
6132: [ 1 0 0 0 0 1 1]
6133: [ 0 1 0 0 1 0 1]
6134: [ 0 0 1 0 1 1 0]
6135: 7 FrameSetSepColors
6136: FrameNoSep
6137: 0 0 0 1 0 0 0 K
6138: 0 0 0 1 0 0 0 K
6139: 0 0 0 1 0 0 0 K
6140: 90 959/G837264 FmPA
6141: 0 12 Q
6142: 0 X
6143: 0 0 0 1 0 0 0 K
6144: (17) 289.29 93.77 T
6145: 40 238/G837268 FmPA
6146: 1.57 (the routine) 120.87 217.52 P
6147: 3 F
6148: 3.76 (b) 178.66 217.52 P
6149: 0 F
6150: 1.57 (. Thus the intermediate C code for the routines) 185.38 217.52 P
6151: 3 F
6152: 3.76 (a) 426.1 217.52 P
6153: 0 F
6154: 1.57 ( and) 433.3 217.52 P
6155: 3 F
6156: 3.76 (b) 459.76 217.52 P
6157: 0 F
6158: 1.57 ( in) 466.96 217.52 P
6159: 1.77 (Figure) 120.87 203.52 P
6160: 1.77 (4, compiled in section) 155.2 203.52 P
6161: 1.77 (5 for an e) 269.52 203.52 P
6162: 1.77 (x) 320.3 203.52 P
6163: 1.77 (ecution using task frames, also) 326.12 203.52 P
6164: 0.11 (serv) 120.87 189.52 P
6165: 0.11 (es here for an e) 140.68 189.52 P
6166: 0.11 (x) 214.23 189.52 P
6167: 0.11 (ecution using acti) 220.05 189.52 P
6168: 0.11 (v) 304.63 189.52 P
6169: 0.11 (ation frames. Similarly used here is) 310.33 189.52 P
6170: 1.68 (the application of Figure) 120.87 175.52 P
6171: 1.68 (5 which calls the routine) 247.23 175.52 P
6172: 3 F
6173: 4.04 (d) 376.62 175.52 P
6174: 0 F
6175: 1.68 (. The application is) 383.82 175.52 P
6176: (used in section) 120.87 161.52 T
6177: (5 for an e) 195.2 161.52 T
6178: (x) 240.66 161.52 T
6179: (ecution using task frames.) 246.48 161.52 T
6180: 0 0 0 1 0 0 0 K
6181: 0 0 0 1 0 0 0 K
6182: 0 0 0 1 0 0 0 K
6183: 121 812/G1016230 FmPA
6184: 0 0 0 1 0 0 0 K
6185: 3 11 Q
6186: (extern char *_sp; /* The stack pointer. */) 126.7 658.18 T
6187: 0 0 0 1 0 0 0 K
6188: 121 802/G1016231 FmPA
6189: 0 0 0 1 0 0 0 K
6190: 0 0 0 1 0 0 0 K
6191: 121 788/G1016232 FmPA
6192: 0 0 0 1 0 0 0 K
6193: (/* d\050;;int v\051 { int w=4; b\050;w;\051; c\050w;;v\051; } */) 126.7 630.18 T
6194: 0 0 0 1 0 0 0 K
6195: 121 774/G1016233 FmPA
6196: 0 0 0 1 0 0 0 K
6197: (typedef struct {void \050*_f\051\050void\051; int _entry;) 126.7 616.18 T
6198: 0 0 0 1 0 0 0 K
6199: 121 760/G1016323 FmPA
6200: 0 0 0 1 0 0 0 K
6201: ( int w; int *v;} _s_d;) 126.7 602.18 T
6202: 0 0 0 1 0 0 0 K
6203: 121 746/G1016356 FmPA
6204: 0 0 0 1 0 0 0 K
6205: (void _a_d\050void\051 {) 126.7 588.18 T
6206: 0 0 0 1 0 0 0 K
6207: 121 732/G1016324 FmPA
6208: 0 0 0 1 0 0 0 K
6209: ( _s_d *_p = \050_s_d *\051_sp;) 126.7 574.18 T
6210: 0 0 0 1 0 0 0 K
6211: 121 718/G1016325 FmPA
6212: 0 0 0 1 0 0 0 K
6213: ( switch\050_p->_entry\051 {) 126.7 560.18 T
6214: 0 0 0 1 0 0 0 K
6215: 121 704/G1016326 FmPA
6216: 0 0 0 1 0 0 0 K
6217: ( case 0:;) 126.7 546.18 T
6218: 0 0 0 1 0 0 0 K
6219: 121 690/G1016327 FmPA
6220: 0 0 0 1 0 0 0 K
6221: ( _p->w = 4;) 126.7 532.18 T
6222: 0 0 0 1 0 0 0 K
6223: 121 676/G1016328 FmPA
6224: 0 0 0 1 0 0 0 K
6225: ( { _s_b *_b1;) 126.7 518.18 T
6226: 0 0 0 1 0 0 0 K
6227: 121 662/G1016329 FmPA
6228: 0 0 0 1 0 0 0 K
6229: ( _sp -= sizeof\050_s_b\051; _b1 = \050_s_b *\051_sp;) 126.7 504.18 T
6230: 0 0 0 1 0 0 0 K
6231: 121 648/G1016330 FmPA
6232: 0 0 0 1 0 0 0 K
6233: ( _b1->_f = _f_b; _b1->x = &_p->w;) 126.7 490.18 T
6234: 0 0 0 1 0 0 0 K
6235: 121 634/G1016331 FmPA
6236: 0 0 0 1 0 0 0 K
6237: ( _p->_entry=1; return;) 126.7 476.18 T
6238: 0 0 0 1 0 0 0 K
6239: 121 620/G1016332 FmPA
6240: 0 0 0 1 0 0 0 K
6241: ( case 1:;) 126.7 462.18 T
6242: 0 0 0 1 0 0 0 K
6243: 121 606/G1016333 FmPA
6244: 0 0 0 1 0 0 0 K
6245: ( }) 126.7 448.18 T
6246: 0 0 0 1 0 0 0 K
6247: 121 592/G1016334 FmPA
6248: 0 0 0 1 0 0 0 K
6249: ( { _s_c *_c1;) 126.7 434.18 T
6250: 0 0 0 1 0 0 0 K
6251: 121 578/G1016335 FmPA
6252: 0 0 0 1 0 0 0 K
6253: ( _sp -= sizeof\050_s_c\051; _c1 = \050_s_c *\051_sp;) 126.7 420.18 T
6254: 0 0 0 1 0 0 0 K
6255: 121 564/G1016336 FmPA
6256: 0 0 0 1 0 0 0 K
6257: -0.55 ( _c1->_f = _f_c; _c1->x = _p->w; _c1->y = _p->v;) 126.7 406.18 P
6258: 0 0 0 1 0 0 0 K
6259: 121 550/G1016337 FmPA
6260: 0 0 0 1 0 0 0 K
6261: ( _p->_entry=2; return;) 126.7 392.18 T
6262: 0 0 0 1 0 0 0 K
6263: 121 536/G1016338 FmPA
6264: 0 0 0 1 0 0 0 K
6265: ( case 2:;) 126.7 378.18 T
6266: 0 0 0 1 0 0 0 K
6267: 121 522/G1016339 FmPA
6268: 0 0 0 1 0 0 0 K
6269: ( }) 126.7 364.18 T
6270: 0 0 0 1 0 0 0 K
6271: 121 508/G1016340 FmPA
6272: 0 0 0 1 0 0 0 K
6273: ( }) 126.7 350.18 T
6274: 0 0 0 1 0 0 0 K
6275: 121 494/G1016341 FmPA
6276: 0 0 0 1 0 0 0 K
6277: ( _sp += sizeof\050_s_d\051;) 126.7 336.18 T
6278: 0 0 0 1 0 0 0 K
6279: 121 480/G1016342 FmPA
6280: 0 0 0 1 0 0 0 K
6281: (}) 126.7 322.18 T
6282: 0 0 0 1 0 0 0 K
6283: 121 466/G1016343 FmPA
6284: 0 0 0 1 0 0 0 K
6285: (void _f_d\050void\051 {) 126.7 308.18 T
6286: 0 0 0 1 0 0 0 K
6287: 121 452/G1016344 FmPA
6288: 0 0 0 1 0 0 0 K
6289: ( _s_d *_p = \050_s_d *\051_sp;) 126.7 294.18 T
6290: 0 0 0 1 0 0 0 K
6291: 121 438/G1016345 FmPA
6292: 0 0 0 1 0 0 0 K
6293: ( _p->_f = _a_d; _p->_entry = 0;) 126.7 280.18 T
6294: 0 0 0 1 0 0 0 K
6295: 121 424/G1016346 FmPA
6296: 0 0 0 1 0 0 0 K
6297: (}) 126.7 266.18 T
6298: 0 0 0 1 0 0 0 K
6299: 121 410/G1016347 FmPA
6300: 0 0 0 1 0 0 0 K
6301: 0 0 0 1 0 0 0 K
6302: 121 399/G1016256 FmPA
6303: 0 0 0 1 0 0 0 K
6304: 121 392/G1016258 FmPA
6305: 0 12 Q
6306: (Figure) 123.87 237.52 T
6307: (8) 158.2 237.52 T
6308: (Routine) 172.06 237.52 T
6309: 3 F
6310: (d) 213.06 237.52 T
6311: 0 F
6312: ( of Figure) 220.26 237.52 T
6313: (2) 270.59 237.52 T
6314: (a\051 compiled to use an activation frame.) 276.59 237.52 T
6315: 121 381/G1016262 FmPA
6316: 120.87 672.27 120.87 233.77 2 L
6317: V
6318: 0.5 H
6319: 0 Z
6320: N
6321: 480.87 672.27 480.87 233.77 2 L
6322: V
6323: N
6324: 120.62 672.52 481.12 672.52 2 L
6325: V
6326: N
6327: 120.62 252.52 481.12 252.52 2 L
6328: V
6329: N
6330: 120.62 233.52 481.12 233.52 2 L
6331: V
6332: N
6333: 0 0 0 1 0 0 0 K
6334: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
6335: [/Dest/P.17/DEST FmPD2
6336: 164 389/M9.40779.Figure.Figure7.An.application.which.calls.the.routine.d.of.Figure4 FmPA
6337: 164 389/I1.1016273 FmPA
6338: [/Rect[236 233 277 246]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
6339: [/Rect[121 199 161 212]/Border[0 0 0]/Page 13/View[/XYZ null 164 599 FmDC exch pop null]/LNK FmPD
6340: [/Rect[270 199 276 212]/Border[0 0 0]/Page 11/View[/XYZ null 136 771 FmDC exch pop null]/LNK FmPD
6341: [/Rect[213 171 253 184]/Border[0 0 0]/Page 13/View[/XYZ null 164 418 FmDC exch pop null]/LNK FmPD
6342: [/Rect[195 157 201 170]/Border[0 0 0]/Page 11/View[/XYZ null 136 771 FmDC exch pop null]/LNK FmPD
6343: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
6344: FMENDPAGE
6345: %%EndPage: "17" 17
6346: %%Page: "18" 18
6347: 595.28 839.05 0 FMBEGINPAGE
6348: [0 0 0 1 0 0 0]
6349: [ 0 1 1 0 1 0 0]
6350: [ 1 0 1 0 0 1 0]
6351: [ 1 1 0 0 0 0 1]
6352: [ 1 0 0 0 0 1 1]
6353: [ 0 1 0 0 1 0 1]
6354: [ 0 0 1 0 1 1 0]
6355: 7 FrameSetSepColors
6356: FrameNoSep
6357: 0 0 0 1 0 0 0 K
6358: 0 0 0 1 0 0 0 K
6359: 0 0 0 1 0 0 0 K
6360: 90 959/G837264 FmPA
6361: 0 12 Q
6362: 0 X
6363: 0 0 0 1 0 0 0 K
6364: (18) 289.29 93.77 T
6365: 40 238/G837268 FmPA
6366: -0.26 (As for task frames, an e) 137.88 664.52 P
6367: -0.26 (x) 250.36 664.52 P
6368: -0.26 (ecution using acti) 256.18 664.52 P
6369: -0.26 (v) 340.02 664.52 P
6370: -0.26 (ation frames repeatedly e) 345.72 664.52 P
6371: -0.26 (x) 465.72 664.52 P
6372: -0.26 (e-) 471.54 664.52 P
6373: 121 808/G1016035 FmPA
6374: 2.96 (cutes the topmost frame. Thus the crude implementation of acti) 120.87 650.52 P
6375: 2.96 (v) 451.16 650.52 P
6376: 2.96 (ation) 456.86 650.52 P
6377: (frames also uses the code of Figure) 120.87 636.52 T
6378: (3.) 293.16 636.52 T
6379: 0.3 (Thus to demonstrate an e) 137.88 622.52 P
6380: 0.3 (x) 259.55 622.52 P
6381: 0.3 (ecution using acti) 265.36 622.52 P
6382: 0.3 (v) 350.33 622.52 P
6383: 0.3 (ation frames, the codes of) 356.02 622.52 P
6384: 121 766/G1016402 FmPA
6385: -0.25 (Figures) 120.87 608.52 P
6386: -0.25 (3, 5, 7, 8 and the routines) 159.87 608.52 P
6387: 3 F
6388: -0.59 (a) 282.8 608.52 P
6389: 0 F
6390: -0.25 ( and) 290 608.52 P
6391: 3 F
6392: -0.59 (b) 312.83 608.52 P
6393: 0 F
6394: -0.25 ( of Figure) 320.03 608.52 P
6395: -0.25 (4 may be compiled and) 369.86 608.52 P
6396: (e) 120.87 594.52 T
6397: (x) 126.02 594.52 T
6398: (ecuted as a usual C application. As e) 131.84 594.52 T
6399: (xpected, the output is) 307.62 594.52 T
6400: 3 F
6401: (14) 413.28 594.52 T
6402: 0 F
6403: (.) 427.68 594.52 T
6404: -0.14 (As introduced in section) 137.88 580.52 P
6405: -0.14 (2, an acti) 257.44 580.52 P
6406: -0.14 (v) 300.52 580.52 P
6407: -0.14 (ation frame is the internal state of an) 306.21 580.52 P
6408: 121 724/G1016432 FmPA
6409: 1.57 (e) 120.87 566.52 P
6410: 1.57 (x) 126.02 566.52 P
6411: 1.57 (ecuting routine, including the state of local v) 131.84 566.52 P
6412: 1.57 (ariables and the program) 357.18 566.52 P
6413: (counter) 120.87 552.52 T
6414: (.) 156.2 552.52 T
6415: -0.23 (F) 137.88 538.52 P
6416: -0.23 (or simplicity) 144.37 538.52 P
6417: -0.23 (, the local v) 204.36 538.52 P
6418: -0.23 (ariable) 259.35 538.52 P
6419: 3 F
6420: -0.56 (w) 294.77 538.52 P
6421: 0 F
6422: -0.23 ( in the compiled routine) 301.97 538.52 P
6423: 3 F
6424: -0.56 (d) 418.46 538.52 P
6425: 0 F
6426: -0.23 ( in Figure) 425.66 538.52 P
6427: -0.23 (8) 474.86 538.52 P
6428: 121 682/G1016455 FmPA
6429: 1.57 (is stored in the task frame. Space for) 120.87 524.52 P
6430: 3 F
6431: 3.76 (w) 311.69 524.52 P
6432: 0 F
6433: 1.57 ( thus unnecessarily e) 318.89 524.52 P
6434: 1.57 (xists on the) 423.06 524.52 P
6435: 0.46 (stack before the e) 120.87 510.51 P
6436: 0.46 (x) 206.37 510.51 P
6437: 0.46 (ecution of the task. A better compilation might allocate) 212.19 510.51 P
6438: 0.24 (space on the stack for local v) 120.87 496.51 P
6439: 0.24 (ariables only when the task frame is e) 261.28 496.51 P
6440: 0.24 (x) 443.72 496.51 P
6441: 0.24 (ecuted) 449.54 496.51 P
6442: (and con) 120.87 482.51 T
6443: (v) 158.04 482.51 T
6444: (erts itself to an acti) 163.86 482.51 T
6445: (v) 254.88 482.51 T
6446: (ation frame.) 260.58 482.51 T
6447: -0.14 (The C programming language, used for the output of the compiler) 137.88 468.51 P
6448: -0.14 (, does) 453 468.51 P
6449: 121 612/G1016433 FmPA
6450: 2.15 (not pro) 120.87 454.51 P
6451: 2.15 (vide access to the program counter nor equi) 157.17 454.51 P
6452: 2.15 (v) 381.54 454.51 P
6453: 2.15 (alently to alternate) 387.24 454.51 P
6454: 1.38 (entry points for a routine. If it did, then) 120.87 440.51 P
6455: 3 F
6456: 3.32 (switch\050_p->_entry\051) 324.29 440.51 P
6457: 0 F
6458: 1.38 (and) 463.53 440.51 P
6459: 3 F
6460: -0.53 (case) 120.87 426.51 P
6461: -0.53 (0:) 156.87 426.51 P
6462: 0 F
6463: -0.22 ( in the compiled routines) 171.27 426.51 P
6464: 3 F
6465: -0.53 (c) 292.49 426.51 P
6466: 0 F
6467: -0.22 ( and) 299.69 426.51 P
6468: 3 F
6469: -0.53 (d) 322.58 426.51 P
6470: 0 F
6471: -0.22 ( w) 329.78 426.51 P
6472: -0.22 (ould not be required. Instead,) 341.1 426.51 P
6473: 3 F
6474: 1.16 (case) 120.87 412.51 P
6475: 1.16 (1:) 156.87 412.51 P
6476: 0 F
6477: 0.48 (and) 179.62 412.51 P
6478: 3 F
6479: 1.16 (case) 200.43 412.51 P
6480: 1.16 (2:) 236.43 412.51 P
6481: 0 F
6482: 0.48 ( w) 250.83 412.51 P
6483: 0.48 (ould be alternate entry points for the routine.) 262.86 412.51 P
6484: 1.21 (F) 120.87 398.51 P
6485: 1.21 (or e) 127.36 398.51 P
6486: 1.21 (xample, instead of) 146.72 398.51 P
6487: 3 F
6488: 2.91 (_p->_entry=1) 241.67 398.51 P
6489: 0 F
6490: 1.21 ( in the compiled routine) 328.07 398.51 P
6491: 3 F
6492: 2.91 (c) 451.79 398.51 P
6493: 0 F
6494: 1.21 (, the) 458.99 398.51 P
6495: 1.19 (code w) 120.87 384.51 P
6496: 1.19 (ould be) 156.26 384.51 P
6497: 3 F
6498: 2.85 (_p->_f=_f_c_entry1) 197.3 384.51 P
6499: 0 F
6500: 1.19 (, where) 326.9 384.51 P
6501: 3 F
6502: 2.85 (_f_c_entry1) 367.59 384.51 P
6503: 0 F
6504: 1.19 ( w) 446.79 384.51 P
6505: 1.19 (ould) 459.52 384.51 P
6506: 0.37 (be at the position of) 120.87 370.51 P
6507: 3 F
6508: 0.88 (case 1:) 221.03 370.51 P
6509: 0 F
6510: 0.37 (. At such an alternate entry point, v) 272.31 370.51 P
6511: 0.37 (ariables) 443.54 370.51 P
6512: (lik) 120.87 356.51 T
6513: (e) 133.42 356.51 T
6514: 3 F
6515: (_p) 141.75 356.51 T
6516: 0 F
6517: ( w) 156.15 356.51 T
6518: (ould ha) 167.69 356.51 T
6519: (v) 203.12 356.51 T
6520: (e to be initialized or not subsequently used.) 208.94 356.51 T
6521: 0.35 (Since) 137.88 342.51 P
6522: 3 F
6523: 0.83 (_entry) 167.89 342.51 P
6524: 0 F
6525: 0.35 ( is required in the crude implementation, it is initialized) 211.09 342.51 P
6526: 121 486/G1016481 FmPA
6527: 0.18 (for the compiled routine) 120.87 328.51 P
6528: 3 F
6529: 0.43 (c) 240.9 328.51 P
6530: 0 F
6531: 0.18 ( by the routine) 248.1 328.51 P
6532: 3 F
6533: 0.43 (_f_c) 321.47 328.51 P
6534: 0 F
6535: 0.18 (. The body of the routine) 350.27 328.51 P
6536: 3 F
6537: 0.43 (c) 473.66 328.51 P
6538: 0 F
6539: 0.67 (is placed into the routine) 120.87 314.52 P
6540: 3 F
6541: 1.61 (_a_c) 245.88 314.52 P
6542: 0 F
6543: 0.67 (. Thus e) 274.68 314.52 P
6544: 0.67 (v) 314.04 314.52 P
6545: 0.67 (en without alternate entry points,) 319.86 314.52 P
6546: (the call to) 120.87 300.52 T
6547: 3 F
6548: (c) 171.2 300.52 T
6549: 0 F
6550: ( is a task frame.) 178.4 300.52 T
6551: 1.63 (As described in section) 137.88 286.52 P
6552: 1.63 (2, acti) 257.4 286.52 P
6553: 1.63 (v) 288.06 286.52 P
6554: 1.63 (ation frames result in an unstructured) 293.76 286.52 P
6555: 121 430/G1016660 FmPA
6556: 0.13 (e) 120.87 272.52 P
6557: 0.13 (x) 126.02 272.52 P
6558: 0.13 (ecution. As described in section) 131.84 272.52 P
6559: 0.13 (3, task frames result in a structured e) 288.34 272.52 P
6560: 0.13 (x) 465.72 272.52 P
6561: 0.13 (e-) 471.54 272.52 P
6562: -0.04 (cution. Of course, the results are relati) 120.87 258.52 P
6563: -0.04 (v) 303.6 258.52 P
6564: -0.04 (e. Since an acti) 309.42 258.52 P
6565: -0.04 (v) 381.63 258.52 P
6566: -0.04 (ation frame is simi-) 387.33 258.52 P
6567: 0.56 (lar to a task frame, an e) 120.87 244.52 P
6568: 0.56 (x) 236.32 244.52 P
6569: 0.56 (ecution using acti) 242.14 244.52 P
6570: 0.56 (v) 327.61 244.52 P
6571: 0.56 (ation frames is not completely) 333.32 244.52 P
6572: -0.07 (unstructured. F) 120.87 230.52 P
6573: -0.07 (or e) 193.28 230.52 P
6574: -0.07 (xample, the structure of acti) 211.35 230.52 P
6575: -0.07 (v) 345.08 230.52 P
6576: -0.07 (ation frames is suf) 350.78 230.52 P
6577: -0.07 (\336cient to) 438.59 230.52 P
6578: -0.21 (allo) 120.87 216.52 P
6579: -0.21 (w a deb) 138.57 216.52 P
6580: -0.21 (ugger to tra) 175.22 216.52 P
6581: -0.21 (v) 229.87 216.52 P
6582: -0.21 (el the stack and to sho) 235.69 216.52 P
6583: -0.21 (w the contents of each frame.) 340.64 216.52 P
6584: 1.22 (The e) 137.88 202.52 P
6585: 1.22 (x) 165.9 202.52 P
6586: 1.22 (ecution of the abo) 171.72 202.52 P
6587: 1.22 (v) 261.51 202.52 P
6588: 1.22 (e e) 267.33 202.52 P
6589: 1.22 (xample application can demonstrate that) 282.02 202.52 P
6590: 121 346/G1021267 FmPA
6591: 1.76 (task frames result in a more structured e) 120.87 188.52 P
6592: 1.76 (x) 325.29 188.52 P
6593: 1.76 (ecution than that of acti) 331.11 188.52 P
6594: 1.76 (v) 451.16 188.52 P
6595: 1.76 (ation) 456.86 188.52 P
6596: 1.74 (frames. Figure) 120.87 174.52 P
6597: 1.74 (2b\051 sho) 195.59 174.52 P
6598: 1.74 (ws snapshots of the stack for the e) 232.69 174.52 P
6599: 1.74 (x) 408.97 174.52 P
6600: 1.74 (ecution using) 414.79 174.52 P
6601: 1.51 (task frames. Figure) 120.87 160.52 P
6602: 1.51 (9 sho) 219.21 160.52 P
6603: 1.51 (ws snapshots for the e) 246.09 160.52 P
6604: 1.51 (x) 357.95 160.52 P
6605: 1.51 (ecution using acti) 363.77 160.52 P
6606: 1.51 (v) 451.16 160.52 P
6607: 1.51 (ation) 456.86 160.52 P
6608: 2.52 (frames. The e) 120.87 146.52 P
6609: 2.52 (x) 191.36 146.52 P
6610: 2.52 (ecution illustrated in Figure) 197.18 146.52 P
6611: 2.52 (9 is lik) 340.73 146.52 P
6612: 2.52 (e that in Figure) 378.32 146.52 P
6613: 2.52 (1b\051,) 461.86 146.52 P
6614: 0.51 (e) 120.87 132.52 P
6615: 0.51 (xcept that Figure) 126.02 132.52 P
6616: 0.51 (9 includes all items of each frame. The e) 211.36 132.52 P
6617: 0.51 (x) 410.2 132.52 P
6618: 0.51 (ecution using) 416.02 132.52 P
6619: 0 0 0 1 0 0 0 K
6620: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
6621: [/Dest/P.18/DEST FmPD2
6622: [/Rect[259 632 299 645]/Border[0 0 0]/Page 11/View[/XYZ null 164 431 FmDC exch pop null]/LNK FmPD
6623: [/Rect[336 604 376 617]/Border[0 0 0]/Page 13/View[/XYZ null 164 599 FmDC exch pop null]/LNK FmPD
6624: [/Rect[257 282 263 295]/Border[0 0 0]/Page 3/View[/XYZ null 136 365 FmDC exch pop null]/LNK FmPD
6625: [/Rect[160 604 166 617]/Border[0 0 0]/Page 11/View[/XYZ null 164 431 FmDC exch pop null]/LNK FmPD
6626: [/Rect[288 268 294 281]/Border[0 0 0]/Page 5/View[/XYZ null 136 435 FmDC exch pop null]/LNK FmPD
6627: [/Rect[172 604 178 617]/Border[0 0 0]/Page 13/View[/XYZ null 164 418 FmDC exch pop null]/LNK FmPD
6628: [/Rect[183 604 189 617]/Border[0 0 0]/Page 16/View[/XYZ null 164 369 FmDC exch pop null]/LNK FmPD
6629: [/Rect[195 604 201 617]/Border[0 0 0]/Page 17/View[/XYZ null 164 389 FmDC exch pop null]/LNK FmPD
6630: [/Rect[257 576 263 589]/Border[0 0 0]/Page 3/View[/XYZ null 136 365 FmDC exch pop null]/LNK FmPD
6631: [/Rect[441 534 481 547]/Border[0 0 0]/Page 17/View[/XYZ null 164 389 FmDC exch pop null]/LNK FmPD
6632: [/Rect[161 170 202 183]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
6633: [/Rect[185 156 225 169]/Border[0 0 0]/Page 19/View[/XYZ null 164 559 FmDC exch pop null]/LNK FmPD
6634: [/Rect[306 142 347 155]/Border[0 0 0]/Page 19/View[/XYZ null 164 559 FmDC exch pop null]/LNK FmPD
6635: [/Rect[428 142 468 155]/Border[0 0 0]/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/LNK FmPD
6636: [/Rect[177 128 217 141]/Border[0 0 0]/Page 19/View[/XYZ null 164 559 FmDC exch pop null]/LNK FmPD
6637: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
6638: FMENDPAGE
6639: %%EndPage: "18" 18
6640: %%Page: "19" 19
6641: 595.28 839.05 0 FMBEGINPAGE
6642: [0 0 0 1 0 0 0]
6643: [ 0 1 1 0 1 0 0]
6644: [ 1 0 1 0 0 1 0]
6645: [ 1 1 0 0 0 0 1]
6646: [ 1 0 0 0 0 1 1]
6647: [ 0 1 0 0 1 0 1]
6648: [ 0 0 1 0 1 1 0]
6649: 7 FrameSetSepColors
6650: FrameNoSep
6651: 0 0 0 1 0 0 0 K
6652: 0 0 0 1 0 0 0 K
6653: 0 0 0 1 0 0 0 K
6654: 90 959/G837264 FmPA
6655: 0 12 Q
6656: 0 X
6657: 0 0 0 1 0 0 0 K
6658: (19) 289.29 93.77 T
6659: 40 238/G837268 FmPA
6660: 1.57 (task frames illustrated in Figure) 120.87 664.52 P
6661: 1.57 (2b\051 is simpler and more structured than) 282.8 664.52 P
6662: 1.24 (that illustrated in Figure) 120.87 650.52 P
6663: 1.24 (9 using acti) 243.27 650.52 P
6664: 1.24 (v) 300.79 650.52 P
6665: 1.24 (ation frames. Nonetheless, Figure) 306.49 650.52 P
6666: 1.24 (9) 474.86 650.52 P
6667: 0.14 (illustrates that, as for task frames, also a stack of acti) 120.87 636.52 P
6668: 0.14 (v) 375.28 636.52 P
6669: 0.14 (ation frames is a dag) 380.98 636.52 P
6670: (with an e) 120.87 622.52 T
6671: (x) 164.68 622.52 T
6672: (ecution corresponding to graph reduction.) 170.5 622.52 T
6673: 0.67 (In Figure) 137.88 384.74 P
6674: 0.67 (9, the frame) 185.87 384.74 P
6675: 3 F
6676: 1.6 (d\050;q;\0512\050;w;\051) 248.52 384.74 P
6677: 0 F
6678: 0.67 ( is to e) 334.92 384.74 P
6679: 0.67 (x) 368.41 384.74 P
6680: 0.67 (ecute the code in rou-) 374.23 384.74 P
6681: 121 529/G1016757 FmPA
6682: -0.1 (tine) 120.87 370.74 P
6683: 3 F
6684: -0.25 (d) 141.76 370.74 P
6685: 0 F
6686: -0.1 ( starting at the alternate entry point) 148.96 370.74 P
6687: 3 F
6688: -0.25 (2) 319.2 370.74 P
6689: 0 F
6690: -0.1 (. The local item) 326.4 370.74 P
6691: 3 F
6692: -0.25 (w) 404.3 370.74 P
6693: 0 F
6694: -0.1 ( is used within) 411.51 370.74 P
6695: 0.09 (the routine. Local items are declared in the parentheses follo) 120.87 356.74 P
6696: 0.09 (wing the entry) 411.35 356.74 P
6697: 0.72 (point. Since the routine may read or write the item) 120.87 342.74 P
6698: 3 F
6699: 1.72 (q) 373.02 342.74 P
6700: 0 F
6701: 0.72 (, it is an inout of the) 380.22 342.74 P
6702: (frame. This is in contrast to the original frame) 120.87 328.74 T
6703: 3 F
6704: (d\050;;q\051) 344.84 328.74 T
6705: 0 F
6706: ( where) 388.04 328.74 T
6707: 3 F
6708: (q) 423.35 328.74 T
6709: 0 F
6710: ( is an out.) 430.55 328.74 T
6711: -0.17 (In the frame) 137.88 314.74 P
6712: 3 F
6713: -0.41 (d\050;q;\0512\050;w;\051) 199.01 314.74 P
6714: 0 F
6715: -0.17 ( the items) 285.4 314.74 P
6716: 3 F
6717: -0.41 (q) 334.56 314.74 P
6718: 0 F
6719: -0.17 ( and) 341.76 314.74 P
6720: 3 F
6721: -0.41 (w) 364.74 314.74 P
6722: 0 F
6723: -0.17 ( are dead. The) 371.94 314.74 P
6724: -0.17 (y are not) 439.22 314.74 P
6725: 121 459/G1016997 FmPA
6726: -0.02 (used in the e) 120.87 300.74 P
6727: -0.02 (x) 180.94 300.74 P
6728: -0.02 (ecution of the routine) 186.76 300.74 P
6729: 3 F
6730: -0.06 (d) 292.65 300.74 P
6731: 0 F
6732: -0.02 ( starting at the alternate entry point) 299.85 300.74 P
6733: 3 F
6734: -0.06 (2) 470.66 300.74 P
6735: 0 F
6736: -0.02 (.) 477.86 300.74 P
6737: 1.21 (Thus after a li) 120.87 286.74 P
6738: 1.21 (v) 191.18 286.74 P
6739: 1.21 (e v) 197 286.74 P
6740: 1.21 (ariable analysis, the frame could be written as) 212.24 286.74 P
6741: 3 F
6742: 2.9 (d\050;;\051) 444.86 286.74 P
6743: -0.46 (2\050;;\051) 120.87 272.74 P
6744: 0 F
6745: -0.19 (. Since it has no outs, the frame is dead and irrele) 156.87 272.74 P
6746: -0.19 (v) 390.75 272.74 P
6747: -0.19 (ant to the remain-) 396.45 272.74 P
6748: (ing application e) 120.87 258.74 T
6749: (x) 200.68 258.74 T
6750: (ecution.) 206.5 258.74 T
6751: 1.93 (As described in section) 137.88 244.74 P
6752: 1.93 (5, the crude implementation easily is instru-) 258.31 244.74 P
6753: 121 389/G1017012 FmPA
6754: 0.17 (mented to sho) 120.87 230.74 P
6755: 0.17 (w snapshots of the stack during the e) 188.24 230.74 P
6756: 0.17 (x) 366.22 230.74 P
6757: 0.17 (ecution. If a call to the) 372.04 230.74 P
6758: 3.09 (routine) 120.87 216.74 P
6759: 3 F
6760: 7.41 (_contents) 160.95 216.74 P
6761: 0 F
6762: 3.09 ( of Figure) 225.75 216.74 P
6763: 3.09 (6 is inserted to the routine) 282.26 216.74 P
6764: 3 F
6765: 7.41 (_xtop) 428.78 216.74 P
6766: 0 F
6767: 3.09 ( of) 464.78 216.74 P
6768: 1.99 (Figure) 120.87 202.74 P
6769: 1.99 (3, then the output of the abo) 155.2 202.74 P
6770: 1.99 (v) 301.96 202.74 P
6771: 1.99 (e e) 307.78 202.74 P
6772: 1.99 (xample application matches the) 323.24 202.74 P
6773: (snapshots sho) 120.87 188.74 T
6774: (wn in Figure) 186.9 188.74 T
6775: (9.) 251.24 188.74 T
6776: 0.33 (As described abo) 137.88 174.74 P
6777: 0.33 (v) 221 174.74 P
6778: 0.33 (e, the frame) 226.82 174.74 P
6779: 3 F
6780: 0.79 (d\050;q;\0512\050;w;\051) 287.78 174.74 P
6781: 0 F
6782: 0.33 ( is dead and irrele) 374.18 174.74 P
6783: 0.33 (v) 460.5 174.74 P
6784: 0.33 (ant) 466.2 174.74 P
6785: 121 319/G1017146 FmPA
6786: 0.5 (to the remaining application e) 120.87 160.74 P
6787: 0.5 (x) 266 160.74 P
6788: 0.5 (ecution. This is because the call) 271.82 160.74 P
6789: 3 F
6790: 1.2 (c\050w;;v\051) 430.46 160.74 P
6791: 0 F
6792: 0.04 (in) 120.87 146.74 P
6793: 3 F
6794: 0.09 (d) 133.24 146.74 P
6795: 0 F
6796: 0.04 ( is a tail call, b) 140.44 146.74 P
6797: 0.04 (ut an e) 210.39 146.74 P
6798: 0.04 (x) 242.28 146.74 P
6799: 0.04 (ecution using acti) 248.1 146.74 P
6800: 0.04 (v) 332.54 146.74 P
6801: 0.04 (ation frames does not pro) 338.24 146.74 P
6802: 0.04 (vide) 460.2 146.74 P
6803: -0.09 (proper tail calling. T) 120.87 132.74 P
6804: -0.09 (o pre) 218.29 132.74 P
6805: -0.09 (v) 242.22 132.74 P
6806: -0.09 (ent the useless frame) 248.04 132.74 P
6807: 3 F
6808: -0.22 (d\050;q;\0512\050;w;\051) 350.99 132.74 P
6809: 0 F
6810: -0.09 (, the rou-) 437.39 132.74 P
6811: 0 0 0 1 0 0 0 K
6812: 0 0 0 1 0 0 0 K
6813: 0 0 0 1 0 0 0 K
6814: 121 568/G1016744 FmPA
6815: 0 0 0 1 0 0 0 K
6816: 121 561/G1016774 FmPA
6817: (Figure) 123.87 406.74 T
6818: (9) 158.2 406.74 T
6819: (An execution on the stack using activation frames.) 172.06 406.74 T
6820: 121 551/G1016776 FmPA
6821: 120.87 610.27 120.87 402.99 2 L
6822: V
6823: 0.5 H
6824: 0 Z
6825: N
6826: 480.87 610.27 480.87 402.99 2 L
6827: V
6828: N
6829: 120.62 610.52 481.12 610.52 2 L
6830: V
6831: N
6832: 120.62 421.74 481.12 421.74 2 L
6833: V
6834: N
6835: 120.62 402.74 481.12 402.74 2 L
6836: V
6837: N
6838: 120.87 421.74 480.87 610.52 C
6839: 0 0 0 1 0 0 0 K
6840: 120.87 428.74 480.87 610.52 C
6841: 0 0 0 1 0 0 0 K
6842: 0 X
6843: 0 0 0 1 0 0 0 K
6844: 90 450 1.5 1.5 344.98 450.12 G
6845: 346.48 450.12 346.48 453.91 359.72 450.12 346.48 446.32 4 Y
6846: 3 H
6847: 0 Z
6848: N
6849: 346.48 450.12 346.48 453.91 359.72 450.12 346.48 446.32 4 Y
6850: V
6851: 229.1 450.12 344.98 450.12 2 L
6852: 2 Z
6853: N
6854: 0 12 Q
6855: (T) 288.41 435.94 T
6856: (ime) 295.32 435.94 T
6857: 3 11 Q
6858: (// q=14) 418.51 470.07 T
6859: 194.57 560.89 279.61 575.06 R
6860: 0.5 H
6861: N
6862: (d\050;;q\0511\050;w;\051) 197.49 564.52 T
6863: (b\050;w;\051) 217.29 578.69 T
6864: 90 450 1.5 1.5 344.98 544.56 G
6865: 346.48 544.56 346.48 548.36 359.72 544.56 346.48 540.77 4 Y
6866: 3 H
6867: 0 Z
6868: N
6869: 346.48 544.56 346.48 548.36 359.72 544.56 346.48 540.77 4 Y
6870: V
6871: 229.1 544.56 344.98 544.56 2 L
6872: 2 Z
6873: N
6874: 0 12 Q
6875: (T) 284.67 530.39 T
6876: (ime) 291.58 530.39 T
6877: 3 11 Q
6878: (d\050;;q\051) 136.5 564.52 T
6879: 194.57 575.06 279.61 589.23 R
6880: 0.5 H
6881: N
6882: 129.37 560.89 183.23 575.06 R
6883: N
6884: (//) 217.29 592.92 T
6885: (w=4) 237.09 592.92 T
6886: 0 0 0 1 0 0 0 K
6887: 0 0 0 1 0 0 0 K
6888: 290.95 560.89 375.99 575.06 R
6889: N
6890: (d\050;;q\0511\050;w;\051) 293.87 564.52 T
6891: 387.32 560.89 472.36 575.06 R
6892: N
6893: (d\050;q;\0512\050;w;\051) 390.24 564.52 T
6894: (c\050w;;q\051) 406.74 578.69 T
6895: 387.32 575.06 472.36 589.23 R
6896: N
6897: (//) 410.04 592.92 T
6898: (w=7) 429.84 592.92 T
6899: 0 0 0 1 0 0 0 K
6900: 0 0 0 1 0 0 0 K
6901: (//) 313.67 578.69 T
6902: (w=7) 333.47 578.69 T
6903: 129.37 466.44 214.41 480.61 R
6904: N
6905: (d\050;q;\0512\050;w;\051) 132.29 470.07 T
6906: (c\050w;q;\0511\050;;\051) 132.29 484.24 T
6907: 129.37 480.61 214.41 494.79 R
6908: N
6909: (a\050w;;q\051) 148.79 500.2 T
6910: (//) 152.09 514.44 T
6911: (w=7) 171.89 514.44 T
6912: 0 0 0 1 0 0 0 K
6913: 0 0 0 1 0 0 0 K
6914: 129.37 494.84 214.41 509.01 R
6915: N
6916: 0 0 0 1 0 0 0 K
6917: 0 0 0 1 0 0 0 K
6918: 225.75 466.44 310.79 480.61 R
6919: N
6920: (d\050;q;\0512\050;w;\051) 228.67 470.07 T
6921: (c\050w;q;\0511\050;;\051) 228.67 484.24 T
6922: 225.75 480.61 310.79 494.79 R
6923: N
6924: (//) 245.17 500.2 T
6925: (q=14) 264.97 500.2 T
6926: 322.13 466.44 407.17 480.61 R
6927: N
6928: (d\050;q;\0512\050;w;\051) 325.05 470.07 T
6929: (//) 341.55 484.24 T
6930: (q=14) 361.35 484.24 T
6931: 0 0 0 1 0 0 0 K
6932: 0 0 0 1 0 0 0 K
6933: 376.5 544.56 402.01 544.56 2 L
6934: 3 H
6935: 10 X
6936: N
6937: 192.25 450.12 217.76 450.12 2 L
6938: N
6939: 0 0 0 1 0 0 0 K
6940: 120.87 421.74 480.87 610.52 C
6941: 0 -0.71 595.28 839.76 C
6942: 0 0 0 1 0 0 0 K
6943: 0 0 0 1 0 0 0 K
6944: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
6945: [/Dest/P.19/DEST FmPD2
6946: 164 559/M9.23341.Figure.Figure8.a.Some.example.code.in.the.TSIA.language.b.Its.execution.on.the.stack FmPA
6947: 164 559/I1.1016775 FmPA
6948: [/Rect[248 660 289 673]/Border[0 0 0]/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/LNK FmPD
6949: [/Rect[209 646 249 659]/Border[0 0 0]/Page 19/View[/XYZ null 164 559 FmDC exch pop null]/LNK FmPD
6950: [/Rect[152 381 192 394]/Border[0 0 0]/Page 19/View[/XYZ null 164 559 FmDC exch pop null]/LNK FmPD
6951: [/Rect[441 646 481 659]/Border[0 0 0]/Page 19/View[/XYZ null 164 559 FmDC exch pop null]/LNK FmPD
6952: [/Rect[258 241 264 254]/Border[0 0 0]/Page 11/View[/XYZ null 136 771 FmDC exch pop null]/LNK FmPD
6953: [/Rect[248 213 288 226]/Border[0 0 0]/Page 14/View[/XYZ null 164 299 FmDC exch pop null]/LNK FmPD
6954: [/Rect[121 199 161 212]/Border[0 0 0]/Page 11/View[/XYZ null 164 431 FmDC exch pop null]/LNK FmPD
6955: [/Rect[217 185 257 198]/Border[0 0 0]/Page 19/View[/XYZ null 164 559 FmDC exch pop null]/LNK FmPD
6956: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
6957: FMENDPAGE
6958: %%EndPage: "19" 19
6959: %%Page: "20" 20
6960: 595.28 839.05 0 FMBEGINPAGE
6961: [0 0 0 1 0 0 0]
6962: [ 0 1 1 0 1 0 0]
6963: [ 1 0 1 0 0 1 0]
6964: [ 1 1 0 0 0 0 1]
6965: [ 1 0 0 0 0 1 1]
6966: [ 0 1 0 0 1 0 1]
6967: [ 0 0 1 0 1 1 0]
6968: 7 FrameSetSepColors
6969: FrameNoSep
6970: 0 0 0 1 0 0 0 K
6971: 0 0 0 1 0 0 0 K
6972: 0 0 0 1 0 0 0 K
6973: 90 959/G837264 FmPA
6974: 0 12 Q
6975: 0 X
6976: 0 0 0 1 0 0 0 K
6977: (20) 289.29 93.77 T
6978: 40 238/G837268 FmPA
6979: -0.08 (tine) 120.87 664.52 P
6980: 3 F
6981: -0.19 (d) 141.79 664.52 P
6982: 0 F
6983: -0.08 ( could be compiled such that the frame) 148.99 664.52 P
6984: 3 F
6985: -0.19 (d\050;;q\0511\050;w;\051) 337.67 664.52 P
6986: 0 F
6987: -0.08 ( e) 424.07 664.52 P
6988: -0.08 (x) 432.14 664.52 P
6989: -0.08 (ecutes as) 437.95 664.52 P
6990: 1.71 (a task frame. In other w) 120.87 650.52 P
6991: 1.71 (ords, the frame) 243.28 650.52 P
6992: 3 F
6993: 4.11 (d\050;;q\0511\050;w;\051) 323.73 650.52 P
6994: 0 F
6995: 1.71 ( could replace) 410.13 650.52 P
6996: 1.12 (itself by the frame) 120.87 636.52 P
6997: 3 F
6998: 2.69 (c\050w;;q\051) 215.99 636.52 P
6999: 0 F
7000: 1.12 (. In the compiled routine) 266.39 636.52 P
7001: 3 F
7002: 2.69 (d) 393.31 636.52 P
7003: 0 F
7004: 1.12 ( of Figure) 400.51 636.52 P
7005: 1.12 (8, the) 453.08 636.52 P
7006: -0.05 (call to) 120.87 622.52 P
7007: 3 F
7008: -0.12 (b\050;w;\051) 153.43 622.52 P
7009: 0 F
7010: -0.05 ( remains unchanged. It continues to use an acti) 196.63 622.52 P
7011: -0.05 (v) 420.23 622.52 P
7012: -0.05 (ation frame) 425.93 622.52 P
7013: 0.26 (for) 120.87 608.52 P
7014: 3 F
7015: 0.64 (d) 138.12 608.52 P
7016: 0 F
7017: 0.26 (. In other w) 145.32 608.52 P
7018: 0.26 (ords, the frame) 201.32 608.52 P
7019: 3 F
7020: 0.64 (d\050;;q\051) 277.43 608.52 P
7021: 0 F
7022: 0.26 ( still replaces itself by the frames) 320.63 608.52 P
7023: 3 F
7024: (b\050;w;\051) 120.87 594.52 T
7025: (d\050;;q\0511\050;w;\051) 167.07 594.52 T
7026: 0 F
7027: (.) 253.47 594.52 T
7028: 0.58 (In a similar v) 137.88 580.52 P
7029: 0.58 (ein, an acti) 203.11 580.52 P
7030: 0.58 (v) 256.3 580.52 P
7031: 0.58 (ation frame can place man) 262 580.52 P
7032: 0.58 (y task frames onto) 390.79 580.52 P
7033: 121 724/G1017153 FmPA
7034: 0.25 (the stack. F) 120.87 566.52 P
7035: 0.25 (or e) 176.18 566.52 P
7036: 0.25 (xample,) 194.57 566.52 P
7037: 3 F
7038: 0.6 (d) 236.15 566.52 P
7039: 0 F
7040: 0.25 ( could be compiled such that the e) 243.35 566.52 P
7041: 0.25 (x) 408.56 566.52 P
7042: 0.25 (ecution of the) 414.38 566.52 P
7043: 0.24 (frame) 120.87 552.52 P
7044: 3 F
7045: 0.58 (d\050;;q\051) 152.09 552.52 P
7046: 0 F
7047: 0.24 ( replaces itself on the stack by the frames) 195.29 552.52 P
7048: 3 F
7049: 0.58 (b\050;w;\051) 398.42 552.52 P
7050: 0.58 (c\050w;;) 444.86 552.52 P
7051: (q\051) 120.87 538.52 T
7052: (d\050;q;\0513\050;w;\051) 138.27 538.52 T
7053: 0 F
7054: (, where) 224.67 538.52 T
7055: 3 F
7056: (3) 262.98 538.52 T
7057: 0 F
7058: ( is the suitable entry point.) 270.18 538.52 T
7059: -0.03 (The abo) 137.88 524.52 P
7060: -0.03 (v) 176.65 524.52 P
7061: -0.03 (e e) 182.47 524.52 P
7062: -0.03 (xamples demonstrate that a routine can be compiled to e) 195.91 524.52 P
7063: -0.03 (x) 465.72 524.52 P
7064: -0.03 (e-) 471.54 524.52 P
7065: 121 668/G1017199 FmPA
7066: 0.36 (cute using task frames and acti) 120.87 510.51 P
7067: 0.36 (v) 270 510.51 P
7068: 0.36 (ation frames. This is one possibility for an) 275.7 510.51 P
7069: 0.15 (application e) 120.87 496.51 P
7070: 0.15 (x) 182.5 496.51 P
7071: 0.15 (ecution to use task frames and acti) 188.32 496.51 P
7072: 0.15 (v) 354.24 496.51 P
7073: 0.15 (ation frames. In a second) 359.94 496.51 P
7074: 0.08 (possibility) 120.87 482.51 P
7075: 0.08 (, each routine uses either a task frame or an acti) 170.1 482.51 P
7076: 0.08 (v) 398.91 482.51 P
7077: 0.08 (ation frame, b) 404.61 482.51 P
7078: 0.08 (ut) 471.52 482.51 P
7079: 0.92 (the v) 120.87 468.51 P
7080: 0.92 (arious routines of an application lead to a stack which contains both) 145.15 468.51 P
7081: 0.7 (acti) 120.87 454.51 P
7082: 0.7 (v) 137.9 454.51 P
7083: 0.7 (ation frames and task frames. In a third possibility) 143.6 454.51 P
7084: 0.7 (, the stack consists) 389.42 454.51 P
7085: 0.79 (only of task frames, b) 120.87 440.51 P
7086: 0.79 (ut within the e) 228.09 440.51 P
7087: 0.79 (x) 299.26 440.51 P
7088: 0.79 (ecution of a task a separate stack of) 305.08 440.51 P
7089: 1.11 (acti) 120.87 426.51 P
7090: 1.11 (v) 137.9 426.51 P
7091: 1.11 (ation frames is used. In other w) 143.6 426.51 P
7092: 1.11 (ords, the use of a stack of acti) 301.08 426.51 P
7093: 1.11 (v) 451.16 426.51 P
7094: 1.11 (ation) 456.86 426.51 P
7095: 0.46 (frames can be encapsulated within a task. F) 120.87 412.51 P
7096: 0.46 (or e) 332.53 412.51 P
7097: 0.46 (xample, a task can use a C) 351.13 412.51 P
7098: 2.67 (library routine which e) 120.87 398.51 P
7099: 2.67 (x) 238.34 398.51 P
7100: 2.67 (ecutes using a stack of acti) 244.16 398.51 P
7101: 2.67 (v) 385.51 398.51 P
7102: 2.67 (ation frames. The) 391.21 398.51 P
7103: -0.23 (fourth possibility re) 120.87 384.51 P
7104: -0.23 (v) 214.78 384.51 P
7105: -0.23 (erses the roles of the acti) 220.6 384.51 P
7106: -0.23 (v) 338.12 384.51 P
7107: -0.23 (ation frames and task frames) 343.82 384.51 P
7108: (in the third possibility) 120.87 370.51 T
7109: (.) 225.77 370.51 T
7110: 1 F
7111: (7 The T) 120.87 339.51 T
7112: (ime Ov) 166.66 339.51 T
7113: (erhead f) 203.54 339.51 T
7114: (or Calling a Routine) 245.56 339.51 T
7115: 121 483/G1015285 FmPA
7116: 0 F
7117: 1.47 (Section) 120.87 320.52 P
7118: 1.47 (5 sho) 159.87 320.52 P
7119: 1.47 (wed a crude implementation of the alternati) 186.7 320.52 P
7120: 1.47 (v) 404.49 320.52 P
7121: 1.47 (e e) 410.31 320.52 P
7122: 1.47 (x) 425.25 320.52 P
7123: 1.47 (ecution of) 431.07 320.52 P
7124: 121 464/G1010999 FmPA
7125: 0.03 (routines. As described in this section, in the crude implementation the time) 120.87 306.52 P
7126: -0.25 (o) 120.87 292.52 P
7127: -0.25 (v) 126.69 292.52 P
7128: -0.25 (erhead for calling a routine is about four times that in the current con) 132.51 292.52 P
7129: -0.25 (v) 459.72 292.52 P
7130: -0.25 (en-) 465.54 292.52 P
7131: 2.01 (tional e) 120.87 278.52 P
7132: 2.01 (x) 158.36 278.52 P
7133: 2.01 (ecution. This demonstrates that the e) 164.18 278.52 P
7134: 2.01 (x) 350.02 278.52 P
7135: 2.01 (ecution of routines using) 355.84 278.52 P
7136: 2.13 (task frames can ha) 120.87 264.52 P
7137: 2.13 (v) 215.98 264.52 P
7138: 2.13 (e a time o) 221.8 264.52 P
7139: 2.13 (v) 274.99 264.52 P
7140: 2.13 (erhead small enough to be practical for) 280.81 264.52 P
7141: (man) 120.87 250.52 T
7142: (y parts of man) 141.35 250.52 T
7143: (y applications.) 210.16 250.52 T
7144: 0.87 (The application used in this rough comparison is the doubly-recursi) 137.88 236.52 P
7145: 0.87 (v) 469.71 236.52 P
7146: 0.87 (e) 475.53 236.52 P
7147: 121 380/G1011009 FmPA
7148: 1.04 (algorithm for computing the Fibonacci function. The algorithm is chosen) 120.87 222.52 P
7149: 0 (for the comparison since it consists of man) 120.87 208.52 P
7150: 0 (y calls to routines and v) 326.36 208.52 P
7151: 0 (ery little) 440.52 208.52 P
7152: 2.74 (other w) 120.87 194.52 P
7153: 2.74 (ork. The algorithm is a horribly inef) 159.82 194.52 P
7154: 2.74 (\336cient computation of the) 348.97 194.52 P
7155: 0.47 (Fibonacci function, b) 120.87 180.52 P
7156: 0.47 (ut that is irrele) 223.89 180.52 P
7157: 0.47 (v) 294.67 180.52 P
7158: 0.47 (ant here. Figure) 300.36 180.52 P
7159: 0.47 (10 sho) 379.95 180.52 P
7160: 0.47 (ws the C code) 411.79 180.52 P
7161: (for a Fibonacci application using the con) 120.87 166.52 T
7162: (v) 316.36 166.52 T
7163: (entional e) 322.18 166.52 T
7164: (x) 368.99 166.52 T
7165: (ecution of routines.) 374.81 166.52 T
7166: 0.36 (Figure) 137.88 152.52 P
7167: 0.36 (11 also sho) 172.21 152.52 P
7168: 0.36 (ws C code for a Fibonacci application using the cur-) 226.63 152.52 P
7169: 121 296/G1011100 FmPA
7170: -0 (rent con) 120.87 138.52 P
7171: -0 (v) 159.37 138.52 P
7172: -0 (entional e) 165.19 138.52 P
7173: -0 (x) 212 138.52 P
7174: -0 (ecution of routines, b) 217.82 138.52 P
7175: -0 (ut the application is written in the) 319.56 138.52 P
7176: 0 0 0 1 0 0 0 K
7177: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
7178: [/Dest/P.20/DEST FmPD2
7179: 136 491/M9.37901.1Heading.7.The.Time.Overhead.for.Calling.a.Routine FmPA
7180: 136 491/I1.1019841 FmPA
7181: [/Rect[346 176 392 189]/Border[0 0 0]/Page 21/View[/XYZ null 170 767 FmDC exch pop null]/LNK FmPD
7182: [/Rect[138 148 184 161]/Border[0 0 0]/Page 21/View[/XYZ null 170 566 FmDC exch pop null]/LNK FmPD
7183: [/Rect[160 316 166 329]/Border[0 0 0]/Page 11/View[/XYZ null 136 771 FmDC exch pop null]/LNK FmPD
7184: [/Rect[419 632 459 645]/Border[0 0 0]/Page 17/View[/XYZ null 164 389 FmDC exch pop null]/LNK FmPD
7185: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
7186: FMENDPAGE
7187: %%EndPage: "20" 20
7188: %%Page: "21" 21
7189: 595.28 839.05 0 FMBEGINPAGE
7190: [0 0 0 1 0 0 0]
7191: [ 0 1 1 0 1 0 0]
7192: [ 1 0 1 0 0 1 0]
7193: [ 1 1 0 0 0 0 1]
7194: [ 1 0 0 0 0 1 1]
7195: [ 0 1 0 0 1 0 1]
7196: [ 0 0 1 0 1 1 0]
7197: 7 FrameSetSepColors
7198: FrameNoSep
7199: 0 0 0 1 0 0 0 K
7200: 0 0 0 1 0 0 0 K
7201: 0 0 0 1 0 0 0 K
7202: 90 959/G837264 FmPA
7203: 0 12 Q
7204: 0 X
7205: 0 0 0 1 0 0 0 K
7206: (21) 289.29 93.77 T
7207: 40 238/G837268 FmPA
7208: 2.24 (task style. The routine) 120.87 595.52 P
7209: 3 F
7210: 5.37 (afib) 239.48 595.52 P
7211: 0 F
7212: 2.24 ( calls the routine) 268.28 595.52 P
7213: 3 F
7214: 5.37 (add) 359.89 595.52 P
7215: 0 F
7216: 2.24 (, instead of directly) 381.49 595.52 P
7217: -0.28 (using the output of its tw) 120.87 581.52 P
7218: -0.28 (o) 239.04 581.52 P
7219: 3 F
7220: -0.66 (afib) 247.76 581.52 P
7221: 0 F
7222: -0.28 ( children. The routine) 276.57 581.52 P
7223: 3 F
7224: -0.66 (add) 382.44 581.52 P
7225: 0 F
7226: -0.28 ( is k) 404.04 581.52 P
7227: -0.28 (ept in a sep-) 423.37 581.52 P
7228: (arate source \336le to pre) 120.87 567.52 T
7229: (v) 227.2 567.52 T
7230: (ent it from being inlined.) 233.02 567.52 T
7231: 1.7 (Figure) 137.88 392.51 P
7232: 1.7 (12 sho) 172.21 392.51 P
7233: 1.7 (ws the intermediate C code resulting from compiling a) 205.28 392.51 P
7234: 121 536/G1011517 FmPA
7235: 0.82 (Fibonacci application written in a TSIA language. The comments include) 120.87 378.51 P
7236: 1.13 (the original TSIA code of the routines) 120.87 364.51 P
7237: 3 F
7238: 2.71 (tfib) 314.42 364.51 P
7239: 0 F
7240: 1.13 ( and) 343.22 364.51 P
7241: 3 F
7242: 2.71 (tadd) 368.81 364.51 P
7243: 0 F
7244: 1.13 (. The application) 397.61 364.51 P
7245: 0.56 (also requires the code in Figure) 120.87 350.51 P
7246: 0.56 (3 for the stack and the repeated e) 277.66 350.51 P
7247: 0.56 (x) 439.71 350.51 P
7248: 0.56 (ecution) 445.53 350.51 P
7249: 0.42 (of the topmost task frame. The code of Figures) 120.87 336.51 P
7250: 0.42 (3 and) 352.2 336.51 P
7251: 0.42 (12 may be compiled) 381.94 336.51 P
7252: 4.57 (and e) 120.87 322.52 P
7253: 4.57 (x) 150.91 322.52 P
7254: 4.57 (ecuted as a usual C application. As e) 156.73 322.52 P
7255: 4.57 (xpected, the output is) 364.5 322.52 P
7256: 3 F
7257: (tfib\05036;;k\051) 120.87 308.52 T
7258: (yields) 207.27 308.52 T
7259: (k=14930352) 257.67 308.52 T
7260: 0 F
7261: (.) 329.67 308.52 T
7262: 1.3 (T) 137.88 294.52 P
7263: 1.3 (able) 144.25 294.52 P
7264: 1.3 (1 sho) 167.24 294.52 P
7265: 1.3 (ws e) 193.91 294.52 P
7266: 1.3 (x) 216.69 294.52 P
7267: 1.3 (ecution times for the abo) 222.51 294.52 P
7268: 1.3 (v) 346.85 294.52 P
7269: 1.3 (e three Fibonacci applica-) 352.67 294.52 P
7270: 121 438/G1012387 FmPA
7271: 0.32 (tions. Computing en) 120.87 280.52 P
7272: 0.32 (vironments v) 218.71 280.52 P
7273: 0.32 (ary widely) 281.73 280.52 P
7274: 0.32 (. In order to sho) 332.26 280.52 P
7275: 0.32 (w some of this) 409.57 280.52 P
7276: 0.12 (v) 120.87 266.52 P
7277: 0.12 (ariation, the e) 126.57 266.52 P
7278: 0.12 (x) 192.29 266.52 P
7279: 0.12 (ecution times are sho) 198.11 266.52 P
7280: 0.12 (wn for tw) 299.84 266.52 P
7281: 0.12 (o processors, tw) 346.62 266.52 P
7282: 0.12 (o compilers) 424.41 266.52 P
7283: 0.89 (and tw) 120.87 252.52 P
7284: 0.89 (o le) 153.96 252.52 P
7285: 0.89 (v) 172.22 252.52 P
7286: 0.89 (els of optimization. The ratio) 178.04 252.52 P
7287: 3 F
7288: 2.13 (tfib) 325.14 252.52 P
7289: 0 F
7290: 0.89 (/) 353.94 252.52 P
7291: 3 F
7292: 2.13 (fib) 357.27 252.52 P
7293: 0 F
7294: 0.89 (, comparing the time) 378.87 252.52 P
7295: 0.67 (of the crude implementation to that of the current con) 120.87 238.52 P
7296: 0.67 (v) 383.41 238.52 P
7297: 0.67 (entional e) 389.23 238.52 P
7298: 0.67 (x) 436.71 238.52 P
7299: 0.67 (ecution,) 442.53 238.52 P
7300: 0.17 (is about four) 120.87 224.52 P
7301: 0.17 (. A small part of this is due to the) 181.21 224.52 P
7302: 3 F
7303: 0.41 (add) 345.93 224.52 P
7304: 0 F
7305: 0.17 ( routine required by the) 367.53 224.52 P
7306: (task style, as sho) 120.87 210.52 T
7307: (wn by the ratio) 201.23 210.52 T
7308: 3 F
7309: (afib) 276.56 210.52 T
7310: 0 F
7311: (/) 305.36 210.52 T
7312: 3 F
7313: (fib) 308.69 210.52 T
7314: 0 F
7315: ( of about 1.4.) 330.29 210.52 T
7316: -0.23 (Compared to the abo) 137.88 196.52 P
7317: -0.23 (v) 237.33 196.52 P
7318: -0.23 (e Fibonacci routines, most routines in other appli-) 243.15 196.52 P
7319: 121 340/G1015718 FmPA
7320: 1.25 (cations do more w) 120.87 182.52 P
7321: 1.25 (ork. Other applications thus are not as sensiti) 212.81 182.52 P
7322: 1.25 (v) 437.22 182.52 P
7323: 1.25 (e to the) 443.04 182.52 P
7324: -0.15 (time o) 120.87 168.52 P
7325: -0.15 (v) 150.88 168.52 P
7326: -0.15 (erhead for calling a routine. The abo) 156.7 168.52 P
7327: -0.15 (v) 330.57 168.52 P
7328: -0.15 (e f) 336.39 168.52 P
7329: -0.15 (actor of four thus is a rough) 348.45 168.52 P
7330: -0.24 (estimate of the time o) 120.87 154.52 P
7331: -0.24 (v) 223.71 154.52 P
7332: -0.24 (erhead for calling a routine in the crude implementa-) 229.53 154.52 P
7333: 0.27 (tion compared to that in the current con) 120.87 140.52 P
7334: 0.27 (v) 311.94 140.52 P
7335: 0.27 (entional e) 317.76 140.52 P
7336: 0.27 (x) 364.85 140.52 P
7337: 0.27 (ecution. The technique) 370.67 140.52 P
7338: (for the estimate also is used else) 120.87 126.52 T
7339: (where [Cilk-1][Cilk-5].) 275.21 126.52 T
7340: 0 0 0 1 0 0 0 K
7341: 0 0 0 1 0 0 0 K
7342: 0 0 0 1 0 0 0 K
7343: 121 812/G1011015 FmPA
7344: 0 0 0 1 0 0 0 K
7345: 3 11 Q
7346: -0.22 (int fib\050int n\051 { return n<2 ? n : fib\050n-1\051+fib\050n-2\051; }) 126.7 658.18 P
7347: 0 0 0 1 0 0 0 K
7348: 121 802/G1011042 FmPA
7349: 0 0 0 1 0 0 0 K
7350: -0.37 (main\050\051{ int n = 36; printf\050"fib\050%d\051=%d\134n",n,fib\050n\051\051; }) 126.7 644.18 P
7351: 0 0 0 1 0 0 0 K
7352: 121 788/G1011024 FmPA
7353: 0 0 0 1 0 0 0 K
7354: 0 0 0 1 0 0 0 K
7355: 121 777/G1011025 FmPA
7356: 0 0 0 1 0 0 0 K
7357: 121 770/G1011027 FmPA
7358: 0 12 Q
7359: (Figure) 123.87 615.52 T
7360: (10) 158.2 615.52 T
7361: (A con) 172.06 615.52 T
7362: (v) 200.57 615.52 T
7363: (entional Fibonacci application.) 206.39 615.52 T
7364: 121 759/G1011029 FmPA
7365: 0 0 0 1 0 0 0 K
7366: 0 0 0 1 0 0 0 K
7367: 0 0 0 1 0 0 0 K
7368: 121 695/G1011103 FmPA
7369: 0 0 0 1 0 0 0 K
7370: 3 11 Q
7371: (void add\050int x, int y, int *z\051 { *z = x+y; }) 126.7 541.18 T
7372: 0 0 0 1 0 0 0 K
7373: 121 685/G1011104 FmPA
7374: 0 0 0 1 0 0 0 K
7375: (void afib\050int n,int *k\051 {) 126.7 527.18 T
7376: 0 0 0 1 0 0 0 K
7377: 121 671/G1011120 FmPA
7378: 0 0 0 1 0 0 0 K
7379: (if \050n<2\051 *k = n;) 139.9 513.18 T
7380: 0 0 0 1 0 0 0 K
7381: 121 657/G1011121 FmPA
7382: 0 0 0 1 0 0 0 K
7383: (else) 139.9 499.18 T
7384: 0 0 0 1 0 0 0 K
7385: 121 643/G1011122 FmPA
7386: 0 0 0 1 0 0 0 K
7387: ({int h,j; afib\050n-1,&h\051; afib\050n-2,&j\051; add\050h,j,k\051;}) 150.27 485.18 T
7388: 0 0 0 1 0 0 0 K
7389: 0 0 0 1 0 0 0 K
7390: (}) 126.7 471.18 T
7391: 0 0 0 1 0 0 0 K
7392: 121 615/G1011123 FmPA
7393: 0 0 0 1 0 0 0 K
7394: (main\050\051) 126.7 457.18 T
7395: ({) 172.9 457.18 T
7396: (int n=36, k; afib\050n,&k\051;) 186.1 457.18 T
7397: 0 0 0 1 0 0 0 K
7398: 121 601/G1011106 FmPA
7399: 0 0 0 1 0 0 0 K
7400: (printf\050"afib\050%d,&k\051 yields k=%d\134n",n,k\051; }) 186.1 443.18 T
7401: 0 0 0 1 0 0 0 K
7402: 121 587/G1011146 FmPA
7403: 0 0 0 1 0 0 0 K
7404: 0 0 0 1 0 0 0 K
7405: 121 576/G1011107 FmPA
7406: 0 0 0 1 0 0 0 K
7407: 121 569/G1011109 FmPA
7408: 0 12 Q
7409: (Figure) 123.87 414.51 T
7410: (11) 158.2 414.51 T
7411: (A Fibonacci application in the task style.) 172.06 414.51 T
7412: 121 558/G1011111 FmPA
7413: 120.87 672.27 120.87 611.77 2 L
7414: V
7415: 0.5 H
7416: 0 Z
7417: N
7418: 480.87 672.27 480.87 611.77 2 L
7419: V
7420: N
7421: 120.62 672.52 481.12 672.52 2 L
7422: V
7423: N
7424: 120.62 630.52 481.12 630.52 2 L
7425: V
7426: N
7427: 120.62 611.52 481.12 611.52 2 L
7428: V
7429: N
7430: 120.87 555.27 120.87 410.76 2 L
7431: V
7432: N
7433: 480.87 555.27 480.87 410.76 2 L
7434: V
7435: N
7436: 120.62 555.52 481.12 555.52 2 L
7437: V
7438: N
7439: 120.62 429.51 481.12 429.51 2 L
7440: V
7441: N
7442: 120.62 410.51 481.12 410.51 2 L
7443: V
7444: N
7445: 0 0 0 1 0 0 0 K
7446: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
7447: [/Dest/P.21/DEST FmPD2
7448: 170 767/M9.15058.Figure.Figure6.The.stack.and.code.to.repeatedly.execute.the.topmost.task.frame FmPA
7449: 170 767/I1.1011031 FmPA
7450: 170 566/M9.34704.Figure.Figure7.The.stack.and.code.to.repeatedly.execute.the.topmost.task.frame FmPA
7451: 170 566/I1.1011112 FmPA
7452: [/Rect[138 388 184 401]/Border[0 0 0]/Page 23/View[/XYZ null 170 641 FmDC exch pop null]/LNK FmPD
7453: [/Rect[243 346 284 359]/Border[0 0 0]/Page 11/View[/XYZ null 164 431 FmDC exch pop null]/LNK FmPD
7454: [/Rect[352 332 358 345]/Border[0 0 0]/Page 11/View[/XYZ null 164 431 FmDC exch pop null]/LNK FmPD
7455: [/Rect[167 290 173 303]/Border[0 0 0]/Page 23/View[/XYZ null 163 445 FmDC exch pop null]/LNK FmPD
7456: [/Rect[382 332 394 345]/Border[0 0 0]/Page 23/View[/XYZ null 170 641 FmDC exch pop null]/LNK FmPD
7457: [/Rect[308 122 346 135]/Border[0 0 0]/Page 41/View[/XYZ null 121 542 FmDC exch pop null]/LNK FmPD
7458: [/Rect[346 122 385 135]/Border[0 0 0]/Page 41/View[/XYZ null 121 402 FmDC exch pop null]/LNK FmPD
7459: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
7460: FMENDPAGE
7461: %%EndPage: "21" 21
7462: %%Page: "22" 22
7463: 595.28 839.05 0 FMBEGINPAGE
7464: [0 0 0 1 0 0 0]
7465: [ 0 1 1 0 1 0 0]
7466: [ 1 0 1 0 0 1 0]
7467: [ 1 1 0 0 0 0 1]
7468: [ 1 0 0 0 0 1 1]
7469: [ 0 1 0 0 1 0 1]
7470: [ 0 0 1 0 1 1 0]
7471: 7 FrameSetSepColors
7472: FrameNoSep
7473: 0 0 0 1 0 0 0 K
7474: 0 0 0 1 0 0 0 K
7475: 0 0 0 1 0 0 0 K
7476: 90 959/G837264 FmPA
7477: 0 12 Q
7478: 0 X
7479: 0 0 0 1 0 0 0 K
7480: (22) 289.29 93.77 T
7481: 40 238/G837268 FmPA
7482: 0 0 0 1 0 0 0 K
7483: 0 0 0 1 0 0 0 K
7484: 0 0 0 1 0 0 0 K
7485: 121 812/G1011439 FmPA
7486: 0 0 0 1 0 0 0 K
7487: 3 11 Q
7488: (extern char *_sp; /* The stack pointer. */) 126.7 658.18 T
7489: 0 0 0 1 0 0 0 K
7490: 121 802/G1011440 FmPA
7491: 0 0 0 1 0 0 0 K
7492: 0 0 0 1 0 0 0 K
7493: 121 788/G1011441 FmPA
7494: 0 0 0 1 0 0 0 K
7495: (/* tadd\050int x, int y;; int z\051 { z=x+y; } */) 126.7 630.18 T
7496: 0 0 0 1 0 0 0 K
7497: 121 774/G1011442 FmPA
7498: 0 0 0 1 0 0 0 K
7499: (typedef struct {void\050*_f\051\050void\051; int x; int y;) 126.7 616.18 T
7500: 0 0 0 1 0 0 0 K
7501: 121 760/G1011443 FmPA
7502: 0 0 0 1 0 0 0 K
7503: (int *z;} _s_tadd;) 232.3 602.18 T
7504: 0 0 0 1 0 0 0 K
7505: 121 746/G1011444 FmPA
7506: 0 0 0 1 0 0 0 K
7507: (void _f_tadd\050void\051 {) 126.7 588.18 T
7508: 0 0 0 1 0 0 0 K
7509: 121 732/G1011445 FmPA
7510: 0 0 0 1 0 0 0 K
7511: ( _s_tadd *_p = \050_s_tadd *\051_sp;) 126.7 574.18 T
7512: 0 0 0 1 0 0 0 K
7513: 121 718/G1011446 FmPA
7514: 0 0 0 1 0 0 0 K
7515: ( *\050_p->z\051 = _p->x + _p->y;) 126.7 560.18 T
7516: 0 0 0 1 0 0 0 K
7517: 121 704/G1011447 FmPA
7518: 0 0 0 1 0 0 0 K
7519: ( _sp += sizeof\050*_p\051;) 126.7 546.18 T
7520: 0 0 0 1 0 0 0 K
7521: 121 690/G1011448 FmPA
7522: 0 0 0 1 0 0 0 K
7523: (}) 126.7 532.18 T
7524: 0 0 0 1 0 0 0 K
7525: 121 676/G1011449 FmPA
7526: 0 0 0 1 0 0 0 K
7527: 0 0 0 1 0 0 0 K
7528: 121 662/G1011450 FmPA
7529: 0 0 0 1 0 0 0 K
7530: (/* tfib\050int x;; int z\051) 126.7 504.18 T
7531: 0 0 0 1 0 0 0 K
7532: 121 648/G1011451 FmPA
7533: 0 0 0 1 0 0 0 K
7534: ( { if \050x<2\051 z=x;) 126.7 490.18 T
7535: 0 0 0 1 0 0 0 K
7536: 121 634/G1011452 FmPA
7537: 0 0 0 1 0 0 0 K
7538: ( else {tfib\050x-1;;w\051; tfib\050x-2;;v\051; tadd\050w,v;;z\051;}) 126.7 476.18 T
7539: 0 0 0 1 0 0 0 K
7540: 121 620/G1011453 FmPA
7541: 0 0 0 1 0 0 0 K
7542: ( }) 126.7 462.18 T
7543: 0 0 0 1 0 0 0 K
7544: 121 606/G1011454 FmPA
7545: 0 0 0 1 0 0 0 K
7546: ( */) 126.7 448.18 T
7547: 0 0 0 1 0 0 0 K
7548: 121 592/G1011455 FmPA
7549: 0 0 0 1 0 0 0 K
7550: -0.56 (typedef struct{void\050*_f\051\050void\051;int x;int *z;} _s_tfib;) 126.7 434.18 P
7551: 0 0 0 1 0 0 0 K
7552: 121 578/G1011456 FmPA
7553: 0 0 0 1 0 0 0 K
7554: (void _f_tfib\050void\051 {) 126.7 420.18 T
7555: 0 0 0 1 0 0 0 K
7556: 121 564/G1011457 FmPA
7557: 0 0 0 1 0 0 0 K
7558: ( _s_tfib *_p = \050_s_tfib *\051_sp;) 126.7 406.18 T
7559: 0 0 0 1 0 0 0 K
7560: 121 550/G1011458 FmPA
7561: 0 0 0 1 0 0 0 K
7562: -0.25 ( if \050_p->x<2\051 {*\050_p->z\051 = _p->x; _sp += sizeof\050*_p\051;}) 126.7 392.18 P
7563: 0 0 0 1 0 0 0 K
7564: 121 536/G1011459 FmPA
7565: 0 0 0 1 0 0 0 K
7566: ( else {) 126.7 378.18 T
7567: 0 0 0 1 0 0 0 K
7568: 121 522/G1011460 FmPA
7569: 0 0 0 1 0 0 0 K
7570: ( typedef struct {_s_tfib f1; _s_tfib f2;) 126.7 364.18 T
7571: 0 0 0 1 0 0 0 K
7572: 121 508/G1011461 FmPA
7573: 0 0 0 1 0 0 0 K
7574: (_s_tadd a1;} _s_c;) 258.7 350.18 T
7575: 0 0 0 1 0 0 0 K
7576: 121 494/G1011462 FmPA
7577: 0 0 0 1 0 0 0 K
7578: ( _s_c *_c;) 126.7 336.18 T
7579: 0 0 0 1 0 0 0 K
7580: 121 480/G1011463 FmPA
7581: 0 0 0 1 0 0 0 K
7582: ( _sp += sizeof\050*_p\051 - sizeof\050_s_c\051;) 126.7 322.18 T
7583: 0 0 0 1 0 0 0 K
7584: 121 466/G1011464 FmPA
7585: 0 0 0 1 0 0 0 K
7586: ( _c = \050_s_c *\051_sp;) 126.7 308.18 T
7587: 0 0 0 1 0 0 0 K
7588: 121 452/G1011465 FmPA
7589: 0 0 0 1 0 0 0 K
7590: ( _c->f1._f = _f_tfib;) 126.7 294.18 T
7591: 0 0 0 1 0 0 0 K
7592: 121 438/G1011466 FmPA
7593: 0 0 0 1 0 0 0 K
7594: ( _c->f1.x = _p->x-1;) 126.7 280.18 T
7595: 0 0 0 1 0 0 0 K
7596: 121 424/G1011467 FmPA
7597: 0 0 0 1 0 0 0 K
7598: ( _c->f1.z = &_c->a1.x;) 126.7 266.18 T
7599: 0 0 0 1 0 0 0 K
7600: 121 410/G1011468 FmPA
7601: 0 0 0 1 0 0 0 K
7602: 0 0 0 1 0 0 0 K
7603: 121 396/G1011469 FmPA
7604: 0 0 0 1 0 0 0 K
7605: ( _c->f2._f = _f_tfib;) 126.7 238.18 T
7606: 0 0 0 1 0 0 0 K
7607: 121 382/G1011470 FmPA
7608: 0 0 0 1 0 0 0 K
7609: ( _c->f2.x = _p->x-2;) 126.7 224.18 T
7610: 0 0 0 1 0 0 0 K
7611: 121 368/G1011471 FmPA
7612: 0 0 0 1 0 0 0 K
7613: ( _c->f2.z = &_c->a1.y;) 126.7 210.18 T
7614: 0 0 0 1 0 0 0 K
7615: 121 354/G1011472 FmPA
7616: 0 0 0 1 0 0 0 K
7617: 0 0 0 1 0 0 0 K
7618: 121 340/G1011473 FmPA
7619: 0 0 0 1 0 0 0 K
7620: ( _c->a1._f = _f_tadd;) 126.7 182.18 T
7621: 0 0 0 1 0 0 0 K
7622: 121 326/G1011474 FmPA
7623: 0 0 0 1 0 0 0 K
7624: ( /* _c->a1.z = _p->z; */ /* Already is true. */) 126.7 168.18 T
7625: 0 0 0 1 0 0 0 K
7626: 121 312/G1011475 FmPA
7627: 0 0 0 1 0 0 0 K
7628: ( }) 126.7 154.18 T
7629: 0 0 0 1 0 0 0 K
7630: 121 298/G1011476 FmPA
7631: 0 0 0 1 0 0 0 K
7632: (}) 126.7 140.18 T
7633: 0 0 0 1 0 0 0 K
7634: 121 284/G1011477 FmPA
7635: 0 0 0 1 0 0 0 K
7636: 0 0 0 1 0 0 0 K
7637: 121 273/G1011478 FmPA
7638: 0 0 0 1 0 0 0 K
7639: 120.87 672.27 120.87 126.77 2 L
7640: V
7641: 0.5 H
7642: 0 Z
7643: N
7644: 480.87 672.27 480.87 126.77 2 L
7645: V
7646: N
7647: 120.62 672.52 481.12 672.52 2 L
7648: V
7649: N
7650: 120.62 126.52 481.12 126.52 2 L
7651: V
7652: N
7653: 0 0 0 1 0 0 0 K
7654: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
7655: [/Dest/P.22/DEST FmPD2
7656: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
7657: FMENDPAGE
7658: %%EndPage: "22" 22
7659: %%Page: "23" 23
7660: 595.28 839.05 0 FMBEGINPAGE
7661: [0 0 0 1 0 0 0]
7662: [ 0 1 1 0 1 0 0]
7663: [ 1 0 1 0 0 1 0]
7664: [ 1 1 0 0 0 0 1]
7665: [ 1 0 0 0 0 1 1]
7666: [ 0 1 0 0 1 0 1]
7667: [ 0 0 1 0 1 1 0]
7668: 7 FrameSetSepColors
7669: FrameNoSep
7670: 0 0 0 1 0 0 0 K
7671: 0 0 0 1 0 0 0 K
7672: 0 0 0 1 0 0 0 K
7673: 90 959/G837264 FmPA
7674: 0 12 Q
7675: 0 X
7676: 0 0 0 1 0 0 0 K
7677: (23) 289.29 93.77 T
7678: 40 238/G837268 FmPA
7679: 0.5 (The f) 137.88 269.52 P
7680: 0.5 (actor four time o) 163.92 269.52 P
7681: 0.5 (v) 245.57 269.52 P
7682: 0.5 (erhead introduced by the crude implementation) 251.38 269.52 P
7683: 121 413/G1021755 FmPA
7684: 0.23 (of the alternati) 120.87 255.52 P
7685: 0.23 (v) 191.02 255.52 P
7686: 0.23 (e e) 196.84 255.52 P
7687: 0.23 (x) 210.55 255.52 P
7688: 0.23 (ecution of routines is comparable to that introduced by) 216.37 255.52 P
7689: 1.29 (the v) 120.87 241.52 P
7690: 1.29 (arious v) 145.52 241.52 P
7691: 1.29 (ersions of Cilk. F) 184.95 241.52 P
7692: 1.29 (or man) 271.97 241.52 P
7693: 1.29 (y applications, Cilk has sho) 306.73 241.52 P
7694: 1.29 (wn that) 443.91 241.52 P
7695: -0.08 (such an additional o) 120.87 227.52 P
7696: -0.08 (v) 216.76 227.52 P
7697: -0.08 (erhead for calling a routine is small enough to be ne) 222.58 227.52 P
7698: -0.08 (g-) 470.86 227.52 P
7699: (ligible [Cilk-1][Cilk-5].) 120.87 213.52 T
7700: 1 F
7701: (8 Iteration using T) 120.87 182.52 T
7702: (ail Recursion) 221.44 182.52 T
7703: 121 326/G1015719 FmPA
7704: 0 F
7705: 0.07 (As long promoted and often practiced in the functional programming com-) 120.87 163.52 P
7706: 121 307/G1015720 FmPA
7707: 0.02 (munity) 120.87 149.52 P
7708: 0.02 (, iteration can be performed using tail recursion. The currently more) 154.1 149.52 P
7709: 1.18 (popular alternati) 120.87 135.52 P
7710: 1.18 (v) 200.74 135.52 P
7711: 1.18 (e uses a loop for iteration. That iteration ef) 206.56 135.52 P
7712: 1.18 (\336ciently can) 420.69 135.52 P
7713: 0 0 0 1 0 0 0 K
7714: 0 0 0 1 0 0 0 K
7715: 0 0 0 1 0 0 0 K
7716: 121 812/G1011481 FmPA
7717: 0 0 0 1 0 0 0 K
7718: 3 11 Q
7719: (main\050\051 {) 126.7 658.18 T
7720: 0 0 0 1 0 0 0 K
7721: 121 802/G1011482 FmPA
7722: 0 0 0 1 0 0 0 K
7723: ( int n=36, k;) 126.7 644.18 T
7724: 0 0 0 1 0 0 0 K
7725: 121 788/G1011483 FmPA
7726: 0 0 0 1 0 0 0 K
7727: ( _s_tfib *b;) 126.7 630.18 T
7728: 0 0 0 1 0 0 0 K
7729: 121 774/G1011484 FmPA
7730: 0 0 0 1 0 0 0 K
7731: ( _sp -= sizeof\050_s_tfib\051;) 126.7 616.18 T
7732: 0 0 0 1 0 0 0 K
7733: 121 760/G1011485 FmPA
7734: 0 0 0 1 0 0 0 K
7735: ( b = \050_s_tfib *\051_sp;) 126.7 602.18 T
7736: 0 0 0 1 0 0 0 K
7737: 121 746/G1011486 FmPA
7738: 0 0 0 1 0 0 0 K
7739: ( b->_f = _f_tfib;) 126.7 588.18 T
7740: 0 0 0 1 0 0 0 K
7741: 121 732/G1011487 FmPA
7742: 0 0 0 1 0 0 0 K
7743: ( b->x = n;) 126.7 574.18 T
7744: 0 0 0 1 0 0 0 K
7745: 121 718/G1011488 FmPA
7746: 0 0 0 1 0 0 0 K
7747: ( b->z = &k;) 126.7 560.18 T
7748: 0 0 0 1 0 0 0 K
7749: 121 704/G1011489 FmPA
7750: 0 0 0 1 0 0 0 K
7751: ( _xtop\050\051;) 126.7 546.18 T
7752: 0 0 0 1 0 0 0 K
7753: 121 690/G1011490 FmPA
7754: 0 0 0 1 0 0 0 K
7755: ( printf\050"tfib\050%d;;k\051 yields k=%d\134n",n,k\051;) 126.7 532.18 T
7756: 0 0 0 1 0 0 0 K
7757: 121 676/G1011491 FmPA
7758: 0 0 0 1 0 0 0 K
7759: (}) 126.7 518.18 T
7760: 0 0 0 1 0 0 0 K
7761: 121 662/G1011492 FmPA
7762: 0 0 0 1 0 0 0 K
7763: 0 0 0 1 0 0 0 K
7764: 121 651/G1011493 FmPA
7765: 0 0 0 1 0 0 0 K
7766: 121 644/G1011495 FmPA
7767: 0 12 Q
7768: (Figure) 123.87 489.51 T
7769: (12) 158.2 489.51 T
7770: (Intermediate C code from compiling a Fibonacci application) 172.06 489.51 T
7771: 121 633/G1011497 FmPA
7772: (written in a TSIA language.) 172.06 475.51 T
7773: 0 0 0 1 0 0 0 K
7774: 0 0 0 1 0 0 0 K
7775: (Processor) 126.08 434.51 T
7776: 0 0 0 1 0 0 0 K
7777: 121 578/G1012396 FmPA
7778: 0 0 0 1 0 0 0 K
7779: (Compiler) 193.35 434.51 T
7780: 0 0 0 1 0 0 0 K
7781: 178 578/G1012398 FmPA
7782: 0 0 0 1 0 0 0 K
7783: (Seconds for Execution) 256.44 445.51 T
7784: 0 0 0 1 0 0 0 K
7785: 254 589/G1012400 FmPA
7786: 0 0 0 1 0 0 0 K
7787: 3 F
7788: (afib) 370.28 441.51 T
7789: 0 F
7790: (/) 399.08 441.51 T
7791: 0 0 0 1 0 0 0 K
7792: 367 585/G1012406 FmPA
7793: 0 0 0 1 0 0 0 K
7794: 3 F
7795: (fib) 375.55 427.51 T
7796: 0 0 0 1 0 0 0 K
7797: 0 0 0 1 0 0 0 K
7798: (tfib) 408.08 441.51 T
7799: 0 F
7800: (/) 436.88 441.51 T
7801: 0 0 0 1 0 0 0 K
7802: 405 585/G1012408 FmPA
7803: 0 0 0 1 0 0 0 K
7804: 3 F
7805: (afib) 409.75 427.51 T
7806: 0 0 0 1 0 0 0 K
7807: 0 0 0 1 0 0 0 K
7808: (tfib) 445.87 441.51 T
7809: 0 F
7810: (/) 474.67 441.51 T
7811: 0 0 0 1 0 0 0 K
7812: 443 585/G1012410 FmPA
7813: 0 0 0 1 0 0 0 K
7814: 3 F
7815: (fib) 451.14 427.51 T
7816: 0 0 0 1 0 0 0 K
7817: 0 0 0 1 0 0 0 K
7818: (fib) 262.17 423.51 T
7819: 0 0 0 1 0 0 0 K
7820: 254 567/G1012416 FmPA
7821: 0 0 0 1 0 0 0 K
7822: (afib) 296.36 423.51 T
7823: 0 0 0 1 0 0 0 K
7824: 292 567/G1012418 FmPA
7825: 0 0 0 1 0 0 0 K
7826: (tfib) 334.16 423.51 T
7827: 0 0 0 1 0 0 0 K
7828: 330 567/G1012420 FmPA
7829: 0 0 0 1 0 0 0 K
7830: (sparc) 131.41 376.51 T
7831: 0 0 0 1 0 0 0 K
7832: 121 520/G1012428 FmPA
7833: 0 0 0 1 0 0 0 K
7834: (cc) 185.16 403.51 T
7835: 0 0 0 1 0 0 0 K
7836: 178 547/G1012430 FmPA
7837: 0 0 0 1 0 0 0 K
7838: 0 F
7839: (5.5) 265.47 403.51 T
7840: 0 0 0 1 0 0 0 K
7841: 254 547/G1012432 FmPA
7842: 0 0 0 1 0 0 0 K
7843: (5.0) 303.26 403.51 T
7844: 0 0 0 1 0 0 0 K
7845: 292 547/G1012434 FmPA
7846: 0 0 0 1 0 0 0 K
7847: (13.9) 338.06 403.51 T
7848: 0 0 0 1 0 0 0 K
7849: 330 547/G1012436 FmPA
7850: 0 0 0 1 0 0 0 K
7851: (0.9) 378.85 403.51 T
7852: 0 0 0 1 0 0 0 K
7853: 367 547/G1012438 FmPA
7854: 0 0 0 1 0 0 0 K
7855: (2.8) 416.65 403.51 T
7856: 0 0 0 1 0 0 0 K
7857: 405 547/G1012440 FmPA
7858: 0 0 0 1 0 0 0 K
7859: (2.5) 454.44 403.51 T
7860: 0 0 0 1 0 0 0 K
7861: 443 547/G1012442 FmPA
7862: 0 0 0 1 0 0 0 K
7863: 3 F
7864: (cc -fast) 185.16 385.51 T
7865: 0 0 0 1 0 0 0 K
7866: 178 529/G1012446 FmPA
7867: 0 0 0 1 0 0 0 K
7868: 0 F
7869: (1.9) 265.47 385.51 T
7870: 0 0 0 1 0 0 0 K
7871: 254 529/G1012448 FmPA
7872: 0 0 0 1 0 0 0 K
7873: (2.3) 303.26 385.51 T
7874: 0 0 0 1 0 0 0 K
7875: 292 529/G1012450 FmPA
7876: 0 0 0 1 0 0 0 K
7877: (7.6) 344.06 385.51 T
7878: 0 0 0 1 0 0 0 K
7879: 330 529/G1012452 FmPA
7880: 0 0 0 1 0 0 0 K
7881: (1.2) 378.85 385.51 T
7882: 0 0 0 1 0 0 0 K
7883: 367 529/G1012454 FmPA
7884: 0 0 0 1 0 0 0 K
7885: (3.3) 416.65 385.51 T
7886: 0 0 0 1 0 0 0 K
7887: 405 529/G1012456 FmPA
7888: 0 0 0 1 0 0 0 K
7889: (4.0) 454.44 385.51 T
7890: 0 0 0 1 0 0 0 K
7891: 443 529/G1012458 FmPA
7892: 0 0 0 1 0 0 0 K
7893: 3 F
7894: (gcc) 185.16 367.51 T
7895: 0 0 0 1 0 0 0 K
7896: 178 511/G1012462 FmPA
7897: 0 0 0 1 0 0 0 K
7898: 0 F
7899: (3.4) 265.47 367.51 T
7900: 0 0 0 1 0 0 0 K
7901: 254 511/G1012464 FmPA
7902: 0 0 0 1 0 0 0 K
7903: (5.0) 303.26 367.51 T
7904: 0 0 0 1 0 0 0 K
7905: 292 511/G1012466 FmPA
7906: 0 0 0 1 0 0 0 K
7907: (13.4) 338.06 367.51 T
7908: 0 0 0 1 0 0 0 K
7909: 330 511/G1012468 FmPA
7910: 0 0 0 1 0 0 0 K
7911: (1.5) 378.85 367.51 T
7912: 0 0 0 1 0 0 0 K
7913: 367 511/G1012470 FmPA
7914: 0 0 0 1 0 0 0 K
7915: (2.7) 416.65 367.51 T
7916: 0 0 0 1 0 0 0 K
7917: 405 511/G1012472 FmPA
7918: 0 0 0 1 0 0 0 K
7919: (3.9) 454.44 367.51 T
7920: 0 0 0 1 0 0 0 K
7921: 443 511/G1012474 FmPA
7922: 0 0 0 1 0 0 0 K
7923: 3 F
7924: (gcc -O2) 185.16 349.51 T
7925: 0 0 0 1 0 0 0 K
7926: 178 493/G1012478 FmPA
7927: 0 0 0 1 0 0 0 K
7928: 0 F
7929: (1.9) 265.47 349.51 T
7930: 0 0 0 1 0 0 0 K
7931: 254 493/G1012480 FmPA
7932: 0 0 0 1 0 0 0 K
7933: (2.6) 303.26 349.51 T
7934: 0 0 0 1 0 0 0 K
7935: 292 493/G1012482 FmPA
7936: 0 0 0 1 0 0 0 K
7937: (7.9) 344.06 349.51 T
7938: 0 0 0 1 0 0 0 K
7939: 330 493/G1012484 FmPA
7940: 0 0 0 1 0 0 0 K
7941: (1.4) 378.85 349.51 T
7942: 0 0 0 1 0 0 0 K
7943: 367 493/G1012486 FmPA
7944: 0 0 0 1 0 0 0 K
7945: (3.0) 416.65 349.51 T
7946: 0 0 0 1 0 0 0 K
7947: 405 493/G1012488 FmPA
7948: 0 0 0 1 0 0 0 K
7949: (4.2) 454.44 349.51 T
7950: 0 0 0 1 0 0 0 K
7951: 443 493/G1012490 FmPA
7952: 0 0 0 1 0 0 0 K
7953: 3 F
7954: (i686) 135.01 322.52 T
7955: 0 0 0 1 0 0 0 K
7956: 121 466/G1012492 FmPA
7957: 0 0 0 1 0 0 0 K
7958: (gcc) 185.16 331.51 T
7959: 0 0 0 1 0 0 0 K
7960: 178 475/G1012494 FmPA
7961: 0 0 0 1 0 0 0 K
7962: 0 F
7963: (2.5) 265.47 331.51 T
7964: 0 0 0 1 0 0 0 K
7965: 254 475/G1012496 FmPA
7966: 0 0 0 1 0 0 0 K
7967: (3.9) 303.26 331.51 T
7968: 0 0 0 1 0 0 0 K
7969: 292 475/G1012498 FmPA
7970: 0 0 0 1 0 0 0 K
7971: (9.4) 344.06 331.51 T
7972: 0 0 0 1 0 0 0 K
7973: 330 475/G1012500 FmPA
7974: 0 0 0 1 0 0 0 K
7975: (1.6) 378.85 331.51 T
7976: 0 0 0 1 0 0 0 K
7977: 367 475/G1012502 FmPA
7978: 0 0 0 1 0 0 0 K
7979: (2.4) 416.65 331.51 T
7980: 0 0 0 1 0 0 0 K
7981: 405 475/G1012504 FmPA
7982: 0 0 0 1 0 0 0 K
7983: (3.8) 454.44 331.51 T
7984: 0 0 0 1 0 0 0 K
7985: 443 475/G1012506 FmPA
7986: 0 0 0 1 0 0 0 K
7987: 3 F
7988: (gcc -O2) 185.16 313.52 T
7989: 0 0 0 1 0 0 0 K
7990: 178 457/G1012510 FmPA
7991: 0 0 0 1 0 0 0 K
7992: 0 F
7993: (2.8) 265.47 313.52 T
7994: 0 0 0 1 0 0 0 K
7995: 254 457/G1012512 FmPA
7996: 0 0 0 1 0 0 0 K
7997: (4.3) 303.26 313.52 T
7998: 0 0 0 1 0 0 0 K
7999: 292 457/G1012514 FmPA
8000: 0 0 0 1 0 0 0 K
8001: (6.0) 344.06 313.52 T
8002: 0 0 0 1 0 0 0 K
8003: 330 457/G1012516 FmPA
8004: 0 0 0 1 0 0 0 K
8005: (1.5) 378.85 313.52 T
8006: 0 0 0 1 0 0 0 K
8007: 367 457/G1012518 FmPA
8008: 0 0 0 1 0 0 0 K
8009: (1.4) 416.65 313.52 T
8010: 0 0 0 1 0 0 0 K
8011: 405 457/G1012520 FmPA
8012: 0 0 0 1 0 0 0 K
8013: (2.1) 454.44 313.52 T
8014: 0 0 0 1 0 0 0 K
8015: 443 457/G1012522 FmPA
8016: 0 0 0 1 0 0 0 K
8017: (T) 120.87 293.52 T
8018: (able 1:) 127.24 293.52 T
8019: (Ex) 162.57 293.52 T
8020: (ecution times and ratios for three Fibonacci applications.) 175.72 293.52 T
8021: 0 0 0 1 0 0 0 K
8022: 121 437/G1012524 FmPA
8023: 0 0 0 1 0 0 0 K
8024: 120.87 672.27 120.87 471.76 2 L
8025: V
8026: 0.5 H
8027: 0 Z
8028: N
8029: 480.87 672.27 480.87 471.76 2 L
8030: V
8031: N
8032: 120.62 672.52 481.12 672.52 2 L
8033: V
8034: N
8035: 120.62 504.51 481.12 504.51 2 L
8036: V
8037: N
8038: 120.62 471.51 481.12 471.51 2 L
8039: V
8040: N
8041: 120.87 459.26 120.87 307.77 2 L
8042: V
8043: N
8044: 177.96 459.76 177.96 307.27 2 L
8045: V
8046: N
8047: 254.07 459.76 254.07 307.27 2 L
8048: V
8049: N
8050: 291.86 437.76 291.86 307.27 2 L
8051: V
8052: N
8053: 329.66 437.76 329.66 307.27 2 L
8054: V
8055: N
8056: 367.45 459.76 367.45 307.27 2 L
8057: V
8058: N
8059: 405.25 459.76 405.25 307.27 2 L
8060: V
8061: N
8062: 443.04 459.76 443.04 307.27 2 L
8063: V
8064: N
8065: 480.84 459.26 480.84 307.77 2 L
8066: V
8067: N
8068: 120.62 459.51 481.09 459.51 2 L
8069: V
8070: N
8071: 253.82 437.51 367.7 437.51 2 L
8072: V
8073: N
8074: 121.12 416.76 480.59 416.76 2 L
8075: V
8076: N
8077: 121.12 414.26 480.59 414.26 2 L
8078: V
8079: N
8080: 177.71 397.51 481.09 397.51 2 L
8081: V
8082: N
8083: 177.71 379.51 481.09 379.51 2 L
8084: V
8085: N
8086: 177.71 361.51 481.09 361.51 2 L
8087: V
8088: N
8089: 120.62 343.51 481.09 343.51 2 L
8090: V
8091: N
8092: 177.71 325.52 481.09 325.52 2 L
8093: V
8094: N
8095: 120.62 307.52 481.09 307.52 2 L
8096: V
8097: N
8098: 0 0 0 1 0 0 0 K
8099: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
8100: [/Dest/P.23/DEST FmPD2
8101: 170 641/M9.38217.Figure.Figure8.The.stack.and.code.to.repeatedly.execute.the.topmost.task.frame FmPA
8102: 170 641/I1.1011535 FmPA
8103: 163 445/M9.21782.TableTitle.Table.1.Execution.times.and.ratios.for.the.three.Fibonacci.applications FmPA
8104: 163 445/I1.1012539 FmPA
8105: 136 334/M9.30566.1Heading.8.Iteration.using.Tail.Recursion FmPA
8106: 136 334/I1.1019851 FmPA
8107: [/Rect[155 209 193 222]/Border[0 0 0]/Page 41/View[/XYZ null 121 542 FmDC exch pop null]/LNK FmPD
8108: [/Rect[193 209 232 222]/Border[0 0 0]/Page 41/View[/XYZ null 121 402 FmDC exch pop null]/LNK FmPD
8109: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
8110: FMENDPAGE
8111: %%EndPage: "23" 23
8112: %%Page: "24" 24
8113: 595.28 839.05 0 FMBEGINPAGE
8114: [0 0 0 1 0 0 0]
8115: [ 0 1 1 0 1 0 0]
8116: [ 1 0 1 0 0 1 0]
8117: [ 1 1 0 0 0 0 1]
8118: [ 1 0 0 0 0 1 1]
8119: [ 0 1 0 0 1 0 1]
8120: [ 0 0 1 0 1 1 0]
8121: 7 FrameSetSepColors
8122: FrameNoSep
8123: 0 0 0 1 0 0 0 K
8124: 0 0 0 1 0 0 0 K
8125: 0 0 0 1 0 0 0 K
8126: 90 959/G837264 FmPA
8127: 0 12 Q
8128: 0 X
8129: 0 0 0 1 0 0 0 K
8130: (24) 289.29 93.77 T
8131: 40 238/G837268 FmPA
8132: 0.37 (use tail recursion easily is demonstrated for an e) 120.87 664.52 P
8133: 0.37 (x) 354.94 664.52 P
8134: 0.37 (ecution of routines using) 360.76 664.52 P
8135: (task frames.) 120.87 650.52 T
8136: 2.57 (An e) 137.88 636.52 P
8137: 2.57 (xample of iteration using a loop is in the C routine) 163.26 636.52 P
8138: 3 F
8139: 6.16 (lsum) 436.5 636.52 P
8140: 0 F
8141: 2.57 ( of) 465.3 636.52 P
8142: 121 780/G1012627 FmPA
8143: 0.68 (Figure) 120.87 622.52 P
8144: 0.68 (13. The result of the iteration is) 155.2 622.52 P
8145: 3 F
8146: 1.62 (a0+i+\050i+1\051+) 313.91 622.52 P
8147: 0 F
8148: 0.68 (..) 393.11 622.52 P
8149: 3 F
8150: 1.62 (+n) 399.11 622.52 P
8151: 0 F
8152: 0.68 (. The result is) 413.51 622.52 P
8153: 3.32 (more ef) 120.87 608.52 P
8154: 3.32 (\336ciently computed as) 160.87 608.52 P
8155: 3 F
8156: 7.97 (a0+\050n+i\051*\050n-i+1\051/2) 276.49 608.52 P
8157: 0 F
8158: 3.32 (. The e) 406.09 608.52 P
8159: 3.32 (xample) 445.53 608.52 P
8160: (thus is a horribly inef) 120.87 594.52 T
8161: (\336cient computation, b) 223.23 594.52 T
8162: (ut that is irrele) 327.99 594.52 T
8163: (v) 397.35 594.52 T
8164: (ant here.) 403.05 594.52 T
8165: 1.51 (Instead of using a loop, the abo) 137.88 475.51 P
8166: 1.51 (v) 297.04 475.51 P
8167: 1.51 (e iteration can use tail recursion, as) 302.86 475.51 P
8168: 121 619/G1012796 FmPA
8169: 0.16 (demonstrated by the C routine) 120.87 461.51 P
8170: 3 F
8171: 0.38 (csum) 269.98 461.51 P
8172: 0 F
8173: 0.16 ( in Figure) 298.78 461.51 P
8174: 0.16 (14. Because it uses the cur-) 348.77 461.51 P
8175: -0 (rent con) 120.87 447.51 P
8176: -0 (v) 159.37 447.51 P
8177: -0 (entional e) 165.19 447.51 P
8178: -0 (x) 212 447.51 P
8179: -0 (ecution of routines, the routine) 217.82 447.51 P
8180: 3 F
8181: -0.01 (csum) 368.45 447.51 P
8182: 0 F
8183: -0 ( has a space-inef-) 397.25 447.51 P
8184: 0.48 (\336cient e) 120.87 433.51 P
8185: 0.48 (x) 159.5 433.51 P
8186: 0.48 (ecution. Each iteration places an additional acti) 165.32 433.51 P
8187: 0.48 (v) 394.88 433.51 P
8188: 0.48 (ation frame onto) 400.58 433.51 P
8189: 1.09 (the stack. The space required thus is proportional to the number of itera-) 120.87 419.51 P
8190: 0.04 (tions. In other w) 120.87 405.51 P
8191: 0.04 (ords, there is no proper tail calling. In contrast, a loop e) 199.52 405.51 P
8192: 0.04 (x) 465.72 405.51 P
8193: 0.04 (e-) 471.54 405.51 P
8194: 1.85 (cutes within a single acti) 120.87 391.51 P
8195: 1.85 (v) 246.61 391.51 P
8196: 1.85 (ation frame and thus requires only a constant) 252.31 391.51 P
8197: (amount of space, re) 120.87 377.51 T
8198: (g) 214.66 377.51 T
8199: (ardless of the number of iterations.) 220.6 377.51 T
8200: 0.13 (The C routine) 137.88 286.52 P
8201: 3 F
8202: 0.31 (csum) 207.92 286.52 P
8203: 0 F
8204: 0.13 ( of Figure) 236.72 286.52 P
8205: 0.13 (14 dif) 287.3 286.52 P
8206: 0.13 (fers only in name and syntax from) 315.46 286.52 P
8207: 121 430/G1012639 FmPA
8208: 0.67 (the TSIA routine) 120.87 272.52 P
8209: 3 F
8210: 1.61 (tsum) 207.21 272.52 P
8211: 0 F
8212: 0.67 ( in a comment of Figure) 236.01 272.52 P
8213: 0.67 (15. Ho) 358.03 272.52 P
8214: 0.67 (we) 391.06 272.52 P
8215: 0.67 (v) 404.76 272.52 P
8216: 0.67 (er their e) 410.58 272.52 P
8217: 0.67 (x) 454.39 272.52 P
8218: 0.67 (ecu-) 460.21 272.52 P
8219: 0.01 (tions are v) 120.87 258.52 P
8220: 0.01 (ery dif) 170.7 258.52 P
8221: 0.01 (ferent. The iteration using tail recursion in) 202.06 258.52 P
8222: 3 F
8223: 0.02 (tsum) 408.1 258.52 P
8224: 0 F
8225: 0.01 ( e) 436.9 258.52 P
8226: 0.01 (x) 445.05 258.52 P
8227: 0.01 (ecutes) 450.87 258.52 P
8228: -0.12 (lik) 120.87 244.52 P
8229: -0.12 (e a loop. In other w) 133.42 244.52 P
8230: -0.12 (ords, there is proper tail calling. The e) 226.01 244.52 P
8231: -0.12 (x) 407.96 244.52 P
8232: -0.12 (ecution uses a) 413.78 244.52 P
8233: 2.97 (single task frame and thus requires only a constant amount of space,) 120.87 230.52 P
8234: 0.02 (re) 120.87 216.52 P
8235: 0.02 (g) 130.01 216.52 P
8236: 0.02 (ardless of the number of iterations. This is e) 135.95 216.52 P
8237: 0.02 (vident in the intermediate C) 346.79 216.52 P
8238: 1.12 (code of Figure) 120.87 202.52 P
8239: 1.12 (15 resulting from compiling the TSIA routine) 196.1 202.52 P
8240: 3 F
8241: 2.69 (tsum) 426.28 202.52 P
8242: 0 F
8243: 1.12 (. The) 455.08 202.52 P
8244: 1.54 (intermediate C code relies on the code in Figure) 120.87 188.52 P
8245: 1.54 (3 for the stack and the) 366.84 188.52 P
8246: -0.11 (repeated e) 120.87 174.52 P
8247: -0.11 (x) 169.55 174.52 P
8248: -0.11 (ecution of the topmost task frame. F) 175.37 174.52 P
8249: -0.11 (or) 348.19 174.52 P
8250: 3 F
8251: -0.26 (tsum) 361.08 174.52 P
8252: 0 F
8253: -0.11 (, tail recursion cor-) 389.88 174.52 P
8254: 0.04 (responds to the iteration of repeatedly e) 120.87 160.52 P
8255: 0.04 (x) 310.87 160.52 P
8256: 0.04 (ecuting the topmost task frame. In) 316.69 160.52 P
8257: -0.18 (other w) 120.87 146.52 P
8258: -0.18 (ords, for an e) 156.9 146.52 P
8259: -0.18 (x) 219.49 146.52 P
8260: -0.18 (ecution of routines using task frames, tail recursion is) 225.31 146.52 P
8261: (a loop.) 120.87 132.52 T
8262: 0 0 0 1 0 0 0 K
8263: 0 0 0 1 0 0 0 K
8264: 0 0 0 1 0 0 0 K
8265: 121 722/G1012685 FmPA
8266: 0 0 0 1 0 0 0 K
8267: 3 11 Q
8268: (void lsum\050int i, int n, int a0, int *a\051 {) 126.7 568.18 T
8269: 0 0 0 1 0 0 0 K
8270: 121 712/G1012686 FmPA
8271: 0 0 0 1 0 0 0 K
8272: ( for \050 ; i<=n; i++\051 { a0 += i; }) 126.7 554.18 T
8273: 0 0 0 1 0 0 0 K
8274: 121 698/G1012687 FmPA
8275: 0 0 0 1 0 0 0 K
8276: ( *a=a0;) 126.7 540.18 T
8277: 0 0 0 1 0 0 0 K
8278: 121 684/G1012688 FmPA
8279: 0 0 0 1 0 0 0 K
8280: (}) 126.7 526.18 T
8281: 0 0 0 1 0 0 0 K
8282: 121 670/G1012689 FmPA
8283: 0 0 0 1 0 0 0 K
8284: 0 0 0 1 0 0 0 K
8285: 121 659/G1012690 FmPA
8286: 0 0 0 1 0 0 0 K
8287: 121 652/G1012692 FmPA
8288: 0 12 Q
8289: (Figure) 123.87 497.51 T
8290: (13) 158.2 497.51 T
8291: (Iteration using a loop.) 172.06 497.51 T
8292: 121 641/G1012694 FmPA
8293: 0 0 0 1 0 0 0 K
8294: 0 0 0 1 0 0 0 K
8295: 0 0 0 1 0 0 0 K
8296: 121 505/G1012786 FmPA
8297: 0 0 0 1 0 0 0 K
8298: 3 11 Q
8299: (void csum\050int i, int n, int a0, int *a\051) 126.7 351.18 T
8300: 0 0 0 1 0 0 0 K
8301: 121 495/G1012787 FmPA
8302: 0 0 0 1 0 0 0 K
8303: ({ if \050i<=n\051 csum\050i+1,n,a0+i,a\051; else *a = a0; }) 126.7 337.18 T
8304: 0 0 0 1 0 0 0 K
8305: 121 481/G1012800 FmPA
8306: 0 0 0 1 0 0 0 K
8307: 0 0 0 1 0 0 0 K
8308: 121 470/G1012791 FmPA
8309: 0 0 0 1 0 0 0 K
8310: 121 463/G1012793 FmPA
8311: 0 12 Q
8312: (Figure) 123.87 308.52 T
8313: (14) 158.2 308.52 T
8314: (Iteration using tail recursion with acti) 172.06 308.52 T
8315: (v) 352.07 308.52 T
8316: (ation frames.) 357.77 308.52 T
8317: 121 452/G1012795 FmPA
8318: 120.87 582.27 120.87 493.76 2 L
8319: V
8320: 0.5 H
8321: 0 Z
8322: N
8323: 480.87 582.27 480.87 493.76 2 L
8324: V
8325: N
8326: 120.62 582.52 481.12 582.52 2 L
8327: V
8328: N
8329: 120.62 512.52 481.12 512.52 2 L
8330: V
8331: N
8332: 120.62 493.51 481.12 493.51 2 L
8333: V
8334: N
8335: 120.87 365.26 120.87 304.77 2 L
8336: V
8337: N
8338: 480.87 365.26 480.87 304.77 2 L
8339: V
8340: N
8341: 120.62 365.51 481.12 365.51 2 L
8342: V
8343: N
8344: 120.62 323.52 481.12 323.52 2 L
8345: V
8346: N
8347: 120.62 304.52 481.12 304.52 2 L
8348: V
8349: N
8350: 0 0 0 1 0 0 0 K
8351: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
8352: [/Dest/P.24/DEST FmPD2
8353: 170 649/M9.17223.Figure.Figure9.Iteration.using.a.loop FmPA
8354: 170 649/I1.1012693 FmPA
8355: 170 460/M9.42541.Figure.Figure10.Iteration.using.recursion.with.an.activation.stack FmPA
8356: 170 460/I1.1012848 FmPA
8357: [/Rect[121 618 167 631]/Border[0 0 0]/Page 24/View[/XYZ null 170 649 FmDC exch pop null]/LNK FmPD
8358: [/Rect[253 282 299 295]/Border[0 0 0]/Page 24/View[/XYZ null 170 460 FmDC exch pop null]/LNK FmPD
8359: [/Rect[314 457 361 470]/Border[0 0 0]/Page 24/View[/XYZ null 170 460 FmDC exch pop null]/LNK FmPD
8360: [/Rect[324 268 370 281]/Border[0 0 0]/Page 25/View[/XYZ null 170 459 FmDC exch pop null]/LNK FmPD
8361: [/Rect[162 198 208 211]/Border[0 0 0]/Page 25/View[/XYZ null 170 459 FmDC exch pop null]/LNK FmPD
8362: [/Rect[333 184 373 197]/Border[0 0 0]/Page 11/View[/XYZ null 164 431 FmDC exch pop null]/LNK FmPD
8363: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
8364: FMENDPAGE
8365: %%EndPage: "24" 24
8366: %%Page: "25" 25
8367: 595.28 839.05 0 FMBEGINPAGE
8368: [0 0 0 1 0 0 0]
8369: [ 0 1 1 0 1 0 0]
8370: [ 1 0 1 0 0 1 0]
8371: [ 1 1 0 0 0 0 1]
8372: [ 1 0 0 0 0 1 1]
8373: [ 0 1 0 0 1 0 1]
8374: [ 0 0 1 0 1 1 0]
8375: 7 FrameSetSepColors
8376: FrameNoSep
8377: 0 0 0 1 0 0 0 K
8378: 0 0 0 1 0 0 0 K
8379: 0 0 0 1 0 0 0 K
8380: 90 959/G837264 FmPA
8381: 0 12 Q
8382: 0 X
8383: 0 0 0 1 0 0 0 K
8384: (25) 289.29 93.77 T
8385: 40 238/G837268 FmPA
8386: 0.32 (Figure) 137.88 273.52 P
8387: 0.32 (16 sho) 172.21 273.52 P
8388: 0.32 (ws an application using the routine) 203.89 273.52 P
8389: 3 F
8390: 0.76 (lsum) 376.45 273.52 P
8391: 0 F
8392: 0.32 ( of Figure) 405.25 273.52 P
8393: 0.32 (13 to) 456.21 273.52 P
8394: 121 417/G1012756 FmPA
8395: 3.35 (calculate) 120.87 259.52 P
8396: 3 F
8397: 8.03 (1+2+) 169.86 259.52 P
8398: 0 F
8399: 3.35 (..) 198.66 259.52 P
8400: 3 F
8401: 8.03 (+n) 204.66 259.52 P
8402: 0 F
8403: 3.35 (. Alternati) 219.06 259.52 P
8404: 3.35 (v) 270.77 259.52 P
8405: 3.35 (ely) 276.59 259.52 P
8406: 3.35 (, the application can use the routine) 290.47 259.52 P
8407: 3 F
8408: -0.58 (csum) 120.87 245.52 P
8409: 0 F
8410: -0.24 ( of Figure) 149.67 245.52 P
8411: -0.24 (14 or) 199.51 245.52 P
8412: 3 F
8413: -0.58 (tsum) 227.02 245.52 P
8414: 0 F
8415: -0.24 ( of Figure) 255.82 245.52 P
8416: -0.24 (15. Con) 305.67 245.52 P
8417: -0.24 (v) 342.95 245.52 P
8418: -0.24 (enient use of) 348.77 245.52 P
8419: 3 F
8420: -0.58 (tsum) 412.36 245.52 P
8421: 0 F
8422: -0.24 ( is gi) 441.16 245.52 P
8423: -0.24 (v) 463.71 245.52 P
8424: -0.24 (en) 469.53 245.52 P
8425: (by the routine) 120.87 231.52 T
8426: 3 F
8427: (sum) 190.53 231.52 T
8428: 0 F
8429: ( in Figure) 212.13 231.52 T
8430: (15.) 261.8 231.52 T
8431: 1.74 (T) 137.88 217.52 P
8432: 1.74 (able) 144.25 217.52 P
8433: 1.74 (2 sho) 167.24 217.52 P
8434: 1.74 (ws e) 194.35 217.52 P
8435: 1.74 (x) 217.56 217.52 P
8436: 1.74 (ecution times for the abo) 223.38 217.52 P
8437: 1.74 (v) 349.46 217.52 P
8438: 1.74 (e three applications for a) 355.28 217.52 P
8439: 121 361/G1013571 FmPA
8440: 0.42 (small v) 120.87 203.52 P
8441: 0.42 (ariety of computing en) 155.99 203.52 P
8442: 0.42 (vironments. Compared to those of the abo) 265.74 203.52 P
8443: 0.42 (v) 469.71 203.52 P
8444: 0.42 (e) 475.53 203.52 P
8445: 2.28 (applications, most iterations in other applications do more w) 120.87 189.52 P
8446: 2.28 (ork. Other) 429.27 189.52 P
8447: 0.93 (applications thus are not as sensiti) 120.87 175.52 P
8448: 0.93 (v) 288.9 175.52 P
8449: 0.93 (e to the time o) 294.72 175.52 P
8450: 0.93 (v) 366.94 175.52 P
8451: 0.93 (erhead of an iteration.) 372.76 175.52 P
8452: -0.26 (Thus the ratios of e) 120.87 161.52 P
8453: -0.26 (x) 212.31 161.52 P
8454: -0.26 (ecution times in T) 218.13 161.52 P
8455: -0.26 (able) 303.39 161.52 P
8456: -0.26 (2 are a rough estimate of the rel-) 326.38 161.52 P
8457: 1.32 (ati) 120.87 147.52 P
8458: 1.32 (v) 132.57 147.52 P
8459: 1.32 (e time o) 138.39 147.52 P
8460: 1.32 (v) 179.52 147.52 P
8461: 1.32 (erheads for the three implementations of iteration presented) 185.34 147.52 P
8462: (here.) 120.87 133.52 T
8463: 0 0 0 1 0 0 0 K
8464: 0 0 0 1 0 0 0 K
8465: 0 0 0 1 0 0 0 K
8466: 121 812/G1013313 FmPA
8467: 0 0 0 1 0 0 0 K
8468: 3 11 Q
8469: (extern char *_sp; /* The stack pointer. */) 126.7 658.18 T
8470: 0 0 0 1 0 0 0 K
8471: 121 802/G1013314 FmPA
8472: 0 0 0 1 0 0 0 K
8473: 0 0 0 1 0 0 0 K
8474: 121 788/G1013315 FmPA
8475: 0 0 0 1 0 0 0 K
8476: (/* tsum\050int i, int n, int a0;; int a\051) 126.7 630.18 T
8477: 0 0 0 1 0 0 0 K
8478: 121 774/G1013316 FmPA
8479: 0 0 0 1 0 0 0 K
8480: ({ if \050i<=n\051 tsum\050i+1,n,a0+i;;a\051; else a=a0; } */) 143.67 616.18 T
8481: 0 0 0 1 0 0 0 K
8482: 0 0 0 1 0 0 0 K
8483: (typedef struct {void \050*_f\051\050void\051; int i; int n;) 126.7 602.18 T
8484: 0 0 0 1 0 0 0 K
8485: 121 746/G1013317 FmPA
8486: 0 0 0 1 0 0 0 K
8487: (int a0; int *a;} _s_tsum;) 238.9 588.18 T
8488: 0 0 0 1 0 0 0 K
8489: 121 732/G1013318 FmPA
8490: 0 0 0 1 0 0 0 K
8491: (void _f_tsum\050void\051 {) 126.7 574.18 T
8492: 0 0 0 1 0 0 0 K
8493: 121 718/G1013319 FmPA
8494: 0 0 0 1 0 0 0 K
8495: ( _s_tsum *_p = \050_s_tsum *\051_sp;) 126.7 560.18 T
8496: 0 0 0 1 0 0 0 K
8497: 121 704/G1013320 FmPA
8498: 0 0 0 1 0 0 0 K
8499: ( if \050_p->i <= _p->n\051 {) 126.7 546.18 T
8500: 0 0 0 1 0 0 0 K
8501: 121 690/G1013321 FmPA
8502: 0 0 0 1 0 0 0 K
8503: ( _p->a0 += _p->i; /* Tail recursive,) 126.7 532.18 T
8504: (*/) 443.5 532.18 T
8505: 0 0 0 1 0 0 0 K
8506: 121 676/G1013322 FmPA
8507: 0 0 0 1 0 0 0 K
8508: ( _p->i++;) 126.7 518.18 T
8509: (/*) 271.9 518.18 T
8510: (so just update arg.s. */) 298.3 518.18 T
8511: 0 0 0 1 0 0 0 K
8512: 121 662/G1013323 FmPA
8513: 0 0 0 1 0 0 0 K
8514: ( }) 126.7 504.18 T
8515: 0 0 0 1 0 0 0 K
8516: 121 648/G1013324 FmPA
8517: 0 0 0 1 0 0 0 K
8518: ( else { *\050_p->a\051 = _p->a0;) 126.7 490.18 T
8519: 0 0 0 1 0 0 0 K
8520: 121 634/G1013325 FmPA
8521: 0 0 0 1 0 0 0 K
8522: ( _sp += sizeof\050_s_tsum\051; }) 179.5 476.18 T
8523: 0 0 0 1 0 0 0 K
8524: 121 620/G1013326 FmPA
8525: 0 0 0 1 0 0 0 K
8526: (}) 126.7 462.18 T
8527: 0 0 0 1 0 0 0 K
8528: 121 606/G1013327 FmPA
8529: 0 0 0 1 0 0 0 K
8530: 0 0 0 1 0 0 0 K
8531: 121 592/G1013328 FmPA
8532: 0 0 0 1 0 0 0 K
8533: (void sum\050int i, int n, int a0, int *a\051) 126.7 434.18 T
8534: 0 0 0 1 0 0 0 K
8535: 121 578/G1013329 FmPA
8536: 0 0 0 1 0 0 0 K
8537: ({ _s_tsum *b;) 126.7 420.18 T
8538: 0 0 0 1 0 0 0 K
8539: 121 564/G1013330 FmPA
8540: 0 0 0 1 0 0 0 K
8541: ( _sp -= sizeof\050_s_tsum\051;) 126.7 406.18 T
8542: 0 0 0 1 0 0 0 K
8543: 121 550/G1013331 FmPA
8544: 0 0 0 1 0 0 0 K
8545: ( b = \050_s_tsum *\051_sp;) 126.7 392.18 T
8546: 0 0 0 1 0 0 0 K
8547: 121 536/G1013332 FmPA
8548: 0 0 0 1 0 0 0 K
8549: ( b->_f = _f_tsum;) 126.7 378.18 T
8550: ( b->i = i;) 252.1 378.18 T
8551: ( b->n = n;) 324.7 378.18 T
8552: 0 0 0 1 0 0 0 K
8553: 121 522/G1013333 FmPA
8554: 0 0 0 1 0 0 0 K
8555: ( b->a0 = a0;) 126.7 364.18 T
8556: (b->a = a;) 258.7 364.18 T
8557: 0 0 0 1 0 0 0 K
8558: 121 508/G1013334 FmPA
8559: 0 0 0 1 0 0 0 K
8560: ( _xtop\050\051;) 126.7 350.18 T
8561: 0 0 0 1 0 0 0 K
8562: 121 494/G1013335 FmPA
8563: 0 0 0 1 0 0 0 K
8564: (}) 126.7 336.18 T
8565: 0 0 0 1 0 0 0 K
8566: 121 480/G1013336 FmPA
8567: 0 0 0 1 0 0 0 K
8568: 0 0 0 1 0 0 0 K
8569: 121 469/G1013337 FmPA
8570: 0 0 0 1 0 0 0 K
8571: 121 462/G1013339 FmPA
8572: 0 12 Q
8573: (Figure) 123.87 307.52 T
8574: (15) 158.2 307.52 T
8575: (Intermediate C code from compiling) 172.06 307.52 T
8576: 3 F
8577: (tsum) 350.36 307.52 T
8578: 0 F
8579: (,) 379.17 307.52 T
8580: 121 451/G1013341 FmPA
8581: (which performs iteration using tail recursion with a task frame.) 172.06 293.52 T
8582: 120.87 672.27 120.87 289.77 2 L
8583: V
8584: 0.5 H
8585: 0 Z
8586: N
8587: 480.87 672.27 480.87 289.77 2 L
8588: V
8589: N
8590: 120.62 672.52 481.12 672.52 2 L
8591: V
8592: N
8593: 120.62 322.52 481.12 322.52 2 L
8594: V
8595: N
8596: 120.62 289.52 481.12 289.52 2 L
8597: V
8598: N
8599: 0 0 0 1 0 0 0 K
8600: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
8601: [/Dest/P.25/DEST FmPD2
8602: 170 459/M9.24025.Figure.Figure11.Iteration.using.a.loop FmPA
8603: 170 459/I1.1013340 FmPA
8604: [/Rect[138 269 184 282]/Border[0 0 0]/Page 26/View[/XYZ null 170 669 FmDC exch pop null]/LNK FmPD
8605: [/Rect[422 269 468 282]/Border[0 0 0]/Page 24/View[/XYZ null 170 649 FmDC exch pop null]/LNK FmPD
8606: [/Rect[227 227 274 240]/Border[0 0 0]/Page 25/View[/XYZ null 170 459 FmDC exch pop null]/LNK FmPD
8607: [/Rect[165 241 212 254]/Border[0 0 0]/Page 24/View[/XYZ null 170 460 FmDC exch pop null]/LNK FmPD
8608: [/Rect[271 241 318 254]/Border[0 0 0]/Page 25/View[/XYZ null 170 459 FmDC exch pop null]/LNK FmPD
8609: [/Rect[167 213 173 226]/Border[0 0 0]/Page 26/View[/XYZ null 163 487 FmDC exch pop null]/LNK FmPD
8610: [/Rect[326 157 332 170]/Border[0 0 0]/Page 26/View[/XYZ null 163 487 FmDC exch pop null]/LNK FmPD
8611: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
8612: FMENDPAGE
8613: %%EndPage: "25" 25
8614: %%Page: "26" 26
8615: 595.28 839.05 0 FMBEGINPAGE
8616: [0 0 0 1 0 0 0]
8617: [ 0 1 1 0 1 0 0]
8618: [ 1 0 1 0 0 1 0]
8619: [ 1 1 0 0 0 0 1]
8620: [ 1 0 0 0 0 1 1]
8621: [ 0 1 0 0 1 0 1]
8622: [ 0 0 1 0 1 1 0]
8623: 7 FrameSetSepColors
8624: FrameNoSep
8625: 0 0 0 1 0 0 0 K
8626: 0 0 0 1 0 0 0 K
8627: 0 0 0 1 0 0 0 K
8628: 90 959/G837264 FmPA
8629: 0 12 Q
8630: 0 X
8631: 0 0 0 1 0 0 0 K
8632: (26) 289.29 93.77 T
8633: 40 238/G837268 FmPA
8634: 1.24 (In T) 137.88 311.52 P
8635: 1.24 (able) 158.49 311.52 P
8636: 1.24 (2, the lar) 181.48 311.52 P
8637: 1.24 (ge v) 226.07 311.52 P
8638: 1.24 (alues for) 247.34 311.52 P
8639: 3 F
8640: 2.98 (csum) 294.47 311.52 P
8641: 0 F
8642: 1.24 (/) 323.27 311.52 P
8643: 3 F
8644: 2.98 (lsum) 326.61 311.52 P
8645: 0 F
8646: 1.24 ( sho) 355.41 311.52 P
8647: 1.24 (w a lar) 376.02 311.52 P
8648: 1.24 (ge time-inef) 410.93 311.52 P
8649: 1.24 (\336-) 470.19 311.52 P
8650: 121 455/G1013375 FmPA
8651: -0.08 (cienc) 120.87 297.52 P
8652: -0.08 (y for iteration using tail recursion with acti) 146.01 297.52 P
8653: -0.08 (v) 350.79 297.52 P
8654: -0.08 (ation frames. Presumably) 356.49 297.52 P
8655: -0.08 (,) 477.86 297.52 P
8656: 0.83 (the single acti) 120.87 283.52 P
8657: 0.83 (v) 188.9 283.52 P
8658: 0.83 (ation frame of a loop uses re) 194.6 283.52 P
8659: 0.83 (gisters and at most the cache,) 336.05 283.52 P
8660: (while the man) 120.87 269.52 T
8661: (y acti) 188.68 269.52 T
8662: (v) 214.71 269.52 T
8663: (ation frames of recursion do not e) 220.41 269.52 T
8664: (v) 382.07 269.52 T
8665: (en \336t in the cache.) 387.89 269.52 T
8666: 2.03 (In T) 137.88 255.52 P
8667: 2.03 (able) 159.27 255.52 P
8668: 2.03 (2, the v) 182.27 255.52 P
8669: 2.03 (alues for) 221.69 255.52 P
8670: 3 F
8671: 4.87 (tsum) 270.4 255.52 P
8672: 0 F
8673: 2.03 (/) 299.2 255.52 P
8674: 3 F
8675: 4.87 (lsum) 302.54 255.52 P
8676: 0 F
8677: 2.03 ( sho) 331.34 255.52 P
8678: 2.03 (w that iteration using tail) 352.74 255.52 P
8679: 121 399/G1013368 FmPA
8680: 1.22 (recursion with a task frame can ha) 120.87 241.52 P
8681: 1.22 (v) 292.57 241.52 P
8682: 1.22 (e a time o) 298.39 241.52 P
8683: 1.22 (v) 348.86 241.52 P
8684: 1.22 (erhead within an order of) 354.68 241.52 P
8685: 0.79 (magnitude as small as that of a loop. This is small enough to be practical) 120.87 227.52 P
8686: 1.91 (for man) 120.87 213.52 P
8687: 1.91 (y iterations in man) 160.25 213.52 P
8688: 1.91 (y applications. In a real-time application, for) 255.46 213.52 P
8689: -0.27 (e) 120.87 199.52 P
8690: -0.27 (xample, the \336ne granularity required for tasks may not allo) 126.02 199.52 P
8691: -0.27 (w a loop to per-) 405.94 199.52 P
8692: 0.01 (form all its iterations within a single task [R) 120.87 185.52 P
8693: 0.01 (TU]. Instead, the \336ne granular-) 331.54 185.52 P
8694: 1.62 (ity can be met by a loop performing some of the iterations inside a tail) 120.87 171.52 P
8695: (recursi) 120.87 157.52 T
8696: (v) 153.22 157.52 T
8697: (e routine.) 159.04 157.52 T
8698: 0 0 0 1 0 0 0 K
8699: 0 0 0 1 0 0 0 K
8700: 0 0 0 1 0 0 0 K
8701: 121 812/G1012699 FmPA
8702: 0 0 0 1 0 0 0 K
8703: 3 11 Q
8704: (main\050\051 {) 126.7 658.18 T
8705: 0 0 0 1 0 0 0 K
8706: 121 802/G1012700 FmPA
8707: 0 0 0 1 0 0 0 K
8708: ( int j,e,a,n=64000;) 126.7 644.18 T
8709: 0 0 0 1 0 0 0 K
8710: 121 788/G1012727 FmPA
8711: 0 0 0 1 0 0 0 K
8712: -0.32 ( e = n%2? n*\050\050n+1\051/2\051:\050n/2\051*\050n+1\051; /*avoid overflow*/) 126.7 630.18 P
8713: 0 0 0 1 0 0 0 K
8714: 121 774/G1012728 FmPA
8715: 0 0 0 1 0 0 0 K
8716: ( for \050j=0; j< 1000; j++\051 {) 126.7 616.18 T
8717: 0 0 0 1 0 0 0 K
8718: 121 760/G1012729 FmPA
8719: 0 0 0 1 0 0 0 K
8720: ( lsum\0501,n,0,&a\051;) 126.7 602.18 T
8721: 0 0 0 1 0 0 0 K
8722: 121 746/G1012730 FmPA
8723: 0 0 0 1 0 0 0 K
8724: ( if \050 a != e\051) 126.7 588.18 T
8725: 0 0 0 1 0 0 0 K
8726: 121 732/G1012731 FmPA
8727: 0 0 0 1 0 0 0 K
8728: (printf\050"ERROR: 1+2+..+%d==%d NOT %d\134n",n,e,a\051;) 166.3 574.18 T
8729: 0 0 0 1 0 0 0 K
8730: 121 718/G1012755 FmPA
8731: 0 0 0 1 0 0 0 K
8732: ( }) 126.7 560.18 T
8733: 0 0 0 1 0 0 0 K
8734: 121 704/G1012732 FmPA
8735: 0 0 0 1 0 0 0 K
8736: (}) 126.7 546.18 T
8737: 0 0 0 1 0 0 0 K
8738: 121 690/G1012733 FmPA
8739: 0 0 0 1 0 0 0 K
8740: 0 0 0 1 0 0 0 K
8741: 121 679/G1012704 FmPA
8742: 0 0 0 1 0 0 0 K
8743: 121 672/G1012706 FmPA
8744: 0 12 Q
8745: (Figure) 123.87 517.52 T
8746: (16) 158.2 517.52 T
8747: (An application using the routine) 172.06 517.52 T
8748: 3 F
8749: (lsum) 329.71 517.52 T
8750: 0 F
8751: ( of Figure) 358.51 517.52 T
8752: (13.) 408.84 517.52 T
8753: 121 661/G1012708 FmPA
8754: 0 0 0 1 0 0 0 K
8755: 0 0 0 1 0 0 0 K
8756: (Processor) 126.08 476.51 T
8757: 0 0 0 1 0 0 0 K
8758: 121 620/G1013579 FmPA
8759: 0 0 0 1 0 0 0 K
8760: (Compiler) 193.35 476.51 T
8761: 0 0 0 1 0 0 0 K
8762: 178 620/G1013581 FmPA
8763: 0 0 0 1 0 0 0 K
8764: (Seconds for Execution) 256.44 487.51 T
8765: 0 0 0 1 0 0 0 K
8766: 254 631/G1013583 FmPA
8767: 0 0 0 1 0 0 0 K
8768: 3 F
8769: (csum) 370.28 483.51 T
8770: 0 F
8771: (/) 399.08 483.51 T
8772: 0 0 0 1 0 0 0 K
8773: 367 627/G1013589 FmPA
8774: 0 0 0 1 0 0 0 K
8775: 3 F
8776: (lsum) 371.95 469.51 T
8777: 0 0 0 1 0 0 0 K
8778: 0 0 0 1 0 0 0 K
8779: (tsum) 408.08 483.51 T
8780: 0 F
8781: (/) 436.88 483.51 T
8782: 0 0 0 1 0 0 0 K
8783: 405 627/G1013591 FmPA
8784: 0 0 0 1 0 0 0 K
8785: 3 F
8786: (csum) 409.75 469.51 T
8787: 0 0 0 1 0 0 0 K
8788: 0 0 0 1 0 0 0 K
8789: (tsum) 445.87 483.51 T
8790: 0 F
8791: (/) 474.67 483.51 T
8792: 0 0 0 1 0 0 0 K
8793: 443 627/G1013593 FmPA
8794: 0 0 0 1 0 0 0 K
8795: 3 F
8796: (lsum) 447.54 469.51 T
8797: 0 0 0 1 0 0 0 K
8798: 0 0 0 1 0 0 0 K
8799: (lsum) 258.57 465.51 T
8800: 0 0 0 1 0 0 0 K
8801: 254 609/G1013599 FmPA
8802: 0 0 0 1 0 0 0 K
8803: (csum) 296.36 465.51 T
8804: 0 0 0 1 0 0 0 K
8805: 292 609/G1013601 FmPA
8806: 0 0 0 1 0 0 0 K
8807: (tsum) 334.16 465.51 T
8808: 0 0 0 1 0 0 0 K
8809: 330 609/G1013603 FmPA
8810: 0 0 0 1 0 0 0 K
8811: (sparc) 131.41 418.51 T
8812: 0 0 0 1 0 0 0 K
8813: 121 562/G1013611 FmPA
8814: 0 0 0 1 0 0 0 K
8815: (cc) 185.16 445.51 T
8816: 0 0 0 1 0 0 0 K
8817: 178 589/G1013613 FmPA
8818: 0 0 0 1 0 0 0 K
8819: 0 F
8820: (2.6) 265.47 445.51 T
8821: 0 0 0 1 0 0 0 K
8822: 254 589/G1013615 FmPA
8823: 0 0 0 1 0 0 0 K
8824: (54) 300.86 445.51 T
8825: 0 0 0 1 0 0 0 K
8826: 292 589/G1013617 FmPA
8827: 0 0 0 1 0 0 0 K
8828: (10.7) 338.06 445.51 T
8829: 0 0 0 1 0 0 0 K
8830: 330 589/G1013619 FmPA
8831: 0 0 0 1 0 0 0 K
8832: (20) 380.35 445.51 T
8833: 0 0 0 1 0 0 0 K
8834: 367 589/G1013621 FmPA
8835: 0 0 0 1 0 0 0 K
8836: (0.2) 416.65 445.51 T
8837: 0 0 0 1 0 0 0 K
8838: 405 589/G1013623 FmPA
8839: 0 0 0 1 0 0 0 K
8840: (4.1) 454.44 445.51 T
8841: 0 0 0 1 0 0 0 K
8842: 443 589/G1013625 FmPA
8843: 0 0 0 1 0 0 0 K
8844: 3 F
8845: (cc -fast) 185.16 427.51 T
8846: 0 0 0 1 0 0 0 K
8847: 178 571/G1013629 FmPA
8848: 0 0 0 1 0 0 0 K
8849: 0 F
8850: (0.30) 265.47 427.51 T
8851: 0 0 0 1 0 0 0 K
8852: 254 571/G1013631 FmPA
8853: 0 0 0 1 0 0 0 K
8854: (0.30) 306.26 427.51 T
8855: 0 0 0 1 0 0 0 K
8856: 292 571/G1013633 FmPA
8857: 0 0 0 1 0 0 0 K
8858: (4.9) 342.56 427.51 T
8859: 0 0 0 1 0 0 0 K
8860: 330 571/G1013635 FmPA
8861: 0 0 0 1 0 0 0 K
8862: (1.0) 386.35 427.51 T
8863: 0 0 0 1 0 0 0 K
8864: 367 571/G1013637 FmPA
8865: 0 0 0 1 0 0 0 K
8866: (16) 411.25 427.51 T
8867: 0 0 0 1 0 0 0 K
8868: 405 571/G1013639 FmPA
8869: 0 0 0 1 0 0 0 K
8870: (16) 449.04 427.51 T
8871: 0 0 0 1 0 0 0 K
8872: 443 571/G1013641 FmPA
8873: 0 0 0 1 0 0 0 K
8874: 3 F
8875: (gcc) 185.16 409.51 T
8876: 0 0 0 1 0 0 0 K
8877: 178 553/G1013645 FmPA
8878: 0 0 0 1 0 0 0 K
8879: 0 F
8880: (2.8) 265.47 409.51 T
8881: 0 0 0 1 0 0 0 K
8882: 254 553/G1013647 FmPA
8883: 0 0 0 1 0 0 0 K
8884: (57) 300.86 409.51 T
8885: 0 0 0 1 0 0 0 K
8886: 292 553/G1013649 FmPA
8887: 0 0 0 1 0 0 0 K
8888: (9.7) 342.56 409.51 T
8889: 0 0 0 1 0 0 0 K
8890: 330 553/G1013651 FmPA
8891: 0 0 0 1 0 0 0 K
8892: (20) 380.35 409.51 T
8893: 0 0 0 1 0 0 0 K
8894: 367 553/G1013653 FmPA
8895: 0 0 0 1 0 0 0 K
8896: (0.2) 416.65 409.51 T
8897: 0 0 0 1 0 0 0 K
8898: 405 553/G1013655 FmPA
8899: 0 0 0 1 0 0 0 K
8900: (3.5) 454.44 409.51 T
8901: 0 0 0 1 0 0 0 K
8902: 443 553/G1013657 FmPA
8903: 0 0 0 1 0 0 0 K
8904: 3 F
8905: (gcc -O2) 185.16 391.51 T
8906: 0 0 0 1 0 0 0 K
8907: 178 535/G1013661 FmPA
8908: 0 0 0 1 0 0 0 K
8909: 0 F
8910: (0.30) 265.47 391.51 T
8911: 0 0 0 1 0 0 0 K
8912: 254 535/G1013663 FmPA
8913: 0 0 0 1 0 0 0 K
8914: (54) 300.86 391.51 T
8915: 0 0 0 1 0 0 0 K
8916: 292 535/G1013665 FmPA
8917: 0 0 0 1 0 0 0 K
8918: (4.7) 342.56 391.51 T
8919: 0 0 0 1 0 0 0 K
8920: 330 535/G1013667 FmPA
8921: 0 0 0 1 0 0 0 K
8922: (180) 376.45 391.51 T
8923: 0 0 0 1 0 0 0 K
8924: 367 535/G1013669 FmPA
8925: 0 0 0 1 0 0 0 K
8926: (0.1) 416.65 391.51 T
8927: 0 0 0 1 0 0 0 K
8928: 405 535/G1013671 FmPA
8929: 0 0 0 1 0 0 0 K
8930: (16) 449.04 391.51 T
8931: 0 0 0 1 0 0 0 K
8932: 443 535/G1013673 FmPA
8933: 0 0 0 1 0 0 0 K
8934: 3 F
8935: (i686) 135.01 364.51 T
8936: 0 0 0 1 0 0 0 K
8937: 121 508/G1013675 FmPA
8938: 0 0 0 1 0 0 0 K
8939: (gcc) 185.16 373.51 T
8940: 0 0 0 1 0 0 0 K
8941: 178 517/G1013677 FmPA
8942: 0 0 0 1 0 0 0 K
8943: 0 F
8944: (1.0) 265.47 373.51 T
8945: 0 0 0 1 0 0 0 K
8946: 254 517/G1013679 FmPA
8947: 0 0 0 1 0 0 0 K
8948: (14.8) 300.26 373.51 T
8949: 0 0 0 1 0 0 0 K
8950: 292 517/G1013681 FmPA
8951: 0 0 0 1 0 0 0 K
8952: (4.0) 342.56 373.51 T
8953: 0 0 0 1 0 0 0 K
8954: 330 517/G1013683 FmPA
8955: 0 0 0 1 0 0 0 K
8956: (15) 381.85 373.51 T
8957: 0 0 0 1 0 0 0 K
8958: 367 517/G1013685 FmPA
8959: 0 0 0 1 0 0 0 K
8960: (0.3) 416.65 373.51 T
8961: 0 0 0 1 0 0 0 K
8962: 405 517/G1013687 FmPA
8963: 0 0 0 1 0 0 0 K
8964: (4.0) 454.44 373.51 T
8965: 0 0 0 1 0 0 0 K
8966: 443 517/G1013689 FmPA
8967: 0 0 0 1 0 0 0 K
8968: 3 F
8969: (gcc -O2) 185.16 355.51 T
8970: 0 0 0 1 0 0 0 K
8971: 178 499/G1013693 FmPA
8972: 0 0 0 1 0 0 0 K
8973: 0 F
8974: (0.30) 265.47 355.51 T
8975: 0 0 0 1 0 0 0 K
8976: 254 499/G1013695 FmPA
8977: 0 0 0 1 0 0 0 K
8978: (18.0) 300.26 355.51 T
8979: 0 0 0 1 0 0 0 K
8980: 292 499/G1013697 FmPA
8981: 0 0 0 1 0 0 0 K
8982: (1.9) 342.56 355.51 T
8983: 0 0 0 1 0 0 0 K
8984: 330 499/G1013699 FmPA
8985: 0 0 0 1 0 0 0 K
8986: (60) 381.85 355.51 T
8987: 0 0 0 1 0 0 0 K
8988: 367 499/G1013701 FmPA
8989: 0 0 0 1 0 0 0 K
8990: (0.1) 416.65 355.51 T
8991: 0 0 0 1 0 0 0 K
8992: 405 499/G1013703 FmPA
8993: 0 0 0 1 0 0 0 K
8994: (6.3) 454.44 355.51 T
8995: 0 0 0 1 0 0 0 K
8996: 443 499/G1013705 FmPA
8997: 0 0 0 1 0 0 0 K
8998: (T) 120.87 335.51 T
8999: (able 2:) 127.24 335.51 T
9000: (Ex) 162.57 335.51 T
9001: (ecution times and ratios for three implementations of iteration.) 175.72 335.51 T
9002: 0 0 0 1 0 0 0 K
9003: 121 479/G1013708 FmPA
9004: 0 0 0 1 0 0 0 K
9005: 120.87 672.27 120.87 513.77 2 L
9006: V
9007: 0.5 H
9008: 0 Z
9009: N
9010: 480.87 672.27 480.87 513.77 2 L
9011: V
9012: N
9013: 120.62 672.52 481.12 672.52 2 L
9014: V
9015: N
9016: 120.62 532.52 481.12 532.52 2 L
9017: V
9018: N
9019: 120.62 513.52 481.12 513.52 2 L
9020: V
9021: N
9022: 120.87 501.26 120.87 349.76 2 L
9023: V
9024: N
9025: 177.96 501.76 177.96 349.26 2 L
9026: V
9027: N
9028: 254.07 501.76 254.07 349.26 2 L
9029: V
9030: N
9031: 291.86 479.76 291.86 349.26 2 L
9032: V
9033: N
9034: 329.66 479.76 329.66 349.26 2 L
9035: V
9036: N
9037: 367.45 501.76 367.45 349.26 2 L
9038: V
9039: N
9040: 405.25 501.76 405.25 349.26 2 L
9041: V
9042: N
9043: 443.04 501.76 443.04 349.26 2 L
9044: V
9045: N
9046: 480.84 501.26 480.84 349.76 2 L
9047: V
9048: N
9049: 120.62 501.51 481.09 501.51 2 L
9050: V
9051: N
9052: 253.82 479.51 367.7 479.51 2 L
9053: V
9054: N
9055: 121.12 458.76 480.59 458.76 2 L
9056: V
9057: N
9058: 121.12 456.26 480.59 456.26 2 L
9059: V
9060: N
9061: 177.71 439.51 481.09 439.51 2 L
9062: V
9063: N
9064: 177.71 421.51 481.09 421.51 2 L
9065: V
9066: N
9067: 177.71 403.51 481.09 403.51 2 L
9068: V
9069: N
9070: 120.62 385.51 481.09 385.51 2 L
9071: V
9072: N
9073: 177.71 367.51 481.09 367.51 2 L
9074: V
9075: N
9076: 120.62 349.51 481.09 349.51 2 L
9077: V
9078: N
9079: 0 0 0 1 0 0 0 K
9080: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
9081: [/Dest/P.26/DEST FmPD2
9082: 170 669/M9.27783.Figure.Figure10.Iteration.using.a.loop FmPA
9083: 170 669/I1.1012725 FmPA
9084: 163 487/M9.37399.TableTitle.Table.2.Execution.times.and.ratios.for.three.Fibonacci.applications FmPA
9085: 163 487/I1.1013707 FmPA
9086: [/Rect[375 513 421 526]/Border[0 0 0]/Page 24/View[/XYZ null 170 649 FmDC exch pop null]/LNK FmPD
9087: [/Rect[181 307 187 320]/Border[0 0 0]/Page 26/View[/XYZ null 163 487 FmDC exch pop null]/LNK FmPD
9088: [/Rect[182 251 188 264]/Border[0 0 0]/Page 26/View[/XYZ null 163 487 FmDC exch pop null]/LNK FmPD
9089: [/Rect[320 181 352 194]/Border[0 0 0]/Page 42/View[/XYZ null 121 410 FmDC exch pop null]/LNK FmPD
9090: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
9091: FMENDPAGE
9092: %%EndPage: "26" 26
9093: %%Page: "27" 27
9094: 595.28 839.05 0 FMBEGINPAGE
9095: [0 0 0 1 0 0 0]
9096: [ 0 1 1 0 1 0 0]
9097: [ 1 0 1 0 0 1 0]
9098: [ 1 1 0 0 0 0 1]
9099: [ 1 0 0 0 0 1 1]
9100: [ 0 1 0 0 1 0 1]
9101: [ 0 0 1 0 1 1 0]
9102: 7 FrameSetSepColors
9103: FrameNoSep
9104: 0 0 0 1 0 0 0 K
9105: 0 0 0 1 0 0 0 K
9106: 0 0 0 1 0 0 0 K
9107: 90 959/G837264 FmPA
9108: 0 12 Q
9109: 0 X
9110: 0 0 0 1 0 0 0 K
9111: (27) 289.29 93.77 T
9112: 40 238/G837268 FmPA
9113: 1 F
9114: (9 Arrays) 120.87 664.52 T
9115: 121 808/G1007092 FmPA
9116: 0 F
9117: 1.79 (F) 120.87 645.52 P
9118: 1.79 (or the e) 127.36 645.52 P
9119: 1.79 (x) 166.76 645.52 P
9120: 1.79 (ecution of a routine using an acti) 172.57 645.52 P
9121: 1.79 (v) 340.34 645.52 P
9122: 1.79 (ation frame, the amount of) 346.04 645.52 P
9123: 121 789/G1014125 FmPA
9124: 0 (memory space occupied by local v) 120.87 631.52 P
9125: 0 (ariables can depend on the v) 286.87 631.52 P
9126: 0 (alues of one) 422.87 631.52 P
9127: 1.35 (or more ar) 120.87 617.52 P
9128: 1.35 (guments of the routine [Stack]. F) 173.33 617.52 P
9129: 1.35 (or e) 338.55 617.52 P
9130: 1.35 (xample, one of the ar) 358.04 617.52 P
9131: 1.35 (gu-) 464.86 617.52 P
9132: (ments can be the length of a local array) 120.87 603.52 T
9133: (.) 308.7 603.52 T
9134: 0.32 (Lik) 137.88 589.52 P
9135: 0.32 (e) 154.42 589.52 P
9136: 0.32 (wise, for the e) 159.45 589.52 P
9137: 0.32 (x) 228.21 589.52 P
9138: 0.32 (ecution of a routine using a task frame, the amount) 234.03 589.52 P
9139: 121 733/G1014131 FmPA
9140: 0.31 (of memory space occupied by local items can depend on the v) 120.87 575.52 P
9141: 0.31 (alues of one) 422.26 575.52 P
9142: 0.24 (or more ins of the routine. The abo) 120.87 561.52 P
9143: 0.24 (v) 289.7 561.52 P
9144: 0.24 (e array e) 295.52 561.52 P
9145: 0.24 (xample is demonstrated using) 337.14 561.52 P
9146: 2.38 (the routine) 120.87 547.52 P
9147: 3 F
9148: 5.72 (esum) 180.3 547.52 P
9149: 0 F
9150: 2.38 ( of Figure) 209.1 547.52 P
9151: 2.38 (17. In addition to the intermediate C code) 264.19 547.52 P
9152: -0.17 (resulting from compiling) 120.87 533.52 P
9153: 3 F
9154: -0.4 (esum) 243.37 533.52 P
9155: 0 F
9156: -0.17 (, Figure) 272.17 533.52 P
9157: -0.17 (17 sho) 312.34 533.52 P
9158: -0.17 (ws the original TSIA routine) 343.54 533.52 P
9159: (in a comment.) 120.87 519.52 T
9160: 0.84 (The routine) 137.88 505.51 P
9161: 3 F
9162: 2.01 (esum) 198.21 505.51 P
9163: 0 F
9164: 0.84 ( uses an array) 227.01 505.51 P
9165: 3 F
9166: 2.01 (v) 299.01 505.51 P
9167: 0 F
9168: 0.84 ( of length) 306.21 505.51 P
9169: 3 F
9170: 2.01 (len=n-i+1) 357.72 505.51 P
9171: 0 F
9172: 0.84 ( to compute) 422.52 505.51 P
9173: 121 649/G1013792 FmPA
9174: 3 F
9175: 2.56 (a0+i+\050i+1\051+) 120.87 491.51 P
9176: 0 F
9177: 1.07 (..) 200.07 491.51 P
9178: 3 F
9179: 2.56 (+n) 206.07 491.51 P
9180: 0 F
9181: 1.07 (. Dif) 220.47 491.51 P
9182: 1.07 (ferent implementations of the same computation) 243.23 491.51 P
9183: 1.61 (are presented in the pre) 120.87 477.51 P
9184: 1.61 (vious section. The code of Figures) 238.96 477.51 P
9185: 1.61 (3, 16, and) 415.32 477.51 P
9186: 1.61 (17) 468.86 477.51 P
9187: 1.25 (may be compiled and e) 120.87 463.51 P
9188: 1.25 (x) 237 463.51 P
9189: 1.25 (ecuted as a usual C application. The application) 242.82 463.51 P
9190: (also requires a routine) 120.87 449.51 T
9191: 3 F
9192: (sum) 230.18 449.51 T
9193: 0 F
9194: ( for) 251.78 449.51 T
9195: 3 F
9196: (esum) 271.77 449.51 T
9197: 0 F
9198: (, lik) 300.57 449.51 T
9199: (e that of Figure) 319.12 449.51 T
9200: (15 for) 395.78 449.51 T
9201: 3 F
9202: (tsum) 427.77 449.51 T
9203: 0 F
9204: (.) 456.57 449.51 T
9205: -0.13 (The routine) 137.88 435.51 P
9206: 3 F
9207: -0.3 (esum) 196.28 435.51 P
9208: 0 F
9209: -0.13 ( uses the routines) 225.08 435.51 P
9210: 3 F
9211: -0.3 (vseq) 310.57 435.51 P
9212: 0 F
9213: -0.13 ( and) 339.36 435.51 P
9214: 3 F
9215: -0.3 (vsum) 362.44 435.51 P
9216: 0 F
9217: -0.13 (, also in Figure) 391.24 435.51 P
9218: -0.13 (17.) 465.86 435.51 P
9219: 121 579/G1014240 FmPA
9220: 1.92 (The TSIA language of this presentation allo) 120.87 421.51 P
9221: 1.92 (ws unambiguous shorthand.) 342.7 421.51 P
9222: 1.14 (F) 120.87 407.51 P
9223: 1.14 (or e) 127.36 407.51 P
9224: 1.14 (xample, in the call) 146.65 407.51 P
9225: 3 F
9226: 2.75 (vseq\050len,i;;v\051) 242.88 407.51 P
9227: 0 F
9228: 1.14 ( in the TSIA routine) 343.68 407.51 P
9229: 3 F
9230: 2.75 (esum) 449.06 407.51 P
9231: 0 F
9232: 1.14 (,) 477.86 407.51 P
9233: -0.05 (the out) 120.87 393.51 P
9234: 3 F
9235: -0.11 (v) 156.77 393.51 P
9236: 0 F
9237: -0.05 ( implicitly is declared to be an array of length) 163.97 393.51 P
9238: 3 F
9239: -0.11 (len) 385.47 393.51 P
9240: 0 F
9241: -0.05 ( due to the dec-) 407.07 393.51 P
9242: 1.05 (laration) 120.87 379.51 P
9243: 3 F
9244: 2.52 (vseq\050n,m;;a[n]\051) 161.58 379.51 P
9245: 0 F
9246: 1.05 ( for the routine) 269.58 379.51 P
9247: 3 F
9248: 2.52 (vseq) 348.43 379.51 P
9249: 0 F
9250: 1.05 (. A longhand v) 377.23 379.51 P
9251: 1.05 (ersion) 451.53 379.51 P
9252: (of the call could be) 120.87 365.51 T
9253: 3 F
9254: (vseq\050len,i;;v[len]\051) 215.85 365.51 T
9255: 0 F
9256: (.) 352.65 365.51 T
9257: -0.09 (The snapshots of the stack sho) 137.88 351.51 P
9258: -0.09 (wn in Figure) 283.45 351.51 P
9259: -0.09 (18 illustrate an e) 347.6 351.51 P
9260: -0.09 (x) 426.81 351.51 P
9261: -0.09 (ecution of) 432.63 351.51 P
9262: 121 495/G1014362 FmPA
9263: 2.95 (the routine) 120.87 337.51 P
9264: 3 F
9265: 7.08 (esum) 181.43 337.51 P
9266: 0 F
9267: 2.95 (. Originally the task) 210.23 337.51 P
9268: 3 F
9269: 7.08 (esum\050i,n,a0;;a\051) 320.35 337.51 P
9270: 0 F
9271: 2.95 ( is on the) 428.35 337.51 P
9272: 0.57 (stack. In its e) 120.87 323.52 P
9273: 0.57 (x) 185.72 323.52 P
9274: 0.57 (ecution, the task replaces itself on the stack by the contents) 191.54 323.52 P
9275: 0.95 (sho) 120.87 309.52 P
9276: 0.95 (wn in the second snapshot of Figure) 137.24 309.52 P
9277: 0.95 (18. Similar to pre) 319.23 309.52 P
9278: 0.95 (vious e) 405.77 309.52 P
9279: 0.95 (xamples) 440.86 309.52 P
9280: 0.7 (of task e) 120.87 295.52 P
9281: 0.7 (x) 162.74 295.52 P
9282: 0.7 (ecution, the ne) 168.56 295.52 P
9283: 0.7 (w stack contents include task frames for the calls) 239.98 295.52 P
9284: 1.57 (to the routines) 120.87 281.52 P
9285: 3 F
9286: 3.77 (vseq) 197.25 281.52 P
9287: 0 F
9288: 1.57 ( and) 226.05 281.52 P
9289: 3 F
9290: 3.77 (vsum) 252.52 281.52 P
9291: 0 F
9292: 1.57 (. The contents also include a call to the) 281.32 281.52 P
9293: 0.8 (internal routine) 120.87 267.52 P
9294: 3 F
9295: 1.91 (_skip) 199.11 267.52 P
9296: 0 F
9297: 0.8 ( and the array) 235.11 267.52 P
9298: 3 F
9299: 1.91 (v) 306.93 267.52 P
9300: 0 F
9301: 0.8 (. The routine) 313.35 267.52 P
9302: 3 F
9303: 1.91 (_skip\050n;;\051) 380.39 267.52 P
9304: 0 F
9305: 0.8 ( skips) 452.39 267.52 P
9306: 0.09 (o) 120.87 253.52 P
9307: 0.09 (v) 126.69 253.52 P
9308: 0.09 (er the subsequent) 132.51 253.52 P
9309: 3 F
9310: 0.22 (n) 219.09 253.52 P
9311: 0 F
9312: 0.09 ( bytes on the stack. The array) 226.29 253.52 P
9313: 3 F
9314: 0.22 (v) 370.89 253.52 P
9315: 0 F
9316: 0.09 ( is part of the) 378.09 253.52 P
9317: 3 F
9318: 0.22 (_skip) 444.86 253.52 P
9319: 0 F
9320: -0.26 (task frame. After the e) 120.87 239.52 P
9321: -0.26 (x) 227.26 239.52 P
9322: -0.26 (ecution of the tasks) 233.08 239.52 P
9323: 3 F
9324: -0.63 (vseq) 328.01 239.52 P
9325: 0 F
9326: -0.26 ( and) 356.81 239.52 P
9327: 3 F
9328: -0.63 (vsum) 379.61 239.52 P
9329: 0 F
9330: -0.26 (, the array) 408.41 239.52 P
9331: 3 F
9332: -0.63 (v) 458.92 239.52 P
9333: 0 F
9334: -0.26 ( no) 466.12 239.52 P
9335: 0.22 (longer is required, so the e) 120.87 225.52 P
9336: 0.22 (x) 249.09 225.52 P
9337: 0.22 (ecution of) 254.91 225.52 P
9338: 3 F
9339: 0.52 (_skip) 306.67 225.52 P
9340: 0 F
9341: 0.22 (remo) 350.39 225.52 P
9342: 0.22 (v) 374.87 225.52 P
9343: 0.22 (es the array from the) 380.69 225.52 P
9344: 0.64 (stack. Ev) 120.87 211.52 P
9345: 0.64 (en though it does not pro) 165.32 211.52 P
9346: 0.64 (vide a proper tail call, this implementa-) 288.02 211.52 P
9347: (tion of arrays is suf) 120.87 197.52 T
9348: (\336cient for man) 213.22 197.52 T
9349: (y purposes.) 283.7 197.52 T
9350: 1.11 (In the intermediate C code for) 137.88 183.52 P
9351: 3 F
9352: 2.66 (esum) 291.83 183.52 P
9353: 0 F
9354: 1.11 ( in Figure) 320.63 183.52 P
9355: 1.11 (17, the local v) 372.52 183.52 P
9356: 1.11 (ariables) 443.54 183.52 P
9357: 121 327/G1013794 FmPA
9358: 3 F
9359: 3.85 (_i) 120.87 169.52 P
9360: 0 F
9361: 1.6 ( and) 135.27 169.52 P
9362: 3 F
9363: 3.85 (_a) 161.8 169.52 P
9364: 0 F
9365: 1.6 ( are introduced because the items) 176.21 169.52 P
9366: 3 F
9367: 3.85 (_p->i) 348.45 169.52 P
9368: 0 F
9369: 1.6 ( and) 384.45 169.52 P
9370: 3 F
9371: 3.85 (_p->a) 410.99 169.52 P
9372: 0 F
9373: 1.6 ( of the) 446.99 169.52 P
9374: 1.8 (original task frame may be lost when the frame is replaced by the ne) 120.87 155.52 P
9375: 1.8 (w) 472.2 155.52 P
9376: (stack contents.) 120.87 141.52 T
9377: 0 0 0 1 0 0 0 K
9378: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
9379: [/Dest/P.27/DEST FmPD2
9380: 136 816/M9.23047.1Heading.9.Arrays FmPA
9381: 136 816/I1.1018533 FmPA
9382: [/Rect[230 543 276 556]/Border[0 0 0]/Page 29/View[/XYZ null 170 305 FmDC exch pop null]/LNK FmPD
9383: [/Rect[278 529 324 542]/Border[0 0 0]/Page 29/View[/XYZ null 170 305 FmDC exch pop null]/LNK FmPD
9384: [/Rect[290 613 325 626]/Border[0 0 0]/Page 43/View[/XYZ null 121 746 FmDC exch pop null]/LNK FmPD
9385: [/Rect[415 473 421 486]/Border[0 0 0]/Page 11/View[/XYZ null 164 431 FmDC exch pop null]/LNK FmPD
9386: [/Rect[429 473 441 486]/Border[0 0 0]/Page 26/View[/XYZ null 170 669 FmDC exch pop null]/LNK FmPD
9387: [/Rect[469 473 481 486]/Border[0 0 0]/Page 29/View[/XYZ null 170 305 FmDC exch pop null]/LNK FmPD
9388: [/Rect[361 445 408 458]/Border[0 0 0]/Page 25/View[/XYZ null 170 459 FmDC exch pop null]/LNK FmPD
9389: [/Rect[432 431 478 444]/Border[0 0 0]/Page 29/View[/XYZ null 170 305 FmDC exch pop null]/LNK FmPD
9390: [/Rect[313 347 360 360]/Border[0 0 0]/Page 30/View[/XYZ null 170 706 FmDC exch pop null]/LNK FmPD
9391: [/Rect[285 305 331 318]/Border[0 0 0]/Page 30/View[/XYZ null 170 706 FmDC exch pop null]/LNK FmPD
9392: [/Rect[338 179 385 192]/Border[0 0 0]/Page 29/View[/XYZ null 170 305 FmDC exch pop null]/LNK FmPD
9393: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
9394: FMENDPAGE
9395: %%EndPage: "27" 27
9396: %%Page: "28" 28
9397: 595.28 839.05 0 FMBEGINPAGE
9398: [0 0 0 1 0 0 0]
9399: [ 0 1 1 0 1 0 0]
9400: [ 1 0 1 0 0 1 0]
9401: [ 1 1 0 0 0 0 1]
9402: [ 1 0 0 0 0 1 1]
9403: [ 0 1 0 0 1 0 1]
9404: [ 0 0 1 0 1 1 0]
9405: 7 FrameSetSepColors
9406: FrameNoSep
9407: 0 0 0 1 0 0 0 K
9408: 0 0 0 1 0 0 0 K
9409: 0 0 0 1 0 0 0 K
9410: 90 959/G837264 FmPA
9411: 0 12 Q
9412: 0 X
9413: 0 0 0 1 0 0 0 K
9414: (28) 289.29 93.77 T
9415: 40 238/G837268 FmPA
9416: 0 0 0 1 0 0 0 K
9417: 0 0 0 1 0 0 0 K
9418: 0 0 0 1 0 0 0 K
9419: 121 812/G1013929 FmPA
9420: 0 0 0 1 0 0 0 K
9421: 3 11 Q
9422: (extern char *_sp; /* The stack pointer. */) 126.7 658.18 T
9423: 0 0 0 1 0 0 0 K
9424: 121 802/G1013930 FmPA
9425: 0 0 0 1 0 0 0 K
9426: 0 0 0 1 0 0 0 K
9427: 121 788/G1014536 FmPA
9428: 0 0 0 1 0 0 0 K
9429: -0.25 (/* _skip\050n;;\051 Internal: Skip next n bytes on stack. */) 126.7 630.18 P
9430: 0 0 0 1 0 0 0 K
9431: 121 774/G1014537 FmPA
9432: 0 0 0 1 0 0 0 K
9433: (typedef struct {void \050*_f\051\050void\051; int n;} _s__skip;) 126.7 616.18 T
9434: 0 0 0 1 0 0 0 K
9435: 121 760/G1014538 FmPA
9436: 0 0 0 1 0 0 0 K
9437: (void _f__skip\050void\051 {) 126.7 602.18 T
9438: 0 0 0 1 0 0 0 K
9439: 121 746/G1014539 FmPA
9440: 0 0 0 1 0 0 0 K
9441: ( _s__skip *_p = \050_s__skip *\051_sp;) 126.7 588.18 T
9442: 0 0 0 1 0 0 0 K
9443: 121 732/G1014540 FmPA
9444: 0 0 0 1 0 0 0 K
9445: ( _sp += sizeof\050*_p\051 + _p->n;) 126.7 574.18 T
9446: 0 0 0 1 0 0 0 K
9447: 121 718/G1014541 FmPA
9448: 0 0 0 1 0 0 0 K
9449: (}) 126.7 560.18 T
9450: 0 0 0 1 0 0 0 K
9451: 121 704/G1014542 FmPA
9452: 0 0 0 1 0 0 0 K
9453: 0 0 0 1 0 0 0 K
9454: 121 690/G1014543 FmPA
9455: 0 0 0 1 0 0 0 K
9456: (/* Set a[0:n-1] = m,m+1,...,m+n-1 */) 126.7 532.18 T
9457: 0 0 0 1 0 0 0 K
9458: 121 676/G1014544 FmPA
9459: 0 0 0 1 0 0 0 K
9460: (/* vseq\050int n, int m;; int a[n]\051) 126.7 518.18 T
9461: 0 0 0 1 0 0 0 K
9462: 121 662/G1014545 FmPA
9463: 0 0 0 1 0 0 0 K
9464: ( { if \050n>0\051 { a[0]=m; vseq\050n-1,m+1;;a[1]\051; } } */) 126.7 504.18 T
9465: 0 0 0 1 0 0 0 K
9466: 121 648/G1014546 FmPA
9467: 0 0 0 1 0 0 0 K
9468: (typedef struct {void \050*_f\051\050void\051; int n; int m;) 126.7 490.18 T
9469: 0 0 0 1 0 0 0 K
9470: 121 634/G1014547 FmPA
9471: 0 0 0 1 0 0 0 K
9472: ( int *a;} _s_vseq;) 126.7 476.18 T
9473: 0 0 0 1 0 0 0 K
9474: 121 620/G1014548 FmPA
9475: 0 0 0 1 0 0 0 K
9476: (void _f_vseq\050void\051 {) 126.7 462.18 T
9477: 0 0 0 1 0 0 0 K
9478: 121 606/G1014549 FmPA
9479: 0 0 0 1 0 0 0 K
9480: ( _s_vseq *_p = \050_s_vseq *\051_sp;) 126.7 448.18 T
9481: 0 0 0 1 0 0 0 K
9482: 121 592/G1014550 FmPA
9483: 0 0 0 1 0 0 0 K
9484: ( if \050_p->n > 0\051 {) 126.7 434.18 T
9485: 0 0 0 1 0 0 0 K
9486: 121 578/G1014551 FmPA
9487: 0 0 0 1 0 0 0 K
9488: ( _p->a[0] = _p->m; /* Tail recursive, */) 126.7 420.18 T
9489: 0 0 0 1 0 0 0 K
9490: 121 564/G1014552 FmPA
9491: 0 0 0 1 0 0 0 K
9492: ( _p->n--; /* so just update arg.s. */) 126.7 406.18 T
9493: 0 0 0 1 0 0 0 K
9494: 121 550/G1014553 FmPA
9495: 0 0 0 1 0 0 0 K
9496: ( _p->m++;) 126.7 392.18 T
9497: 0 0 0 1 0 0 0 K
9498: 121 536/G1014554 FmPA
9499: 0 0 0 1 0 0 0 K
9500: ( _p->a++;) 126.7 378.18 T
9501: 0 0 0 1 0 0 0 K
9502: 121 522/G1014555 FmPA
9503: 0 0 0 1 0 0 0 K
9504: ( } else _sp += sizeof\050*_p\051;) 126.7 364.18 T
9505: 0 0 0 1 0 0 0 K
9506: 121 508/G1014556 FmPA
9507: 0 0 0 1 0 0 0 K
9508: (}) 126.7 350.18 T
9509: 0 0 0 1 0 0 0 K
9510: 121 494/G1014557 FmPA
9511: 0 0 0 1 0 0 0 K
9512: 0 0 0 1 0 0 0 K
9513: 121 480/G1014558 FmPA
9514: 0 0 0 1 0 0 0 K
9515: (/* z += a[0]+a[1]+..+a[n-1] */) 126.7 322.18 T
9516: 0 0 0 1 0 0 0 K
9517: 121 466/G1014559 FmPA
9518: 0 0 0 1 0 0 0 K
9519: (/* vsum\050int n, int a[n]; int z; \051) 126.7 308.18 T
9520: 0 0 0 1 0 0 0 K
9521: 121 452/G1014560 FmPA
9522: 0 0 0 1 0 0 0 K
9523: ( { if \050n>0\051 { z+=a[0]; vsum\050n-1,a[1];z;\051; } } */) 126.7 294.18 T
9524: 0 0 0 1 0 0 0 K
9525: 121 438/G1014561 FmPA
9526: 0 0 0 1 0 0 0 K
9527: (typedef struct {void \050*_f\051\050void\051; int n; int *a;) 126.7 280.18 T
9528: 0 0 0 1 0 0 0 K
9529: 121 424/G1014562 FmPA
9530: 0 0 0 1 0 0 0 K
9531: ( int *z;} _s_vsum;) 126.7 266.18 T
9532: 0 0 0 1 0 0 0 K
9533: 121 410/G1014563 FmPA
9534: 0 0 0 1 0 0 0 K
9535: (void _f_vsum\050void\051 {) 126.7 252.18 T
9536: 0 0 0 1 0 0 0 K
9537: 121 396/G1014564 FmPA
9538: 0 0 0 1 0 0 0 K
9539: ( _s_vsum *_p = \050_s_vsum *\051_sp;) 126.7 238.18 T
9540: 0 0 0 1 0 0 0 K
9541: 121 382/G1014565 FmPA
9542: 0 0 0 1 0 0 0 K
9543: ( if \050_p->n > 0\051 {) 126.7 224.18 T
9544: 0 0 0 1 0 0 0 K
9545: 121 368/G1014566 FmPA
9546: 0 0 0 1 0 0 0 K
9547: -0.49 ( *\050_p->z\051 += _p->a[0]; /* Tail recursive, */) 126.7 210.18 P
9548: 0 0 0 1 0 0 0 K
9549: 121 354/G1014567 FmPA
9550: 0 0 0 1 0 0 0 K
9551: -0.35 ( _p->n--; /* so just update arg.s. */) 126.7 196.18 P
9552: 0 0 0 1 0 0 0 K
9553: 121 340/G1014568 FmPA
9554: 0 0 0 1 0 0 0 K
9555: ( _p->a++;) 126.7 182.18 T
9556: 0 0 0 1 0 0 0 K
9557: 121 326/G1014569 FmPA
9558: 0 0 0 1 0 0 0 K
9559: ( } else _sp += sizeof\050*_p\051;) 126.7 168.18 T
9560: 0 0 0 1 0 0 0 K
9561: 121 312/G1014570 FmPA
9562: 0 0 0 1 0 0 0 K
9563: (}) 126.7 154.18 T
9564: 0 0 0 1 0 0 0 K
9565: 121 298/G1014571 FmPA
9566: 0 0 0 1 0 0 0 K
9567: 0 0 0 1 0 0 0 K
9568: 121 287/G1013939 FmPA
9569: 0 0 0 1 0 0 0 K
9570: 120.87 672.27 120.87 140.77 2 L
9571: V
9572: 0.5 H
9573: 0 Z
9574: N
9575: 480.87 672.27 480.87 140.77 2 L
9576: V
9577: N
9578: 120.62 672.52 481.12 672.52 2 L
9579: V
9580: N
9581: 120.62 140.52 481.12 140.52 2 L
9582: V
9583: N
9584: 0 0 0 1 0 0 0 K
9585: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
9586: [/Dest/P.28/DEST FmPD2
9587: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
9588: FMENDPAGE
9589: %%EndPage: "28" 28
9590: %%Page: "29" 29
9591: 595.28 839.05 0 FMBEGINPAGE
9592: [0 0 0 1 0 0 0]
9593: [ 0 1 1 0 1 0 0]
9594: [ 1 0 1 0 0 1 0]
9595: [ 1 1 0 0 0 0 1]
9596: [ 1 0 0 0 0 1 1]
9597: [ 0 1 0 0 1 0 1]
9598: [ 0 0 1 0 1 1 0]
9599: 7 FrameSetSepColors
9600: FrameNoSep
9601: 0 0 0 1 0 0 0 K
9602: 0 0 0 1 0 0 0 K
9603: 0 0 0 1 0 0 0 K
9604: 90 959/G837264 FmPA
9605: 0 12 Q
9606: 0 X
9607: 0 0 0 1 0 0 0 K
9608: (29) 289.29 93.77 T
9609: 40 238/G837268 FmPA
9610: 0 0 0 1 0 0 0 K
9611: 0 0 0 1 0 0 0 K
9612: 0 0 0 1 0 0 0 K
9613: 121 812/G1014008 FmPA
9614: 0 0 0 1 0 0 0 K
9615: 3 11 Q
9616: (/* esum\050int i, int n, int a0;; int a\051) 126.7 658.18 T
9617: 0 0 0 1 0 0 0 K
9618: 121 802/G1014586 FmPA
9619: 0 0 0 1 0 0 0 K
9620: ( { int len=n-i+1; a=a0;) 126.7 644.18 T
9621: 0 0 0 1 0 0 0 K
9622: 121 788/G1014633 FmPA
9623: 0 0 0 1 0 0 0 K
9624: ( if \050len>0\051 { vseq\050len,i;;v\051; vsum\050len,v;a;\051; }) 126.7 630.18 T
9625: 0 0 0 1 0 0 0 K
9626: 121 774/G1014634 FmPA
9627: 0 0 0 1 0 0 0 K
9628: ( } */) 126.7 616.18 T
9629: 0 0 0 1 0 0 0 K
9630: 121 760/G1014635 FmPA
9631: 0 0 0 1 0 0 0 K
9632: (typedef struct {void \050*_f\051\050void\051; int i; int n;) 126.7 602.18 T
9633: 0 0 0 1 0 0 0 K
9634: 121 746/G1014636 FmPA
9635: 0 0 0 1 0 0 0 K
9636: ( int a0; int *a;} _s_esum;) 126.7 588.18 T
9637: 0 0 0 1 0 0 0 K
9638: 121 732/G1014637 FmPA
9639: 0 0 0 1 0 0 0 K
9640: (void _f_esum\050void\051 {) 126.7 574.18 T
9641: 0 0 0 1 0 0 0 K
9642: 121 718/G1014638 FmPA
9643: 0 0 0 1 0 0 0 K
9644: ( _s_esum *_p = \050_s_esum *\051_sp;) 126.7 560.18 T
9645: 0 0 0 1 0 0 0 K
9646: 121 704/G1014639 FmPA
9647: 0 0 0 1 0 0 0 K
9648: ( int len = _p->n-_p->i+1;) 126.7 546.18 T
9649: 0 0 0 1 0 0 0 K
9650: 121 690/G1014640 FmPA
9651: 0 0 0 1 0 0 0 K
9652: ( *\050_p->a\051 = _p->a0;) 126.7 532.18 T
9653: 0 0 0 1 0 0 0 K
9654: 121 676/G1014641 FmPA
9655: 0 0 0 1 0 0 0 K
9656: ( _sp += sizeof\050*_p\051;) 126.7 518.18 T
9657: 0 0 0 1 0 0 0 K
9658: 121 662/G1014642 FmPA
9659: 0 0 0 1 0 0 0 K
9660: ( if \050len>0\051 {) 126.7 504.18 T
9661: 0 0 0 1 0 0 0 K
9662: 121 648/G1014643 FmPA
9663: 0 0 0 1 0 0 0 K
9664: ( int *v, _i=_p->i, *_a=_p->a;) 126.7 490.18 T
9665: 0 0 0 1 0 0 0 K
9666: 121 634/G1014644 FmPA
9667: 0 0 0 1 0 0 0 K
9668: ( _s__skip *_p_skip; _s_vseq *_pvseq;) 126.7 476.18 T
9669: 0 0 0 1 0 0 0 K
9670: 121 620/G1014645 FmPA
9671: 0 0 0 1 0 0 0 K
9672: (_s_vsum *_pvsum;) 153.1 462.18 T
9673: 0 0 0 1 0 0 0 K
9674: 121 606/G1014671 FmPA
9675: 0 0 0 1 0 0 0 K
9676: 0 0 0 1 0 0 0 K
9677: 121 592/G1014646 FmPA
9678: 0 0 0 1 0 0 0 K
9679: -0.11 ( _sp -= len*sizeof\050int\051; v = \050int *\051_sp;) 126.7 434.18 P
9680: 0 0 0 1 0 0 0 K
9681: 121 578/G1014647 FmPA
9682: 0 0 0 1 0 0 0 K
9683: 0 0 0 1 0 0 0 K
9684: 121 564/G1014648 FmPA
9685: 0 0 0 1 0 0 0 K
9686: -0.25 ( _sp -= sizeof\050_s__skip\051; _p_skip =\050_s__skip *\051_sp;) 126.7 406.18 P
9687: 0 0 0 1 0 0 0 K
9688: 121 550/G1014649 FmPA
9689: 0 0 0 1 0 0 0 K
9690: ( _p_skip->_f = _f__skip;) 126.7 392.18 T
9691: 0 0 0 1 0 0 0 K
9692: 121 536/G1014650 FmPA
9693: 0 0 0 1 0 0 0 K
9694: ( _p_skip->n = len*sizeof\050int\051;) 126.7 378.18 T
9695: 0 0 0 1 0 0 0 K
9696: 121 522/G1014651 FmPA
9697: 0 0 0 1 0 0 0 K
9698: 0 0 0 1 0 0 0 K
9699: 121 508/G1014652 FmPA
9700: 0 0 0 1 0 0 0 K
9701: -0.19 ( _sp -= sizeof\050_s_vsum\051; _pvsum = \050_s_vsum *\051_sp;) 126.7 350.18 P
9702: 0 0 0 1 0 0 0 K
9703: 121 494/G1014653 FmPA
9704: 0 0 0 1 0 0 0 K
9705: ( _pvsum->_f = _f_vsum;) 126.7 336.18 T
9706: 0 0 0 1 0 0 0 K
9707: 121 480/G1014654 FmPA
9708: 0 0 0 1 0 0 0 K
9709: ( _pvsum->n = len;) 126.7 322.18 T
9710: 0 0 0 1 0 0 0 K
9711: 121 466/G1014655 FmPA
9712: 0 0 0 1 0 0 0 K
9713: ( _pvsum->a = v;) 126.7 308.18 T
9714: 0 0 0 1 0 0 0 K
9715: 121 452/G1014656 FmPA
9716: 0 0 0 1 0 0 0 K
9717: ( _pvsum->z = _a;) 126.7 294.18 T
9718: 0 0 0 1 0 0 0 K
9719: 121 438/G1014657 FmPA
9720: 0 0 0 1 0 0 0 K
9721: 0 0 0 1 0 0 0 K
9722: 121 424/G1014658 FmPA
9723: 0 0 0 1 0 0 0 K
9724: -0.19 ( _sp -= sizeof\050_s_vseq\051; _pvseq = \050_s_vseq *\051_sp;) 126.7 266.18 P
9725: 0 0 0 1 0 0 0 K
9726: 121 410/G1014659 FmPA
9727: 0 0 0 1 0 0 0 K
9728: ( _pvseq->_f = _f_vseq;) 126.7 252.18 T
9729: 0 0 0 1 0 0 0 K
9730: 121 396/G1014660 FmPA
9731: 0 0 0 1 0 0 0 K
9732: ( _pvseq->n = len;) 126.7 238.18 T
9733: 0 0 0 1 0 0 0 K
9734: 121 382/G1014661 FmPA
9735: 0 0 0 1 0 0 0 K
9736: ( _pvseq->m = _i;) 126.7 224.18 T
9737: 0 0 0 1 0 0 0 K
9738: 121 368/G1014662 FmPA
9739: 0 0 0 1 0 0 0 K
9740: ( _pvseq->a = v;) 126.7 210.18 T
9741: 0 0 0 1 0 0 0 K
9742: 121 354/G1014663 FmPA
9743: 0 0 0 1 0 0 0 K
9744: ( }) 126.7 196.18 T
9745: 0 0 0 1 0 0 0 K
9746: 121 340/G1014664 FmPA
9747: 0 0 0 1 0 0 0 K
9748: (}) 126.7 182.18 T
9749: 0 0 0 1 0 0 0 K
9750: 121 326/G1014665 FmPA
9751: 0 0 0 1 0 0 0 K
9752: 0 0 0 1 0 0 0 K
9753: 121 315/G1014018 FmPA
9754: 0 0 0 1 0 0 0 K
9755: 121 308/G1014020 FmPA
9756: 0 12 Q
9757: (Figure) 123.87 153.52 T
9758: (17) 158.2 153.52 T
9759: (Intermediate C code from compiling) 172.06 153.52 T
9760: 3 F
9761: (vseq) 350.36 153.52 T
9762: 0 F
9763: (,) 379.17 153.52 T
9764: 3 F
9765: (vsum) 385.17 153.52 T
9766: 0 F
9767: (,) 413.96 153.52 T
9768: 3 F
9769: (esum) 419.96 153.52 T
9770: 0 F
9771: (.) 448.77 153.52 T
9772: 121 297/G1014025 FmPA
9773: 120.87 672.27 120.87 149.77 2 L
9774: V
9775: 0.5 H
9776: 0 Z
9777: N
9778: 480.87 672.27 480.87 149.77 2 L
9779: V
9780: N
9781: 120.62 672.52 481.12 672.52 2 L
9782: V
9783: N
9784: 120.62 168.52 481.12 168.52 2 L
9785: V
9786: N
9787: 120.62 149.52 481.12 149.52 2 L
9788: V
9789: N
9790: 0 0 0 1 0 0 0 K
9791: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
9792: [/Dest/P.29/DEST FmPD2
9793: 170 305/M9.28681.Figure.Figure13.Intermediate.C.code.from.compiling.vseq.vsum.esum FmPA
9794: 170 305/I1.1014134 FmPA
9795: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
9796: FMENDPAGE
9797: %%EndPage: "29" 29
9798: %%Page: "30" 30
9799: 595.28 839.05 0 FMBEGINPAGE
9800: [0 0 0 1 0 0 0]
9801: [ 0 1 1 0 1 0 0]
9802: [ 1 0 1 0 0 1 0]
9803: [ 1 1 0 0 0 0 1]
9804: [ 1 0 0 0 0 1 1]
9805: [ 0 1 0 0 1 0 1]
9806: [ 0 0 1 0 1 1 0]
9807: 7 FrameSetSepColors
9808: FrameNoSep
9809: 0 0 0 1 0 0 0 K
9810: 0 0 0 1 0 0 0 K
9811: 0 0 0 1 0 0 0 K
9812: 90 959/G837264 FmPA
9813: 0 12 Q
9814: 0 X
9815: 0 0 0 1 0 0 0 K
9816: (30) 289.29 93.77 T
9817: 40 238/G837268 FmPA
9818: 0.85 (As introduced in section) 137.88 533.69 P
9819: 0.85 (5, in the implementation of this presentation,) 260.42 533.69 P
9820: 121 678/G1014447 FmPA
9821: 0.47 (scalar ins are passed by v) 120.87 519.69 P
9822: 0.47 (alue. Alternati) 244.55 519.69 P
9823: 0.47 (v) 313.37 519.69 P
9824: 0.47 (ely) 319.19 519.69 P
9825: 0.47 (, scalar ins could be passed by) 333.07 519.69 P
9826: (reference, similar to the array of the abo) 120.87 505.69 T
9827: (v) 313.29 505.69 T
9828: (e e) 319.11 505.69 T
9829: (xample.) 332.58 505.69 T
9830: 1 F
9831: (10 A T) 120.87 474.69 T
9832: (ranspar) 160.65 474.69 T
9833: (ent P) 201.1 474.69 T
9834: (arallel Execution) 227.31 474.69 T
9835: 121 619/G1018982 FmPA
9836: 0 F
9837: -0.17 (This section outlines TP) 120.87 455.69 P
9838: -0.17 (ARX \050pronounced \322tea park\323\051, a simple implemen-) 235.6 455.69 P
9839: 121 600/G1018988 FmPA
9840: (tation of a transparent parallel e) 120.87 441.69 T
9841: (x) 272.98 441.69 T
9842: (ecution.) 278.8 441.69 T
9843: 2.81 (TP) 137.88 427.69 P
9844: 2.81 (ARX uses the TSIA language of this presentation and its crude) 150.78 427.69 P
9845: 121 572/G1018989 FmPA
9846: -0.25 (implementation. TP) 120.87 413.69 P
9847: -0.25 (ARX requires three small changes to the compilation of) 214.86 413.69 P
9848: (TSIA code to the intermediate C code.) 120.87 399.69 T
9849: 0.42 (First, TP) 137.88 385.69 P
9850: 0.42 (ARX must be able to tra) 179.2 385.69 P
9851: 0.42 (v) 298.05 385.69 P
9852: 0.42 (el the stack, e) 303.87 385.69 P
9853: 0.42 (v) 370.15 385.69 P
9854: 0.42 (en though each frame) 375.97 385.69 P
9855: 121 530/G1014683 FmPA
9856: 1.78 (has a dif) 120.87 371.69 P
9857: 1.78 (ferent length. F) 164.79 371.69 P
9858: 1.78 (or e) 241.82 371.69 P
9859: 1.78 (xample, a task frame thus might include its) 261.75 371.69 P
9860: (length at a \336x) 120.87 357.69 T
9861: (ed of) 186.35 357.69 T
9862: (fset in the task frame.) 210.38 357.69 T
9863: -0.03 (Second, TP) 137.88 343.69 P
9864: -0.03 (ARX allo) 192.08 343.69 P
9865: -0.03 (ws an application e) 238.09 343.69 P
9866: -0.03 (x) 330.15 343.69 P
9867: -0.03 (ecution to use multiple stacks,) 335.97 343.69 P
9868: 121 488/G1014681 FmPA
9869: 1.05 (each with its o) 120.87 329.69 P
9870: 1.05 (wn stack pointer) 193.39 329.69 P
9871: 1.05 (. F) 274.16 329.69 P
9872: 1.05 (or e) 287.71 329.69 P
9873: 1.05 (xample, the routine of a task frame) 306.91 329.69 P
9874: 1.69 (thus might ha) 120.87 315.69 P
9875: 1.69 (v) 189.35 315.69 P
9876: 1.69 (e a pointer to the stack pointer as its ar) 195.18 315.69 P
9877: 1.69 (gument. A corre-) 395.17 315.69 P
9878: (sponding change also w) 120.87 301.69 T
9879: (ould be made to the routine) 235.73 301.69 T
9880: 3 F
9881: (_xtop) 370.38 301.69 T
9882: 0 F
9883: ( of Figure) 406.38 301.69 T
9884: (3.) 456.71 301.69 T
9885: 1.88 (Third, TP) 137.88 287.69 P
9886: 1.88 (ARX requires a task frame to include a) 185.32 287.69 P
9887: 3 F
9888: 4.52 (_ready) 391.02 287.69 P
9889: 0 F
9890: 1.88 ( \337ag at a) 434.22 287.69 P
9891: 121 432/G1014692 FmPA
9892: -0.22 (\336x) 120.87 273.69 P
9893: -0.22 (ed of) 133.36 273.69 P
9894: -0.22 (fset in the task frame. The v) 157.17 273.69 P
9895: -0.22 (alues) 289.87 273.69 P
9896: 3 F
9897: -0.52 (_ready=1) 317.32 273.69 P
9898: 0 F
9899: -0.22 ( and) 374.92 273.69 P
9900: 3 F
9901: -0.52 (_ready=0) 397.81 273.69 P
9902: 0 F
9903: -0.22 ( indi-) 455.41 273.69 P
9904: 0.42 (cate whether or not the task frame is ready to e) 120.87 259.69 P
9905: 0.42 (x) 349.47 259.69 P
9906: 0.42 (ecute, e) 355.29 259.69 P
9907: 0.42 (v) 392.06 259.69 P
9908: 0.42 (en if the frame is) 397.88 259.69 P
9909: 0.54 (not the topmost frame on the stack. As before, the topmost frame is ready) 120.87 245.69 P
9910: -0.2 (to e) 120.87 231.69 P
9911: -0.2 (x) 138.15 231.69 P
9912: -0.2 (ecute, re) 143.97 231.69 P
9913: -0.2 (g) 184.24 231.69 P
9914: -0.2 (ardless of its) 190.18 231.69 P
9915: 3 F
9916: -0.48 (_ready) 253.24 231.69 P
9917: 0 F
9918: -0.2 ( \337ag. The v) 296.44 231.69 P
9919: -0.2 (alue) 350.2 231.69 P
9920: 3 F
9921: -0.48 (_ready=1) 372.99 231.69 P
9922: 0 F
9923: -0.2 ( thus iden-) 430.6 231.69 P
9924: 1.26 (ti\336es frames which may e) 120.87 217.69 P
9925: 1.26 (x) 249.03 217.69 P
9926: 1.26 (ecute in parallel with each other and with the) 254.85 217.69 P
9927: 3.3 (topmost frames. The v) 120.87 203.69 P
9928: 3.3 (alue) 238.46 203.69 P
9929: 3 F
9930: 7.93 (_ready=0) 264.76 203.69 P
9931: 0 F
9932: 3.3 ( ensures that the dependencies) 322.36 203.69 P
9933: (between tasks are met in the e) 120.87 189.69 T
9934: (x) 264.65 189.69 T
9935: (ecution.) 270.47 189.69 T
9936: 0.68 (The) 137.88 175.69 P
9937: 3 F
9938: 1.63 (_ready) 160.21 175.69 P
9939: 0 F
9940: 0.68 ( \337ag is set when the task frame is written to the stack. A) 203.41 175.69 P
9941: 121 320/G1014693 FmPA
9942: 0.05 (task frame is written to the stack in the e) 120.87 161.69 P
9943: 0.05 (x) 315.47 161.69 P
9944: 0.05 (ecution of the task\325) 321.29 161.69 P
9945: 0.05 (s parent. Thus) 413.1 161.69 P
9946: -0.26 (a task\325) 120.87 147.69 P
9947: -0.26 (s) 151.6 147.69 P
9948: 3 F
9949: -0.63 (_ready) 159.01 147.69 P
9950: 0 F
9951: -0.26 ( \337ag is set in the e) 202.21 147.69 P
9952: -0.26 (x) 287.11 147.69 P
9953: -0.26 (ecution of the task\325) 292.93 147.69 P
9954: -0.26 (s parent. F) 383.79 147.69 P
9955: -0.26 (or each of) 433.41 147.69 P
9956: 0 0 0 1 0 0 0 K
9957: 0 0 0 1 0 0 0 K
9958: 0 0 0 1 0 0 0 K
9959: 121 715/G1014349 FmPA
9960: 0 0 0 1 0 0 0 K
9961: 121 708/G1014359 FmPA
9962: (Figure) 123.87 553.69 T
9963: (18) 158.2 553.69 T
9964: (An execution of the routine) 172.06 553.69 T
9965: 3 F
9966: (vseq) 307.03 553.69 T
9967: 0 F
9968: ( on the stack.) 335.83 553.69 T
9969: 121 698/G1014361 FmPA
9970: 120.87 672.27 120.87 549.94 2 L
9971: V
9972: 0.5 H
9973: 0 Z
9974: N
9975: 480.87 672.27 480.87 549.94 2 L
9976: V
9977: N
9978: 120.62 672.52 481.12 672.52 2 L
9979: V
9980: N
9981: 120.62 568.69 481.12 568.69 2 L
9982: V
9983: N
9984: 120.62 549.69 481.12 549.69 2 L
9985: V
9986: N
9987: 120.87 568.69 480.87 672.52 C
9988: 0 0 0 1 0 0 0 K
9989: 120.87 575.69 480.87 672.52 C
9990: 0 0 0 1 0 0 0 K
9991: 0 X
9992: 0 0 0 1 0 0 0 K
9993: 90 450 1.5 1.5 348.71 593.15 G
9994: 350.21 593.15 350.21 596.94 363.46 593.15 350.21 589.35 4 Y
9995: 3 H
9996: 0 Z
9997: N
9998: 350.21 593.15 350.21 596.94 363.46 593.15 350.21 589.35 4 Y
9999: V
10000: 232.84 593.15 348.71 593.15 2 L
10001: 2 Z
10002: N
10003: 0 12 Q
10004: (T) 288.41 578.97 T
10005: (ime) 295.32 578.97 T
10006: 3 11 Q
10007: (esum\050i,n,a0;;a\051) 154.99 613.1 T
10008: 147.8 609.47 261.18 623.64 R
10009: 0.5 H
10010: N
10011: (v[len]) 351.93 613.1 T
10012: (_skip\050len*sizeof\050int\051;;\051) 292.53 627.27 T
10013: (vsum\050len,v;a;\051) 325.53 641.44 T
10014: 289.53 637.82 453.94 651.99 R
10015: N
10016: (vseq\050len,i;;v\051) 325.53 655.62 T
10017: 289.53 651.99 453.94 666.16 R
10018: N
10019: 0 0 0 1 0 0 0 K
10020: 0 0 0 1 0 0 0 K
10021: 289.53 623.64 289.53 637.82 453.94 637.82 453.94 623.64 4 L
10022: N
10023: 289.53 623.64 289.53 609.47 453.94 609.47 453.94 623.64 4 L
10024: N
10025: 289.53 623.64 453.94 623.64 2 L
10026: 9 X
10027: N
10028: 0 0 0 1 0 0 0 K
10029: 120.87 568.69 480.87 672.52 C
10030: 0 -0.71 595.28 839.76 C
10031: 0 0 0 1 0 0 0 K
10032: 0 0 0 1 0 0 0 K
10033: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
10034: [/Dest/P.30/DEST FmPD2
10035: 170 706/M9.19176.Figure.Figure14.An.execution.of.the.routine.vseq.on.the.task.stack FmPA
10036: 170 706/I1.1014411 FmPA
10037: 142 627/M9.13177.1Heading.10.PTSTACK.for.a.Transparent.Parallel.Execution FmPA
10038: 142 627/I1.1018981 FmPA
10039: [/Rect[260 530 266 543]/Border[0 0 0]/Page 11/View[/XYZ null 136 771 FmDC exch pop null]/LNK FmPD
10040: [/Rect[422 298 463 311]/Border[0 0 0]/Page 11/View[/XYZ null 164 431 FmDC exch pop null]/LNK FmPD
10041: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
10042: FMENDPAGE
10043: %%EndPage: "30" 30
10044: %%Page: "31" 31
10045: 595.28 839.05 0 FMBEGINPAGE
10046: [0 0 0 1 0 0 0]
10047: [ 0 1 1 0 1 0 0]
10048: [ 1 0 1 0 0 1 0]
10049: [ 1 1 0 0 0 0 1]
10050: [ 1 0 0 0 0 1 1]
10051: [ 0 1 0 0 1 0 1]
10052: [ 0 0 1 0 1 1 0]
10053: 7 FrameSetSepColors
10054: FrameNoSep
10055: 0 0 0 1 0 0 0 K
10056: 0 0 0 1 0 0 0 K
10057: 0 0 0 1 0 0 0 K
10058: 90 959/G837264 FmPA
10059: 0 12 Q
10060: 0 X
10061: 0 0 0 1 0 0 0 K
10062: (31) 289.29 93.77 T
10063: 40 238/G837268 FmPA
10064: 0.81 (its children, a parent thus has an e) 120.87 664.52 P
10065: 0.81 (xpression which yields the v) 288.99 664.52 P
10066: 0.81 (alue of the) 428.59 664.52 P
10067: 3 F
10068: (_ready) 120.87 650.52 T
10069: 0 F
10070: ( \337ag. Often the e) 164.07 650.52 T
10071: (xpression is a compile-time constant.) 244.2 650.52 T
10072: 1.29 (The abo) 137.88 636.52 P
10073: 1.29 (v) 177.97 636.52 P
10074: 1.29 (e three changes are illustrated using the routine) 183.79 636.52 P
10075: 3 F
10076: 3.09 (dcvsum) 423.38 636.52 P
10077: 0 F
10078: 1.29 ( of) 466.58 636.52 P
10079: 121 780/G1014993 FmPA
10080: 0.25 (Figure) 120.87 622.52 P
10081: 0.25 (19. The routine is a di) 155.2 622.52 P
10082: 0.25 (vide-and-conquer \050DC\051 v) 261.49 622.52 P
10083: 0.25 (ersion of the routine) 383.12 622.52 P
10084: 3 F
10085: 0.75 (vsum) 120.87 390.51 P
10086: 0 F
10087: 0.31 ( of Figure) 149.67 390.51 P
10088: 0.31 (17. The routine) 200.62 390.51 P
10089: 3 F
10090: 0.75 (tadd) 278.21 390.51 P
10091: 0 F
10092: 0.31 ( is that of Figure) 307.01 390.51 P
10093: 0.31 (12. The intermedi-) 390.59 390.51 P
10094: 2.56 (ate C code resulting from compiling the routine) 120.87 376.51 P
10095: 3 F
10096: 6.13 (dcvsum) 372.62 376.51 P
10097: 0 F
10098: 2.56 ( is sho) 415.82 376.51 P
10099: 2.56 (wn in) 451.31 376.51 P
10100: (Figure) 120.87 362.51 T
10101: (20 and includes the three changes mentioned abo) 155.2 362.51 T
10102: (v) 390.64 362.51 T
10103: (e.) 396.46 362.51 T
10104: 1.19 (As described else) 137.88 348.51 P
10105: 1.19 (where [Alternati) 223.94 348.51 P
10106: 1.19 (v) 303.81 348.51 P
10107: 1.19 (e][Data\337o) 309.63 348.51 P
10108: 1.19 (w][TSIA], the TSIA lan-) 357.98 348.51 P
10109: 121 492/G1014872 FmPA
10110: 1.29 (guage allo) 120.87 334.51 P
10111: 1.29 (ws for strict and non-strict e) 171.52 334.51 P
10112: 1.29 (v) 312.67 334.51 P
10113: 1.29 (aluation. In this presentation, the) 318.36 334.51 P
10114: 1.21 (TSIA language has a strict e) 120.87 320.52 P
10115: 1.21 (v) 262.26 320.52 P
10116: 1.21 (aluation. As in most currently popular pro-) 267.95 320.52 P
10117: 0.2 (gramming languages, each in ar) 120.87 306.52 P
10118: 0.2 (gument of a routine is e) 274.42 306.52 P
10119: 0.2 (v) 388.79 306.52 P
10120: 0.2 (aluated before the) 394.49 306.52 P
10121: 1.63 (e) 120.87 292.52 P
10122: 1.63 (x) 126.02 292.52 P
10123: 1.63 (ecution of the routine. W) 131.84 292.52 P
10124: 1.63 (ith a strict e) 258.21 292.52 P
10125: 1.63 (v) 319.14 292.52 P
10126: 1.63 (aluation, the) 324.84 292.52 P
10127: 3 F
10128: 3.92 (_ready) 390.43 292.52 P
10129: 0 F
10130: 1.63 ( \337ag of a) 433.63 292.52 P
10131: 0.62 (child task only depends on the code of its parent routine. A compiler thus) 120.87 278.52 P
10132: -0.04 (can deri) 120.87 264.52 P
10133: -0.04 (v) 158.85 264.52 P
10134: -0.04 (e from the parent code an e) 164.67 264.52 P
10135: -0.04 (xpression for the v) 294.88 264.52 P
10136: -0.04 (alue of the) 384.12 264.52 P
10137: 3 F
10138: -0.09 (_ready) 437.66 264.52 P
10139: 0 F
10140: (\337ag of each child task.) 120.87 250.52 T
10141: (In a strict e) 137.88 236.52 T
10142: (v) 191.23 236.52 T
10143: (aluation, the \336rst child task of a routine is ready to e) 196.93 236.52 T
10144: (x) 446.72 236.52 T
10145: (ecute.) 452.54 236.52 T
10146: 121 380/G1017330 FmPA
10147: 0.11 (Thus) 120.87 222.52 P
10148: 3 F
10149: 0.27 (_pd1->_ready=1) 147.98 222.52 P
10150: 0 F
10151: 0.11 ( in the compiled code for) 248.78 222.52 P
10152: 3 F
10153: 0.27 (dcvsum) 372.77 222.52 P
10154: 0 F
10155: 0.11 ( in Figure) 415.97 222.52 P
10156: 0.11 (20.) 465.86 222.52 P
10157: -0.04 (The second child task of a routine is ready to e) 120.87 208.52 P
10158: -0.04 (x) 344.26 208.52 P
10159: -0.04 (ecute if it is independent of) 350.08 208.52 P
10160: 0.07 (the \336rst. F) 120.87 194.52 P
10161: 0.07 (or e) 169.83 194.52 P
10162: 0.07 (xample, in the source code of) 188.04 194.52 P
10163: 3 F
10164: 0.16 (dcvsum) 332.74 194.52 P
10165: 0 F
10166: 0.07 ( in Figure) 375.94 194.52 P
10167: 0.07 (19, the sec-) 425.74 194.52 P
10168: 2.74 (ond task) 120.87 180.52 P
10169: 3 F
10170: 6.58 (dcvsum\050n-k,a[k];;ry\051) 169.68 180.52 P
10171: 0 F
10172: 2.74 ( ob) 313.68 180.52 P
10173: 2.74 (viously is independent of the) 331.24 180.52 P
10174: 2.36 (\336rst task) 120.87 166.52 P
10175: 3 F
10176: 5.67 (dcvsum\050k,a;;rx\051) 169.6 166.52 P
10177: 0 F
10178: 2.36 (. Thus) 277.6 166.52 P
10179: 3 F
10180: 5.67 (_pd2->_ready=1) 315.32 166.52 P
10181: 0 F
10182: 2.36 ( in the com-) 416.12 166.52 P
10183: 0.78 (piled code for) 120.87 152.52 P
10184: 3 F
10185: 1.87 (dcvsum) 192.85 152.52 P
10186: 0 F
10187: 0.78 ( in Figure) 236.05 152.52 P
10188: 0.78 (20. In other w) 287.27 152.52 P
10189: 0.78 (ords, the tasks) 356.8 152.52 P
10190: 3 F
10191: 1.87 (dcvsum\050) 430.46 152.52 P
10192: (n-k,a[k];;ry\051) 120.87 138.52 T
10193: 0 F
10194: ( and) 214.47 138.52 T
10195: 3 F
10196: (dcvsum\050k,a;;rx\051) 237.8 138.52 T
10197: 0 F
10198: ( can e) 345.8 138.52 T
10199: (x) 373.6 138.52 T
10200: (ecute in parallel.) 379.42 138.52 T
10201: 0 0 0 1 0 0 0 K
10202: 0 0 0 1 0 0 0 K
10203: 0 0 0 1 0 0 0 K
10204: 121 750/G1014975 FmPA
10205: 0 0 0 1 0 0 0 K
10206: 3 11 Q
10207: (/* z = a[0]+a[1]+..+a[n-1] */) 126.7 596.18 T
10208: 0 0 0 1 0 0 0 K
10209: 121 740/G1014976 FmPA
10210: 0 0 0 1 0 0 0 K
10211: (dcvsum\050int n, int a[n];; int z \051) 126.7 582.18 T
10212: 0 0 0 1 0 0 0 K
10213: 121 726/G1015080 FmPA
10214: 0 0 0 1 0 0 0 K
10215: ({ if \050n==1\051 z=a[0];) 126.7 568.18 T
10216: 0 0 0 1 0 0 0 K
10217: 121 712/G1015082 FmPA
10218: 0 0 0 1 0 0 0 K
10219: ( else { int k=n/2;) 126.7 554.18 T
10220: 0 0 0 1 0 0 0 K
10221: 121 698/G1015083 FmPA
10222: 0 0 0 1 0 0 0 K
10223: ( dcvsum\050k ,a ;;rx\051;) 126.7 540.18 T
10224: 0 0 0 1 0 0 0 K
10225: 121 684/G1015084 FmPA
10226: 0 0 0 1 0 0 0 K
10227: ( dcvsum\050n-k,a[k];;ry\051;) 126.7 526.18 T
10228: 0 0 0 1 0 0 0 K
10229: 121 670/G1015085 FmPA
10230: 0 0 0 1 0 0 0 K
10231: ( tadd\050rx,ry;;z\051; }) 126.7 512.18 T
10232: 0 0 0 1 0 0 0 K
10233: 121 656/G1015086 FmPA
10234: 0 0 0 1 0 0 0 K
10235: (}) 126.7 498.18 T
10236: 0 0 0 1 0 0 0 K
10237: 121 642/G1015087 FmPA
10238: 0 0 0 1 0 0 0 K
10239: 0 0 0 1 0 0 0 K
10240: 121 628/G1015090 FmPA
10241: 0 0 0 1 0 0 0 K
10242: (/* z += a[0]+a[1]+..+a[n-1] */) 126.7 470.18 T
10243: 0 0 0 1 0 0 0 K
10244: 121 614/G1015091 FmPA
10245: 0 0 0 1 0 0 0 K
10246: (vsum\050int n, int a[n]; int z; \051) 126.7 456.18 T
10247: 0 0 0 1 0 0 0 K
10248: 121 600/G1015093 FmPA
10249: 0 0 0 1 0 0 0 K
10250: ({ int z0=z; dcvsum\050n,a;;r\051; tadd\050z0,r;;z\051; }) 126.7 442.18 T
10251: 0 0 0 1 0 0 0 K
10252: 121 586/G1015094 FmPA
10253: 0 0 0 1 0 0 0 K
10254: 0 0 0 1 0 0 0 K
10255: 121 575/G1014985 FmPA
10256: 0 0 0 1 0 0 0 K
10257: 121 568/G1014987 FmPA
10258: 0 12 Q
10259: (Figure) 123.87 413.51 T
10260: (19) 158.2 413.51 T
10261: -0.29 (A di) 172.06 413.51 P
10262: -0.29 (vide-and-conquer v) 192.47 413.51 P
10263: -0.29 (ersion of the routine) 285.64 413.51 P
10264: 3 F
10265: -0.69 (vsum) 384.48 413.51 P
10266: 0 F
10267: -0.29 ( of Figure) 413.28 413.51 P
10268: -0.29 (17.) 463.03 413.51 P
10269: 121 557/G1014992 FmPA
10270: 120.87 610.27 120.87 409.76 2 L
10271: V
10272: 0.5 H
10273: 0 Z
10274: N
10275: 480.87 610.27 480.87 409.76 2 L
10276: V
10277: N
10278: 120.62 610.52 481.12 610.52 2 L
10279: V
10280: N
10281: 120.62 428.51 481.12 428.51 2 L
10282: V
10283: N
10284: 120.62 409.51 481.12 409.51 2 L
10285: V
10286: N
10287: 0 0 0 1 0 0 0 K
10288: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
10289: [/Dest/P.31/DEST FmPD2
10290: 170 565/M9.33986.Figure.Figure15.An.application.using.the.routine.lsum.of.Figure9 FmPA
10291: 170 565/I1.1015100 FmPA
10292: [/Rect[121 618 167 631]/Border[0 0 0]/Page 31/View[/XYZ null 170 565 FmDC exch pop null]/LNK FmPD
10293: [/Rect[429 409 475 422]/Border[0 0 0]/Page 29/View[/XYZ null 170 305 FmDC exch pop null]/LNK FmPD
10294: [/Rect[121 358 167 371]/Border[0 0 0]/Page 32/View[/XYZ null 170 291 FmDC exch pop null]/LNK FmPD
10295: [/Rect[166 386 213 399]/Border[0 0 0]/Page 29/View[/XYZ null 170 305 FmDC exch pop null]/LNK FmPD
10296: [/Rect[356 386 403 399]/Border[0 0 0]/Page 23/View[/XYZ null 170 641 FmDC exch pop null]/LNK FmPD
10297: [/Rect[432 218 478 231]/Border[0 0 0]/Page 32/View[/XYZ null 170 291 FmDC exch pop null]/LNK FmPD
10298: [/Rect[391 190 438 203]/Border[0 0 0]/Page 31/View[/XYZ null 170 565 FmDC exch pop null]/LNK FmPD
10299: [/Rect[253 148 299 161]/Border[0 0 0]/Page 32/View[/XYZ null 170 291 FmDC exch pop null]/LNK FmPD
10300: [/Rect[257 344 319 357]/Border[0 0 0]/Page 41/View[/XYZ null 121 612 FmDC exch pop null]/LNK FmPD
10301: [/Rect[319 344 371 357]/Border[0 0 0]/Page 42/View[/XYZ null 121 746 FmDC exch pop null]/LNK FmPD
10302: [/Rect[371 344 405 357]/Border[0 0 0]/Page 43/View[/XYZ null 121 676 FmDC exch pop null]/LNK FmPD
10303: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
10304: FMENDPAGE
10305: %%EndPage: "31" 31
10306: %%Page: "32" 32
10307: 595.28 839.05 0 FMBEGINPAGE
10308: [0 0 0 1 0 0 0]
10309: [ 0 1 1 0 1 0 0]
10310: [ 1 0 1 0 0 1 0]
10311: [ 1 1 0 0 0 0 1]
10312: [ 1 0 0 0 0 1 1]
10313: [ 0 1 0 0 1 0 1]
10314: [ 0 0 1 0 1 1 0]
10315: 7 FrameSetSepColors
10316: FrameNoSep
10317: 0 0 0 1 0 0 0 K
10318: 0 0 0 1 0 0 0 K
10319: 0 0 0 1 0 0 0 K
10320: 90 959/G837264 FmPA
10321: 0 12 Q
10322: 0 X
10323: 0 0 0 1 0 0 0 K
10324: (32) 289.29 93.77 T
10325: 40 238/G837268 FmPA
10326: 0 0 0 1 0 0 0 K
10327: 0 0 0 1 0 0 0 K
10328: 0 0 0 1 0 0 0 K
10329: 121 812/G1015000 FmPA
10330: 0 0 0 1 0 0 0 K
10331: 3 11 Q
10332: (typedef struct {void \050*_f\051\050char **_psp\051; int _ready;) 126.7 658.18 T
10333: 0 0 0 1 0 0 0 K
10334: 121 802/G1015001 FmPA
10335: 0 0 0 1 0 0 0 K
10336: ( int n, *a, *z; int _l;} _s_dcvsum;) 126.7 644.18 T
10337: 0 0 0 1 0 0 0 K
10338: 121 788/G1015136 FmPA
10339: 0 0 0 1 0 0 0 K
10340: (void _f_dcvsum\050char **_psp\051 {) 126.7 630.18 T
10341: 0 0 0 1 0 0 0 K
10342: 121 774/G1015137 FmPA
10343: 0 0 0 1 0 0 0 K
10344: ( _s_dcvsum *_p = \050_s_dcvsum *\051*_psp;) 126.7 616.18 T
10345: 0 0 0 1 0 0 0 K
10346: 121 760/G1015138 FmPA
10347: 0 0 0 1 0 0 0 K
10348: ( *_psp += sizeof\050*_p\051;) 126.7 602.18 T
10349: 0 0 0 1 0 0 0 K
10350: 121 746/G1015139 FmPA
10351: 0 0 0 1 0 0 0 K
10352: ( if \050_p->n==1\051 *\050_p->z\051 = *\050_p->a\051;) 126.7 588.18 T
10353: 0 0 0 1 0 0 0 K
10354: 121 732/G1015140 FmPA
10355: 0 0 0 1 0 0 0 K
10356: ( else {) 126.7 574.18 T
10357: 0 0 0 1 0 0 0 K
10358: 121 718/G1015141 FmPA
10359: 0 0 0 1 0 0 0 K
10360: ( int _n=_p->n, *_a=_p->a, *_z=_p->z, k=_n/2;) 126.7 560.18 T
10361: 0 0 0 1 0 0 0 K
10362: 121 704/G1015142 FmPA
10363: 0 0 0 1 0 0 0 K
10364: ( _s_tadd *_pa; _s_dcvsum *_pd2, *_pd1;) 126.7 546.18 T
10365: 0 0 0 1 0 0 0 K
10366: 121 690/G1015143 FmPA
10367: 0 0 0 1 0 0 0 K
10368: 0 0 0 1 0 0 0 K
10369: 121 676/G1015144 FmPA
10370: 0 0 0 1 0 0 0 K
10371: ( *_psp -= sizeof\050_s_tadd\051;) 126.7 518.18 T
10372: 0 0 0 1 0 0 0 K
10373: 121 662/G1015145 FmPA
10374: 0 0 0 1 0 0 0 K
10375: ( _pa = \050_s_tadd *\051*_psp;) 126.7 504.18 T
10376: 0 0 0 1 0 0 0 K
10377: 121 648/G1015146 FmPA
10378: 0 0 0 1 0 0 0 K
10379: ( _pa->_f = _f_tadd;) 126.7 490.18 T
10380: 0 0 0 1 0 0 0 K
10381: 121 634/G1015147 FmPA
10382: 0 0 0 1 0 0 0 K
10383: ( _pa->_l = sizeof\050_s_tadd\051;) 126.7 476.18 T
10384: 0 0 0 1 0 0 0 K
10385: 121 620/G1015148 FmPA
10386: 0 0 0 1 0 0 0 K
10387: ( _pa->_ready = 0;) 126.7 462.18 T
10388: 0 0 0 1 0 0 0 K
10389: 121 606/G1015149 FmPA
10390: 0 0 0 1 0 0 0 K
10391: ( /* _pa->z = _z; */ /* Already true. */) 126.7 448.18 T
10392: 0 0 0 1 0 0 0 K
10393: 121 592/G1015150 FmPA
10394: 0 0 0 1 0 0 0 K
10395: 0 0 0 1 0 0 0 K
10396: 121 578/G1015151 FmPA
10397: 0 0 0 1 0 0 0 K
10398: ( *_psp -= sizeof\050_s_dcvsum\051;) 126.7 420.18 T
10399: 0 0 0 1 0 0 0 K
10400: 121 564/G1015152 FmPA
10401: 0 0 0 1 0 0 0 K
10402: ( _pd2 = \050_s_dcvsum *\051*_psp;) 126.7 406.18 T
10403: 0 0 0 1 0 0 0 K
10404: 121 550/G1015153 FmPA
10405: 0 0 0 1 0 0 0 K
10406: ( _pd2->_f = _f_dcvsum;) 126.7 392.18 T
10407: 0 0 0 1 0 0 0 K
10408: 121 536/G1015154 FmPA
10409: 0 0 0 1 0 0 0 K
10410: ( _pd2->_l = sizeof\050_s_dcvsum\051;) 126.7 378.18 T
10411: 0 0 0 1 0 0 0 K
10412: 121 522/G1015155 FmPA
10413: 0 0 0 1 0 0 0 K
10414: ( _pd2->_ready = 1;) 126.7 364.18 T
10415: 0 0 0 1 0 0 0 K
10416: 121 508/G1015156 FmPA
10417: 0 0 0 1 0 0 0 K
10418: ( _pd2->n = k;) 126.7 350.18 T
10419: 0 0 0 1 0 0 0 K
10420: 121 494/G1015157 FmPA
10421: 0 0 0 1 0 0 0 K
10422: ( _pd2->a = _a;) 126.7 336.18 T
10423: 0 0 0 1 0 0 0 K
10424: 121 480/G1015158 FmPA
10425: 0 0 0 1 0 0 0 K
10426: ( _pd2->z = &\050_pa->x\051;) 126.7 322.18 T
10427: 0 0 0 1 0 0 0 K
10428: 121 466/G1015159 FmPA
10429: 0 0 0 1 0 0 0 K
10430: 0 0 0 1 0 0 0 K
10431: 121 452/G1015160 FmPA
10432: 0 0 0 1 0 0 0 K
10433: ( *_psp -= sizeof\050_s_dcvsum\051;) 126.7 294.18 T
10434: 0 0 0 1 0 0 0 K
10435: 121 438/G1015161 FmPA
10436: 0 0 0 1 0 0 0 K
10437: ( _pd1 = \050_s_dcvsum *\051*_psp;) 126.7 280.18 T
10438: 0 0 0 1 0 0 0 K
10439: 121 424/G1015162 FmPA
10440: 0 0 0 1 0 0 0 K
10441: ( _pd1->_f = _f_dcvsum;) 126.7 266.18 T
10442: 0 0 0 1 0 0 0 K
10443: 121 410/G1015163 FmPA
10444: 0 0 0 1 0 0 0 K
10445: ( _pd1->_l = sizeof\050_s_dcvsum\051;) 126.7 252.18 T
10446: 0 0 0 1 0 0 0 K
10447: 121 396/G1015164 FmPA
10448: 0 0 0 1 0 0 0 K
10449: ( _pd1->_ready = 1;) 126.7 238.18 T
10450: 0 0 0 1 0 0 0 K
10451: 121 382/G1015165 FmPA
10452: 0 0 0 1 0 0 0 K
10453: ( _pd1->n = _n-k;) 126.7 224.18 T
10454: 0 0 0 1 0 0 0 K
10455: 121 368/G1015166 FmPA
10456: 0 0 0 1 0 0 0 K
10457: ( _pd1->a = _a+k;) 126.7 210.18 T
10458: 0 0 0 1 0 0 0 K
10459: 121 354/G1015167 FmPA
10460: 0 0 0 1 0 0 0 K
10461: ( _pd1->z = &\050_pa->y\051;) 126.7 196.18 T
10462: 0 0 0 1 0 0 0 K
10463: 121 340/G1015168 FmPA
10464: 0 0 0 1 0 0 0 K
10465: ( }) 126.7 182.18 T
10466: 0 0 0 1 0 0 0 K
10467: 121 326/G1015169 FmPA
10468: 0 0 0 1 0 0 0 K
10469: (}) 126.7 168.18 T
10470: 0 0 0 1 0 0 0 K
10471: 121 312/G1015170 FmPA
10472: 0 0 0 1 0 0 0 K
10473: 0 0 0 1 0 0 0 K
10474: 121 301/G1015010 FmPA
10475: 0 0 0 1 0 0 0 K
10476: 121 294/G1015012 FmPA
10477: 0 12 Q
10478: (Figure) 123.87 139.52 T
10479: (20) 158.2 139.52 T
10480: (Intermediate C code from compiling) 172.06 139.52 T
10481: 3 F
10482: (dcvsum) 350.36 139.52 T
10483: 0 F
10484: ( of Figure) 393.57 139.52 T
10485: (19.) 443.89 139.52 T
10486: 121 283/G1015017 FmPA
10487: 120.87 672.27 120.87 135.77 2 L
10488: V
10489: 0.5 H
10490: 0 Z
10491: N
10492: 480.87 672.27 480.87 135.77 2 L
10493: V
10494: N
10495: 120.62 672.52 481.12 672.52 2 L
10496: V
10497: N
10498: 120.62 154.52 481.12 154.52 2 L
10499: V
10500: N
10501: 120.62 135.52 481.12 135.52 2 L
10502: V
10503: N
10504: 0 0 0 1 0 0 0 K
10505: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
10506: [/Dest/P.32/DEST FmPD2
10507: 170 291/M9.19856.Figure.Figure16.An.application.using.the.routine.lsum.of.Figure9 FmPA
10508: 170 291/I1.1015132 FmPA
10509: [/Rect[410 135 456 148]/Border[0 0 0]/Page 31/View[/XYZ null 170 565 FmDC exch pop null]/LNK FmPD
10510: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
10511: FMENDPAGE
10512: %%EndPage: "32" 32
10513: %%Page: "33" 33
10514: 595.28 839.05 0 FMBEGINPAGE
10515: [0 0 0 1 0 0 0]
10516: [ 0 1 1 0 1 0 0]
10517: [ 1 0 1 0 0 1 0]
10518: [ 1 1 0 0 0 0 1]
10519: [ 1 0 0 0 0 1 1]
10520: [ 0 1 0 0 1 0 1]
10521: [ 0 0 1 0 1 1 0]
10522: 7 FrameSetSepColors
10523: FrameNoSep
10524: 0 0 0 1 0 0 0 K
10525: 0 0 0 1 0 0 0 K
10526: 0 0 0 1 0 0 0 K
10527: 90 959/G837264 FmPA
10528: 0 12 Q
10529: 0 X
10530: 0 0 0 1 0 0 0 K
10531: (33) 289.29 93.77 T
10532: 40 238/G837268 FmPA
10533: 1.56 (Similarly) 137.88 664.52 P
10534: 1.56 (, the third child task of a routine is ready to e) 181.77 664.52 P
10535: 1.56 (x) 414.04 664.52 P
10536: 1.56 (ecute if it is) 419.86 664.52 P
10537: 121 808/G1017371 FmPA
10538: -0.18 (independent of the \336rst tw) 120.87 650.52 P
10539: -0.18 (o. F) 246.01 650.52 P
10540: -0.18 (or e) 264.33 650.52 P
10541: -0.18 (xample, in the source code of) 282.29 650.52 P
10542: 3 F
10543: -0.43 (dcvsum) 425.51 650.52 P
10544: 0 F
10545: -0.18 ( in) 468.7 650.52 P
10546: 1.59 (Figure) 120.87 636.52 P
10547: 1.59 (19, the third task) 155.2 636.52 P
10548: 3 F
10549: 3.81 (tadd\050rx,ry;;z\051) 245.22 636.52 P
10550: 0 F
10551: 1.59 ( ob) 346.02 636.52 P
10552: 1.59 (viously is dependent on) 362.43 636.52 P
10553: 1.21 (the second task) 120.87 622.52 P
10554: 3 F
10555: 2.9 (dcvsum\050n-k,a[k];;ry\051) 200.81 622.52 P
10556: 0 F
10557: 1.21 ( and on the \336rst task) 344.81 622.52 P
10558: 3 F
10559: 2.9 (dcv-) 452.06 622.52 P
10560: 9.15 (sum\050k,a;;rx\051) 120.87 608.52 P
10561: 0 F
10562: 3.81 (. Thus) 207.27 608.52 P
10563: 3 F
10564: 9.15 (_pa->_ready=0) 247.89 608.52 P
10565: 0 F
10566: 3.81 ( in the compiled code for) 341.49 608.52 P
10567: 3 F
10568: -0.67 (dcvsum) 120.87 594.52 P
10569: 0 F
10570: -0.28 ( in Figure) 164.07 594.52 P
10571: -0.28 (20. In other w) 213.18 594.52 P
10572: -0.28 (ords, the task) 279.53 594.52 P
10573: 3 F
10574: -0.67 (tadd\050rx,ry;;z\051) 345.35 594.52 P
10575: 0 F
10576: -0.28 ( cannot) 446.15 594.52 P
10577: 0.53 (e) 120.87 580.52 P
10578: 0.53 (x) 126.02 580.52 P
10579: 0.53 (ecute in parallel with the tasks) 131.84 580.52 P
10580: 3 F
10581: 1.28 (dcvsum\050n-k,a[k];;ry\051) 283.67 580.52 P
10582: 0 F
10583: 0.53 ( and) 427.67 580.52 P
10584: 3 F
10585: 1.28 (dcv-) 452.06 580.52 P
10586: 3.48 (sum\050k,a;;rx\051) 120.87 566.52 P
10587: 0 F
10588: 1.45 (. Similarly) 207.27 566.52 P
10589: 1.45 (, the e) 258.61 566.52 P
10590: 1.45 (xpression for the) 290.33 566.52 P
10591: 3 F
10592: 3.48 (_ready) 378.33 566.52 P
10593: 0 F
10594: 1.45 ( \337ag can be) 421.53 566.52 P
10595: (determined for the fourth and other child tasks of a routine.) 120.87 552.52 T
10596: -0.09 (The abo) 137.88 538.52 P
10597: -0.09 (v) 176.59 538.52 P
10598: -0.09 (e description simpli\336es the compiler\325) 182.41 538.52 P
10599: -0.09 (s deri) 360.04 538.52 P
10600: -0.09 (v) 385.98 538.52 P
10601: -0.09 (ation of an e) 391.68 538.52 P
10602: -0.09 (xpres-) 450.87 538.52 P
10603: 121 682/G1017399 FmPA
10604: 0.28 (sion for) 120.87 524.52 P
10605: 3 F
10606: 0.67 (_ready) 161.42 524.52 P
10607: 0 F
10608: 0.28 (. F) 203.84 524.52 P
10609: 0.28 (or e) 216.62 524.52 P
10610: 0.28 (xample, what if the second and third tasks of some) 235.04 524.52 P
10611: 0.01 (routine are independent of each other) 120.87 510.51 P
10612: 0.01 (, b) 299.39 510.51 P
10613: 0.01 (ut each depends on the \336rst task? If) 311.15 510.51 P
10614: 3.14 (all three tasks are placed onto the stack, then a system task inserted) 120.87 496.51 P
10615: 0.98 (between the \336rst and second task could change) 120.87 482.51 P
10616: 3 F
10617: 2.36 (_ready) 356.69 482.51 P
10618: 0 F
10619: 0.98 ( from) 399.89 482.51 P
10620: 3 F
10621: 2.36 (0) 431.18 482.51 P
10622: 0 F
10623: 0.98 ( to) 438.38 482.51 P
10624: 3 F
10625: 2.36 (1) 455.68 482.51 P
10626: 0 F
10627: 0.98 ( for) 462.89 482.51 P
10628: 1.27 (the second and third tasks after the \336rst task has e) 120.87 468.51 P
10629: 1.27 (x) 371.38 468.51 P
10630: 1.27 (ecuted. Alternati) 377.2 468.51 P
10631: 1.27 (v) 458.16 468.51 P
10632: 1.27 (ely) 463.98 468.51 P
10633: 1.27 (,) 477.86 468.51 P
10634: 0.44 (the parent could place just the \336rst task onto the stack. Then after the e) 120.87 454.51 P
10635: 0.44 (x) 465.72 454.51 P
10636: 0.44 (e-) 471.54 454.51 P
10637: 1.14 (cution of the \336rst task, the resumed acti) 120.87 440.51 P
10638: 1.14 (v) 317.85 440.51 P
10639: 1.14 (ation frame of the parent places) 323.55 440.51 P
10640: (the second and third tasks onto the stack, each with) 120.87 426.51 T
10641: 3 F
10642: (_ready=1) 369.83 426.51 T
10643: 0 F
10644: (.) 427.43 426.51 T
10645: 0.94 (In order to determine if tw) 137.88 412.51 P
10646: 0.94 (o tasks are independent, all the ef) 269.4 412.51 P
10647: 0.94 (fects of a) 435.01 412.51 P
10648: 121 556/G1017434 FmPA
10649: 2.26 (task ha) 120.87 398.51 P
10650: 2.26 (v) 156.55 398.51 P
10651: 2.26 (e to be declared [Data\337o) 162.37 398.51 P
10652: 2.26 (w][TSIA]. These include input/output,) 289.09 398.51 P
10653: 1.11 (global items and other nonlocal ef) 120.87 384.51 P
10654: 1.11 (fects. F) 289.78 384.51 P
10655: 1.11 (or e) 326.05 384.51 P
10656: 1.11 (xample, a routine to print a) 345.3 384.51 P
10657: 0.76 (character on standard output is declared as) 120.87 370.51 P
10658: 3 F
10659: 1.82 (putc\050char) 333.1 370.51 P
10660: 1.82 (c;;\051) 405.1 370.51 P
10661: 1.82 (\050;std-) 437.66 370.51 P
10662: 4.89 (out;\051) 120.87 356.51 P
10663: 0 F
10664: 2.04 (. Nonlocal ef) 156.87 356.51 P
10665: 2.04 (fects are declared in the second set of parentheses.) 222.96 356.51 P
10666: 1.64 (Routines are declared in header \336les, as in C, or via other mechanisms.) 120.87 342.51 P
10667: (Then in the routine) 120.87 328.51 T
10668: 3 F
10669: (putab\050;;\051\050;stdout;\051 {putc\050'a';;\051;putc\050'b';;\051;}) 149.21 314.52 T
10670: 121 458/G1017476 FmPA
10671: 0 F
10672: -0.24 (the) 120.87 300.52 P
10673: 3 F
10674: -0.57 (putc) 138.29 300.52 P
10675: 0 F
10676: -0.24 ( tasks are not independent since each modi\336es) 167.1 300.52 P
10677: 3 F
10678: -0.57 (stdout) 389.82 300.52 P
10679: 0 F
10680: -0.24 (. The dec-) 433.02 300.52 P
10681: 121 444/G1017487 FmPA
10682: (laration of nonlocal ef) 120.87 286.52 T
10683: (fects also has other moti) 226.88 286.52 T
10684: (v) 343.23 286.52 T
10685: (ations [Scope].) 348.93 286.52 T
10686: 0.23 (The strict e) 137.88 272.52 P
10687: 0.23 (v) 192.02 272.52 P
10688: 0.23 (aluation of this presentation requires the routine) 197.72 272.52 P
10689: 3 F
10690: 0.55 (putab) 432.3 272.52 P
10691: 0 F
10692: 0.23 ( to) 468.3 272.52 P
10693: 121 416/G1017493 FmPA
10694: 5.98 (declare the nonlocal ef) 120.87 258.52 P
10695: 5.98 (fect) 247.48 258.52 P
10696: 3 F
10697: 14.36 (\050;stdout;\051) 274.45 258.52 P
10698: 0 F
10699: 5.98 (. Otherwise the e) 346.45 258.52 P
10700: 5.98 (xample) 445.53 258.52 P
10701: 3 F
10702: 0.42 (putab\050;;\051;) 120.87 244.52 P
10703: 0.42 (putc\050'c';;\051) 196.04 244.52 P
10704: 0 F
10705: 0.17 ( could output the correct) 275.24 244.52 P
10706: 3 F
10707: 0.42 (abc) 396.42 244.52 P
10708: 0 F
10709: 0.17 ( or the incor-) 418.02 244.52 P
10710: 0.27 (rect) 120.87 230.52 P
10711: 3 F
10712: 0.66 (cab) 142.13 230.52 P
10713: 0 F
10714: 0.27 (. In general, the declarations of nonlocal ef) 163.25 230.52 P
10715: 0.27 (fects need to be propa-) 370.47 230.52 P
10716: 1.35 (g) 120.87 216.52 P
10717: 1.35 (ated up the call chain of the application de\336nition. Such propag) 126.81 216.52 P
10718: 1.35 (ation is) 444.51 216.52 P
10719: 0.8 (tedious and error) 120.87 202.52 P
10720: 0.8 (-prone if performed manually) 203.53 202.52 P
10721: 0.8 (. Thus the propag) 347.43 202.52 P
10722: 0.8 (ation pre-) 433.75 202.52 P
10723: 0.35 (sumably w) 120.87 188.52 P
10724: 0.35 (ould be performed automatically by the compiler or some other) 173.43 188.52 P
10725: (tool.) 120.87 174.52 T
10726: 1.71 (Instead of ha) 137.88 160.52 P
10727: 1.71 (ving the compiler transparently set the) 203.03 160.52 P
10728: 3 F
10729: 4.1 (_ready) 400.58 160.52 P
10730: 0 F
10731: 1.71 ( \337ag, it) 443.78 160.52 P
10732: 121 304/G1021305 FmPA
10733: 1.72 (could be e) 120.87 146.52 P
10734: 1.72 (xplicitly set in the application de\336nition. F) 173.44 146.52 P
10735: 1.72 (or e) 387.9 146.52 P
10736: 1.72 (xample, this is) 407.76 146.52 P
10737: 3.3 (essentially the purpose of the) 120.87 132.52 P
10738: 3 F
10739: 7.91 (spawn) 280.34 132.52 P
10740: 0 F
10741: 3.3 ( and) 316.34 132.52 P
10742: 3 F
10743: 7.91 (sync) 346.26 132.52 P
10744: 0 F
10745: 3.3 ( k) 375.06 132.52 P
10746: 3.3 (e) 387.24 132.52 P
10747: 3.3 (yw) 392.39 132.52 P
10748: 3.3 (ords of Cilk-2) 406.93 132.52 P
10749: 0 0 0 1 0 0 0 K
10750: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
10751: [/Dest/P.33/DEST FmPD2
10752: [/Rect[121 632 167 645]/Border[0 0 0]/Page 31/View[/XYZ null 170 565 FmDC exch pop null]/LNK FmPD
10753: [/Rect[179 590 225 603]/Border[0 0 0]/Page 32/View[/XYZ null 170 291 FmDC exch pop null]/LNK FmPD
10754: [/Rect[302 394 336 407]/Border[0 0 0]/Page 43/View[/XYZ null 121 676 FmDC exch pop null]/LNK FmPD
10755: [/Rect[250 394 302 407]/Border[0 0 0]/Page 42/View[/XYZ null 121 746 FmDC exch pop null]/LNK FmPD
10756: [/Rect[381 282 418 295]/Border[0 0 0]/Page 42/View[/XYZ null 121 326 FmDC exch pop null]/LNK FmPD
10757: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
10758: FMENDPAGE
10759: %%EndPage: "33" 33
10760: %%Page: "34" 34
10761: 595.28 839.05 0 FMBEGINPAGE
10762: [0 0 0 1 0 0 0]
10763: [ 0 1 1 0 1 0 0]
10764: [ 1 0 1 0 0 1 0]
10765: [ 1 1 0 0 0 0 1]
10766: [ 1 0 0 0 0 1 1]
10767: [ 0 1 0 0 1 0 1]
10768: [ 0 0 1 0 1 1 0]
10769: 7 FrameSetSepColors
10770: FrameNoSep
10771: 0 0 0 1 0 0 0 K
10772: 0 0 0 1 0 0 0 K
10773: 0 0 0 1 0 0 0 K
10774: 90 959/G837264 FmPA
10775: 0 12 Q
10776: 0 X
10777: 0 0 0 1 0 0 0 K
10778: (34) 289.29 93.77 T
10779: 40 238/G837268 FmPA
10780: 1.28 (through Cilk-5. These successors to Cilk-NO) 120.87 664.52 P
10781: 1.28 (W support a parallel e) 343.49 664.52 P
10782: 1.28 (x) 454.39 664.52 P
10783: 1.28 (ecu-) 460.21 664.52 P
10784: 0.5 (tion, b) 120.87 650.52 P
10785: 0.5 (ut abandon transparenc) 151.79 650.52 P
10786: 0.5 (y) 263.9 650.52 P
10787: 0.5 (. Only a transparent e) 269.12 650.52 P
10788: 0.5 (x) 373.9 650.52 P
10789: 0.5 (ecution is pursued in) 379.72 650.52 P
10790: (this presentation.) 120.87 636.52 T
10791: 2.03 (The) 137.88 622.52 P
10792: 3 F
10793: 4.86 (_ready) 161.56 622.52 P
10794: 0 F
10795: 2.03 ( \337ag and the other tw) 204.76 622.52 P
10796: 2.03 (o small changes to the compiled) 316.42 622.52 P
10797: 121 766/G1017579 FmPA
10798: (TSIA code allo) 120.87 608.52 T
10799: (w for the follo) 193.89 608.52 T
10800: (wing parallel e) 262.58 608.52 T
10801: (x) 333.71 608.52 T
10802: (ecution.) 339.53 608.52 T
10803: 1.54 (Each computer processor of the parallel e) 137.88 594.52 P
10804: 1.54 (x) 346.2 594.52 P
10805: 1.54 (ecution has its o) 352.02 594.52 P
10806: 1.54 (wn stack,) 434 594.52 P
10807: 121 738/G1018451 FmPA
10808: 0.06 (stack pointer and e) 120.87 580.52 P
10809: 0.06 (x) 211.19 580.52 P
10810: 0.06 (ecution of the routine) 217.01 580.52 P
10811: 3 F
10812: 0.15 (_xtop) 323.25 580.52 P
10813: 0 F
10814: 0.06 (. The stacks are in shared) 359.25 580.52 P
10815: (memory) 120.87 566.52 T
10816: (.) 160.08 566.52 T
10817: -0.06 (The parallel e) 137.88 552.52 P
10818: -0.06 (x) 203.56 552.52 P
10819: -0.06 (ecution of an application on three processors is sho) 209.38 552.52 P
10820: -0.06 (wn in) 453.92 552.52 P
10821: 121 696/G1018611 FmPA
10822: (Figure) 120.87 538.52 T
10823: (21. Each part a\051 through e\051 sho) 155.2 538.52 T
10824: (ws a snapshot of the three stacks.) 303.2 538.52 T
10825: 0.54 (The start of the application e) 137.88 524.52 P
10826: 0.54 (x) 278.03 524.52 P
10827: 0.54 (ecution is illustrated in Figure) 283.85 524.52 P
10828: 0.54 (21a\051. One) 433.01 524.52 P
10829: 121 668/G1018452 FmPA
10830: 0.71 (of the stacks contains the initial frame of the application and a fe) 120.87 510.51 P
10831: 0.71 (w) 439.69 510.51 P
10832: 3 F
10833: 1.7 (_cop) 452.06 510.51 P
10834: 0 F
10835: -0.16 (frames. Each of the other stacks contains a) 120.87 496.51 P
10836: 3 F
10837: -0.39 (_thief) 327.19 496.51 P
10838: 0 F
10839: -0.16 ( frame. In the e) 370.39 496.51 P
10840: -0.16 (xample,) 442.53 496.51 P
10841: -0.28 (the initial application frame is) 120.87 482.51 P
10842: 3 F
10843: -0.68 (d\0509,b;;y\051) 266.44 482.51 P
10844: 3 9.6 Q
10845: -0.55 (1) 331.24 479.51 P
10846: 0 12 Q
10847: -0.28 (, where for the con) 337 482.51 P
10848: -0.28 (v) 425.68 482.51 P
10849: -0.28 (enience of) 431.5 482.51 P
10850: 0.54 (the illustration,) 120.87 468.51 P
10851: 3 F
10852: 1.29 (d) 197.62 468.51 P
10853: 0 F
10854: 0.54 ( is an abbre) 204.82 468.51 P
10855: 0.54 (viation for the routine) 261.12 468.51 P
10856: 3 F
10857: 1.29 (dcvsum) 371.26 468.51 P
10858: 0 F
10859: 0.54 ( of Figure) 414.46 468.51 P
10860: 0.54 (19.) 465.86 468.51 P
10861: 0.37 (Similarly) 120.87 454.51 P
10862: 0.37 (, later snapshots also use) 164.76 454.51 P
10863: 3 F
10864: 0.9 (t) 287.95 454.51 P
10865: 0 F
10866: 0.37 ( an abbre) 295.15 454.51 P
10867: 0.37 (viation for the routine) 339.58 454.51 P
10868: 3 F
10869: 0.9 (tadd) 449.06 454.51 P
10870: 0 F
10871: 0.37 (.) 477.86 454.51 P
10872: 1.4 (The subscript in each frame illustrates the v) 120.87 440.51 P
10873: 1.4 (alue of the) 340.01 440.51 P
10874: 3 F
10875: 3.36 (_ready) 397.86 440.51 P
10876: 0 F
10877: 1.4 ( \337ag. In) 441.06 440.51 P
10878: 1.91 (addition to or instead of the) 120.87 426.51 P
10879: 3 F
10880: 4.59 (_cop) 267.65 426.51 P
10881: 0 F
10882: 1.91 ( frames, there could be other frames) 296.45 426.51 P
10883: (which \324clean up\325 once the application e) 120.87 412.51 T
10884: (x) 309.3 412.51 T
10885: (ecution has completed.) 315.12 412.51 T
10886: 0.94 (When e) 137.88 398.51 P
10887: 0.94 (x) 175.62 398.51 P
10888: 0.94 (ecuted, a) 181.44 398.51 P
10889: 3 F
10890: 2.25 (_cop) 228.96 398.51 P
10891: 0 F
10892: 0.94 ( frame will remo) 257.76 398.51 P
10893: 0.94 (v) 340.72 398.51 P
10894: 0.94 (e a corresponding) 346.54 398.51 P
10895: 3 F
10896: 2.25 (_thief) 437.66 398.51 P
10897: 121 542/G1018477 FmPA
10898: 0 F
10899: 0.37 (frame by replacing it with a) 120.87 384.51 P
10900: 3 F
10901: 0.88 (_skip) 259.03 384.51 P
10902: 0 F
10903: 0.37 ( frame. As introduced in section) 295.03 384.51 P
10904: 0.37 (9, the) 453.83 384.51 P
10905: 0.47 (e) 120.87 370.51 P
10906: 0.47 (x) 126.02 370.51 P
10907: 0.47 (ecution of the) 131.84 370.51 P
10908: 3 F
10909: 1.12 (_skip) 202.22 370.51 P
10910: 0 F
10911: 0.47 (routine just remo) 246.54 370.51 P
10912: 0.47 (v) 329.28 370.51 P
10913: 0.47 (es its frame from the stack. In) 335.1 370.51 P
10914: 2.67 (order to illustrate the correspondence, each) 120.87 356.51 P
10915: 3 F
10916: 6.42 (_cop) 346.52 356.51 P
10917: 0 F
10918: 2.67 ( frame and) 375.32 356.51 P
10919: 3 F
10920: 6.42 (_thief) 437.66 356.51 P
10921: 0 F
10922: 4.12 (frame is labelled in Figure) 120.87 342.51 P
10923: 4.12 (21. F) 266.99 342.51 P
10924: 4.12 (or e) 295.6 342.51 P
10925: 4.12 (xample,) 317.86 342.51 P
10926: 3 F
10927: 9.88 (_copA) 363.3 342.51 P
10928: 0 F
10929: 4.12 ( corresponds to) 399.3 342.51 P
10930: 3 F
10931: 1.57 (_thiefA) 120.87 328.51 P
10932: 0 F
10933: 0.65 (. The correspondence is maintained by the) 171.27 328.51 P
10934: 3 F
10935: 1.57 (_cop) 381.79 328.51 P
10936: 0 F
10937: 0.65 ( frame; it con-) 410.59 328.51 P
10938: (tains a pointer to the) 120.87 314.52 T
10939: 3 F
10940: (_thief) 221.86 314.52 T
10941: 0 F
10942: ( frame.) 265.06 314.52 T
10943: 1.36 (When e) 137.88 300.52 P
10944: 1.36 (x) 176.04 300.52 P
10945: 1.36 (ecuted, a) 181.86 300.52 P
10946: 3 F
10947: 3.26 (_thief) 230.22 300.52 P
10948: 0 F
10949: 1.36 ( frame steals the bottommost ready frame) 273.42 300.52 P
10950: 121 444/G1018544 FmPA
10951: 0.07 (from a stack chosen at random. If there is no ready frame on that stack, the) 120.87 286.52 P
10952: 3 F
10953: -0.3 (_thief) 120.87 272.52 P
10954: 0 F
10955: -0.13 ( tries another random randomly chosen stack. Since it is in an in\336-) 164.07 272.52 P
10956: -0.24 (nite loop, a) 120.87 258.52 P
10957: 3 F
10958: -0.57 (_thief) 176.82 258.52 P
10959: 0 F
10960: -0.24 ( ne) 220.02 258.52 P
10961: -0.24 (v) 233.81 258.52 P
10962: -0.24 (er remo) 239.63 258.52 P
10963: -0.24 (v) 276.2 258.52 P
10964: -0.24 (es itself from the stack. A) 282.02 258.52 P
10965: 3 F
10966: -0.57 (_thief) 406.91 258.52 P
10967: 0 F
10968: -0.24 ( frame) 450.11 258.52 P
10969: (only can be remo) 120.87 244.52 T
10970: (v) 203.67 244.52 T
10971: (ed from the stack by its corresponding) 209.49 244.52 T
10972: 3 F
10973: (_cop) 396.46 244.52 T
10974: 0 F
10975: (.) 425.26 244.52 T
10976: 5.02 (The e) 137.88 230.52 P
10977: 5.02 (x) 169.7 230.52 P
10978: 5.02 (ecution of the initial application frame) 175.52 230.52 P
10979: 3 F
10980: 12.05 (d\0509,b;;y\051) 392.95 230.52 P
10981: 3 9.6 Q
10982: 9.64 (1) 457.75 227.52 P
10983: 0 12 Q
10984: 5.02 ( in) 463.51 230.52 P
10985: 121 374/G1018570 FmPA
10986: 6.36 (Figure) 120.87 216.52 P
10987: 6.36 (21a\051 yields the frames) 155.2 216.52 P
10988: 3 F
10989: 15.26 (d\0504,b[0];;r03\051) 289.94 216.52 P
10990: 3 9.6 Q
10991: 12.21 (1) 390.74 213.52 P
10992: 0 12 Q
10993: 6.36 (,) 396.5 216.52 P
10994: 3 F
10995: 15.26 (d\0505,b[4];;) 408.86 216.52 P
10996: 6.42 (r48\051) 120.87 202.52 P
10997: 3 9.6 Q
10998: 5.13 (1) 149.67 199.52 P
10999: 0 12 Q
11000: 2.67 (,) 155.43 202.52 P
11001: 3 F
11002: 6.42 (t\050r03,r48;;y\051) 164.1 202.52 P
11003: 3 9.6 Q
11004: 5.13 (0) 257.7 199.52 P
11005: 0 12 Q
11006: 2.67 (, as sho) 263.46 202.52 P
11007: 2.67 (wn in Figure) 304.17 202.52 P
11008: 2.67 (21b\051. The illustration) 373.85 202.52 P
11009: (emphasizes the ne) 120.87 188.52 T
11010: (w or changed frames between the snapshots.) 207.88 188.52 T
11011: 0.81 (As for an) 137.88 174.52 P
11012: 0.81 (y arc in the dag of an application e) 183.96 174.52 P
11013: 0.81 (x) 356.18 174.52 P
11014: 0.81 (ecution, the name of the) 362 174.52 P
11015: 121 318/G1018672 FmPA
11016: 1.48 (item) 120.87 160.52 P
11017: 3 F
11018: 3.55 (r03) 146.68 160.52 P
11019: 0 F
11020: 1.48 ( is arbitrary in Figure) 168.28 160.52 P
11021: 1.48 (21b\051. It is simply a con) 279.18 160.52 P
11022: 1.48 (v) 396.76 160.52 P
11023: 1.48 (enient means to) 402.58 160.52 P
11024: 0.26 (refer to a location in the frame) 120.87 146.52 P
11025: 3 F
11026: 0.64 (t\050r03,r48;;y\051) 271.68 146.52 P
11027: 0 F
11028: 0.26 (. The name) 365.28 146.52 P
11029: 3 F
11030: 0.64 (r03) 422.73 146.52 P
11031: 0 F
11032: 0.26 ( is used) 444.33 146.52 P
11033: 0.01 (in the illustration since it corresponds to the elements) 120.87 132.52 P
11034: 3 F
11035: 0.02 (b[0]) 379.92 132.52 P
11036: 0 F
11037: 0.01 ( through) 408.71 132.52 P
11038: 3 F
11039: 0.02 (b[3]) 452.06 132.52 P
11040: 0 0 0 1 0 0 0 K
11041: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
11042: [/Dest/P.34/DEST FmPD2
11043: [/Rect[399 520 445 533]/Border[0 0 0]/Page 35/View[/XYZ null 170 284 FmDC exch pop null]/LNK FmPD
11044: [/Rect[432 464 478 477]/Border[0 0 0]/Page 31/View[/XYZ null 170 565 FmDC exch pop null]/LNK FmPD
11045: [/Rect[454 380 460 393]/Border[0 0 0]/Page 27/View[/XYZ null 136 816 FmDC exch pop null]/LNK FmPD
11046: [/Rect[233 338 279 351]/Border[0 0 0]/Page 35/View[/XYZ null 170 284 FmDC exch pop null]/LNK FmPD
11047: [/Rect[121 211 167 225]/Border[0 0 0]/Page 35/View[/XYZ null 170 284 FmDC exch pop null]/LNK FmPD
11048: [/Rect[340 197 386 211]/Border[0 0 0]/Page 35/View[/XYZ null 170 284 FmDC exch pop null]/LNK FmPD
11049: [/Rect[121 534 167 547]/Border[0 0 0]/Page 35/View[/XYZ null 170 284 FmDC exch pop null]/LNK FmPD
11050: [/Rect[245 156 291 169]/Border[0 0 0]/Page 35/View[/XYZ null 170 284 FmDC exch pop null]/LNK FmPD
11051: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
11052: FMENDPAGE
11053: %%EndPage: "34" 34
11054: %%Page: "35" 35
11055: 595.28 839.05 0 FMBEGINPAGE
11056: [0 0 0 1 0 0 0]
11057: [ 0 1 1 0 1 0 0]
11058: [ 1 0 1 0 0 1 0]
11059: [ 1 1 0 0 0 0 1]
11060: [ 1 0 0 0 0 1 1]
11061: [ 0 1 0 0 1 0 1]
11062: [ 0 0 1 0 1 1 0]
11063: 7 FrameSetSepColors
11064: FrameNoSep
11065: 0 0 0 1 0 0 0 K
11066: 0 0 0 1 0 0 0 K
11067: 0 0 0 1 0 0 0 K
11068: 90 959/G837264 FmPA
11069: 0 12 Q
11070: 0 X
11071: 0 0 0 1 0 0 0 K
11072: (35) 289.29 93.77 T
11073: 40 238/G837268 FmPA
11074: 0 0 0 1 0 0 0 K
11075: 0 0 0 1 0 0 0 K
11076: 0 0 0 1 0 0 0 K
11077: 121 747/G1021328 FmPA
11078: 0 0 0 1 0 0 0 K
11079: 0 0 0 1 0 0 0 K
11080: 121 649/G1021350 FmPA
11081: 0 0 0 1 0 0 0 K
11082: 0 0 0 1 0 0 0 K
11083: 121 547/G1021376 FmPA
11084: 0 0 0 1 0 0 0 K
11085: 0 0 0 1 0 0 0 K
11086: 121 418/G1021412 FmPA
11087: 0 0 0 1 0 0 0 K
11088: 0 0 0 1 0 0 0 K
11089: 121 293/G1021443 FmPA
11090: 0 0 0 1 0 0 0 K
11091: 121 286/G1021445 FmPA
11092: (Figure) 123.87 131.89 T
11093: (21) 158.2 131.89 T
11094: (Five snapshots of a parallel execution on three processors.) 172.06 131.89 T
11095: 121 276/G1021447 FmPA
11096: 120.87 672.27 120.87 128.14 2 L
11097: V
11098: 0.5 H
11099: 0 Z
11100: N
11101: 480.87 672.27 480.87 128.14 2 L
11102: V
11103: N
11104: 120.62 672.52 481.12 672.52 2 L
11105: V
11106: N
11107: 120.62 600.32 481.12 600.32 2 L
11108: V
11109: 2 H
11110: N
11111: 120.62 502.61 481.12 502.61 2 L
11112: V
11113: N
11114: 120.62 400.91 481.12 400.91 2 L
11115: V
11116: N
11117: 120.62 271.5 481.12 271.5 2 L
11118: V
11119: N
11120: 120.62 146.89 481.12 146.89 2 L
11121: V
11122: 0.5 H
11123: N
11124: 120.62 127.89 481.12 127.89 2 L
11125: V
11126: N
11127: 120.87 600.32 480.87 672.52 C
11128: 0 0 0 1 0 0 0 K
11129: 120.87 607.32 480.87 672.52 C
11130: 0 0 0 1 0 0 0 K
11131: 3 11 Q
11132: 0 X
11133: 0 0 0 1 0 0 0 K
11134: (_copA) 281.15 627.73 T
11135: 3 8.8 Q
11136: (0) 314.15 624.98 T
11137: 3 11 Q
11138: (_copB) 281.15 641.9 T
11139: 3 8.8 Q
11140: (0) 314.15 639.15 T
11141: 246.43 637.16 354.15 651.33 R
11142: 0.5 H
11143: 2 Z
11144: N
11145: 3 11 Q
11146: (d\0509,b;;y\051) 267.95 656.07 T
11147: 3 8.8 Q
11148: (1) 327.35 653.32 T
11149: 246.43 622.99 354.15 637.16 R
11150: N
11151: 3 11 Q
11152: (_thiefB) 158.33 627.73 T
11153: 3 8.8 Q
11154: (0) 204.53 624.98 T
11155: 3 11 Q
11156: (_thiefA) 390.77 627.73 T
11157: 3 8.8 Q
11158: (0) 436.97 624.98 T
11159: 246.43 651.39 354.15 665.56 R
11160: N
11161: 3 11 Q
11162: (PROCESSOR) 263.99 611.04 T
11163: (L) 329.99 611.04 T
11164: (PROCESSOR) 147.77 611.04 T
11165: (K) 213.77 611.04 T
11166: (PROCESSOR) 380.21 611.04 T
11167: (M) 446.21 611.04 T
11168: 1 12 Q
11169: (a\051) 126.54 655.48 T
11170: 362.65 622.99 470.37 637.16 R
11171: N
11172: 130.21 622.99 237.93 637.16 R
11173: N
11174: 0 0 0 1 0 0 0 K
11175: 120.87 600.32 480.87 672.52 C
11176: 0 -0.71 595.28 839.76 C
11177: 120.87 502.61 480.87 600.32 C
11178: 120.87 509.61 480.87 600.32 C
11179: 0 0 0 1 0 0 0 K
11180: 3 11 Q
11181: 0 X
11182: 0 0 0 1 0 0 0 K
11183: (_copA) 281.15 529.03 T
11184: 3 8.8 Q
11185: (0) 314.15 526.28 T
11186: 3 11 Q
11187: (_copB) 281.15 543.21 T
11188: 3 8.8 Q
11189: (0) 314.15 540.46 T
11190: 246.43 538.47 354.15 552.64 R
11191: 0.5 H
11192: 2 Z
11193: N
11194: 4 11 Q
11195: (t\050r03,r48;;y\051) 254.75 557.38 T
11196: 4 8.8 Q
11197: (0) 340.55 554.63 T
11198: 246.43 552.64 354.15 566.81 R
11199: 1 H
11200: N
11201: 246.43 524.29 354.15 538.47 R
11202: 0.5 H
11203: N
11204: 3 11 Q
11205: (_thiefB) 158.33 529.03 T
11206: 3 8.8 Q
11207: (0) 204.53 526.28 T
11208: 3 11 Q
11209: (_thiefA) 390.77 529.03 T
11210: 3 8.8 Q
11211: (0) 436.97 526.28 T
11212: 3 11 Q
11213: (PROCESSOR) 263.99 512.35 T
11214: (L) 329.99 512.35 T
11215: (PROCESSOR) 147.77 512.35 T
11216: (K) 213.77 512.35 T
11217: (PROCESSOR) 380.21 512.35 T
11218: (M) 446.21 512.35 T
11219: 1 12 Q
11220: (b\051) 126.54 585.13 T
11221: 4 11 Q
11222: (d\0505,b[4];;r48\051) 251.45 571.55 T
11223: 4 8.8 Q
11224: (1) 343.85 568.8 T
11225: 4 11 Q
11226: (d\0504,b[0];;r03\051) 251.45 585.73 T
11227: 4 8.8 Q
11228: (1) 343.85 582.98 T
11229: 246.43 566.81 354.15 580.99 R
11230: 1 H
11231: N
11232: 130.21 524.29 237.93 538.47 R
11233: 0.5 H
11234: N
11235: 246.43 581.09 354.15 595.27 R
11236: 1 H
11237: N
11238: 362.65 524.29 470.37 538.47 R
11239: 0.5 H
11240: N
11241: 0 0 0 1 0 0 0 K
11242: 120.87 502.61 480.87 600.32 C
11243: 0 -0.71 595.28 839.76 C
11244: 120.87 400.91 480.87 502.61 C
11245: 120.87 407.91 480.87 502.61 C
11246: 0 0 0 1 0 0 0 K
11247: 3 11 Q
11248: 0 X
11249: 0 0 0 1 0 0 0 K
11250: (_copA) 283.57 428.9 T
11251: 3 8.8 Q
11252: (0) 316.57 426.15 T
11253: 3 11 Q
11254: (_copB) 283.57 443.07 T
11255: 3 8.8 Q
11256: (0) 316.57 440.32 T
11257: 248.85 438.33 356.56 452.5 R
11258: 0.5 H
11259: 2 Z
11260: N
11261: 3 11 Q
11262: (t\050r03,r48;;y\051) 257.17 457.24 T
11263: 3 8.8 Q
11264: (0) 342.96 454.49 T
11265: 248.85 452.51 356.56 466.68 R
11266: N
11267: 248.85 424.16 356.56 438.33 R
11268: N
11269: 3 11 Q
11270: (_thiefB) 160.74 428.9 T
11271: 3 8.8 Q
11272: (0) 206.95 426.15 T
11273: 132.63 424.16 240.34 438.33 R
11274: N
11275: 3 11 Q
11276: (_thiefA) 393.19 428.9 T
11277: 3 8.8 Q
11278: (0) 439.39 426.15 T
11279: 3 11 Q
11280: (PROCESSOR) 266.4 412.21 T
11281: (L) 332.4 412.21 T
11282: (PROCESSOR) 150.18 412.21 T
11283: (K) 216.18 412.21 T
11284: (PROCESSOR) 382.63 412.21 T
11285: (M) 448.63 412.21 T
11286: 1 12 Q
11287: (c\051) 128.95 484.99 T
11288: 4 11 Q
11289: (_thiefC) 276.96 471.42 T
11290: 4 8.8 Q
11291: (0) 323.17 468.67 T
11292: 3 11 Q
11293: (d\0504,b[0];;r03\051) 253.87 485.59 T
11294: 3 8.8 Q
11295: (1) 346.27 482.84 T
11296: 248.85 466.68 356.56 480.85 R
11297: 1 H
11298: N
11299: 4 11 Q
11300: (_copC) 167.35 443.07 T
11301: 4 8.8 Q
11302: (0) 200.35 440.32 T
11303: 132.63 438.33 240.34 452.5 R
11304: N
11305: 4 11 Q
11306: (d\0505,b[4];;r48\051) 137.65 457.24 T
11307: 4 8.8 Q
11308: (1) 230.04 454.49 T
11309: 132.63 452.51 240.34 466.68 R
11310: N
11311: 248.85 480.96 356.56 495.13 R
11312: 0.5 H
11313: N
11314: 365.07 424.16 472.78 438.33 R
11315: N
11316: 0 0 0 1 0 0 0 K
11317: 120.87 400.91 480.87 502.61 C
11318: 0 -0.71 595.28 839.76 C
11319: 120.87 271.5 480.87 400.91 C
11320: 120.87 278.5 480.87 400.91 C
11321: 0 0 0 1 0 0 0 K
11322: 3 11 Q
11323: 0 X
11324: 0 0 0 1 0 0 0 K
11325: (_copA) 283.57 299.37 T
11326: 3 8.8 Q
11327: (0) 316.57 296.62 T
11328: 3 11 Q
11329: (_copB) 283.57 313.54 T
11330: 3 8.8 Q
11331: (0) 316.57 310.79 T
11332: 248.85 308.8 356.56 322.98 R
11333: 0.5 H
11334: 2 Z
11335: N
11336: 3 11 Q
11337: (t\050r03,r48;;y\051) 257.17 327.72 T
11338: 3 8.8 Q
11339: (0) 342.96 324.97 T
11340: 248.85 322.98 356.56 337.15 R
11341: N
11342: 248.85 294.63 356.56 308.8 R
11343: N
11344: 3 11 Q
11345: (_thiefB) 160.74 299.37 T
11346: 3 8.8 Q
11347: (0) 206.95 296.62 T
11348: 3 11 Q
11349: (_thiefA) 393.19 299.37 T
11350: 3 8.8 Q
11351: (0) 439.39 296.62 T
11352: 3 11 Q
11353: (PROCESSOR) 266.4 282.68 T
11354: (L) 332.4 282.68 T
11355: (PROCESSOR) 150.18 282.68 T
11356: (K) 216.18 282.68 T
11357: (PROCESSOR) 382.63 282.68 T
11358: (M) 448.63 282.68 T
11359: 1 12 Q
11360: (d\051) 128.95 384.02 T
11361: 3 11 Q
11362: (_thiefC) 276.96 341.89 T
11363: 3 8.8 Q
11364: (0) 323.17 339.14 T
11365: 4 11 Q
11366: (t\050r01,r23;;r03\051) 250.57 356.06 T
11367: 4 8.8 Q
11368: (0) 349.57 353.31 T
11369: 248.85 337.15 356.56 351.32 R
11370: N
11371: 132.63 294.63 240.34 308.8 R
11372: N
11373: 248.85 351.43 356.56 365.6 R
11374: 1 H
11375: N
11376: 365.07 294.63 472.78 308.8 R
11377: 0.5 H
11378: N
11379: 4 11 Q
11380: (_thiefD) 276.96 370.45 T
11381: 4 8.8 Q
11382: (0) 323.17 367.7 T
11383: 4 11 Q
11384: (d\0502,b[0];;r01\051) 253.87 384.62 T
11385: 4 8.8 Q
11386: (1) 346.27 381.87 T
11387: 248.85 365.71 356.56 379.88 R
11388: 1 H
11389: N
11390: 248.85 379.99 356.56 394.16 R
11391: N
11392: 4 11 Q
11393: (_copD) 399.79 313.52 T
11394: 4 8.8 Q
11395: (0) 432.79 310.77 T
11396: 365.07 308.79 472.78 322.96 R
11397: N
11398: 4 11 Q
11399: (d\0502,b[2];;r23\051) 370.09 327.7 T
11400: 4 8.8 Q
11401: (1) 462.49 324.95 T
11402: 365.07 322.96 472.78 337.13 R
11403: N
11404: 3 11 Q
11405: (_copC) 167.35 313.59 T
11406: 3 8.8 Q
11407: (0) 200.35 310.84 T
11408: 132.63 308.85 240.34 323.03 R
11409: 0.5 H
11410: N
11411: 0 0 0 1 0 0 0 K
11412: 0 0 0 1 0 0 0 K
11413: 4 11 Q
11414: (t\050r45,r68;;r48\051) 134.35 327.72 T
11415: 4 8.8 Q
11416: (0) 233.35 324.97 T
11417: 132.63 322.98 240.34 337.15 R
11418: 1 H
11419: N
11420: 0 0 0 1 0 0 0 K
11421: 120.87 271.5 480.87 400.91 C
11422: 0 -0.71 595.28 839.76 C
11423: 120.87 146.89 480.87 271.5 C
11424: 120.87 153.89 480.87 271.5 C
11425: 0 0 0 1 0 0 0 K
11426: 3 11 Q
11427: 0 X
11428: 0 0 0 1 0 0 0 K
11429: (_copA) 283.57 172.14 T
11430: 3 8.8 Q
11431: (0) 316.57 169.39 T
11432: 3 11 Q
11433: (_copB) 283.57 186.31 T
11434: 3 8.8 Q
11435: (0) 316.57 183.56 T
11436: 248.85 181.57 356.56 195.75 R
11437: 0.5 H
11438: 2 Z
11439: N
11440: 3 11 Q
11441: (t\050r03,r48;;y\051) 257.17 200.48 T
11442: 3 8.8 Q
11443: (0) 342.96 197.73 T
11444: 248.85 195.75 356.56 209.92 R
11445: N
11446: 248.85 167.4 356.56 181.57 R
11447: N
11448: 3 11 Q
11449: (_thiefB) 160.74 172.14 T
11450: 3 8.8 Q
11451: (0) 206.95 169.39 T
11452: 3 11 Q
11453: (_thiefA) 393.19 172.14 T
11454: 3 8.8 Q
11455: (0) 439.39 169.39 T
11456: 3 11 Q
11457: (PROCESSOR) 266.4 155.45 T
11458: (L) 332.4 155.45 T
11459: (PROCESSOR) 150.18 155.45 T
11460: (K) 216.18 155.45 T
11461: (PROCESSOR) 382.63 155.45 T
11462: (M) 448.63 155.45 T
11463: 1 12 Q
11464: (e\051) 128.95 256.62 T
11465: 4 11 Q
11466: (_skip) 283.57 214.66 T
11467: 4 8.8 Q
11468: (0) 316.57 211.91 T
11469: 3 11 Q
11470: (t\050r01,r23;;r03\051) 250.57 228.83 T
11471: 3 8.8 Q
11472: (0) 349.57 226.08 T
11473: 248.85 209.92 356.56 224.09 R
11474: 1 H
11475: N
11476: 132.63 167.4 240.34 181.57 R
11477: 0.5 H
11478: N
11479: 248.85 224.2 356.56 238.37 R
11480: N
11481: 365.07 167.4 472.78 181.57 R
11482: N
11483: 3 11 Q
11484: (_copD) 399.79 186.07 T
11485: 3 8.8 Q
11486: (0) 432.79 183.32 T
11487: 365.07 181.33 472.78 195.5 R
11488: N
11489: 3 11 Q
11490: (d\0502,b[2];;r23\051) 370.09 200.24 T
11491: 3 8.8 Q
11492: (1) 462.49 197.49 T
11493: 365.07 195.5 472.78 209.68 R
11494: N
11495: 0 0 0 1 0 0 0 K
11496: 0 0 0 1 0 0 0 K
11497: 3 11 Q
11498: (_thiefD) 276.96 243.04 T
11499: 3 8.8 Q
11500: (0) 323.17 240.29 T
11501: 3 11 Q
11502: (d\0502,b[0];;r01\051) 253.87 257.21 T
11503: 3 8.8 Q
11504: (1) 346.27 254.46 T
11505: 248.85 238.3 356.56 252.47 R
11506: N
11507: 248.85 252.58 356.56 266.75 R
11508: N
11509: 0 0 0 1 0 0 0 K
11510: 120.87 146.89 480.87 271.5 C
11511: 0 -0.71 595.28 839.76 C
11512: 0 0 0 1 0 0 0 K
11513: 0 0 0 1 0 0 0 K
11514: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
11515: [/Dest/P.35/DEST FmPD2
11516: 170 284/M9.23781.Figure.Figure21.A.parallel.execution.on.three.processors FmPA
11517: 170 284/I1.1021446 FmPA
11518: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
11519: FMENDPAGE
11520: %%EndPage: "35" 35
11521: %%Page: "36" 36
11522: 595.28 839.05 0 FMBEGINPAGE
11523: [0 0 0 1 0 0 0]
11524: [ 0 1 1 0 1 0 0]
11525: [ 1 0 1 0 0 1 0]
11526: [ 1 1 0 0 0 0 1]
11527: [ 1 0 0 0 0 1 1]
11528: [ 0 1 0 0 1 0 1]
11529: [ 0 0 1 0 1 1 0]
11530: 7 FrameSetSepColors
11531: FrameNoSep
11532: 0 0 0 1 0 0 0 K
11533: 0 0 0 1 0 0 0 K
11534: 0 0 0 1 0 0 0 K
11535: 90 959/G837264 FmPA
11536: 0 12 Q
11537: 0 X
11538: 0 0 0 1 0 0 0 K
11539: (36) 289.29 93.77 T
11540: 40 238/G837268 FmPA
11541: 2.07 (in the task) 120.87 664.52 P
11542: 3 F
11543: 4.95 (d\0504,b[0];;r03\051) 179.39 664.52 P
11544: 0 F
11545: 2.07 (. Similarly) 280.19 664.52 P
11546: 2.07 (, the names of other items in) 332.15 664.52 P
11547: 0.86 (Figure) 120.87 650.52 P
11548: 0.86 (21 are arbitrary and are chosen for the con) 155.2 650.52 P
11549: 0.86 (v) 364.83 650.52 P
11550: 0.86 (enience of the illustra-) 370.65 650.52 P
11551: (tion.) 120.87 636.52 T
11552: 2 (The snapshot in Figure) 137.88 622.52 P
11553: 2 (21c\051 assumes an e) 257.2 622.52 P
11554: 2 (x) 350 622.52 P
11555: 2 (ecution where) 355.82 622.52 P
11556: 3 F
11557: 4.8 (_thiefB) 430.46 622.52 P
11558: 121 766/G1018645 FmPA
11559: 0 F
11560: 0.87 (has successfully stolen the frame) 120.87 608.52 P
11561: 3 F
11562: 2.09 (d\0505,b[4];;r48\051) 286.18 608.52 P
11563: 3 9.6 Q
11564: 1.67 (1) 386.98 605.52 P
11565: 0 12 Q
11566: 0.87 ( from the stack of) 392.74 608.52 P
11567: 3 F
11568: -0.6 (PROCESSOR L) 120.87 594.52 P
11569: 0 F
11570: -0.25 (.) 199.47 594.52 P
11571: 3 F
11572: -0.6 (_thiefB) 205.22 594.52 P
11573: 0 F
11574: -0.25 ( chose to steal that particular frame since it w) 255.62 594.52 P
11575: -0.25 (as) 470.86 594.52 P
11576: 4.07 (the bottommost ready frame on that stack. After \336nding the frame,) 120.87 580.52 P
11577: 3 F
11578: 15.05 (_thiefB) 120.87 566.52 P
11579: 0 F
11580: 6.27 ( mo) 171.27 566.52 P
11581: 6.27 (v) 195.69 566.52 P
11582: 6.27 (ed the frame to its o) 201.51 566.52 P
11583: 6.27 (wn stack. On the stack of) 328.21 566.52 P
11584: 3 F
11585: 11.04 (PROCESSOR) 120.87 552.52 P
11586: 11.04 (L) 192.87 552.52 P
11587: 0 F
11588: 4.6 (,) 200.07 552.52 P
11589: 3 F
11590: 11.04 (_thiefB) 210.67 552.52 P
11591: 0 F
11592: 4.6 ( replaced the stolen frame by the frame) 261.07 552.52 P
11593: 3 F
11594: 3.91 (_thiefC) 120.87 538.52 P
11595: 0 F
11596: 1.63 (. The length of the) 171.27 538.52 P
11597: 3 F
11598: 3.91 (_thiefC) 270.73 538.52 P
11599: 0 F
11600: 1.63 ( frame thus is that of the stolen) 321.14 538.52 P
11601: 1.21 (frame. The corresponding) 120.87 524.52 P
11602: 3 F
11603: 2.91 (_copC) 251.8 524.52 P
11604: 0 F
11605: 1.21 ( frame w) 287.8 524.52 P
11606: 1.21 (as placed by) 332.75 524.52 P
11607: 3 F
11608: 2.91 (_thiefB) 398.7 524.52 P
11609: 0 F
11610: 1.21 ( on its) 449.1 524.52 P
11611: (o) 120.87 510.51 T
11612: (wn stack, belo) 126.57 510.51 T
11613: (w the stolen frame.) 195.26 510.51 T
11614: 1.08 (By the de\336nition of a ready frame, no task writes into a ready frame.) 137.88 496.51 P
11615: 121 640/G1018775 FmPA
11616: 1.04 (Thus no task has the address of an) 120.87 482.51 P
11617: 1.04 (y item of a ready frame. Thus a ready) 292.27 482.51 P
11618: 0.48 (frame and its items can be mo) 120.87 468.51 P
11619: 0.48 (v) 267.56 468.51 P
11620: 0.48 (ed from one area of memory to another) 273.38 468.51 P
11621: 0.48 (. In) 464.38 468.51 P
11622: 0.4 (other w) 120.87 454.51 P
11623: 0.4 (ords, the de\336nition of a ready frame allo) 157.47 454.51 P
11624: 0.4 (ws) 353.24 454.51 P
11625: 3 F
11626: 0.95 (_thiefB) 369.97 454.51 P
11627: 0 F
11628: 0.4 ( to mo) 420.37 454.51 P
11629: 0.4 (v) 451.65 454.51 P
11630: 0.4 (e the) 457.47 454.51 P
11631: 0.07 (ready frame) 120.87 440.51 P
11632: 3 F
11633: 0.17 (d\0505,b[4];;r48\051) 181.65 440.51 P
11634: 3 9.6 Q
11635: 0.14 (1) 282.45 437.51 P
11636: 0 12 Q
11637: 0.07 ( to its o) 288.2 440.51 P
11638: 0.07 (wn stack. By contrast, if the not-) 323.79 440.51 P
11639: 2.35 (ready frame) 120.87 426.51 P
11640: 3 F
11641: 5.64 (t\050r03,r48;;y\051) 186.21 426.51 P
11642: 3 9.6 Q
11643: 4.51 (0) 279.81 423.51 P
11644: 0 12 Q
11645: 2.35 ( were mo) 285.57 426.51 P
11646: 2.35 (v) 334.74 426.51 P
11647: 2.35 (ed in memory) 340.56 426.51 P
11648: 2.35 (, then the out) 411.14 426.51 P
11649: 3 F
11650: (r48) 120.87 412.51 T
11651: 0 F
11652: ( of the task) 142.47 412.51 T
11653: 3 F
11654: (d\0505,b[4];;r48\051) 198.46 412.51 T
11655: 3 9.6 Q
11656: (1) 299.26 409.51 T
11657: 0 12 Q
11658: ( w) 305.02 412.51 T
11659: (ould be in) 316.56 412.51 T
11660: (v) 364.08 412.51 T
11661: (alid.) 369.78 412.51 T
11662: 0.47 (The) 137.88 398.51 P
11663: 3 F
11664: 1.14 (_thiefC) 160.01 398.51 P
11665: 0 F
11666: 0.47 ( frame serv) 210.41 398.51 P
11667: 0.47 (es as a barrier) 265.15 398.51 P
11668: 0.47 (. Belo) 332.22 398.51 P
11669: 0.47 (w) 361.06 398.51 P
11670: 3 F
11671: 1.14 (_thiefC) 373.2 398.51 P
11672: 0 F
11673: 0.47 (, the frames) 423.6 398.51 P
11674: 121 542/G1018738 FmPA
11675: 1.37 (require the results of the stolen task) 120.87 384.51 P
11676: 3 F
11677: 3.28 (d\0505,b[4];;r48\051) 304.07 384.51 P
11678: 3 9.6 Q
11679: 2.62 (1) 404.87 381.51 P
11680: 0 12 Q
11681: 1.37 (. In particular) 410.63 384.51 P
11682: 1.37 (,) 477.86 384.51 P
11683: -0.21 (the out) 120.87 370.51 P
11684: 3 F
11685: -0.49 (r48) 156.46 370.51 P
11686: 0 F
11687: -0.21 ( is required by the frame) 178.06 370.51 P
11688: 3 F
11689: -0.49 (t\050r03,r48;;y\051) 297.46 370.51 P
11690: 3 9.6 Q
11691: -0.4 (0) 391.06 367.51 P
11692: 0 12 Q
11693: -0.21 (. Since the results) 396.82 370.51 P
11694: 0.77 (of the stolen task are not yet a) 120.87 356.51 P
11695: 0.77 (v) 269.63 356.51 P
11696: 0.77 (ailable,) 275.33 356.51 P
11697: 3 F
11698: 1.84 (_thiefC) 314.09 356.51 P
11699: 0 F
11700: 0.77 ( ensures that the frames) 364.49 356.51 P
11701: 0.76 (belo) 120.87 342.51 P
11702: 0.76 (w it are not yet e) 141.23 342.51 P
11703: 0.76 (x) 225.2 342.51 P
11704: 0.76 (ecuted. If e) 231.01 342.51 P
11705: 0.76 (v) 285.89 342.51 P
11706: 0.76 (er reached in the e) 291.71 342.51 P
11707: 0.76 (x) 382.55 342.51 P
11708: 0.76 (ecution,) 388.37 342.51 P
11709: 3 F
11710: 1.84 (_thiefC) 430.46 342.51 P
11711: 0 F
11712: 0.48 (tries to steal a ready frame, so that) 120.87 328.51 P
11713: 3 F
11714: 1.16 (PROCESSOR) 292.36 328.51 P
11715: 1.16 (L) 364.36 328.51 P
11716: 0 F
11717: 0.48 ( is not idly w) 371.56 328.51 P
11718: 0.48 (aiting for) 436.05 328.51 P
11719: (the results of the stolen task.) 120.87 314.52 T
11720: 1.02 (When the e) 137.88 300.52 P
11721: 1.02 (x) 194.38 300.52 P
11722: 1.02 (ecution of the stolen frame) 200.2 300.52 P
11723: 3 F
11724: 2.44 (d\0505,b[4];;r48\051) 336.94 300.52 P
11725: 3 9.6 Q
11726: 1.96 (1) 437.74 297.52 P
11727: 0 12 Q
11728: 1.02 ( and all) 443.5 300.52 P
11729: 121 444/G1018756 FmPA
11730: 0.94 (its descendents has completed, then its results are a) 120.87 286.52 P
11731: 0.94 (v) 373.79 286.52 P
11732: 0.94 (ailable. In particular) 379.49 286.52 P
11733: 0.94 (,) 477.86 286.52 P
11734: 0.58 (the out) 120.87 272.52 P
11735: 3 F
11736: 1.39 (r48) 158.03 272.52 P
11737: 0 F
11738: 0.58 ( is written to the frame) 179.63 272.52 P
11739: 3 F
11740: 1.39 (t\050r03,r48;;y\051) 295.1 272.52 P
11741: 3 9.6 Q
11742: 1.12 (0) 388.7 269.52 P
11743: 0 12 Q
11744: 0.58 (. Since the results) 394.46 272.52 P
11745: -0.24 (of the stolen task are no) 120.87 258.52 P
11746: -0.24 (w a) 233.67 258.52 P
11747: -0.24 (v) 250.18 258.52 P
11748: -0.24 (ailable,) 255.88 258.52 P
11749: 3 F
11750: -0.58 (_thiefC) 293.63 258.52 P
11751: 0 F
11752: -0.24 ( must be remo) 344.03 258.52 P
11753: -0.24 (v) 411.45 258.52 P
11754: -0.24 (ed in order to) 417.27 258.52 P
11755: 2.59 (allo) 120.87 244.52 P
11756: 2.59 (w the frames belo) 138.57 244.52 P
11757: 2.59 (w) 231.69 244.52 P
11758: 3 F
11759: 6.22 (_thiefC) 245.95 244.52 P
11760: 0 F
11761: 2.59 ( to e) 296.35 244.52 P
11762: 2.59 (x) 322.02 244.52 P
11763: 2.59 (ecuted. Thus, when the stolen) 327.84 244.52 P
11764: 2.58 (frame) 120.87 230.52 P
11765: 3 F
11766: 6.18 (d\0505,b[4];;r48\051) 154.43 230.52 P
11767: 3 9.6 Q
11768: 4.95 (1) 255.23 227.52 P
11769: 0 12 Q
11770: 2.58 ( and all its descendents ha) 260.99 230.52 P
11771: 2.58 (v) 398.61 230.52 P
11772: 2.58 (e e) 404.43 230.52 P
11773: 2.58 (x) 420.48 230.52 P
11774: 2.58 (ecuted, the) 426.3 230.52 P
11775: (frame) 120.87 216.52 T
11776: 3 F
11777: (_copC) 151.85 216.52 T
11778: 0 F
11779: ( is e) 187.85 216.52 T
11780: (x) 207 216.52 T
11781: (ecuted to remo) 212.82 216.52 T
11782: (v) 283.96 216.52 T
11783: (e the frame) 289.78 216.52 T
11784: 3 F
11785: (_thiefC) 346.76 216.52 T
11786: 0 F
11787: (.) 397.16 216.52 T
11788: 0.47 (In the snapshot in Figure) 137.88 202.52 P
11789: 0.47 (21d\051, the frame) 262.09 202.52 P
11790: 3 F
11791: 1.13 (t\050r45,r68;;r48\051) 340.15 202.52 P
11792: 3 9.6 Q
11793: 0.91 (0) 448.15 199.52 P
11794: 0 12 Q
11795: 0.47 ( is all) 453.91 202.52 P
11796: 121 346/G1018841 FmPA
11797: 0.04 (that remains on the stack of) 120.87 188.52 P
11798: 3 F
11799: 0.11 (PROCESSOR) 256.45 188.52 P
11800: 0.11 (K) 328.45 188.52 P
11801: 0 F
11802: 0.04 ( from the e) 335.65 188.52 P
11803: 0.04 (x) 387.92 188.52 P
11804: 0.04 (ecution of the sto-) 393.74 188.52 P
11805: (len frame) 120.87 174.52 T
11806: 3 F
11807: (d\0505,b[4];;r48\051) 169.52 174.52 T
11808: 3 9.6 Q
11809: (1) 270.32 171.52 T
11810: 0 12 Q
11811: ( and its descendents.) 276.08 174.52 T
11812: 2.26 (Also in Figure) 137.88 160.52 P
11813: 2.26 (21d\051, the frame) 214.72 160.52 P
11814: 3 F
11815: 5.41 (d\0504,b[0];;r03\051) 298.14 160.52 P
11816: 3 9.6 Q
11817: 4.33 (1) 398.94 157.52 P
11818: 0 12 Q
11819: 2.26 ( of Figure) 404.7 160.52 P
11820: 2.26 (21c\051) 459.54 160.52 P
11821: 121 304/G1018855 FmPA
11822: 3.98 (has e) 120.87 146.52 P
11823: 3.98 (x) 148.99 146.52 P
11824: 3.98 (ecuted on) 154.81 146.52 P
11825: 3 F
11826: 9.55 (PROCESSOR) 212.09 146.52 P
11827: 9.55 (L) 284.09 146.52 P
11828: 0 F
11829: 3.98 (, yielding the frames) 291.29 146.52 P
11830: 3 F
11831: 9.55 (d\0502,b[0];;) 408.86 146.52 P
11832: 16.18 (r01\051) 120.87 132.52 P
11833: 3 9.6 Q
11834: 12.94 (1) 149.67 129.52 P
11835: 0 12 Q
11836: 6.74 (,) 155.43 132.52 P
11837: 3 F
11838: 16.18 (d\0502,b[2];;r23\051) 168.17 132.52 P
11839: 3 9.6 Q
11840: 12.94 (1) 268.97 129.52 P
11841: 0 12 Q
11842: 6.74 (,) 274.73 132.52 P
11843: 3 F
11844: 16.18 (t\050r01,r23;;r03\051) 287.47 132.52 P
11845: 3 9.6 Q
11846: 12.94 (0) 395.47 129.52 P
11847: 0 12 Q
11848: 6.74 (. Subsequently) 401.23 132.52 P
11849: 6.74 (,) 477.86 132.52 P
11850: 0 0 0 1 0 0 0 K
11851: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
11852: [/Dest/P.36/DEST FmPD2
11853: [/Rect[228 197 274 211]/Border[0 0 0]/Page 35/View[/XYZ null 170 284 FmDC exch pop null]/LNK FmPD
11854: [/Rect[121 646 167 659]/Border[0 0 0]/Page 35/View[/XYZ null 170 284 FmDC exch pop null]/LNK FmPD
11855: [/Rect[223 618 269 631]/Border[0 0 0]/Page 35/View[/XYZ null 170 284 FmDC exch pop null]/LNK FmPD
11856: [/Rect[425 155 472 169]/Border[0 0 0]/Page 35/View[/XYZ null 170 284 FmDC exch pop null]/LNK FmPD
11857: [/Rect[180 155 227 169]/Border[0 0 0]/Page 35/View[/XYZ null 170 284 FmDC exch pop null]/LNK FmPD
11858: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
11859: FMENDPAGE
11860: %%EndPage: "36" 36
11861: %%Page: "37" 37
11862: 595.28 839.05 0 FMBEGINPAGE
11863: [0 0 0 1 0 0 0]
11864: [ 0 1 1 0 1 0 0]
11865: [ 1 0 1 0 0 1 0]
11866: [ 1 1 0 0 0 0 1]
11867: [ 1 0 0 0 0 1 1]
11868: [ 0 1 0 0 1 0 1]
11869: [ 0 0 1 0 1 1 0]
11870: 7 FrameSetSepColors
11871: FrameNoSep
11872: 0 0 0 1 0 0 0 K
11873: 0 0 0 1 0 0 0 K
11874: 0 0 0 1 0 0 0 K
11875: 90 959/G837264 FmPA
11876: 0 12 Q
11877: 0 X
11878: 0 0 0 1 0 0 0 K
11879: (37) 289.29 93.77 T
11880: 40 238/G837268 FmPA
11881: 2.11 (Figure) 120.87 664.52 P
11882: 2.11 (21d\051 assumed an e) 155.2 664.52 P
11883: 2.11 (x) 250.34 664.52 P
11884: 2.11 (ecution where) 256.16 664.52 P
11885: 3 F
11886: 5.07 (_thiefA) 331.04 664.52 P
11887: 0 F
11888: 2.11 ( of) 381.44 664.52 P
11889: 3 F
11890: 5.07 (PROCESSOR) 401.66 664.52 P
11891: 5.07 (M) 473.66 664.52 P
11892: 0 F
11893: 0.11 (successfully stole the frame) 120.87 650.52 P
11894: 3 F
11895: 0.27 (d\0502,b[2];;r23\051) 257.29 650.52 P
11896: 3 9.6 Q
11897: 0.22 (1) 358.09 647.52 P
11898: 0 12 Q
11899: 0.11 ( from the stack of) 363.85 650.52 P
11900: 3 F
11901: 0.27 (PRO-) 452.06 650.52 P
11902: (CESSOR L) 120.87 636.52 T
11903: 0 F
11904: (.) 178.47 636.52 T
11905: 0.74 (In the snapshot in Figure) 137.88 622.52 P
11906: 0.74 (21e\051, the frames) 263.17 622.52 P
11907: 3 F
11908: 1.78 (t\050r45,r68;;r48\051) 346.03 622.52 P
11909: 3 9.6 Q
11910: 1.42 (0) 454.03 619.52 P
11911: 0 12 Q
11912: 0.74 ( and) 459.79 622.52 P
11913: 121 766/G1018859 FmPA
11914: 3 F
11915: 5.68 (_copC) 120.87 608.52 P
11916: 0 F
11917: 2.37 ( of Figure) 156.87 608.52 P
11918: 2.37 (21d\051 ha) 211.93 608.52 P
11919: 2.37 (v) 250.37 608.52 P
11920: 2.37 (e e) 256.19 608.52 P
11921: 2.37 (x) 272.03 608.52 P
11922: 2.37 (ecuted on) 277.85 608.52 P
11923: 3 F
11924: 5.68 (PROCESSOR) 331.9 608.52 P
11925: 5.68 (K) 403.9 608.52 P
11926: 0 F
11927: 2.37 (. Thus on the) 411.1 608.52 P
11928: (stack of) 120.87 594.52 T
11929: 3 F
11930: (PROCESSOR L) 161.52 594.52 T
11931: 0 F
11932: (,) 240.72 594.52 T
11933: 3 F
11934: (_thiefC) 246.72 594.52 T
11935: 0 F
11936: ( has been replaced by) 297.12 594.52 T
11937: 3 F
11938: (_skip) 403.42 594.52 T
11939: 0 F
11940: (.) 439.42 594.52 T
11941: 1.32 (Though not further illustrated in Figure) 137.88 580.52 P
11942: 1.32 (21, the e) 336.44 580.52 P
11943: 1.32 (x) 379.88 580.52 P
11944: 1.32 (ecution w) 385.7 580.52 P
11945: 1.32 (ould con-) 433.89 580.52 P
11946: 121 724/G1018905 FmPA
11947: 1.44 (tinue in a similar f) 120.87 566.52 P
11948: 1.44 (ashion, until the only application frame left w) 214.5 566.52 P
11949: 1.44 (ould be) 443.76 566.52 P
11950: 3 F
11951: 2.15 (t\050r03,r48;;y\051) 120.87 552.52 P
11952: 3 9.6 Q
11953: 1.72 (0) 214.47 549.52 P
11954: 0 12 Q
11955: 0.89 ( on the stack of) 220.23 552.52 P
11956: 3 F
11957: 2.15 (PROCESSOR) 301.02 552.52 P
11958: 2.15 (L) 373.02 552.52 P
11959: 0 F
11960: 0.89 (. After its e) 380.22 552.52 P
11961: 0.89 (x) 436.71 552.52 P
11962: 0.89 (ecution,) 442.53 552.52 P
11963: 3 F
11964: 0.88 (_copB) 120.87 538.52 P
11965: 0 F
11966: 0.37 ( and) 156.87 538.52 P
11967: 3 F
11968: 0.88 (_copA) 180.93 538.52 P
11969: 0 F
11970: 0.37 ( e) 216.93 538.52 P
11971: 0.37 (x) 225.44 538.52 P
11972: 0.37 (ecute. W) 231.26 538.52 P
11973: 0.37 (ith no frames left on an) 273.8 538.52 P
11974: 0.37 (y stack, each of the) 387.09 538.52 P
11975: 3 F
11976: 1.59 (_xtop) 120.87 524.52 P
11977: 0 F
11978: 0.66 ( e) 156.87 524.52 P
11979: 0.66 (x) 165.68 524.52 P
11980: 0.66 (ecutions e) 171.5 524.52 P
11981: 0.66 (xits and control is returned to the user of the applica-) 220.3 524.52 P
11982: (tion.) 120.87 510.51 T
11983: 2.08 (The abo) 137.88 496.51 P
11984: 2.08 (v) 178.77 496.51 P
11985: 2.08 (e outline does not describe some necessary protocols. One) 184.59 496.51 P
11986: 121 640/G1019203 FmPA
11987: (protocol ensures that at most one) 120.87 482.51 T
11988: 3 F
11989: (_thief) 282.18 482.51 T
11990: 0 F
11991: ( operates on an) 325.38 482.51 T
11992: (y gi) 397.52 482.51 T
11993: (v) 415.55 482.51 T
11994: (en stack.) 421.37 482.51 T
11995: 2.11 (Another protocol is between a) 137.88 468.51 P
11996: 3 F
11997: 5.06 (_thief) 296.05 468.51 P
11998: 0 F
11999: 2.11 ( and the) 339.24 468.51 P
12000: 3 F
12001: 5.06 (_xtop) 386.56 468.51 P
12002: 0 F
12003: 2.11 ( of a stack.) 422.56 468.51 P
12004: 121 612/G1019211 FmPA
12005: 3.38 (Though the) 120.87 454.51 P
12006: 3.38 (y start at opposite ends of the stack--) 179.07 454.51 P
12007: 3 F
12008: 8.12 (_xtop) 379.05 454.51 P
12009: 0 F
12010: 3.38 ( at the top--) 415.05 454.51 P
12011: 3 F
12012: 1.95 (_thief) 120.87 440.51 P
12013: 0 F
12014: 0.81 ( at the bottom--) 164.07 440.51 P
12015: 3 F
12016: 1.95 (_xtop) 240.84 440.51 P
12017: 0 F
12018: 0.81 ( and) 276.84 440.51 P
12019: 3 F
12020: 1.95 (_thief) 301.8 440.51 P
12021: 0 F
12022: 0.81 ( can collide if there are fe) 344.99 440.51 P
12023: 0.81 (w) 472.2 440.51 P
12024: 0.12 (or no ready frames on the stack. Since each of their actions can modify the) 120.87 426.51 P
12025: -0.21 (stack,) 120.87 412.51 P
12026: 3 F
12027: -0.51 (_xtop) 151.32 412.51 P
12028: 0 F
12029: -0.21 ( and) 187.32 412.51 P
12030: 3 F
12031: -0.51 (_thief) 210.22 412.51 P
12032: 0 F
12033: -0.21 ( ha) 253.42 412.51 P
12034: -0.21 (v) 267.3 412.51 P
12035: -0.21 (e to obe) 273.12 412.51 P
12036: -0.21 (y a protocol in order to survi) 310.51 412.51 P
12037: -0.21 (v) 446.26 412.51 P
12038: -0.21 (e pos-) 452.08 412.51 P
12039: 0.96 (sible collisions. Since) 120.87 398.51 P
12040: 3 F
12041: 2.3 (_xtop) 231.08 398.51 P
12042: 0 F
12043: 0.96 ( e) 267.08 398.51 P
12044: 0.96 (x) 276.18 398.51 P
12045: 0.96 (ecutes e) 282.01 398.51 P
12046: 0.96 (v) 320.98 398.51 P
12047: 0.96 (ery task of the application, it is) 326.8 398.51 P
12048: 2.09 (v) 120.87 384.51 P
12049: 2.09 (ery important that the protocol adds minimal o) 126.69 384.51 P
12050: 2.09 (v) 364.79 384.51 P
12051: 2.09 (erhead to) 370.61 384.51 P
12052: 3 F
12053: 5.01 (_xtop) 422.11 384.51 P
12054: 0 F
12055: 2.09 (. An) 458.11 384.51 P
12056: (e) 120.87 370.51 T
12057: (xample of such a protocol is described else) 126.02 370.51 T
12058: (where [Cilk-5].) 332.01 370.51 T
12059: 0.63 (By contrast, no protocol is needed for a) 137.88 356.51 P
12060: 3 F
12061: 1.52 (_cop) 335.23 356.51 P
12062: 0 F
12063: 0.63 (; it can simply write the) 364.04 356.51 P
12064: 121 500/G1019321 FmPA
12065: 1.11 (address of the) 120.87 342.51 P
12066: 3 F
12067: 2.65 (_skip) 193.83 342.51 P
12068: 0 F
12069: 1.11 ( instruction into the) 229.83 342.51 P
12070: 3 F
12071: 2.65 (_thief) 330.93 342.51 P
12072: 0 F
12073: 1.11 ( task frame. No colli-) 374.13 342.51 P
12074: -0.18 (sions are possible since a) 120.87 328.51 P
12075: 3 F
12076: -0.44 (_thief) 243.6 328.51 P
12077: 0 F
12078: -0.18 ( ne) 286.8 328.51 P
12079: -0.18 (v) 300.64 328.51 P
12080: -0.18 (er modi\336es its o) 306.46 328.51 P
12081: -0.18 (wn frame. All that is) 382.61 328.51 P
12082: -0.26 (required is for the) 120.87 314.52 P
12083: 3 F
12084: -0.63 (_thief) 208.46 314.52 P
12085: 0 F
12086: -0.26 ( to occasionally return to) 251.66 314.52 P
12087: 3 F
12088: -0.63 (_xtop) 372.66 314.52 P
12089: 0 F
12090: -0.26 ( and/or poll the) 408.66 314.52 P
12091: (instruction in its o) 120.87 300.52 T
12092: (wn frame.) 207.58 300.52 T
12093: 0.98 (F) 137.88 286.52 P
12094: 0.98 (or a sequential application e) 144.37 286.52 P
12095: 0.98 (x) 282.73 286.52 P
12096: 0.98 (ecution on a single processor) 288.55 286.52 P
12097: 0.98 (, there are) 431.27 286.52 P
12098: 121 430/G1019339 FmPA
12099: 0.08 (no) 120.87 272.52 P
12100: 3 F
12101: 0.2 (_thief) 135.95 272.52 P
12102: 0 F
12103: 0.08 (frames. The e) 186.55 272.52 P
12104: 0.08 (x) 252.17 272.52 P
12105: 0.08 (ecution essentially is that described in the pre-) 257.99 272.52 P
12106: 0.09 (vious sections. The dif) 120.87 258.52 P
12107: 0.09 (ferences are the three small changes to the compiled) 229.51 258.52 P
12108: 1.75 (TSIA code described at the be) 120.87 244.52 P
12109: 1.75 (ginning of this section and the additional) 274.38 244.52 P
12110: 1.13 (protocol required by) 120.87 230.52 P
12111: 3 F
12112: 2.72 (_xtop) 225.25 230.52 P
12113: 0 F
12114: 1.13 ( mentioned abo) 261.25 230.52 P
12115: 1.13 (v) 337.33 230.52 P
12116: 1.13 (e. The dif) 343.15 230.52 P
12117: 1.13 (ferences introduce) 391.43 230.52 P
12118: -0.29 (little o) 120.87 216.52 P
12119: -0.29 (v) 151.4 216.52 P
12120: -0.29 (erhead to the application e) 157.22 216.52 P
12121: -0.29 (x) 282.51 216.52 P
12122: -0.29 (ecution. As desired by a transparent par-) 288.33 216.52 P
12123: 0.18 (allel e) 120.87 202.52 P
12124: 0.18 (x) 149.86 202.52 P
12125: 0.18 (ecution, TP) 155.68 202.52 P
12126: 0.18 (ARX ef) 210.1 202.52 P
12127: 0.18 (\336ciently e) 247.64 202.52 P
12128: 0.18 (x) 295.3 202.52 P
12129: 0.18 (ecutes an application on a single pro-) 301.12 202.52 P
12130: (cessor) 120.87 188.52 T
12131: (.) 150.2 188.52 T
12132: 1.05 (F) 137.88 174.52 P
12133: 1.05 (or a parallel application e) 144.37 174.52 P
12134: 1.05 (x) 270.35 174.52 P
12135: 1.05 (ecution on multiple processors, the) 276.17 174.52 P
12136: 3 F
12137: 2.52 (_cop) 452.06 174.52 P
12138: 121 318/G1020285 FmPA
12139: 0 F
12140: -0.24 (and) 120.87 160.52 P
12141: 3 F
12142: -0.57 (_thief) 140.96 160.52 P
12143: 0 F
12144: -0.24 (frames implement w) 190.79 160.52 P
12145: -0.24 (ork-stealing scheduling. As described in) 288.84 160.52 P
12146: 0.21 (the ne) 120.87 146.52 P
12147: 0.21 (xt section, the w) 149.89 146.52 P
12148: 0.21 (ork-stealing scheduling of TP) 229.05 146.52 P
12149: 0.21 (ARX is v) 370.88 146.52 P
12150: 0.21 (ery similar to) 416.45 146.52 P
12151: 1.28 (that of Cilk-NO) 120.87 132.52 P
12152: 1.28 (W and its precursors. That scheduling is space, time and) 199.01 132.52 P
12153: 0 0 0 1 0 0 0 K
12154: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
12155: [/Dest/P.37/DEST FmPD2
12156: [/Rect[302 576 348 589]/Border[0 0 0]/Page 35/View[/XYZ null 170 284 FmDC exch pop null]/LNK FmPD
12157: [/Rect[121 660 167 673]/Border[0 0 0]/Page 35/View[/XYZ null 170 284 FmDC exch pop null]/LNK FmPD
12158: [/Rect[229 617 275 631]/Border[0 0 0]/Page 35/View[/XYZ null 170 284 FmDC exch pop null]/LNK FmPD
12159: [/Rect[178 604 224 617]/Border[0 0 0]/Page 35/View[/XYZ null 170 284 FmDC exch pop null]/LNK FmPD
12160: [/Rect[364 366 403 379]/Border[0 0 0]/Page 41/View[/XYZ null 121 402 FmDC exch pop null]/LNK FmPD
12161: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
12162: FMENDPAGE
12163: %%EndPage: "37" 37
12164: %%Page: "38" 38
12165: 595.28 839.05 0 FMBEGINPAGE
12166: [0 0 0 1 0 0 0]
12167: [ 0 1 1 0 1 0 0]
12168: [ 1 0 1 0 0 1 0]
12169: [ 1 1 0 0 0 0 1]
12170: [ 1 0 0 0 0 1 1]
12171: [ 0 1 0 0 1 0 1]
12172: [ 0 0 1 0 1 1 0]
12173: 7 FrameSetSepColors
12174: FrameNoSep
12175: 0 0 0 1 0 0 0 K
12176: 0 0 0 1 0 0 0 K
12177: 0 0 0 1 0 0 0 K
12178: 90 959/G837264 FmPA
12179: 0 12 Q
12180: 0 X
12181: 0 0 0 1 0 0 0 K
12182: (38) 289.29 93.77 T
12183: 40 238/G837268 FmPA
12184: 0.15 (communication ef) 120.87 664.52 P
12185: 0.15 (\336cient in theory and in practice [Cilk-1]. As desired by a) 207.71 664.52 P
12186: 0.86 (transparent parallel e) 120.87 650.52 P
12187: 0.86 (x) 223.03 650.52 P
12188: 0.86 (ecution, TP) 228.85 650.52 P
12189: 0.86 (ARX thus is e) 283.93 650.52 P
12190: 0.86 (xpected to ef) 353.99 650.52 P
12191: 0.86 (\336ciently e) 417.38 650.52 P
12192: 0.86 (x) 465.72 650.52 P
12193: 0.86 (e-) 471.54 650.52 P
12194: (cute an application on multiple processors.) 120.87 636.52 T
12195: 1.56 (The ef) 137.88 622.52 P
12196: 1.56 (\336cienc) 170.12 622.52 P
12197: 1.56 (y is lar) 201.93 622.52 P
12198: 1.56 (gely a result of the depth-\336rst e) 237.49 622.52 P
12199: 1.56 (x) 396.62 622.52 P
12200: 1.56 (ecution on each) 402.44 622.52 P
12201: 121 766/G1020555 FmPA
12202: 2.03 (processor and the breadth-\336rst w) 120.87 608.52 P
12203: 2.03 (ork-stealing [Cilk-1]. Depth-\336rst corre-) 286.15 608.52 P
12204: 1.91 (sponds to the topmost task frame and is the sequential e) 120.87 594.52 P
12205: 1.91 (x) 407.14 594.52 P
12206: 1.91 (ecution order) 412.96 594.52 P
12207: 1.91 (.) 477.86 594.52 P
12208: 0.87 (Breadth-\336rst corresponds to the bottommost task frame and tends to steal) 120.87 580.52 P
12209: (w) 120.87 566.52 T
12210: (ork lar) 129.41 566.52 T
12211: (ge in quantity and along the critical path.) 160.85 566.52 T
12212: 1.09 (As promised, the parallel e) 137.88 552.52 P
12213: 1.09 (x) 271.04 552.52 P
12214: 1.09 (ecution implemented by TP) 276.86 552.52 P
12215: 1.09 (ARX is trans-) 412.02 552.52 P
12216: 121 696/G1020277 FmPA
12217: -0.1 (parent. The application source code of Figure) 120.87 538.52 P
12218: -0.1 (19 contains nothing concern-) 341.53 538.52 P
12219: 3.89 (ing parallelism. Instead, all the details concerning parallelism are in) 120.87 524.52 P
12220: (TP) 120.87 510.51 T
12221: (ARX, a system e) 133.77 510.51 T
12222: (xternal to the application.) 214.91 510.51 T
12223: 2.17 (TP) 137.88 496.51 P
12224: 2.17 (ARX lar) 150.78 496.51 P
12225: 2.17 (gely consists of the three small changes to the compiled) 193.72 496.51 P
12226: 121 640/G1020293 FmPA
12227: -0.06 (TSIA code described at the be) 120.87 482.51 P
12228: -0.06 (ginning of this section as well as the routines) 265.35 482.51 P
12229: 3 F
12230: 4.5 (_cop) 120.87 468.51 P
12231: 0 F
12232: 1.88 (,) 149.67 468.51 P
12233: 3 F
12234: 4.5 (_thief) 157.54 468.51 P
12235: 0 F
12236: 1.88 (,) 200.74 468.51 P
12237: 3 F
12238: 4.5 (_skip) 208.62 468.51 P
12239: 0 F
12240: 1.88 ( and) 244.62 468.51 P
12241: 3 F
12242: 4.5 (_xtop) 271.7 468.51 P
12243: 0 F
12244: 1.88 (. TP) 307.7 468.51 P
12245: 1.88 (ARX thus is a v) 328.47 468.51 P
12246: 1.88 (ery small and) 412.46 468.51 P
12247: 0.06 (simple system. TP) 120.87 454.51 P
12248: 0.06 (ARX is an e) 208.22 454.51 P
12249: 0.06 (xample of an e) 267.2 454.51 P
12250: 0.06 (xternal system well serv) 338.17 454.51 P
12251: 0.06 (ed by) 454.48 454.51 P
12252: (the structured application e) 120.87 440.51 T
12253: (x) 251 440.51 T
12254: (ecution of) 256.82 440.51 T
12255: (fered by task frames.) 304.84 440.51 T
12256: -0.25 (The structured e) 137.88 426.51 P
12257: -0.25 (x) 215.17 426.51 P
12258: -0.25 (ecution is maintained by TP) 220.99 426.51 P
12259: -0.25 (ARX. As illustrated by the) 353.54 426.51 P
12260: 121 570/G1020876 FmPA
12261: 1.23 (snapshots in Figure) 120.87 412.51 P
12262: 1.23 (21, the parallel e) 219.67 412.51 P
12263: 1.23 (x) 303.17 412.51 P
12264: 1.23 (ecution mo) 308.99 412.51 P
12265: 1.23 (v) 363.7 412.51 P
12266: 1.23 (es from one structured) 369.52 412.51 P
12267: 1.44 (state to another) 120.87 398.51 P
12268: 1.44 (. The structured e) 196.4 398.51 P
12269: 1.44 (x) 284.51 398.51 P
12270: 1.44 (ecution allo) 290.33 398.51 P
12271: 1.44 (ws parallelism to be easily) 347.79 398.51 P
12272: 0.2 (combined with other e) 120.87 384.51 P
12273: 0.2 (x) 228.94 384.51 P
12274: 0.2 (ecution features. F) 234.76 384.51 P
12275: 0.2 (or e) 323.96 384.51 P
12276: 0.2 (xample, the structured paral-) 342.3 384.51 P
12277: 1.79 (lel e) 120.87 370.51 P
12278: 1.79 (x) 142.81 370.51 P
12279: 1.79 (ecution easily allo) 148.63 370.51 P
12280: 1.79 (ws for a deb) 239.24 370.51 P
12281: 1.79 (ugger for the application de\336nition.) 303.37 370.51 P
12282: 1.46 (Similarly) 120.87 356.51 P
12283: 1.46 (, the parallel e) 164.76 356.51 P
12284: 1.46 (x) 236.93 356.51 P
12285: 1.46 (ecution easily is e) 242.75 356.51 P
12286: 1.46 (xtended to an adapti) 332.59 356.51 P
12287: 1.46 (v) 433.64 356.51 P
12288: 1.46 (e e) 439.46 356.51 P
12289: 1.46 (x) 454.39 356.51 P
12290: 1.46 (ecu-) 460.21 356.51 P
12291: 1.07 (tion, where the number of processors a) 120.87 342.51 P
12292: 1.07 (v) 313.31 342.51 P
12293: 1.07 (ailable for the application e) 319.01 342.51 P
12294: 1.07 (x) 454.39 342.51 P
12295: 1.07 (ecu-) 460.21 342.51 P
12296: (tion v) 120.87 328.51 T
12297: (aries during the course of the e) 148.24 328.51 T
12298: (x) 296.02 328.51 T
12299: (ecution.) 301.84 328.51 T
12300: 1.63 (TP) 137.88 314.52 P
12301: 1.63 (ARX is suitable as is for a v) 150.78 314.52 P
12302: 1.63 (ariety of applications. Man) 296.9 314.52 P
12303: 1.63 (y of these) 430.94 314.52 P
12304: 121 458/G1021518 FmPA
12305: 1.34 (applications use di) 120.87 300.52 P
12306: 1.34 (vide-and-conquer algorithms. The applications include) 212.57 300.52 P
12307: 0.41 (sorting and dense matrix algorithms [Cilk-5][TSIA]. This v) 120.87 286.52 P
12308: 0.41 (ariety of appli-) 408.73 286.52 P
12309: 1.64 (cations is promising since TP) 120.87 272.52 P
12310: 1.64 (ARX is just an initial implementation of a) 267.68 272.52 P
12311: (system pro) 120.87 258.52 T
12312: (viding a transparent parallel e) 173.02 258.52 T
12313: (x) 315.47 258.52 T
12314: (ecution.) 321.29 258.52 T
12315: 0.55 (Compared to the abo) 137.88 244.52 P
12316: 0.55 (v) 239.66 244.52 P
12317: 0.55 (e initial success, the ultimate success of TP) 245.48 244.52 P
12318: 0.55 (ARX) 455.53 244.52 P
12319: 121 388/G1021544 FmPA
12320: 0.74 (will depend on ho) 120.87 230.52 P
12321: 0.74 (w well it can be e) 209.11 230.52 P
12322: 0.74 (xtended to support other applications.) 296.93 230.52 P
12323: 1.3 (The support of an application implies a con) 120.87 216.52 P
12324: 1.3 (v) 337.78 216.52 P
12325: 1.3 (enient application de\336nition) 343.6 216.52 P
12326: 0.64 (and an ef) 120.87 202.52 P
12327: 0.64 (\336cient application e) 165.84 202.52 P
12328: 0.64 (x) 261.6 202.52 P
12329: 0.64 (ecution. T) 267.42 202.52 P
12330: 0.64 (w) 315.77 202.52 P
12331: 0.64 (o e) 324.31 202.52 P
12332: 0.64 (xamples requiring e) 339.1 202.52 P
12333: 0.64 (xtensions) 435.52 202.52 P
12334: 0.14 (to TP) 120.87 188.52 P
12335: 0.14 (ARX follo) 146.25 188.52 P
12336: 0.14 (w) 197.09 188.52 P
12337: 0.14 (. As is, TP) 204.98 188.52 P
12338: 0.14 (ARX allo) 254.65 188.52 P
12339: 0.14 (ws an application lik) 300.82 188.52 P
12340: 0.14 (e search to spec-) 400.8 188.52 P
12341: 0.59 (ulati) 120.87 174.52 P
12342: 0.59 (v) 141.9 174.52 P
12343: 0.59 (ely attempt man) 147.72 174.52 P
12344: 0.59 (y possible solutions in parallel, b) 226.06 174.52 P
12345: 0.59 (ut it does not allo) 386.79 174.52 P
12346: 0.59 (w) 472.2 174.52 P
12347: 0.25 (unnecessary attempts to be aborted once a solution is found. Such applica-) 120.87 160.52 P
12348: 0.47 (tions are described else) 120.87 146.52 P
12349: 0.47 (where [Cilk-5], as is their con) 233.61 146.52 P
12350: 0.47 (v) 378.78 146.52 P
12351: 0.47 (enient de\336nition for) 384.6 146.52 P
12352: 0.42 (a transparent e) 120.87 132.52 P
12353: 0.42 (x) 191.49 132.52 P
12354: 0.42 (ecution [TSIA]. As is, the locality of TP) 197.31 132.52 P
12355: 0.42 (ARX\325) 392.11 132.52 P
12356: 0.42 (s scheduling) 420.78 132.52 P
12357: 0 0 0 1 0 0 0 K
12358: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
12359: [/Dest/P.38/DEST FmPD2
12360: [/Rect[307 534 354 547]/Border[0 0 0]/Page 31/View[/XYZ null 170 565 FmDC exch pop null]/LNK FmPD
12361: [/Rect[361 660 400 673]/Border[0 0 0]/Page 41/View[/XYZ null 121 542 FmDC exch pop null]/LNK FmPD
12362: [/Rect[349 604 387 617]/Border[0 0 0]/Page 41/View[/XYZ null 121 542 FmDC exch pop null]/LNK FmPD
12363: [/Rect[185 408 232 421]/Border[0 0 0]/Page 35/View[/XYZ null 170 284 FmDC exch pop null]/LNK FmPD
12364: [/Rect[299 282 337 295]/Border[0 0 0]/Page 41/View[/XYZ null 121 402 FmDC exch pop null]/LNK FmPD
12365: [/Rect[337 282 372 295]/Border[0 0 0]/Page 43/View[/XYZ null 121 676 FmDC exch pop null]/LNK FmPD
12366: [/Rect[266 142 305 155]/Border[0 0 0]/Page 41/View[/XYZ null 121 402 FmDC exch pop null]/LNK FmPD
12367: [/Rect[236 128 271 141]/Border[0 0 0]/Page 43/View[/XYZ null 121 676 FmDC exch pop null]/LNK FmPD
12368: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
12369: FMENDPAGE
12370: %%EndPage: "38" 38
12371: %%Page: "39" 39
12372: 595.28 839.05 0 FMBEGINPAGE
12373: [0 0 0 1 0 0 0]
12374: [ 0 1 1 0 1 0 0]
12375: [ 1 0 1 0 0 1 0]
12376: [ 1 1 0 0 0 0 1]
12377: [ 1 0 0 0 0 1 1]
12378: [ 0 1 0 0 1 0 1]
12379: [ 0 0 1 0 1 1 0]
12380: 7 FrameSetSepColors
12381: FrameNoSep
12382: 0 0 0 1 0 0 0 K
12383: 0 0 0 1 0 0 0 K
12384: 0 0 0 1 0 0 0 K
12385: 90 959/G837264 FmPA
12386: 0 12 Q
12387: 0 X
12388: 0 0 0 1 0 0 0 K
12389: (39) 289.29 93.77 T
12390: 40 238/G837268 FmPA
12391: 3.1 (is good enough for man) 120.87 664.52 P
12392: 3.1 (y applications on a symmetric multiprocessor) 247.06 664.52 P
12393: 3.08 (\050SMP\051 [Cilk-5]. Ho) 120.87 650.52 P
12394: 3.08 (we) 221.06 650.52 P
12395: 3.08 (v) 234.75 650.52 P
12396: 3.08 (er) 240.57 650.52 P
12397: 3.08 (, on processors with distrib) 249.42 650.52 P
12398: 3.08 (uted memory) 391.16 650.52 P
12399: 3.08 (, the) 457.12 650.52 P
12400: 0.69 (locality may not be good enough compared to an e) 120.87 636.52 P
12401: 0.69 (x) 369.86 636.52 P
12402: 0.69 (ecution which e) 375.68 636.52 P
12403: 0.69 (xplic-) 452.86 636.52 P
12404: 0.79 (itly places data in the memory of particular processors. The possibility of) 120.87 622.52 P
12405: 1.71 (such placement in a transparent e) 120.87 608.52 P
12406: 1.71 (x) 288.88 608.52 P
12407: 1.71 (ecution with a con) 294.7 608.52 P
12408: 1.71 (v) 387.67 608.52 P
12409: 1.71 (enient application) 393.49 608.52 P
12410: (de\336nition is described else) 120.87 594.52 T
12411: (where [Data\337o) 248.22 594.52 T
12412: (w][TSIA].) 319.56 594.52 T
12413: 1 F
12414: (11 Some Related W) 120.87 563.52 T
12415: (ork) 226.29 563.52 T
12416: 121 707/G1015519 FmPA
12417: 0 F
12418: 2.36 (The alternati) 120.87 544.52 P
12419: 2.36 (v) 183.91 544.52 P
12420: 2.36 (e e) 189.73 544.52 P
12421: 2.36 (x) 205.56 544.52 P
12422: 2.36 (ecution of routines proposed in this presentation is a) 211.38 544.52 P
12423: 121 688/G1020620 FmPA
12424: 0.08 (result of TSIA, a model for transparent application e) 120.87 530.52 P
12425: 0.08 (x) 372.93 530.52 P
12426: 0.08 (ecution. TSIA co) 378.75 530.52 P
12427: 0.08 (v) 461.05 530.52 P
12428: 0.08 (ers) 466.87 530.52 P
12429: 1.78 (a lar) 120.87 516.52 P
12430: 1.78 (ge area of computing. References to some w) 143.42 516.52 P
12431: 1.78 (ork in the area can be) 369.01 516.52 P
12432: 2.33 (found else) 120.87 502.51 P
12433: 2.33 (where [Alternati) 172.55 502.51 P
12434: 2.33 (v) 253.55 502.51 P
12435: 2.33 (e][Data\337o) 259.37 502.51 P
12436: 2.33 (w][Di) 307.72 502.51 P
12437: 2.33 (viding][TSIA]. Ev) 336.07 502.51 P
12438: 2.33 (en just the) 426.88 502.51 P
12439: -0.25 (alternati) 120.87 488.51 P
12440: -0.25 (v) 159.89 488.51 P
12441: -0.25 (e e) 165.71 488.51 P
12442: -0.25 (x) 178.93 488.51 P
12443: -0.25 (ecution of routines co) 184.75 488.51 P
12444: -0.25 (v) 288.12 488.51 P
12445: -0.25 (ers a lar) 293.95 488.51 P
12446: -0.25 (ge area of computing. A surv) 331.2 488.51 P
12447: -0.25 (e) 469.71 488.51 P
12448: -0.25 (y) 474.86 488.51 P
12449: 1.68 (of this area is be) 120.87 474.51 P
12450: 1.68 (yond the purpose of this proposal. Instead, this section) 206.07 474.51 P
12451: -0.2 (brie\337y compares the alternati) 120.87 460.51 P
12452: -0.2 (v) 260.28 460.51 P
12453: -0.2 (e e) 266.1 460.51 P
12454: -0.2 (x) 279.38 460.51 P
12455: -0.2 (ecution of routines to some related w) 285.2 460.51 P
12456: -0.2 (ork.) 461.86 460.51 P
12457: 2.86 (In the alternati) 137.88 446.51 P
12458: 2.86 (v) 213.28 446.51 P
12459: 2.86 (e e) 219.1 446.51 P
12460: 2.86 (x) 235.43 446.51 P
12461: 2.86 (ecution, routines e) 241.25 446.51 P
12462: 2.86 (x) 335.11 446.51 P
12463: 2.86 (ecute using a stack of task) 340.93 446.51 P
12464: 121 590/G1020646 FmPA
12465: 3.61 (frames. In Cilk-NO) 120.87 432.51 P
12466: 3.61 (W and its precursors, routines e) 221.32 432.51 P
12467: 3.61 (x) 391.16 432.51 P
12468: 3.61 (ecute using task) 396.98 432.51 P
12469: 1.16 (frames in a structure similar to a stack [Cilk-1][Cilk-NO) 120.87 418.51 P
12470: 1.16 (W][PCM]. Cilk-) 400.37 418.51 P
12471: 0.35 (NO) 120.87 404.51 P
12472: 0.35 (W and its precursors ar) 137.78 404.51 P
12473: 0.35 (guably are the most closely related w) 250.25 404.51 P
12474: 0.35 (ork to that) 430.84 404.51 P
12475: 0.8 (of this presentation. Lik) 120.87 390.51 P
12476: 0.8 (e TP) 237.8 390.51 P
12477: 0.8 (ARX of the pre) 259.83 390.51 P
12478: 0.8 (vious section, Cilk-NO) 336.23 390.51 P
12479: 0.8 (W and) 448.41 390.51 P
12480: (its precursors pro) 120.87 376.51 T
12481: (vide an application with a transparent parallel e) 204 376.51 T
12482: (x) 431.44 376.51 T
12483: (ecution.) 437.26 376.51 T
12484: 0.03 (A task is de\336ned by its nonblocking e) 137.88 362.51 P
12485: 0.03 (x) 318.91 362.51 P
12486: 0.03 (ecution. In man) 324.73 362.51 P
12487: 0.03 (y real-w) 399.61 362.51 P
12488: 0.03 (orld sys-) 439.17 362.51 P
12489: 121 506/G1020648 FmPA
12490: 0.23 (tems and in man) 120.87 348.51 P
12491: 0.23 (y research systems, a simple application e) 200.39 348.51 P
12492: 0.23 (x) 402.58 348.51 P
12493: 0.23 (ecutes in terms) 408.4 348.51 P
12494: 1.29 (of tasks [Di) 120.87 334.51 P
12495: 1.29 (viding][TSIA]. Ho) 179.15 334.51 P
12496: 1.29 (we) 270.12 334.51 P
12497: 1.29 (v) 283.82 334.51 P
12498: 1.29 (er) 289.64 334.51 P
12499: 1.29 (, Cilk-NO) 298.48 334.51 P
12500: 1.29 (W and its precursors allo) 347.35 334.51 P
12501: 1.29 (w) 472.2 334.51 P
12502: 0.94 (v) 120.87 320.52 P
12503: 0.94 (arious applications to e) 126.57 320.52 P
12504: 0.94 (x) 240.2 320.52 P
12505: 0.94 (ecute in terms of tasks. This v) 246.01 320.52 P
12506: 0.94 (ariety arises from) 395.01 320.52 P
12507: -0.29 (the support for an e) 120.87 306.52 P
12508: -0.29 (x) 212.82 306.52 P
12509: -0.29 (ecuting task to create task frames. In other w) 218.64 306.52 P
12510: -0.29 (ords, in its) 431.11 306.52 P
12511: 0.16 (e) 120.87 292.52 P
12512: 0.16 (x) 126.02 292.52 P
12513: 0.16 (ecution a task frame can replace itself by other task frames. W) 131.84 292.52 P
12514: 0.16 (ithout this) 432.35 292.52 P
12515: 0.04 (mechanism, a task cannot call a routine as a task. W) 120.87 278.52 P
12516: 0.04 (ithout calls to routines,) 370.74 278.52 P
12517: 0.76 (only simple applications can e) 120.87 264.52 P
12518: 0.76 (x) 269.06 264.52 P
12519: 0.76 (ecute in terms of tasks. The mechanism is) 274.88 264.52 P
12520: 0.15 (kno) 120.87 250.52 P
12521: 0.15 (wn as dele) 138.57 250.52 P
12522: 0.15 (g) 189.33 250.52 P
12523: 0.15 (ation in other presentations of TSIA. Dele) 195.27 250.52 P
12524: 0.15 (g) 397.61 250.52 P
12525: 0.15 (ation also of) 403.55 250.52 P
12526: 0.15 (fers) 462.87 250.52 P
12527: (other bene\336ts [Alternati) 120.87 236.52 T
12528: (v) 235.22 236.52 T
12529: (e].) 241.04 236.52 T
12530: 0.19 (Dele) 137.88 222.52 P
12531: 0.19 (g) 160.35 222.52 P
12532: 0.19 (ation is a v) 166.29 222.52 P
12533: 0.19 (ariation on continuation, a technique from the Scheme) 218.9 222.52 P
12534: 121 366/G1020704 FmPA
12535: 2.41 (programming language and other functional computing [RABBIT]. F) 120.87 208.52 P
12536: 2.41 (or) 470.86 208.52 P
12537: 0.99 (e) 120.87 194.52 P
12538: 0.99 (xample, each allo) 126.02 194.52 P
12539: 0.99 (ws proper tail calling. A continuation is based on con-) 212 194.52 P
12540: 0.23 (trol-\337o) 120.87 180.52 P
12541: 0.23 (w) 153.9 180.52 P
12542: 0.23 (. A dele) 161.79 180.52 P
12543: 0.23 (g) 199.73 180.52 P
12544: 0.23 (ation is based on data\337o) 205.67 180.52 P
12545: 0.23 (w) 322.3 180.52 P
12546: 0.23 (. In other w) 330.18 180.52 P
12547: 0.23 (ords, the dependen-) 386.08 180.52 P
12548: -0.03 (cies between routines are implicit for a continuation, while for a dele) 120.87 166.52 P
12549: -0.03 (g) 450.92 166.52 P
12550: -0.03 (ation) 456.86 166.52 P
12551: 0.22 (the dependencies are e) 120.87 152.52 P
12552: 0.22 (xplicit. The mechanism of dele) 229.65 152.52 P
12553: 0.22 (g) 379.35 152.52 P
12554: 0.22 (ation also is used in) 385.29 152.52 P
12555: (some implementations of graph reduction [ALICE].) 120.87 138.52 T
12556: 0 0 0 1 0 0 0 K
12557: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
12558: [/Dest/P.39/DEST FmPD2
12559: 142 715/M9.25688.1Heading.11.Comparison.to.Cilk FmPA
12560: 142 715/I1.1019882 FmPA
12561: [/Rect[207 498 269 511]/Border[0 0 0]/Page 41/View[/XYZ null 121 612 FmDC exch pop null]/LNK FmPD
12562: [/Rect[269 498 320 511]/Border[0 0 0]/Page 42/View[/XYZ null 121 746 FmDC exch pop null]/LNK FmPD
12563: [/Rect[320 498 371 511]/Border[0 0 0]/Page 42/View[/XYZ null 121 704 FmDC exch pop null]/LNK FmPD
12564: [/Rect[371 498 405 511]/Border[0 0 0]/Page 43/View[/XYZ null 121 676 FmDC exch pop null]/LNK FmPD
12565: [/Rect[316 414 355 427]/Border[0 0 0]/Page 41/View[/XYZ null 121 542 FmDC exch pop null]/LNK FmPD
12566: [/Rect[355 414 416 427]/Border[0 0 0]/Page 42/View[/XYZ null 121 816 FmDC exch pop null]/LNK FmPD
12567: [/Rect[416 414 449 427]/Border[0 0 0]/Page 42/View[/XYZ null 121 550 FmDC exch pop null]/LNK FmPD
12568: [/Rect[163 330 214 343]/Border[0 0 0]/Page 42/View[/XYZ null 121 704 FmDC exch pop null]/LNK FmPD
12569: [/Rect[214 330 248 343]/Border[0 0 0]/Page 43/View[/XYZ null 121 676 FmDC exch pop null]/LNK FmPD
12570: [/Rect[324 134 367 147]/Border[0 0 0]/Page 41/View[/XYZ null 121 682 FmDC exch pop null]/LNK FmPD
12571: [/Rect[189 232 250 245]/Border[0 0 0]/Page 41/View[/XYZ null 121 612 FmDC exch pop null]/LNK FmPD
12572: [/Rect[404 204 456 217]/Border[0 0 0]/Page 42/View[/XYZ null 121 480 FmDC exch pop null]/LNK FmPD
12573: [/Rect[159 646 198 659]/Border[0 0 0]/Page 41/View[/XYZ null 121 402 FmDC exch pop null]/LNK FmPD
12574: [/Rect[332 590 367 603]/Border[0 0 0]/Page 43/View[/XYZ null 121 676 FmDC exch pop null]/LNK FmPD
12575: [/Rect[281 590 332 603]/Border[0 0 0]/Page 42/View[/XYZ null 121 746 FmDC exch pop null]/LNK FmPD
12576: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
12577: FMENDPAGE
12578: %%EndPage: "39" 39
12579: %%Page: "40" 40
12580: 595.28 839.05 0 FMBEGINPAGE
12581: [0 0 0 1 0 0 0]
12582: [ 0 1 1 0 1 0 0]
12583: [ 1 0 1 0 0 1 0]
12584: [ 1 1 0 0 0 0 1]
12585: [ 1 0 0 0 0 1 1]
12586: [ 0 1 0 0 1 0 1]
12587: [ 0 0 1 0 1 1 0]
12588: 7 FrameSetSepColors
12589: FrameNoSep
12590: 0 0 0 1 0 0 0 K
12591: 0 0 0 1 0 0 0 K
12592: 0 0 0 1 0 0 0 K
12593: 90 959/G837264 FmPA
12594: 0 12 Q
12595: 0 X
12596: 0 0 0 1 0 0 0 K
12597: (40) 289.29 93.77 T
12598: 40 238/G837268 FmPA
12599: 1.65 (In Cilk-NO) 137.88 664.52 P
12600: 1.65 (W and its precursors, task frames are k) 194.1 664.52 P
12601: 1.65 (ept in a heap, b) 392.17 664.52 P
12602: 1.65 (ut) 471.52 664.52 P
12603: 121 808/G1020624 FmPA
12604: 1.18 (each processor maintains a queue of ready frames. Since it preserv) 120.87 650.52 P
12605: 1.18 (es the) 452.02 650.52 P
12606: 0.09 (application\325) 120.87 636.52 P
12607: 0.09 (s hierarch) 177.53 636.52 P
12608: 0.09 (y of calls to routines, the queue is similar to the stack) 224.54 636.52 P
12609: 0.21 (of this presentation. Each processor performs a depth-\336rst e) 120.87 622.52 P
12610: 0.21 (x) 408.64 622.52 P
12611: 0.21 (ecution of the) 414.45 622.52 P
12612: 1.52 (frames on its local queue. Frames are stolen breadth-\336rst from a remote) 120.87 608.52 P
12613: (queue.) 120.87 594.52 T
12614: 0.14 (In Cilk-NO) 137.88 580.52 P
12615: 0.14 (W and its precursors, a task frame does not ha) 192.59 580.52 P
12616: 0.14 (v) 414.9 580.52 P
12617: 0.14 (e a) 420.72 580.52 P
12618: 3 F
12619: 0.34 (_ready) 437.66 580.52 P
12620: 121 724/G1020790 FmPA
12621: 0 F
12622: 0.56 (\337ag lik) 120.87 566.52 P
12623: 0.56 (e that of TP) 154.98 566.52 P
12624: 0.56 (ARX of the pre) 211.88 566.52 P
12625: 0.56 (vious section. Instead, each frame has a) 287.57 566.52 P
12626: 1.62 (join counter indicating the number of missing ar) 120.87 552.52 P
12627: 1.62 (guments needed for the) 363.68 552.52 P
12628: -0.14 (frame to be ready to e) 120.87 538.52 P
12629: -0.14 (x) 224.94 538.52 P
12630: -0.14 (ecute. Thus whene) 230.76 538.52 P
12631: -0.14 (v) 319.82 538.52 P
12632: -0.14 (er an e) 325.64 538.52 P
12633: -0.14 (x) 357.16 538.52 P
12634: -0.14 (ecuting task produces an) 362.98 538.52 P
12635: 0.82 (out, it decrements the join counter of the frame using that out as an in. If) 120.87 524.52 P
12636: 1.53 (the join counter goes to zero, the frame is added to the queue. The join) 120.87 510.51 P
12637: 1.1 (counter is more general than the) 120.87 496.51 P
12638: 3 F
12639: 2.63 (_ready) 284.73 496.51 P
12640: 0 F
12641: 1.1 ( \337ag, b) 327.93 496.51 P
12642: 1.1 (ut fe) 362.88 496.51 P
12643: 1.1 (w Cilk applications) 385.34 496.51 P
12644: 0.57 (use this e) 120.87 482.51 P
12645: 0.57 (xtra generality) 166.5 482.51 P
12646: 0.57 (. In f) 235.95 482.51 P
12647: 0.57 (act, the e) 259.97 482.51 P
12648: 0.57 (xtra generality is assumed forbidden) 303.92 482.51 P
12649: 0.58 (in the proofs of Cilk\325) 120.87 468.51 P
12650: 0.58 (s ef) 223.85 468.51 P
12651: 0.58 (\336cient scheduling. The proofs require an applica-) 241.12 468.51 P
12652: -0.23 (tion to ha) 120.87 454.51 P
12653: -0.23 (v) 165.49 454.51 P
12654: -0.23 (e a strict e) 171.31 454.51 P
12655: -0.23 (x) 219.41 454.51 P
12656: -0.23 (ecution. The join counter is costlier than the) 225.23 454.51 P
12657: 3 F
12658: -0.56 (_ready) 437.66 454.51 P
12659: 0 F
12660: 4.6 (\337ag. The join counter requires considerable ef) 120.87 440.51 P
12661: 4.6 (fort at run-time. The) 369.09 440.51 P
12662: 3 F
12663: (_ready) 120.87 426.51 T
12664: 0 F
12665: ( \337ag generally can be determined at compile-time.) 164.07 426.51 T
12666: 0.16 (The w) 137.88 412.51 P
12667: 0.16 (ork-stealing scheduling of TP) 168.24 412.51 P
12668: 0.16 (ARX is similar to, b) 309.95 412.51 P
12669: 0.16 (ut not the same) 407.37 412.51 P
12670: 121 556/G1020804 FmPA
12671: 0.71 (as, that of Cilk-NO) 120.87 398.51 P
12672: 0.71 (W and its precursors. F) 214.59 398.51 P
12673: 0.71 (or e) 328.91 398.51 P
12674: 0.71 (xample, when an e) 347.77 398.51 P
12675: 0.71 (x) 439.71 398.51 P
12676: 0.71 (ecuting) 445.53 398.51 P
12677: 0.26 (task reduces a join counter to zero, the resulting ready frame is recognized) 120.87 384.51 P
12678: 0.94 (and is posted on a queue of ready frames. By contrast, in TP) 120.87 370.51 P
12679: 0.94 (ARX such a) 420.33 370.51 P
12680: 2.98 (ready frame is not recognized. As is, TP) 120.87 356.51 P
12681: 2.98 (ARX thus does not meet an) 333.61 356.51 P
12682: 0.5 (assumption of Cilk\325) 120.87 342.51 P
12683: 0.5 (s proofs of ef) 216.54 342.51 P
12684: 0.5 (\336cient scheduling. The practical ef) 281.39 342.51 P
12685: 0.5 (fect of) 449.38 342.51 P
12686: 0.28 (these dif) 120.87 328.51 P
12687: 0.28 (ferences in scheduling can be determined once TP) 161.84 328.51 P
12688: 0.28 (ARX and appli-) 403.64 328.51 P
12689: 5.01 (cations are implemented. If necessary) 120.87 314.52 P
12690: 5.01 (, a more sophisticated) 321.05 314.52 P
12691: 3 F
12692: 12.01 (_cop) 448.73 314.52 P
12693: 0 F
12694: 5.01 (/) 477.52 314.52 P
12695: 3 F
12696: 2.01 (_thief) 120.87 300.52 P
12697: 0 F
12698: 0.84 ( synchronization can recognize such ready frames; each is ef) 164.07 300.52 P
12699: 0.84 (fec-) 462.21 300.52 P
12700: (ti) 120.87 286.52 T
12701: (v) 127.24 286.52 T
12702: (ely a topmost task on its stack.) 133.06 286.52 T
12703: 1 F
12704: (12 Summary) 120.87 255.52 T
12705: 121 399/G1007159 FmPA
12706: 0 F
12707: 1.66 (The alternati) 120.87 236.52 P
12708: 1.66 (v) 183.21 236.52 P
12709: 1.66 (e e) 189.03 236.52 P
12710: 1.66 (x) 204.16 236.52 P
12711: 1.66 (ecution of routines places task frames onto a stack. A) 209.99 236.52 P
12712: 121 380/G1021706 FmPA
12713: 0.84 (task frame is the call of a routine to be e) 120.87 222.52 P
12714: 0.84 (x) 321.72 222.52 P
12715: 0.84 (ecuted. By contrast, the current) 327.54 222.52 P
12716: 1.45 (con) 120.87 208.52 P
12717: 1.45 (v) 137.72 208.52 P
12718: 1.45 (entional e) 143.54 208.52 P
12719: 1.45 (x) 191.79 208.52 P
12720: 1.45 (ecution of routines places acti) 197.61 208.52 P
12721: 1.45 (v) 346.4 208.52 P
12722: 1.45 (ation frames onto a stack.) 352.1 208.52 P
12723: (An acti) 120.87 194.52 T
12724: (v) 155.56 194.52 T
12725: (ation frame is the internal state of an e) 161.26 194.52 T
12726: (x) 345.04 194.52 T
12727: (ecuting routine.) 350.86 194.52 T
12728: 1.15 (A crude implementation of the alternati) 137.88 180.52 P
12729: 1.15 (v) 332.97 180.52 P
12730: 1.15 (e e) 338.79 180.52 P
12731: 1.15 (x) 353.42 180.52 P
12732: 1.15 (ecution demonstrates the) 359.24 180.52 P
12733: 121 324/G1021712 FmPA
12734: -0.12 (feasibility of the alternati) 120.87 166.52 P
12735: -0.12 (v) 241.21 166.52 P
12736: -0.12 (e e) 247.03 166.52 P
12737: -0.12 (x) 260.39 166.52 P
12738: -0.12 (ecution, including the follo) 266.21 166.52 P
12739: -0.12 (wing tw) 395.56 166.52 P
12740: -0.12 (o aspects.) 434.32 166.52 P
12741: 0.8 (The current con) 120.87 152.52 P
12742: 0.8 (v) 197.96 152.52 P
12743: 0.8 (entional e) 203.78 152.52 P
12744: 0.8 (x) 251.39 152.52 P
12745: 0.8 (ecution of routines can be treated as a special) 257.21 152.52 P
12746: 2.16 (case of the alternati) 120.87 138.52 P
12747: 2.16 (v) 220.67 138.52 P
12748: 2.16 (e e) 226.49 138.52 P
12749: 2.16 (x) 242.13 138.52 P
12750: 2.16 (ecution. F) 247.95 138.52 P
12751: 2.16 (or man) 297.92 138.52 P
12752: 2.16 (y applications, the alternati) 333.56 138.52 P
12753: 2.16 (v) 469.71 138.52 P
12754: 2.16 (e) 475.53 138.52 P
12755: 0 0 0 1 0 0 0 K
12756: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
12757: [/Dest/P.40/DEST FmPD2
12758: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
12759: FMENDPAGE
12760: %%EndPage: "40" 40
12761: %%Page: "41" 41
12762: 595.28 839.05 0 FMBEGINPAGE
12763: [0 0 0 1 0 0 0]
12764: [ 0 1 1 0 1 0 0]
12765: [ 1 0 1 0 0 1 0]
12766: [ 1 1 0 0 0 0 1]
12767: [ 1 0 0 0 0 1 1]
12768: [ 0 1 0 0 1 0 1]
12769: [ 0 0 1 0 1 1 0]
12770: 7 FrameSetSepColors
12771: FrameNoSep
12772: 0 0 0 1 0 0 0 K
12773: 0 0 0 1 0 0 0 K
12774: 0 0 0 1 0 0 0 K
12775: 90 959/G837264 FmPA
12776: 0 12 Q
12777: 0 X
12778: 0 0 0 1 0 0 0 K
12779: (41) 289.29 93.77 T
12780: 40 238/G837268 FmPA
12781: 0.07 (e) 120.87 664.52 P
12782: 0.07 (x) 126.02 664.52 P
12783: 0.07 (ecution of routines does not introduce signi\336cant time o) 131.84 664.52 P
12784: 0.07 (v) 400.18 664.52 P
12785: 0.07 (erheads be) 406 664.52 P
12786: 0.07 (yond) 456.86 664.52 P
12787: (those of the current con) 120.87 650.52 T
12788: (v) 233.69 650.52 T
12789: (entional e) 239.51 650.52 T
12790: (x) 286.32 650.52 T
12791: (ecution.) 292.14 650.52 T
12792: 2.15 (As outlined, the crude implementation can be e) 137.88 636.52 P
12793: 2.15 (xtended to a system) 379.41 636.52 P
12794: 121 780/G1021736 FmPA
12795: 0.63 (called TP) 120.87 622.52 P
12796: 0.63 (ARX which pro) 166.05 622.52 P
12797: 0.63 (vides a v) 243.79 622.52 P
12798: 0.63 (ariety of applications with a transparent) 287.41 622.52 P
12799: 0.67 (parallel e) 120.87 608.52 P
12800: 0.67 (x) 165.67 608.52 P
12801: 0.67 (ecution. TP) 171.49 608.52 P
12802: 0.67 (ARX is a v) 226.39 608.52 P
12803: 0.67 (ery small and simple system. As demon-) 281.87 608.52 P
12804: 0.41 (strated by TP) 120.87 594.52 P
12805: 0.41 (ARX, the alternati) 184.59 594.52 P
12806: 0.41 (v) 273.44 594.52 P
12807: 0.41 (e e) 279.26 594.52 P
12808: 0.41 (x) 293.15 594.52 P
12809: 0.41 (ecution of routines allo) 298.97 594.52 P
12810: 0.41 (ws an e) 410.9 594.52 P
12811: 0.41 (xternal) 447.54 594.52 P
12812: (system to pro) 120.87 580.52 T
12813: (vide an application with a transparent e) 185.36 580.52 T
12814: (x) 373.8 580.52 T
12815: (ecution.) 379.62 580.52 T
12816: 1 F
12817: (Refer) 120.87 549.52 T
12818: (ences) 149.3 549.52 T
12819: 121 693/G1001883 FmPA
12820: 0 F
12821: ([ALICE]) 120.87 530.52 T
12822: 121 674/G1000771 FmPA
12823: 0.98 (M.D. Cripps, J. Darlington, A.J. Field, P) 137.88 516.52 P
12824: 0.98 (.G. Harrison and M.J. Ree) 337.11 516.52 P
12825: 0.98 (v) 466.71 516.52 P
12826: 0.98 (e.) 472.53 516.52 P
12827: 121 660/G1019596 FmPA
12828: 0.69 (\322The Design and Implementation of ALICE: A P) 137.88 502.51 P
12829: 0.69 (arallel Graph Reduc-) 378.85 502.51 P
12830: 0.33 (tion Machine\323,) 137.88 488.51 P
12831: 2 F
12832: 0.33 (Selected Reprints on Data\337ow and Reduction Ar) 213.53 488.51 P
12833: 0.33 (c) 448.39 488.51 P
12834: 0.33 (hitec-) 453.54 488.51 P
12835: (tur) 137.88 474.51 T
12836: (es) 151.44 474.51 T
12837: 0 F
12838: (, ed. Thakkar) 161.43 474.51 T
12839: (, Springer) 224.26 474.51 T
12840: (-V) 271.35 474.51 T
12841: (erlag, Berlin, 1987, pp. 300-321.) 282.68 474.51 T
12842: ([Alternati) 120.87 460.51 T
12843: (v) 167.22 460.51 T
12844: (e]) 173.04 460.51 T
12845: 121 604/G1019595 FmPA
12846: 1.15 (Burkhard D. Buro) 137.88 446.51 P
12847: 1.15 (w) 226.87 446.51 P
12848: 1.15 (. \322) 234.75 446.51 P
12849: 1.15 (An Alternati) 246.27 446.51 P
12850: 1.15 (v) 307.45 446.51 P
12851: 1.15 (e Implementation of Routines\323, at) 313.27 446.51 P
12852: 121 590/G1000772 FmPA
12853: 2 F
12854: 0.5 (Implementation of Functional Langua) 137.88 432.51 P
12855: 0.5 (g) 322.26 432.51 P
12856: 0.5 (es 11th International W) 328.14 432.51 P
12857: 0.5 (orkshop) 442.2 432.51 P
12858: (\050IFL) 137.88 418.51 T
12859: (\32599\051) 159.43 418.51 T
12860: 0 F
12861: (, Lochem, Netherlands, September 7-10, 1999.) 179.42 418.51 T
12862: 3 F
12863: (www.tsia.org) 137.88 404.51 T
12864: 0 F
12865: ([Cilk-1]) 120.87 390.51 T
12866: 121 534/G1020413 FmPA
12867: 4.4 (Robert D. Blumofe, Christopher F) 137.88 376.51 P
12868: 4.4 (. Joer) 319.18 376.51 P
12869: 4.4 (g, Bradle) 349.36 376.51 P
12870: 4.4 (y C. K) 397.58 376.51 P
12871: 4.4 (uszmaul,) 437.86 376.51 P
12872: 121 520/G1020402 FmPA
12873: 0.6 (Charles E. Leiserson, K) 137.88 362.51 P
12874: 0.6 (eith H. Randall and Y) 253.69 362.51 P
12875: 0.6 (uli Zhou. \322Cilk: An Ef) 359.75 362.51 P
12876: 0.6 (\336-) 470.19 362.51 P
12877: 1.13 (cient Multithreaded Runtime System\323, in) 137.88 348.51 P
12878: 2 F
12879: 1.13 (5th A) 344.18 348.51 P
12880: 1.13 (CM SIGPLAN Sympo-) 370.62 348.51 P
12881: 2.56 (sium on Principles and Pr) 137.88 334.51 P
12882: 2.56 (actice of P) 273.95 334.51 P
12883: 2.56 (ar) 329.43 334.51 P
12884: 2.56 (allel Pr) 339.92 334.51 P
12885: 2.56 (o) 378.28 334.51 P
12886: 2.56 (gr) 384.16 334.51 P
12887: 2.56 (amming \050PPOPP) 394.65 334.51 P
12888: (\32495\051) 137.88 320.52 T
12889: 0 F
12890: (, Santa Barbara, California, July 19-21, 1995, pp. 207-216.) 157.87 320.52 T
12891: 3 F
12892: (supertech.lcs.mit.edu/cilk) 137.88 306.52 T
12893: 0 F
12894: ([Cilk-2]) 120.87 292.52 T
12895: 121 436/G1016041 FmPA
12896: 0.02 (Anon) 137.88 278.52 P
12897: 0.02 (ymous. \322Cilk 2.0 \050V) 164.36 278.52 P
12898: 0.02 (ersion Beta 1\051 Reference Manual\323, July 1995.) 260.77 278.52 P
12899: 121 422/G1016046 FmPA
12900: (Unpublished.) 137.88 264.52 T
12901: 3 F
12902: (supertech.lcs.mit.edu/cilk) 205.21 264.52 T
12903: 0 F
12904: ([Cilk-5]) 120.87 250.52 T
12905: 121 394/G1019217 FmPA
12906: 0.17 (Matteo Frigo, Charles E. Leiserson, and K) 137.88 236.52 P
12907: 0.17 (eith H. Randall. \322The Imple-) 342.22 236.52 P
12908: 121 380/G1007395 FmPA
12909: 2.55 (mentation of the Cilk-5 Multithreaded Language\323,) 137.88 222.52 P
12910: 2 F
12911: 2.55 (1998 A) 398.14 222.52 P
12912: 2.55 (CM SIG-) 434.66 222.52 P
12913: 10.42 (PLAN Confer) 137.88 208.52 P
12914: 10.42 (ence on Pr) 213.53 208.52 P
12915: 10.42 (o) 285.81 208.52 P
12916: 10.42 (gr) 291.69 208.52 P
12917: 10.42 (amming Langua) 302.18 208.52 P
12918: 10.42 (g) 390.82 208.52 P
12919: 10.42 (e Design and) 396.7 208.52 P
12920: 0.55 (Implementation \050PLDI\32598\051) 137.88 194.52 P
12921: 0 F
12922: 0.55 (, June 17-19, Montreal, Canada. A) 267.4 194.52 P
12923: 0.55 (CM SIG-) 435.31 194.52 P
12924: (PLAN Notices, 33\0505\051, pp. 212-223, May 1998.) 137.88 180.52 T
12925: 3 F
12926: (supertech.lcs.mit.edu/cilk) 137.88 166.52 T
12927: 0 0 0 1 0 0 0 K
12928: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
12929: [/Dest/P.41/DEST FmPD2
12930: 121 612/M9.33990.ReferenceT.Alternative.NOT.YET.REFD FmPA
12931: 121 612/I1.1008184 FmPA
12932: 121 444/M9.16507.ReferenceT.Cilk2 FmPA
12933: 121 444/I1.1016075 FmPA
12934: 121 402/M9.27067.ReferenceT.Cilk5 FmPA
12935: 121 402/I1.1019320 FmPA
12936: 121 682/M9.11214.ReferenceT.ALICE FmPA
12937: 121 682/I1.1019697 FmPA
12938: 121 542/M9.37227.ReferenceT.Cilk1 FmPA
12939: 121 542/I1.1020536 FmPA
12940: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
12941: FMENDPAGE
12942: %%EndPage: "41" 41
12943: %%Page: "42" 42
12944: 595.28 839.05 0 FMBEGINPAGE
12945: [0 0 0 1 0 0 0]
12946: [ 0 1 1 0 1 0 0]
12947: [ 1 0 1 0 0 1 0]
12948: [ 1 1 0 0 0 0 1]
12949: [ 1 0 0 0 0 1 1]
12950: [ 0 1 0 0 1 0 1]
12951: [ 0 0 1 0 1 1 0]
12952: 7 FrameSetSepColors
12953: FrameNoSep
12954: 0 0 0 1 0 0 0 K
12955: 0 0 0 1 0 0 0 K
12956: 0 0 0 1 0 0 0 K
12957: 90 959/G837264 FmPA
12958: 0 12 Q
12959: 0 X
12960: 0 0 0 1 0 0 0 K
12961: (42) 289.29 93.77 T
12962: 40 238/G837268 FmPA
12963: ([Cilk-NO) 120.87 664.52 T
12964: (W]) 166.44 664.52 T
12965: 121 808/G1019221 FmPA
12966: 0.23 (Robert D. Blumofe and Philip A. Lisiecki. \322) 137.88 650.52 P
12967: 0.23 (Adapti) 350.52 650.52 P
12968: 0.23 (v) 382.89 650.52 P
12969: 0.23 (e and Reliable P) 388.71 650.52 P
12970: 0.23 (ar-) 467.54 650.52 P
12971: 121 794/G1007396 FmPA
12972: -0.2 (allel Computing on Netw) 137.88 636.52 P
12973: -0.2 (orks of W) 258.81 636.52 P
12974: -0.2 (orkstations\323, in) 305.43 636.52 P
12975: 2 F
12976: -0.2 (Pr) 381.36 636.52 P
12977: -0.2 (oc. of the USENIX) 392.82 636.52 P
12978: 1.14 (1997 Annual T) 137.88 622.52 P
12979: 1.14 (ec) 210.39 622.52 P
12980: 1.14 (hnical Symposium) 220.87 622.52 P
12981: 0 F
12982: 1.14 (, Anaheim, California, USA, Janu-) 309.66 622.52 P
12983: (ary 6-10, 1997, pp. 133-147.) 137.88 608.52 T
12984: 3 F
12985: (supertech.lcs.mit.edu/cilk) 278.19 608.52 T
12986: 0 F
12987: ([Data\337o) 120.87 594.52 T
12988: (w]) 159.89 594.52 T
12989: 121 738/G1007361 FmPA
12990: 0.28 (Burkhard D. Steinmacher) 137.88 580.52 P
12991: 0.28 (-Buro) 261.18 580.52 P
12992: 0.28 (w) 288.88 580.52 P
12993: 0.28 (. \322TSIA: A Data\337o) 296.76 580.52 P
12994: 0.28 (w Model\323,) 388.64 580.52 P
12995: 2 F
12996: 0.28 (Submit-) 443.53 580.52 P
12997: 121 724/G1007362 FmPA
12998: (ted for publication.) 137.88 566.52 T
12999: 3 F
13000: ( xxx.lanl.gov/abs/cs.PL/0003010) 230.22 566.52 T
13001: 0 F
13002: ([Di) 120.87 552.52 T
13003: (viding]) 136.56 552.52 T
13004: 121 696/G1007330 FmPA
13005: 0.33 (Burkhard D. Steinmacher) 137.88 538.52 P
13006: 0.33 (-Buro) 261.27 538.52 P
13007: 0.33 (w) 288.96 538.52 P
13008: 0.33 (. \322Di) 296.85 538.52 P
13009: 0.33 (viding the Application De\336nition) 320.2 538.52 P
13010: 121 682/G1019710 FmPA
13011: 0.53 (from the Ex) 137.88 524.52 P
13012: 0.53 (ecution\323,) 196.08 524.52 P
13013: 2 F
13014: 0.53 (IEEE Computing in Science & Engineering) 243.26 524.52 P
13015: 0 F
13016: 0.53 (, V) 454.88 524.52 P
13017: 0.53 (ol.) 468.52 524.52 P
13018: (2, No. 3, May/June 2000, pp. 70-75.) 137.88 510.51 T
13019: 3 F
13020: (www.tsia.org) 314.86 510.51 T
13021: 0 F
13022: ([ghc]) 120.87 496.51 T
13023: 121 640/G1021193 FmPA
13024: 0.34 (Simon L Pe) 137.88 482.51 P
13025: 0.34 (yton Jones, Cordy Hall, K) 195.06 482.51 P
13026: 0.34 (e) 321.46 482.51 P
13027: 0.34 (vin Hammond, W) 326.49 482.51 P
13028: 0.34 (ill P) 413.02 482.51 P
13029: 0.34 (artain and) 432.87 482.51 P
13030: 121 626/G1021194 FmPA
13031: 0.47 (Philip W) 137.88 468.51 P
13032: 0.47 (adler) 180.39 468.51 P
13033: 0.47 (. \322The Glasgo) 203.72 468.51 P
13034: 0.47 (w Hask) 271.35 468.51 P
13035: 0.47 (ell compiler: a technical o) 308.02 468.51 P
13036: 0.47 (v) 434.36 468.51 P
13037: 0.47 (ervie) 440.18 468.51 P
13038: 0.47 (w\323,) 463.87 468.51 P
13039: 2 F
13040: 0.65 (Pr) 137.88 454.51 P
13041: 0.65 (oc. UK J) 149.34 454.51 P
13042: 0.65 (oint F) 192.67 454.51 P
13043: 0.65 (r) 221.67 454.51 P
13044: 0.65 (ame) 226.15 454.51 P
13045: 0.65 (work for Information T) 245.97 454.51 P
13046: 0.65 (ec) 357.84 454.51 P
13047: 0.65 (hnolo) 368.31 454.51 P
13048: 0.65 (gy \050JFIT\051 T) 395.53 454.51 P
13049: 0.65 (ec) 451.05 454.51 P
13050: 0.65 (hni-) 461.53 454.51 P
13051: (cal Confer) 137.88 440.51 T
13052: (ence) 188.43 440.51 T
13053: 0 F
13054: (, K) 210.42 440.51 T
13055: (eele, March 1993, pp. 249-257.) 224.78 440.51 T
13056: 3 F
13057: (ftp://ftp.dcs.gla.ac.uk/pub/glasgow-fp/papers/) 137.88 426.51 T
13058: (grasp-jfit.ps.Z) 137.88 412.51 T
13059: 0 F
13060: ([PCM]) 120.87 398.51 T
13061: 121 542/G1019712 FmPA
13062: 0.1 (Michael Halbherr) 137.88 384.51 P
13063: 0.1 (, Y) 222.46 384.51 P
13064: 0.1 (uli Zhou and Chris F) 235.89 384.51 P
13065: 0.1 (. Joer) 335.33 384.51 P
13066: 0.1 (g. \322MIMD-Style P) 361.2 384.51 P
13067: 0.1 (arallel) 450.87 384.51 P
13068: 121 528/G1019713 FmPA
13069: 0.72 (Programming\323, Computation Structures Group Memo 355, Massachu-) 137.88 370.51 P
13070: (setts Institute of T) 137.88 356.51 T
13071: (echnology \050MIT\051, April 1994, p. 24.) 224.04 356.51 T
13072: 3 F
13073: (supertech.lcs.mit.edu/cilk) 137.88 342.51 T
13074: 0 F
13075: ([RABBIT]) 120.87 328.51 T
13076: 121 472/G1021155 FmPA
13077: -0.25 (Guy Le) 137.88 314.52 P
13078: -0.25 (wis Steele. \322RABBIT) 173.65 314.52 P
13079: -0.25 (: A Compiler for SCHEME\323, AI T) 276.88 314.52 P
13080: -0.25 (echnical) 440.88 314.52 P
13081: 121 458/G1021156 FmPA
13082: 1.84 (Report 474, Arti\336cial Intelligence \050AI\051 Laboratory of the Massachu-) 137.88 300.52 P
13083: -0.26 (setts Institute of T) 137.88 286.52 P
13084: -0.26 (echnology \050MIT\051, May 1978, p. 272.) 223.25 286.52 P
13085: 3 F
13086: -0.63 (www.ai.mit.) 401.66 286.52 P
13087: (edu/publications/pubsDB/pubsDB/onlinehtml) 137.88 272.52 T
13088: 0 F
13089: ([R) 120.87 258.52 T
13090: (TU]) 132.15 258.52 T
13091: 121 402/G1019715 FmPA
13092: -0.21 (R. Gopalakrishnan and Guru M. P) 137.88 244.52 P
13093: -0.21 (arulkar) 300.96 244.52 P
13094: -0.21 (. \322) 334.28 244.52 P
13095: -0.21 (A Real-T) 344.44 244.52 P
13096: -0.21 (ime Upcall F) 388.8 244.52 P
13097: -0.21 (acility) 450.86 244.52 P
13098: 121 388/G1015274 FmPA
13099: 0.36 (for Protocol Processing with QoS Guarantees\323, in) 137.88 230.52 P
13100: 2 F
13101: 0.36 (A) 382.36 230.52 P
13102: 0.36 (CM Symp. Oper) 389.34 230.52 P
13103: 0.36 (at-) 467.53 230.52 P
13104: 0.88 (ing Systems Principles) 137.88 216.52 P
13105: 0 F
13106: 0.88 (, \050Poster Session\051, Copper Mountain CO, USA,) 248.29 216.52 P
13107: (Dec. 1995, A) 137.88 202.52 T
13108: (CM Press, Ne) 201.38 202.52 T
13109: (w Y) 268.08 202.52 T
13110: (ork, pp. 231.) 287.08 202.52 T
13111: 3 F
13112: (www.arl.wustl.edu/arl/refpapers/gopal/os.html) 137.88 188.52 T
13113: 0 F
13114: ([Scope]) 120.87 174.52 T
13115: 121 318/G1017458 FmPA
13116: 0.87 (Edsger W) 137.88 160.52 P
13117: 0.87 (ybe Dijkstra. \322) 185.52 160.52 P
13118: 0.87 (An Essay on the Notion: \322The Scope of V) 256.62 160.52 P
13119: 0.87 (ari-) 464.2 160.52 P
13120: 121 304/G1007566 FmPA
13121: 2.48 (ables\323\323, Chapter) 137.88 146.52 P
13122: 2.48 (10 in) 222.67 146.52 P
13123: 2 F
13124: 2.48 (A Discipline of Pr) 254.97 146.52 P
13125: 2.48 (o) 348.88 146.52 P
13126: 2.48 (gr) 354.76 146.52 P
13127: 2.48 (amming) 365.24 146.52 P
13128: 0 F
13129: 2.48 (, Prentice Hall,) 403.91 146.52 P
13130: (1976, pp.) 137.88 132.52 T
13131: (79-93.) 185.88 132.52 T
13132: 0 0 0 1 0 0 0 K
13133: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
13134: [/Dest/P.42/DEST FmPD2
13135: 121 704/M9.23339.ReferenceT.Dividing FmPA
13136: 121 704/I1.1007329 FmPA
13137: 121 746/M9.41854.ReferenceT.Dataflow FmPA
13138: 121 746/I1.1007380 FmPA
13139: 121 816/M9.40854.ReferenceT.CilkNOW FmPA
13140: 121 816/I1.1021117 FmPA
13141: 121 550/M9.27319.ReferenceT.FUNARG FmPA
13142: 121 550/I1.1019711 FmPA
13143: 121 410/M9.15196.ReferenceT.RTU FmPA
13144: 121 410/I1.1019714 FmPA
13145: 121 326/M9.16793.ReferenceT.Scope FmPA
13146: 121 326/I1.1017457 FmPA
13147: 121 480/M9.65269.ReferenceT.RABBIT FmPA
13148: 121 480/I1.1021154 FmPA
13149: 121 648/M9.20490.ReferenceT.ghc FmPA
13150: 121 648/I1.1021246 FmPA
13151: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
13152: FMENDPAGE
13153: %%EndPage: "42" 42
13154: %%Page: "43" 43
13155: 595.28 839.05 0 FMBEGINPAGE
13156: [0 0 0 1 0 0 0]
13157: [ 0 1 1 0 1 0 0]
13158: [ 1 0 1 0 0 1 0]
13159: [ 1 1 0 0 0 0 1]
13160: [ 1 0 0 0 0 1 1]
13161: [ 0 1 0 0 1 0 1]
13162: [ 0 0 1 0 1 1 0]
13163: 7 FrameSetSepColors
13164: FrameNoSep
13165: 0 0 0 1 0 0 0 K
13166: 0 0 0 1 0 0 0 K
13167: 0 0 0 1 0 0 0 K
13168: 90 959/G837264 FmPA
13169: 0 12 Q
13170: 0 X
13171: 0 0 0 1 0 0 0 K
13172: (43) 289.29 93.77 T
13173: 40 238/G837268 FmPA
13174: ([sml2c]) 120.87 664.52 T
13175: 121 808/G1021186 FmPA
13176: 0.07 (Da) 137.88 650.52 P
13177: 0.07 (vid T) 151.63 650.52 P
13178: 0.07 (arditi, Peter Lee and Anurag Acharya. \322No Assembly Required) 176.4 650.52 P
13179: 121 794/G1021187 FmPA
13180: 1.26 (: Compiling Standard ML to C\323,) 137.88 636.52 P
13181: 2 F
13182: 1.26 (A) 304.46 636.52 P
13183: 1.26 (CM Letter) 311.43 636.52 P
13184: 1.26 (s on Pr) 362.25 636.52 P
13185: 1.26 (o) 398.9 636.52 P
13186: 1.26 (gr) 404.78 636.52 P
13187: 1.26 (amming Lan-) 415.27 636.52 P
13188: (gua) 137.88 622.52 T
13189: (g) 155.76 622.52 T
13190: (es and Systems) 161.64 622.52 T
13191: 0 F
13192: (, V) 233.62 622.52 T
13193: (ol.) 246.74 622.52 T
13194: (1, No.) 262.08 622.52 T
13195: (2, June 1992, pp. 161-177.) 294.74 622.52 T
13196: 3 F
13197: (foxnet.cs.cmu.edu/papers.html) 137.88 608.52 T
13198: 0 F
13199: ([Stack]) 120.87 594.52 T
13200: 121 738/G1017460 FmPA
13201: 2.52 (E. W) 137.88 580.52 P
13202: 2.52 (. Dijkstra. \322Recursi) 163.95 580.52 P
13203: 2.52 (v) 261.35 580.52 P
13204: 2.52 (e Programming\323,) 267.17 580.52 P
13205: 2 F
13206: 2.52 (Numerisc) 357.87 580.52 P
13207: 2.52 (he Mathematik) 403.69 580.52 P
13208: 0 F
13209: 2.52 (,) 477.86 580.52 P
13210: 121 724/G1007567 FmPA
13211: 1.97 (V) 137.88 566.52 P
13212: 1.97 (ol. 2, Springer V) 144.99 566.52 P
13213: 1.97 (erlag, Berlin-G\232ttingen-Heidelber) 229.89 566.52 P
13214: 1.97 (g, 1960, pp.) 394.93 566.52 P
13215: 1.97 (312-) 458.86 566.52 P
13216: 2.49 (318. Also in) 137.88 552.52 P
13217: 2 F
13218: 2.49 (Pr) 207.35 552.52 P
13219: 2.49 (o) 218.81 552.52 P
13220: 2.49 (gr) 224.69 552.52 P
13221: 2.49 (amming Systems and Langua) 235.18 552.52 P
13222: 2.49 (g) 382.85 552.52 P
13223: 2.49 (es) 388.73 552.52 P
13224: 0 F
13225: 2.49 (, edited by Saul) 398.73 552.52 P
13226: (Rosen, McGra) 137.88 538.52 T
13227: (w-Hill Book Compan) 207.68 538.52 T
13228: (y) 311.5 538.52 T
13229: (, 1967, pp. 221-227.) 316.72 538.52 T
13230: ([TSIA]) 120.87 524.52 T
13231: 121 668/G1007258 FmPA
13232: 3.33 (Burkhard D. Buro) 137.88 510.51 P
13233: 3.33 (w) 231.22 510.51 P
13234: 3.33 (.) 239.1 510.51 P
13235: 2 F
13236: 3.33 (DRAFT : T) 248.43 510.51 P
13237: 3.33 (ask System and Item Ar) 307.98 510.51 P
13238: 3.33 (c) 433.5 510.51 P
13239: 3.33 (hitectur) 438.64 510.51 P
13240: 3.33 (e) 475.53 510.51 P
13241: 121 654/G1007259 FmPA
13242: 2.12 (\050TSIA\051) 137.88 496.51 P
13243: 0 F
13244: 2.12 (, DESY) 169.87 496.51 P
13245: 2.12 (99-066, Deutsches Elektronen-Synchrotron, Hamb) 212.32 496.51 P
13246: 2.12 (ur) 462.08 496.51 P
13247: 2.12 (g,) 471.86 496.51 P
13248: (German) 137.88 482.51 T
13249: (y) 176.35 482.51 T
13250: (, June) 181.57 482.51 T
13251: (1999, p. 244.) 212.56 482.51 T
13252: 3 F
13253: (www.desy.de/library) 278.56 482.51 T
13254: 0 0 0 1 0 0 0 K
13255: [/CropBox[0 -1 FmDC 595 840 FmDC FmBx]/PAGE FmPD
13256: [/Dest/P.43/DEST FmPD2
13257: 121 676/M9.30869.ReferenceT.TSIA FmPA
13258: 121 676/I1.1007257 FmPA
13259: 121 746/M9.70405.ReferenceT.Stack FmPA
13260: 121 746/I1.1007565 FmPA
13261: 121 816/M9.11091.ReferenceT.sml2c FmPA
13262: 121 816/I1.1021253 FmPA
13263: [/Title(A)/Rect[112 113 490 681]/ARTICLE FmPD2
13264: [/Page 1/View[/XYZ null 267 816 FmDC exch pop null]/Title(Task Frames)/Count 2/OUT FmPD
13265: [/Page 1/View[/XYZ null 221 783 FmDC exch pop null]/Title(Burkhard D. Steinmacher-Burow)/Count 1/OUT FmPD
13266: [/Page 1/View[/XYZ null 204 757 FmDC exch pop null]/Title(Postfach 1163, 73241 Wernau, Germany burow@ifh.de ...)/OUT FmPD
13267: [/Page 1/View[/XYZ null 266 696 FmDC exch pop null]/Title(April 13, 2000)/Count 12/OUT FmPD
13268: [/Page 1/View[/XYZ null 136 455 FmDC exch pop null]/Title(1 Introduction)/OUT FmPD
13269: [/Page 3/View[/XYZ null 136 365 FmDC exch pop null]/Title(2 Activation Frames)/Count -2/OUT FmPD
13270: [/Page 4/View[/XYZ null 124 705 FmDC exch pop null]/Title(a\))/OUT FmPD
13271: [/Page 4/View[/XYZ null 164 425 FmDC exch pop null]/Title(Figure\0211 a\) Pseudocode for the routine d executed ...)/OUT FmPD
13272: [/Page 5/View[/XYZ null 136 435 FmDC exch pop null]/Title(3 Task Frames)/OUT FmPD
13273: [/Page 7/View[/XYZ null 136 365 FmDC exch pop null]/Title(4 A TSIA Language)/Count -3/OUT FmPD
13274: [/Page 10/View[/XYZ null 124 809 FmDC exch pop null]/Title(a\))/OUT FmPD
13275: [/Page 10/View[/XYZ null 124 513 FmDC exch pop null]/Title(d\))/OUT FmPD
13276: [/Page 10/View[/XYZ null 164 429 FmDC exch pop null]/Title(Figure\0212 a\) Some example code in the TSIA language...)/OUT FmPD
13277: [/Page 11/View[/XYZ null 136 771 FmDC exch pop null]/Title(5 A Crude Implementation)/Count -4/OUT FmPD
13278: [/Page 11/View[/XYZ null 164 431 FmDC exch pop null]/Title(Figure\0213 The stack and code to repeatedly execute ...)/OUT FmPD
13279: [/Page 13/View[/XYZ null 164 599 FmDC exch pop null]/Title(Figure\0214 Intermediate C code from compiling TSIA c...)/OUT FmPD
13280: [/Page 13/View[/XYZ null 164 418 FmDC exch pop null]/Title(Figure\0215 An application which calls the routine d ...)/OUT FmPD
13281: [/Page 14/View[/XYZ null 164 299 FmDC exch pop null]/Title(Figure\0216 A routine to show the contents of the sta...)/OUT FmPD
13282: [/Page 15/View[/XYZ null 136 351 FmDC exch pop null]/Title(6 An Activation Frame is like a Task Frame)/Count -3/OUT FmPD
13283: [/Page 16/View[/XYZ null 164 369 FmDC exch pop null]/Title(Figure\0217 Routine c of Figure\0212a\) compiled to use a...)/OUT FmPD
13284: [/Page 17/View[/XYZ null 164 389 FmDC exch pop null]/Title(Figure\0218 Routine d of Figure\0212a\) compiled to use a...)/OUT FmPD
13285: [/Page 19/View[/XYZ null 164 559 FmDC exch pop null]/Title(Figure\0219 An execution on the stack using activatio...)/OUT FmPD
13286: [/Page 20/View[/XYZ null 136 491 FmDC exch pop null]/Title(7 The Time Overhead for Calling a Routine)/Count -3/OUT FmPD
13287: [/Page 21/View[/XYZ null 170 767 FmDC exch pop null]/Title(Figure\02110 A conventional Fibonacci application.)/OUT FmPD
13288: [/Page 21/View[/XYZ null 170 566 FmDC exch pop null]/Title(Figure\02111 A Fibonacci application in the task styl...)/OUT FmPD
13289: [/Page 23/View[/XYZ null 170 641 FmDC exch pop null]/Title(Figure\02112 Intermediate C code from compiling a Fib...)/Count -1/OUT FmPD
13290: [/Page 23/View[/XYZ null 163 445 FmDC exch pop null]/Title(Table 1:\021 Execution times and ratios for three Fib...)/OUT FmPD
13291: [/Page 23/View[/XYZ null 136 334 FmDC exch pop null]/Title(8 Iteration using Tail Recursion)/Count -4/OUT FmPD
13292: [/Page 24/View[/XYZ null 170 649 FmDC exch pop null]/Title(Figure\02113 Iteration using a loop.)/OUT FmPD
13293: [/Page 24/View[/XYZ null 170 460 FmDC exch pop null]/Title(Figure\02114 Iteration using tail recursion with acti...)/OUT FmPD
13294: [/Page 25/View[/XYZ null 170 459 FmDC exch pop null]/Title(Figure\02115 Intermediate C code from compiling tsum,...)/OUT FmPD
13295: [/Page 26/View[/XYZ null 170 669 FmDC exch pop null]/Title(Figure\02116 An application using the routine lsum of...)/Count -1/OUT FmPD
13296: [/Page 26/View[/XYZ null 163 487 FmDC exch pop null]/Title(Table 2:\021 Execution times and ratios for three imp...)/OUT FmPD
13297: [/Page 27/View[/XYZ null 136 816 FmDC exch pop null]/Title(9 Arrays)/Count -2/OUT FmPD
13298: [/Page 29/View[/XYZ null 170 305 FmDC exch pop null]/Title(Figure\02117 Intermediate C code from compiling vseq,...)/OUT FmPD
13299: [/Page 30/View[/XYZ null 170 706 FmDC exch pop null]/Title(Figure\02118 An execution of the routine vseq on the ...)/OUT FmPD
13300: [/Page 30/View[/XYZ null 142 627 FmDC exch pop null]/Title(10 A Transparent Parallel Execution)/Count -3/OUT FmPD
13301: [/Page 31/View[/XYZ null 170 565 FmDC exch pop null]/Title(Figure\02119 A divide-and-conquer version of the rout...)/OUT FmPD
13302: [/Page 32/View[/XYZ null 170 291 FmDC exch pop null]/Title(Figure\02120 Intermediate C code from compiling dcvsu...)/OUT FmPD
13303: [/Page 35/View[/XYZ null 170 284 FmDC exch pop null]/Title(Figure\02121 Five snapshots of a parallel execution o...)/OUT FmPD
13304: [/Page 39/View[/XYZ null 142 715 FmDC exch pop null]/Title(11 Some Related Work)/OUT FmPD
13305: [/Page 40/View[/XYZ null 142 407 FmDC exch pop null]/Title(12 Summary)/Count -1/OUT FmPD
13306: [/Page 41/View[/XYZ null 121 701 FmDC exch pop null]/Title(References)/Count -16/OUT FmPD
13307: [/Page 41/View[/XYZ null 121 682 FmDC exch pop null]/Title([ALICE])/OUT FmPD
13308: [/Page 41/View[/XYZ null 121 612 FmDC exch pop null]/Title([Alternative])/OUT FmPD
13309: [/Page 41/View[/XYZ null 121 542 FmDC exch pop null]/Title([Cilk-1])/OUT FmPD
13310: [/Page 41/View[/XYZ null 121 444 FmDC exch pop null]/Title([Cilk-2])/OUT FmPD
13311: [/Page 41/View[/XYZ null 121 402 FmDC exch pop null]/Title([Cilk-5])/OUT FmPD
13312: [/Page 42/View[/XYZ null 121 816 FmDC exch pop null]/Title([Cilk-NOW])/OUT FmPD
13313: [/Page 42/View[/XYZ null 121 746 FmDC exch pop null]/Title([Dataflow])/OUT FmPD
13314: [/Page 42/View[/XYZ null 121 704 FmDC exch pop null]/Title([Dividing])/OUT FmPD
13315: [/Page 42/View[/XYZ null 121 648 FmDC exch pop null]/Title([ghc])/OUT FmPD
13316: [/Page 42/View[/XYZ null 121 550 FmDC exch pop null]/Title([PCM])/OUT FmPD
13317: [/Page 42/View[/XYZ null 121 480 FmDC exch pop null]/Title([RABBIT])/OUT FmPD
13318: [/Page 42/View[/XYZ null 121 410 FmDC exch pop null]/Title([RTU])/OUT FmPD
13319: [/Page 42/View[/XYZ null 121 326 FmDC exch pop null]/Title([Scope])/OUT FmPD
13320: [/Page 43/View[/XYZ null 121 816 FmDC exch pop null]/Title([sml2c])/OUT FmPD
13321: [/Page 43/View[/XYZ null 121 746 FmDC exch pop null]/Title([Stack])/OUT FmPD
13322: [/Page 43/View[/XYZ null 121 676 FmDC exch pop null]/Title([TSIA])/OUT FmPD
13323: FMENDPAGE
13324: %%EndPage: "43" 43
13325: %%Trailer
13326: %%BoundingBox: 0 0 595.28 839.05
13327: %%PageOrder: Ascend
13328: %%Pages: 43
13329: %%DocumentFonts: Times-Roman
13330: %%+ Times-Bold
13331: %%+ Times-Italic
13332: %%+ Courier
13333: %%+ Courier-Bold
13334: %%EOF
13335: