Abstract
This paper describes jcc, an integration of the timed default concurrent constraint programming framework [16] (Timed Default cc) into Java [7]. jcc is intended for use in education and research, for the programming of embedded reactive systems, for parallel/distributed simulation and modelling (particularly for space, robotics and systems biology applications), and to support the development of constraint-based program analysis and type-checking tools.
In fully implementing the Timed Default cc framework, jcc supports the notion of (typed) logical variables (called “promises”, after [5]), allows the programmer to add his/her own constraint system (an implementation of the Herbrand constraint system is provided), implements (instantaneous) defaults via backtracking, implements a complete renewal of the constraint-store at each time instant, and implements bounded-time execution of the Timed cc control constructs.
jcc implements the notion of reactive vats [5] as single threads of execution within the JVM; a vat may be thought of as encapsulating a single synchronous, reactive Timed cc computation. A computation typically consists of a dynamically changing collection of interacting vats (some of which could potentially be located at different JVMs), with dynamically changing connectivity.
jcc programs fully inter-operate with Java programs, and compile into standard JVM byte-code. jcc programs fully respect the Javatype system; logical variables are typed. jcc is compatible with the Generic Java [3] extensions, thereby allowing the use of parameterized types. Indeed, jcc may be viewed as an extension of Java which replaces Java’s notoriously difficult imperative thread-based concurrency with the notion of reactive vats interacting via constraints on logical variables.
jcc source code is available under the Lesser GNU licence through SourceForge.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Berry, G., Ramesh, S., Shyamsundar, R.K.: Communicating reactive processes. In: Proceedings of the 20th ACM Symposium on Principles of Programming Languages (POPL 1993), Charleston, South Carolina, ACM Press, New York (1993)
Berry, G.: The Esterel v5 Language Primer Version 5.21 Release 2.0. Technical report, INRIA (April 1999)
Bracha, G., Odersky, M., Stoutamire, D., Wadler, P.: Making the future safe for the past: Adding Genericity to the Java Programing Language. In: OOPSLA (1998)
Bacon, D., et al.: “The double checked locking is broken” declaration (2000), http://www.cs.umd.edu/pugh/java/memoryModel/DoubleCheckedLocking.html
Miller, M.S., et al.: E: Open source distributed capabilities (1998), http://www.erights.org
Flanagan, C., Leino, K., Lillibridge, M., Nelson, C., Saxe, J., Stata, R.: Extended static checking for Java (2002)
Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification. Addison Wesley, Reading (2000)
Gupta, V., Jagadeesan, R., Saraswat, V.: Computing with continuous change. Science of Computer Programming 30(1-2), 3–49 (1998)
Herlihy, M.: Wait-free synchronization. ACMTransactions on Programming Languages and Systems 13(1), 124–149 (1991)
Manson, J., Pugh, W.: A new approach to the semantics of Multithreaded Java (January 2003), http://www.cs.umd.edu/pugh/java/memoryModel/
Odersky, M., Wadler, P.: Pizza into Java: Translating theory into practice. In: Proceedings of the 24th ACM Symposium on Principles of Programming Languages (POPL 1997), Paris, France, pp. 146–159. ACM Press, New York (1997)
The Foundations of Esterel. In: Plotkin, G., Stirling, C., Tote, M. (eds.) Proof, Language and Interaction: Essays in Honour of Robin Milner. Foundations of Computing, pp. 425–454. MIT Press, Cambridge (2000)
Pugh, W.: The Java memory model is fatally flawed. Concurrency: Practice and Experience 12(1), 1–11 (2000)
Saraswat, V.: Concurrent Constraint Programming. Doctoral Dissertation Award and Logic Programming. MIT Press, Cambridge (1993)
Saraswat, V., Jagadeesan, R., Gupta, V.: Programming in timed concurrent constraint languages. In: Mayoh, B., Tyugu, E., Penjaam, J. (eds.) Constraint Programming: Proceedings 1993 NATO ASI Parnu, Estonia, pp. 361–410. Springer, Heidelberg (1994)
Saraswat, V., Jagadeesan, R., Gupta, V.: Timed default concurrent constraint programming. Journal of Symbolic Computation 22(5-6), 475–520 (1996); Extended abstract appeared in the Proceedings of the 22nd ACM Symposium on Principles of Programming Languages, San Francisco (January 1995)
Saraswat, V., Kahn, K., Levy, J.: Janus:A step towards distributed constraint programming. In: North American Logic Programming Conference (October 1990)
Smolka, G.: The Oz programming model. In: van Leeuwen, J. (ed.) Computer Science Today. LNCS, vol. 1000, pp. 324–343. Springer, Heidelberg (1995)
Soper, P.: The Application Isolation API, JSR 121 (2001), http://www.jcp.org/en/jsr/detail?id=121
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Saraswat, V., Jagadeesan, R., Gupta, V. (2003). jcc: Integrating Timed Default Concurrent Constraint Programming into Java . In: Pires, F.M., Abreu, S. (eds) Progress in Artificial Intelligence. EPIA 2003. Lecture Notes in Computer Science(), vol 2902. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24580-3_23
Download citation
DOI: https://doi.org/10.1007/978-3-540-24580-3_23
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20589-0
Online ISBN: 978-3-540-24580-3
eBook Packages: Springer Book Archive