Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Constraint programming languages: their specification and generation
Constraint programming languages: their specification and generation
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Constraint satisfaction in logic programming
Constraint satisfaction in logic programming
An incremental constraint solver
Communications of the ACM
Constraint logic programming languages
Communications of the ACM
Communications of the ACM
Common LISP: the language (2nd ed.)
Common LISP: the language (2nd ed.)
The CLP( R ) language and system
ACM Transactions on Programming Languages and Systems (TOPLAS)
Properties of user interface systems and the Siri programming language
Languages for developing user interfaces
Constraint satisfaction using constraint logic programming
Artificial Intelligence - Special volume on constraint-based reasoning
Constraint patterns as a basis for object oriented programming
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
An abstract machine for CLP(R)
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Constraint imperative programming
Constraint imperative programming
Concurrent constraint programming
Concurrent constraint programming
Lisp and Symbolic Computation
Object-Oriented Multi-Methods in Cecil
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Constraints and Object Identity
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
R++: Adding Path-Based Rules to C++
IEEE Transactions on Knowledge and Data Engineering
Change Detection for Aggregate Objects with Aliasing
ASWEC '97 Proceedings of the Australian Software Engineering Conference
Hi-index | 0.00 |
Constraint Imperative Programming (CIP) languages integrate declarative constraints with imperative state and destructive assignment, yielding a powerful new programming paradigm. However, CIP languages are difficult to implement efficiently due to complex interactions between the two donor paradigms. Neither the virtual machines for classical object-oriented languages, nor those for existing constraint languages, are suitable for implementing CIP languages, as each assumes a purely imperative or a purely declarative computation model. We have developed a new virtual machine for CIP languages, the K-machine, an imperative machine with an incremental constraint solver and a constraint-based, rather than value-based, data store. This virtual machine allows user-defined constraints to be defined using constraint constructor definitions which are the CIP analog to method definitions. Similar to methods, these constructors are able to reference variables indirectly through many levels of pointers. The K-machine maintains relations between objects in the presence of state change to these indirectly referenced objects. The K-machine is capable of supporting a wide variety of CIP languages, including our most recent: Kaleidoscope'93.