Foundations of a Constraint-Based Illustrator
The talk describes some of the formal foundations of Juno- 2, a constraint-based graphical illustrator implemented by Allan Heydon and Greg Nelson and available over the web in source form.
The first idea underlying Juno-2 is that constraint-based programming is obtained from ordinary imperative programming not by adding a feature but by subtracting a restriction: specifically by dropping the law of the excluded miracle from the calculus of guarded commands of Edsger W. Dijkstra. Dropping this law introduces “partial commands” (sometimes called “miracles”), which, when combined with conventional local variable introductions (“VAR statements”) creates a highly principled constraint solving primitive that is beautifully orthogonal to the conventional imperative features of the language.
The second idea is that the “combination of decision procedures technique” that has been widely used in the automatic theorem-proving community for the last two decades can also be used to combine constraint solvers for two logical theories into a single constraint solver for the combination of the theories. Juno-2 uses this idea to combine a simple solver for the theory of a pairing function (which amounts only to an implementation of unification closure) with a sophisticated numerical solver for the theory of the real numbers to produce a powerful constraint solver that is useful for producing accurate technical illustrations and animations. The talk will include a demonstration of Juno-2, weather permitting.
- 1.Allan Heydon and Greg Nelson. The Juno-2 Contraint-based Drawing Editor. Research Report 131a. Digital Equipment Corporation Systems Research Center, Palo Alto, CA 1994.Google Scholar
- 3.Greg Nelson. Juno, A Constraint-based Graphics System. In Proceedings of the ACM Siggraph conference, pp 235–43, July 1985.Google Scholar
- 5.Greg Nelson. Combining Satisfiability Pocedures by Equality-sharing. In “Automatic Theorem Proving: after 25 years” edited by W. W. Bledsoe and D. W. Loveland. (vol 29 of “Contemporary Mathematics”) American Mathematical Society 1983. pp 201–11.Google Scholar