Bjørn N. Freeman-Benson

Learn More
The e cient satisfaction of constraints is essential to the performance of constraint-based user interfaces. In the past, most constraint-based user interfaces have used one-way rather than multiway constraints because of a widespread belief that one-way constraints were more e cient. In this paper we argue that many user interface construction problems are(More)
Dynamic information collected as a software system executes can help software engineers perform some tasks on a system more effectively. To interpret the sizable amount of data generated from a system's execution, engineers require tool support. We have developed an off-line, flexible approach for visualizing the operation of an object-oriented system at(More)
Kaleidoscope is an object-oriented language being designed to integrate the traditional <italic>imperative</italic> object-oriented paradigm with the less traditional <italic>declarative</italic> constraint paradigm. Imperative state changes provide sequencing while declarative constraints provide object relations. A <italic>variables as streams</italic>(More)
Constraints describe relations that must be maintained, and provide a useful tool for such applications as interactive simulations, algorithm animation, and graphical user interface construction. We describe a major overhaul and extension to the constraint satisfaction mechanism in ThingLab, a constraint-oriented simulation laboratory written in the(More)
The Constraint Imperative Programming (CIP) family of languages integrates constraints and imperative, object-oriented programming. In addition to combining the useful features of both paradigms, there are synergistic e ects of this integration, such as the ability to de ne constraints over userde ned domains. We discuss characteristics of the CIP family(More)
Constraints are declarative statements of relations among elements of the language’s computational domain, e.g., integers, booleans, strings, and other objects. Orthogonally, the tools of object-oriented programming, including encapsulation, inheritance, and dynamic message binding, provide important mechanisms for extending a language’s domain. Although(More)
ENVY/Constraints is an IBM/Smalltalk library that provides a constraint satisser and a collection of useful constraints, targeted at developing interactive graphical user interfaces. The solver supports multi-way constraints and constraint hierarchies. It uses a hybrid algorithm, combining local propagation with pluggable cycle solvers, allowing constraints(More)
ThingLab II is an object-oriented constraint programming system designed specifically for interactive user interface construction and implemented in Smalltalk-80 For constraints to be effective in building user interfaces, they must not impede the responsiveness of the user interface either at run time or during construction. The necessary speed is attained(More)
Inequality constraints are useful for specifying various aspects of user interfaces, such as constraints that one window is to the left of another, or that an object is contained within a rectangle. However, current local propagation constraint solvers can’t handle inequality constraints. We present Indigo, an efficient local propagation algorithm for(More)