Welcome to the JCC Home Page


Welcome!

This is the home page for the JCC project at Penn State. JCC is an implementation of the (Hybrid) concurrent constraint (Hcc) programming framework I have been developing with Radha Jagadeesan, Vineet Gupta and other colleagues.

The Hcc framework integrates into concurrent constraint programming the synchrony hypothesis of Berry et al. Programs evolve in continuous instantaneous interaction with their environment. The rate of interaction is controlled by the environment. Conceptually, a Default CC program is executed at each instant. This provides the response of the system at that instant, and also computes the program P to execute at subsequent instants. In the case of a discretely timed system, the next time instant is that at which the environment interacts with the system next. In a continuous system, P evolves as a continuous function of time, its dynamics prescribed by the continuous constraints currently in effect. This open phase of evolution is broken at a point state in which the system state has reached a landmark value. The cycle of point and interval executions then begins afresh.

The conceptual framework of this paradigm is described in Computing with Continuous Change journal paper and in Programming in Hybrid Constraint Languages paper. The discrete framework is described in Timed Concurrent Constraint Programming journal paper, and in Programming in Timed Concurrent Constraint paper.

Vineet Gupta's website contains a bibliography of papers related to HCC.

Jcc is an ongoing implementation of the Hcc framework in Java. The key conceptual idea is to implement the combinators directly as Java classes implementing an Agent interface that defines the signature used by all Hcc agents interacting with their environment. This allows all the Hcc combinators to be implemented as classes whose constructors take Agents as arguments. The implementation directly mimics the denotational semantics of the combinator, since it can only use the operations specified in the Agent interface on its argument agents. This "higher-order" implementation style provides for a reasonably efficient, very compositional, easily extensible implementation. It also permits the construction of jcc programs at runtime.

Jcc is currently (Spring 2003) being used in the graduate course on Model-based programming at Penn State.

Jcc is being developed under the lesser GNU open source licence.

The current source for Jcc may be downloaded from SourceForge's M project page. This webpage also provides access to the CVS repository. This version (Release 0.25) supports Herbrand constraints, discrete time evolution, and defaults.

This has been tested on Java 1.3 on Windows systems, but should run everywhere Java runs. Indeed, Lav Rai has run a "Hello World" Jcc program on Lego Mindstorms, using the Lejos programming environment.

Jump Table

SourceForge.net Logo


Last update: April 18, 2003
Feedback