The design and implementation of Kaleidoscope'90-A constraint imperative programming language

@article{FreemanBenson1992TheDA,
  title={The design and implementation of Kaleidoscope'90-A constraint imperative programming language},
  author={Bj{\o}rn N. Freeman-Benson and Alan Borning},
  journal={Proceedings of the 1992 International Conference on Computer Languages},
  year={1992},
  pages={174-180}
}
  • B. Freeman-BensonA. Borning
  • Published 20 April 1992
  • Computer Science
  • Proceedings of the 1992 International Conference on Computer Languages
Two major paradigms in computer programming languages are imperative and declarative programming. The authors describe a scheme for languages that integrate specific features from these two paradigms into a new framework: constraint imperative programming. The authors discuss the design and implementation of a particular instance of this framework, Kaleidoscope'90. From the imperative paradigm, constraint imperative programming adopts explicit control flow, state, and assignment. From the… 

Figures from this paper

Kaleidoscope: A Constraint Imperative Programming Language

The benefits and challenges of combining the constraint and imperative paradigms are discussed, and the current ideas are presented in the context of the design and implementation of the Kaleidoscope’93 language.

Implementing constraint imperative programming languages: the Kaleidoscope'93 virtual machine

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 that allows user-defined constraints to be defined using constraint constructor definitions, the CIP analog to method definitions.

Implementing Constraint Imperative Programming Languages: The Kaleidospace'93 Virtual Machine

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 that allows user-defined constraints to be defined using constraint constructor definitions, the CIP analog to method definitions.

Constraint Imperative Programming with C + +

The Turtle Library is introduced, which combines constraint-based and imperative paradigms and is based on the language Turtle, and enables constraint imperative programming with C++.

The design and implementation of object-constraint programming

A design for a family of object-constraint languages called Babelsberg, which unifies the constructs for encapsulation and abstraction by using only objectoriented method definitions for both declarative and imperative code, and argues that this approach provides a useful step toward making constraint solving a useful tool for object-oriented programmers.

Babelsberg: Specifying and Solving Constraints on Object Behavior

This work presents a language - Babelsberg - that unifies the constructs for encapsulation and abstraction by using only object- oriented method definitions for both declarative and imperative code, and argues that this approach provides a useful step toward making constraint solving a useful tool for object-oriented programmers.

Turtle: A Constraint Imperative Programming Language

The design and implementation of the programming language TURTLE is described, which integrates declarative constraints and imperative language elements in order to combine their advantages and to form a more flexible programming paradigm suitable for solving a wide range of problems.

Synthesis from multi-paradigm specifications

A language for describing reactive synthesis problems that integrates imperative and declarative elements and is defined in terms of two-player turn-based infinite games with full information.

Toward a new constraint imperative programming language for interactive graphics

This position paper reports the ongoing work on P5CP, a new constraint imperative programming language for interactive graphics that adopts the notion of events in imperative programming and the idea of guards in concurrent constraint programming.

A Visual Constraint-Programming Environment

This paper abstracts the classical notion of constraint satisfaction problem to a new, more compact model and proposes a design methodology based on such a model, which provides a visual environment that covers the full development cycle of constraint-based applications.

References

SHOWING 1-10 OF 30 REFERENCES

Constraint imperative programming

This dissertation presents an integration of specific features from the imperative and declarative paradigms in a new programming language framework: Constraint Imperative Programming, which it is claimed has a clean, well-defined semantics, and that languages in this framework can be implemented with reasonable efficiency.

Kaleidoscope: mixing objects, constraints, and imperative programming

The last sections of the paper discuss views as a natural result of combining objects with constraints, as well as related and future work.

The definition and implementation of a computer programming language based on constraints

The goal approached is a complete programming system which will implicitly support the constraint paradigm to the same extent that LISP, say, supports automatic storage management.

Constraint Hierarchies and Logic Programming

This work describes a scheme for extending CLP(D) to include both required and preferential constraints, with an arbitrary number of strengths of preference, and presents some of the theory of such languages, and an algorithm for executing them.

Constraint logic programming

A class of programming languages, the CLP languages, are defined, all of which share the same essential semantic properties, and are highly declarative and are soundly based within a unified framework of formal semantics.

Integrating Constraints with an Object-Oriented Language

Kaleidoscope'91 uses a class-based object model, multi-methods, and constraint constructors to integrate cleanly the encapsulation and abstraction of a state-of-the-art object-oriented language with the declarative aspects of constraints.

Concurrent constraint programming languages

This thesis develops the framework of concurrent constraint programming, and presents a compiler for a (superset of) Atomic Herbrand, a cc language over the Herbrand constraint system, and a number of constraint systems which may be used to instantiate the cc family of languages.

Constraint satisfaction in logic programming

The ideas introduced in "Constraint Satisfaction in Logic Programming " have been used successfully to solve more than a dozen practical problems in operations research and circuit design, including disjunctive scheduling, warehouse location, cutting stock car sequencing, and microcode labeling problems.

Constraint logic programming languages

A panoramic view of the recent work done in designing and implementing CLP languages is provided, a summary of their theoretical foundations is presented, implementation issues are discussed, compares the majorCLP languages, and directions for further work are suggested.

Abstraction mechanisms in the BETA programming language

In this paper the sequential part of BETA will be presented to demonstrate the use of the pattern/subpatternmechanism with virtual patterns as a powerful abstraction mechanism.