Saffron August 31, 1988 Saffron James Rauen August 31, 1988 Why another Cedar compiler? Demonstrate the viability of Casaba Principled implementation Easy to maintain Easy to verify Type theory Experiments What is Cedar? CLRM Mesa manual The implementation Religion Saffron Front end of a compiler Implements Cedar/Mesa + Religion Implemented in Casaba Environment Context Tree Mimics lexical structure of source program Each node has a TGN. TGN describes runtime type structure of all the statically linked frames. Parser Concrete Grammar Abstract Grammar Context Tree A data structure which mimics the lexical structure of a program Context Tree Program Graph What Saffron Does Type Graph Context Tree Program Graph Weird Cedar I a: INT _ b; a: INT = b; b: INT _ a; b: INT = a; a: INT = b; a: INT _ b; b: INT _ a; b: INT = a; Weird Cedar II a: INT _ b; a: INT = b; b: INT _ 3; b: INT = 3; a: INT = b; a: INT _ b; b: INT _ 3; b: INT = 3; Into the Abyss Three Innocuous Features Sequential processing of declarations Dependency analysis among named constants with compile-time values INLINE does not affect the meaning of a program, except maybe to make it illegal Weird Cedar III Foo1: CEDAR PROGRAM = BEGIN Three: PROC RETURNS [INT] = INLINE { RETURN[3] }; a: INT = b; b: INT = Three[]; c: INT _ a; END. Weird Cedar IV Foo: TYPE = INT[0..LAST[Bar]]; Bar: TYPE = INT[FIRST[Foo]..10]; x: INT _ FIRST[Bar]; Out of the Abyss Dependency Graph Nodes for: Values of named compile-time constants Bodies of inline procedures Initialization expressions of types SIZE, FIRST, LAST properties of types Topological Sort Reject circular dependency graph Slide Title Point of the presentation Bullet of the presentation, is a bullet char Indented point Centered point : [Artwork node; type 'Artwork on' to command tool] `c PressFonts"slides" styleIunleadedMark insideFooterisK outsideFootertitleIcenterMb MIragged%%NNN N NN NN NNbm "N I artworkFigureGGFileڀGargoyle file for scene: stuffed from ///Users/Rauen.pa/Saffron/EnvironmentSlide.gargoyle at August 29, 1988 10:44:02 am PDT Produced by version 8803.24 Scripts: ///Users/Rauen.pa/Saffron/Rauen880829-09-56-38.script, ///Users/Rauen.pa/Saffron/Rauen880829-10-28-32.script, ///Users/Rauen.pa/Saffron/Rauen880829-10-40-38.script Slope: [F 150.0] [F 135.0] [F 120.0] [T 90.0] [F 60.0] [F 45.0] [F 30.0] [T 0.0] Angle: [F 90.0] [F 60.0] [F 45.0] [F 30.0] [F 0.0] [F -30.0] [F -45.0] [F -60.0] [F -90.0] Radius: [F 5.555556e-2 1/18] [F 0.1111111 1/9] [F 0.125 1/8] [F 0.25 1/4] [F 0.3333333 1/3] [F 0.5 1/2] [F 0.6666667 2/3] [F 0.75 3/4] [F 1.0 1] [F 2.0 2] [F 4.0 4] LineDistance: [F 0.0 0] [F 5.555556e-2 1/18] [F 0.1111111 1/9] [F 0.5 1/2] [F 1.0 1] Midpoints: T Heuristics: F ShowAlignments: T ShowColors: F ScaleUnit: 72.0 DisplayStyle: print Gravity: T GravityExtent: 0.1736111 GravityType: pointsPreferred DefaultFont: xerox/pressfonts/helvetica-mrr [r1: 0.0 s: [10.0 10.0] r2: 0.0] 1.0 1.0 Defaults: [1 0.5] [1 1.0] 2.0 round round Dashed: F Shadows: []F Anchor: F PaletteForFillColor: F PaletteForStrokeColor: F Entities: [78]: Text T "RopeImpl" xerox/pressfonts/helvetica [10.0 0.0 164.7945 0.0 10.0 453.2898][] F 1.0 props: ( F ) ls: 1.2 Box [162.0,469.5] [233.9983,495.5464] [1.0 0.0 -11.0171 0.0 1.0 -26.39426] strokeWidths: ( 2.0 2.0 2.0 2.0 ) strokeEnds: ( round round round round ) strokeColors: ( [1 1.0] [1 1.0] [1 1.0] [1 1.0] ) fillColor: [] dashes: ( F F F F ) props: ( ( F ) ( F ) ( F ) ( F ) ) fwd: T fillText: T 0 Box [162.0,469.5] [233.9983,495.5464] [1.0 0.0 -11.0171 0.0 1.0 -74.39426] strokeWidths: ( 2.0 2.0 2.0 2.0 ) strokeEnds: ( round round round round ) strokeColors: ( [1 1.0] [1 1.0] [1 1.0] [1 1.0] ) fillColor: [] dashes: ( F F F F ) props: ( ( F ) ( F ) ( F ) ( F ) ) fwd: T fillText: T 0 Box [162.0,469.5] [233.9983,495.5464] [1.0 0.0 -11.0171 0.0 1.0 -122.3943] strokeWidths: ( 2.0 2.0 2.0 2.0 ) strokeEnds: ( round round round round ) strokeColors: ( [1 1.0] [1 1.0] [1 1.0] [1 1.0] ) fillColor: [] dashes: ( F F F F ) props: ( ( F ) ( F ) ( F ) ( F ) ) fwd: T fillText: T 0 Text T "Basics" xerox/pressfonts/helvetica [10.0 0.0 171.667 0.0 10.0 405.2898][] F 1.0 props: ( F ) ls: 1.2 Text T "PrincOps" xerox/pressfonts/helvetica [10.0 0.0 165.417 0.0 10.0 357.2898][] F 1.0 props: ( F ) ls: 1.2 Text T "PrincOpsUtils" xerox/pressfonts/helvetica [10.0 0.0 155.2645 0.0 10.0 309.2898][] F 1.0 props: ( F ) ls: 1.2 Text T "Rope" xerox/pressfonts/helvetica [10.0 0.0 174.642 0.0 10.0 261.2898][] F 1.0 props: ( F ) ls: 1.2 Text T "RopePrivate" xerox/pressfonts/helvetica [10.0 0.0 158.5495 0.0 10.0 213.2898][] F 1.0 props: ( F ) ls: 1.2 Outline fillColor: [1 1.0] ow: T fillText: T 0 Trajectories: [1] Traj (open) [4] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [222.9812,360.1289] (Line ) [284.5,360.1289] (Line ) [278.136,353.765] (Line ) [284.5,360.1289] (Line ) [278.136,366.4929] fwd: T Box [162.0,469.5] [233.9983,495.5464] [1.0 0.0 -11.0171 0.0 1.0 -218.3943] strokeWidths: ( 2.0 2.0 2.0 2.0 ) strokeEnds: ( round round round round ) strokeColors: ( [1 1.0] [1 1.0] [1 1.0] [1 1.0] ) fillColor: [] dashes: ( F F F F ) props: ( ( F ) ( F ) ( F ) ( F ) ) fwd: T fillText: T 0 Box [162.0,469.5] [233.9983,495.5464] [1.0 0.0 -11.0171 0.0 1.0 -170.3943] strokeWidths: ( 2.0 2.0 2.0 2.0 ) strokeEnds: ( round round round round ) strokeColors: ( [1 1.0] [1 1.0] [1 1.0] [1 1.0] ) fillColor: [] dashes: ( F F F F ) props: ( ( F ) ( F ) ( F ) ( F ) ) fwd: T fillText: T 0 Box [162.0,469.5] [233.9983,495.5464] [1.0 0.0 -11.0171 0.0 1.0 -266.3943] strokeWidths: ( 2.0 2.0 2.0 2.0 ) strokeEnds: ( round round round round ) strokeColors: ( [1 1.0] [1 1.0] [1 1.0] [1 1.0] ) fillColor: [] dashes: ( F F F F ) props: ( ( F ) ( F ) ( F ) ( F ) ) fwd: T fillText: T 0 Outline fillColor: [1 1.0] ow: T fillText: T 0 Trajectories: [1] Traj (open) [4] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [222.9812,312.1289] (Line ) [284.5,312.1289] (Line ) [278.136,305.765] (Line ) [284.5,312.1289] (Line ) [278.136,318.4929] fwd: T Outline fillColor: [1 1.0] ow: T fillText: T 0 Trajectories: [1] Traj (open) [4] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [222.9812,264.1289] (Line ) [284.5,264.1289] (Line ) [278.136,257.765] (Line ) [284.5,264.1289] (Line ) [278.136,270.4929] fwd: T Outline fillColor: [1 1.0] ow: T fillText: T 0 Trajectories: [1] Traj (open) [4] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [222.9812,216.1289] (Line ) [284.5,216.1289] (Line ) [278.136,209.765] (Line ) [284.5,216.1289] (Line ) [278.136,222.4929] fwd: T Outline fillColor: [1 1.0] ow: T fillText: T 0 Trajectories: [1] Traj (open) [4] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [222.9812,456.1289] (Line ) [284.5,456.1289] (Line ) [278.136,449.765] (Line ) [284.5,456.1289] (Line ) [278.136,462.4929] fwd: T Outline fillColor: [1 1.0] ow: T fillText: T 0 Trajectories: [1] Traj (open) [4] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [222.9812,408.1289] (Line ) [284.5,408.1289] (Line ) [278.136,401.765] (Line ) [284.5,408.1289] (Line ) [278.136,414.4929] fwd: T Circle [11.99597 0.0 310.0 0.0 11.99597 361.827] strokeWidth: 0.0 strokeColor: [1 1.0] fillColor: [1 0.5] dashes: ( F ) props: ( F ) fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [2] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [310.0,342.4168] (Line ) [310.0,352.7578] (Line ) [319.192,365.7799] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [310.0,352.7578] (Line ) [301.574,362.3329] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [305.3239,357.68] (Line ) [313.447,369.6099] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [313.8165,357.0233] (Line ) [316.894,355.4388] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [316.7295,362.2913] (Line ) [313.83,365.3969] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [309.1148,362.107] (Line ) [302.723,367.6949] fwd: T Circle [11.99597 0.0 310.0 0.0 11.99597 313.827] strokeWidth: 0.0 strokeColor: [1 1.0] fillColor: [1 0.5] dashes: ( F ) props: ( F ) fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [2] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [310.0,294.4168] (Line ) [310.0,304.7578] (Line ) [319.192,317.7799] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [310.0,304.7578] (Line ) [301.574,314.3329] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [305.3239,309.68] (Line ) [313.447,321.6099] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [313.8165,309.0233] (Line ) [316.894,307.4388] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [316.7295,314.2913] (Line ) [313.83,317.3969] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [309.1148,314.107] (Line ) [302.723,319.6949] fwd: T Circle [11.99597 0.0 310.0 0.0 11.99597 265.827] strokeWidth: 0.0 strokeColor: [1 1.0] fillColor: [1 0.5] dashes: ( F ) props: ( F ) fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [2] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [310.0,246.4168] (Line ) [310.0,256.7578] (Line ) [319.192,269.7799] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [310.0,256.7578] (Line ) [301.574,266.3328] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [305.3239,261.68] (Line ) [313.447,273.6099] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [313.8165,261.0233] (Line ) [316.894,259.4388] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [316.7295,266.2913] (Line ) [313.83,269.3969] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [309.1148,266.107] (Line ) [302.723,271.6949] fwd: T Circle [11.99597 0.0 310.0 0.0 11.99597 217.827] strokeWidth: 0.0 strokeColor: [1 1.0] fillColor: [1 0.5] dashes: ( F ) props: ( F ) fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [2] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [310.0,198.4168] (Line ) [310.0,208.7578] (Line ) [319.192,221.7799] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [310.0,208.7578] (Line ) [301.574,218.3329] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [305.3239,213.68] (Line ) [313.447,225.6099] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [313.8165,213.0233] (Line ) [316.894,211.4389] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [316.7295,218.2913] (Line ) [313.83,221.3969] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [309.1148,218.107] (Line ) [302.723,223.6949] fwd: T Circle [11.99597 0.0 310.0 0.0 11.99597 409.827] strokeWidth: 0.0 strokeColor: [1 1.0] fillColor: [1 0.5] dashes: ( F ) props: ( F ) fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [2] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [310.0,390.4168] (Line ) [310.0,400.7578] (Line ) [319.192,413.7799] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [310.0,400.7578] (Line ) [301.574,410.3329] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [305.3239,405.68] (Line ) [313.447,417.6099] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [313.8165,405.0233] (Line ) [316.894,403.4388] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [316.7295,410.2913] (Line ) [313.83,413.3969] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [309.1148,410.107] (Line ) [302.723,415.6949] fwd: T Circle [11.99597 0.0 310.0 0.0 11.99597 457.827] strokeWidth: 0.0 strokeColor: [1 1.0] fillColor: [1 0.5] dashes: ( F ) props: ( F ) fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [2] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [310.0,438.4168] (Line ) [310.0,448.7578] (Line ) [319.192,461.7799] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [310.0,448.7578] (Line ) [301.574,458.3329] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [305.3239,453.68] (Line ) [313.447,465.6099] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [313.8165,453.0233] (Line ) [316.894,451.4388] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [316.7295,458.2913] (Line ) [313.83,461.3969] fwd: T Outline fillColor: [1 0.5] ow: T fillText: T 0 Trajectories: [1] Traj (open) [1] arrows: 0 j: round e: T round w: 2.0 c: T [1 1.0] d: T F [309.1148,458.107] (Line ) [302.723,463.6949] fwd: T Circle [3.594337 0.0 361.0836 0.0 3.594337 456.1289] strokeWidth: 1.0 strokeColor: [1 1.0] fillColor: [] dashes: ( F ) props: ( F ) fwd: T Outline fillColor: [1 1.0] ow: T fillText: T 0 Trajectories: [1] Traj (open) [4] arrows: 0 j: round e: T round w: 1.0 c: T [1 1.0] d: T F [363.6252,458.6705] (Line ) [370.1653,465.2107] (Line ) [370.1653,462.8984] (Line ) [370.1653,465.2107] (Line ) [367.8531,465.2107] fwd: T Outline fillColor: [1 1.0] ow: T fillText: T 0 Trajectories: [1] Traj (open) [4] arrows: 0 j: round e: T round w: 1.0 c: T [1 1.0] d: T F [363.6253,453.5874] (Line ) [370.1654,447.0472] (Line ) [367.8532,447.0472] (Line ) [370.1654,447.0472] (Line ) [370.1654,449.3595] fwd: T Circle [3.594337 0.0 372.707 0.0 3.594337 467.7523] strokeWidth: 1.0 strokeColor: [1 1.0] fillColor: [] dashes: ( F ) props: ( F ) fwd: T Circle [3.594337 0.0 372.707 0.0 3.594337 444.5056] strokeWidth: 1.0 strokeColor: [1 1.0] fillColor: [] dashes: ( F ) props: ( F ) fwd: T Outline fillColor: [1 1.0] ow: T fillText: T 0 Trajectories: [1] Traj (open) [4] arrows: 0 j: round e: T round w: 1.0 c: T [1 1.0] d: T F [376.3013,467.7523] (Line ) [385.5505,467.7523] (Line ) [383.9154,466.1172] (Line ) [385.5505,467.7523] (Line ) [383.9154,469.3872] fwd: T Outline fillColor: [1 1.0] ow: T fillText: T 0 Trajectories: [1] Traj (open) [4] arrows: 0 j: round e: T round w: 1.0 c: T [1 1.0] d: T F [376.3014,444.5056] (Line ) [385.5505,444.5056] (Line ) [383.9155,442.8706] (Line ) [385.5505,444.5056] (Line ) [383.9155,446.1406] fwd: T Circle [3.594337 0.0 389.1448 0.0 3.594337 467.7523] strokeWidth: 1.0 strokeColor: [1 1.0] fillColor: [] dashes: ( F ) props: ( F ) fwd: T Circle [3.594337 0.0 389.1449 0.0 3.594337 444.5056] strokeWidth: 1.0 strokeColor: [1 1.0] fillColor: [] dashes: ( F ) props: ( F ) fwd: T Outline fillColor: [1 1.0] ow: T fillText: T 0 Trajectories: [1] Traj (open) [4] arrows: 0 j: round e: T round w: 1.0 c: T [1 1.0] d: T F [391.6865,447.0472] (Line ) [398.2266,453.5873] (Line ) [398.2266,451.275] (Line ) [398.2266,453.5873] (Line ) [395.9143,453.5873] fwd: T Outline fillColor: [1 1.0] ow: T fillText: T 0 Trajectories: [1] Traj (open) [4] arrows: 0 j: round e: T round w: 1.0 c: T [1 1.0] d: T F [391.6864,465.2106] (Line ) [398.2266,458.6705] (Line ) [395.9143,458.6705] (Line ) [398.2266,458.6705] (Line ) [398.2266,460.9828] fwd: T Circle [3.594337 0.0 400.7682 0.0 3.594337 456.1289] strokeWidth: 1.0 strokeColor: [1 1.0] fillColor: [] dashes: ( F ) props: ( F ) fwd: T Text T "FILE" xerox/pressfonts/helvetica [10.0 0.0 176.352 0.0 10.0 498.3706][] F 1.0 props: ( F ) ls: 1.2 Text T "CONTEXT" xerox/pressfonts/helvetica [10.0 0.0 286.09 0.0 10.0 498.3706][] F 1.0 props: ( F ) ls: 1.2 Text T "PROGRAM" xerox/pressfonts/helvetica [10.0 0.0 354.986 0.0 10.0 498.3706][] F 1.0 props: ( F ) ls: 1.2 Text T "NAMES" xerox/pressfonts/helvetica [10.0 0.0 169.172 0.0 10.0 488.9561][] F 1.0 props: ( F ) ls: 1.2 Text T "TREES" xerox/pressfonts/helvetica [10.0 0.0 293.44 0.0 10.0 488.9561][] F 1.0 props: ( F ) ls: 1.2 Text T "GRAPH" xerox/pressfonts/helvetica [10.0 0.0 363.116 0.0 10.0 488.956][] F 1.0 props: ( F ) ls: 1.2 1.1971 the lineLength .mul 2.822222 .add bigger topLeading 1.1971 the lineLength .mul 2.822222 .add bigger topIndent 1.411111 mm bigger bottomLeading 0.5 0.3 0.95 backgroundColor the topLeading 6 pt .sub backgroundAscent 3 pt backgroundDescent 4 pt outlineBoxThickness 1 pt outlineBoxBearoffFitTRUEBounds:0.0 mm xmin 0.0 mm ymin 92.38652 mm xmax 110.5959 mm ymax Artwork Interpress Interpress6Interpress/Xerox/3.0 fjkj=xju sxjxerox pressfonts helvetica-mrr.Iz-ERopeImplkxjEuhTM..*5hEukxjEuhK..*5hEukxjEuhC ..*5hEukxjxerox pressfonts helvetica-mrrrQm=EBasicskxjxerox pressfonts helvetica-mrr`MEPrincOpskxjxerox pressfonts helvetica-mrr^S]E PrincOpsUtilskxjxerox pressfonts helvetica-mrr7BQFmERopekxjxerox pressfonts helvetica-mrrDo9}E RopePrivatekxj.*5+9}C]9+}bEkxjEufh1..*5fhEukxjEuyh:m..*5yhEukxjEuRh)-..*5RhEukxj.*5%9}}9%}UEkxj.*5%9}9%}HEkxj.*5M9}ٗ9M}ykxj.*57<9}97<}|Ekxj.*51l9}o=91l}oEkxjxjJI4kkxj _}Gq2kxj_ysڂkxjTG"hU˓kxjm;+QBbkxji*UgzdY?kxjI=LAT;kxjxjJ?4kkxjQq_}_kxjq_ysWkxjTG>hU#kxjm3+QBubkxji*U~tgzdN?kxjI=rLAI;kxjxjJ54kkxjV_H_}kxj_H_ys"kxjTGhUkxjm++QBcQbkxji*Uk$gzdBL?kxjI=bLA>;kxjxjJ,?4kkxjMx_}kxjMx_ysd[ΗkxjTGhU|Ckxjm#+QBrkxji*UWgzd—kxjI=-יLA3;kxjxjJS?4kkxjM _}P2kxj_ys]2kxjTG'hUB)kxjmD+QB@)kxji*Ugzde?kxjI=+LA_;kxjxjJ\4kkxj _}Z12kxj_yskxjTG,NhUJ)kxjmL+QBHM)kxji*Udgzdq?kxjI=NLAj;kxjrj@/e:6h6hA/7<A/Tg/ǖCTg/ JT ;Tg/T ;7< JT ;f:ǖCf: JA/f:A/7< Jkkxj&KUy"j;"Vkxjo?PjmPpW@kxjrjbAtbAt@/e:6h6hA/7<A/Tg/ǖCTg/ JT ;Tg/T ;7< JT ;f:ǖCf: JA/f:A/7< Jkkxjrj5=׊@/e:6h6hA/7<A/Tg/ǖCTg/ JT ;Tg/T ;7< JT ;f:ǖCf: JA/f:A/7< JkkxjkNI)m Y)mjzG Y)mjzG8kxjkNIW YYjzG U YYjzGo@kxjrj9T Ɗ@/e:6h6hA/7<A/Tg/ǖCTg/ JT ;Tg/T ;7< JT ;f:ǖCf: JA/f:A/7< Jkkxjrj_@/e:6h6hA/7<A/Tg/ǖCTg/ JT ;Tg/T ;7< JT ;f:ǖCf: JA/f:A/7< JkkxjfCjtKo?F(o?6!#kxjN3"Rr5KU6!#Rr5hq:kxjrj'@/e:6h6hA/7<A/Tg/ǖCTg/ JT ;Tg/T ;7< JT ;f:ǖCf: JA/f:A/7< Jkkxjxerox pressfonts helvetica-mrrV}ŠFILEkxjxerox pressfonts helvetica-mrrodŠCONTEXTkxjxerox pressfonts helvetica-mrrbtGŠPROGRAMkxjxerox pressfonts helvetica-mrr=u][NAMESkxjxerox pressfonts helvetica-mrr[TREESkxjxerox pressfonts helvetica-mrraE[GRAPHkkkgn33 N,,NaaNN N@@NNN NN NkNNNNNNNNNMN''Nbi(DNTT NN N N NNN !NM N((NN&&N((NN rt  Nbrt.2NM>g