Skip to main content

jcc: Integrating Timed Default Concurrent Constraint Programming into Java

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 2902))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Google Scholar 

  2. Berry, G.: The Esterel v5 Language Primer Version 5.21 Release 2.0. Technical report, INRIA (April 1999)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. Bacon, D., et al.: “The double checked locking is broken” declaration (2000), http://www.cs.umd.edu/pugh/java/memoryModel/DoubleCheckedLocking.html

  5. Miller, M.S., et al.: E: Open source distributed capabilities (1998), http://www.erights.org

  6. Flanagan, C., Leino, K., Lillibridge, M., Nelson, C., Saxe, J., Stata, R.: Extended static checking for Java (2002)

    Google Scholar 

  7. Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification. Addison Wesley, Reading (2000)

    Google Scholar 

  8. Gupta, V., Jagadeesan, R., Saraswat, V.: Computing with continuous change. Science of Computer Programming 30(1-2), 3–49 (1998)

    Article  MATH  MathSciNet  Google Scholar 

  9. Herlihy, M.: Wait-free synchronization. ACMTransactions on Programming Languages and Systems 13(1), 124–149 (1991)

    Article  Google Scholar 

  10. Manson, J., Pugh, W.: A new approach to the semantics of Multithreaded Java (January 2003), http://www.cs.umd.edu/pugh/java/memoryModel/

  11. 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)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. Pugh, W.: The Java memory model is fatally flawed. Concurrency: Practice and Experience 12(1), 1–11 (2000)

    Article  MathSciNet  Google Scholar 

  14. Saraswat, V.: Concurrent Constraint Programming. Doctoral Dissertation Award and Logic Programming. MIT Press, Cambridge (1993)

    Google Scholar 

  15. 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)

    Google Scholar 

  16. 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)

    Article  MATH  MathSciNet  Google Scholar 

  17. Saraswat, V., Kahn, K., Levy, J.: Janus:A step towards distributed constraint programming. In: North American Logic Programming Conference (October 1990)

    Google Scholar 

  18. Smolka, G.: The Oz programming model. In: van Leeuwen, J. (ed.) Computer Science Today. LNCS, vol. 1000, pp. 324–343. Springer, Heidelberg (1995)

    Chapter  Google Scholar 

  19. Soper, P.: The Application Isolation API, JSR 121 (2001), http://www.jcp.org/en/jsr/detail?id=121

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics