Implementing Declarative Concurrency in Java

  • Rafael Ramirez
  • Andrew E. Santosa
  • Lee Wei Hong
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1900)


We describe the implementation of a high-level language based on first order logic for expressing synchronization in multi-threaded Java programs. The language allows the programmer to declaratively state the system safety properties as temporal constraints on specific pro- gram points of interest (events). The constraints are enforced by the run- time environment, i.e. the program points of interest are traversed only in the order specified by the constraints. The implementation is based on the incremental and lazy generation of partial orders among events. Although the implementation reported in this paper is concerned only with the synchronization of Java programs, the general underlying syn- chronization model we present is language independent in that it allows the programmer to glue together separate concurrent threads regardless of their implementation language and application code.


Partial Order Visit Time Java Program Safety Property Concurrent Programming 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Atkinson, C. 1991. Object-Oriented Reuse, Concurrency and Distribution: An Ada-Based Approach. Addison-Wesley.Google Scholar
  2. 2.
    Van den Bos, J. and Laffra, C. 1989. PROCOL: A parallel object language with protocols. ACM SIGPLAN Notices 24(10):95–112, October 1989. Proc. of OOPSLA’ 89.Google Scholar
  3. 3.
    Gregory, S. 1987. Parallel Logic Programming in PARLOG, Addison-Wesley.Google Scholar
  4. 4.
    Gregory, S. and Ramirez, R. 1995. Tempo: a declarative concurrent programming language. Proc. of the ICLP (Tokyo, June), MIT Press, 1995.Google Scholar
  5. 5.
    Gregory, S. 1995. Derivation of concurrent algorithms in Tempo. In LOPSTR95: Fifth International Workshop on Logic Program Synthesis and Transformation.Google Scholar
  6. 6.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M. and Irwin, J. 1997. Aspect-oriented programming. In ECOOP’ 97—Object-Oriented Programming, Lecture Notes in Computer Science, number 1241, pp. 220–242, Springer-Verlag.CrossRefGoogle Scholar
  7. 7.
    Kowalski, R.A. and Sergot, M.J. 1986. A logic-based calculus of events. New Generation Computing 4, pp. 67–95.CrossRefGoogle Scholar
  8. 8.
    Krakowiak, S., Meysembourg, M., Nguyen Van, H., Riveill, M., Roisin, C. and Rousset de Pina, X. 1990. Design and implementation of an object-oriented strongly typed language for distributed applications. Journal of Object-Oriented Programming 3(3):11–22.Google Scholar
  9. 9.
    Pratt, V. 1986. Modeling concurrency with partial orders. International Journal of Parallel Programming 15, 1, pp. 33–71.zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Ramirez, R. 1996. A logic-based concurrent object-oriented programming language, PhD thesis, Bristol University.Google Scholar
  11. 11.
    Ramirez, R., Santosa, A. E. 2000. Declarative concurrency in Java, Proceedings of the 5th International Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS 2000). Springer-Verlag.Google Scholar
  12. 12.
    Saraswat, V., and Rinard, M. 1990. Concurrent Constraint Programming. Proceedings of the 7th Annual ACM Symposium on Principles of Programming Languages. pp. 232–245.Google Scholar
  13. 13.
    Ueda, K. and Chikayama, T. 1990. Design of the kernel language for the parallel inference machine. Computer Journal 33,6, pp. 494–500.CrossRefMathSciNetGoogle Scholar
  14. 14.
    De Volder, K. and D’Hondt, T. 1999. Aspect-oriented logic meta programming. In Meta-Level Architectures and Reflection, Lecture Notes in Computer Science number 1616, pp. 250–272. Springer-Verlag.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Rafael Ramirez
    • 1
  • Andrew E. Santosa
    • 1
  • Lee Wei Hong
    • 1
  1. 1.School of ComputingNational University of SingaporeSingapore

Personalised recommendations