| OCR Text |
Show CHAPTER 2 PREVIOUS WORK. Dependency propagation is a standard technique in systems as diverse as modeling systems, compiler optimizers and even commercial spreadsheet products. The application of constraints to modeling are also not a new area of specialization. Sketchpad [7], developed by Ivan Suther1and, was the subject of his dissertation in 1963. The following sections will discuss details of the constraint satisfaction algorithms of Sketchpad as well as the work of Stallman and Sussman [6], Steele and Sussman [2], Thinglab [3] by Alan Boming, and the elegant algebraic constraints of Magritte (4] by James Gosling. 2.1 Alpha 1. ALPHA_1 is B-spline based procedural geometric modeling system developed at the University of Utah. The modeling program, written in Lisp, Is named shape_edit. Before this thesis was implemented in shape_ edit, simple dependency propagation was used to maintain the user's model. Shape_edit views the model as a derivation, or sequence of assignment statements. The derivation begins with simple objects such as numbers or points. More complex objects such as lines, planes, curves and surfaces are derived in a sequence of steps from simple objects. Each assignment statement in the derivation creates a new object, or component, in the derivation of the model. These intermediate objects are not necessarily a part of the model ttsetf, they are Intermediate steps In the construdion of the model. All the objects created during the derivation are maintained in the system as a directed, acyclic graph. When a root of the graph, such as a number, Is modified, the change Is propaga!~d through the model using dependency propagation as in section 1.4 using a form of topological sorting. New Lisp functions can be defined in shape_edit to construct new model objects. Functions are a sequence of derivation steps which construct intermediate objects and return a |