IMPLEMENTING CONSTRAINT IMPERATIVE PROGRAMMING-LANGUAGES - THE KALEIDOSCOPE 93 VIRTUAL MACHINE

Citation
G. Lopez et al., IMPLEMENTING CONSTRAINT IMPERATIVE PROGRAMMING-LANGUAGES - THE KALEIDOSCOPE 93 VIRTUAL MACHINE, ACM SIGPLAN NOTICES, 29(10), 1994, pp. 259-271
Citations number
25
Categorie Soggetti
Computer Sciences","Computer Science Software Graphycs Programming
Journal title
Volume
29
Issue
10
Year of publication
1994
Pages
259 - 271
Database
ISI
SICI code
Abstract
Constraint Imperative Programming (CIP) languages integrate declarativ e constraints with imperative state and destructive assignment, yieldi ng a powerful new programming paradigm. However, CIP languages are dif ficult to implement efficiently due to complex interactions between th e two donor paradigms. Neither the virtual machines for classical obje ct-oriented languages, nor those for existing constraint languages, ar e suitable for implementing CIP languages, as each assumes a purely im perative 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 definit ions which are the CIP analog to method definitions. Similar to method s, these constructors are able to reference variables indirectly throu gh 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.