| OCR Text |
Show CHAPTER4 MODEL REPRESENTATION AND DEPENDENCY PROPAGATION. The ALPHA_1 modeling system, shape_edit, is implemented in Lisp. Every component in the model is a lisp object. The textual interface to shape_edit is a dialect of Lisp called Rlisp, which uses a more conventional algol-like syntax. Shape_edit model objects are defined as a structure as follows: % define new object type, ModelObject dafObject ( ModalObject, ) ; Dependants, Prerequisites, ConstructorExp, Constraints, PremiseOfSet, AncestorCount, Mark, Value % list of dependent model objects % list of prerequisite model objects % modified creator expression % list of constraint instances % list of dependent constraint groups % count of out-of-date ancestors % topological sort mark % model object 'value' An assignment of the form a := 1.0 creates a new instance of ModeiObject with the value 1.0, and stores the new object in the variable a. A has no Dependencies, Prerequisites, Constraints or PremiseOfSet. The ConstructorExp is a function that gets applied to recompute the object, and In this case the function Is (in standard lisp syntax): (L•mbda () 1. 0) When applied, this function will return the value 1.0. An assignment of the form b := a + 1.0 creates a new instance of ModeiObject with the value 2.0, and stores the new object in the variable b. B has no Constraints or PremiseOfSet. The expression a + 1.0 is scanned to produce a list of prerequisite ModeiObjects. The list (in this case the list (a)) is stored in the slot b->Prerequlsltes. The new object is added to the Dependents slot of each prerequisite object (in this case b is added to the Dependents slot |