Jeeg: temporal constraints for the synchronization of concurrent objects

We introduce Jeeg, a dialect of Java based on a declarative replacement of the synchronization mechanisms of Java that results in a complete decoupling of the ‘business’ and the ‘synchronization’ code of classes. Synchronization constraints in Jeeg are expressed in a linear temporal logic, which allows one to effectively limit the occurrence of the inheritance anomaly that commonly affects concurrent object‐oriented languages. Jeeg is inspired by the current trend in aspect‐oriented languages. In a Jeeg program the sequential and concurrent aspects of object behaviors are decoupled: specified separately by the programmer, these are then weaved together by the Jeeg compiler. Copyright © 2005 John Wiley & Sons, Ltd.

[1]  Akinori Yonezawa,et al.  Inheritance and Synchronization in Concurrent OOP , 1987, ECOOP.

[2]  Olivier Danvy,et al.  Tagging, Encoding, and Jones Optimality , 2003, ESOP.

[3]  Grigore Rosu,et al.  Monitoring Java Programs with Java PathExplorer , 2001, RV@CAV.

[4]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[5]  Ken Wakita,et al.  Synchronization Constraints With Inheritance: What Is Not Possible --- So What Is? , 1990 .

[6]  Satoshi Matsuoka,et al.  Analysis of inheritance anomaly in object-oriented concurrent programming languages , 1993 .

[7]  Satoshi Matsuoka,et al.  ECOOP'97 — Object-Oriented Programming , 1997, Lecture Notes in Computer Science.

[8]  Dimitra Giannakopoulou,et al.  Automata-based verification of temporal properties on running programs , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[9]  Doron Drusinsky,et al.  The Temporal Rover and the ATG Rover , 2000, SPIN.

[10]  Olivier Danvy A New One-Pass Transformation into Monadic Normal Form , 2003, CC.

[11]  Grigore Rosu,et al.  Testing Linear Temporal Logic Formulae on Finite Execution Traces , 2001 .

[12]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[13]  Grigore Rosu,et al.  Monitoring programs using rewriting , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[14]  Vladimiro Sassone,et al.  Jeeg: Temporal Constraints for the Synchronization of Concurrent Objects , 2003 .

[15]  C. Crépeau,et al.  On the Computational Collapse of Quantum Information , 2003 .

[16]  Wolfgang Thomas,et al.  Languages, Automata, and Logic , 1997, Handbook of Formal Languages.

[17]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[18]  Amir Pnueli,et al.  The Glory of the Past , 1985, Logic of Programs.

[19]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[20]  S. Srinivasa Rao,et al.  Computing Refined Buneman Trees in Cubic Time , 2002, WABI.

[21]  Oscar Nierstrasz,et al.  Viewing object as patterns of communicating agents , 1990, OOPSLA/ECOOP '90.

[22]  José Meseguer,et al.  Solving the Inheritance Anomaly in Concurrent Object-Oriented Programming , 1993, ECOOP.

[23]  G. Rosu,et al.  Synthesizing Dynamic Programming Algorithms fromLinear Temporal Logic Formulae , 2001 .

[24]  Svend Frølund,et al.  Inheritance of Synchronization Constraints in Concurrent Object-Oriented Programming Languages , 1992, ECOOP.

[25]  Louis Marie Johannes Bergmans,et al.  Composing Concurrent Objects , 1994 .

[26]  Vladimiro Sassone,et al.  Deriving Bisimulation Congruences: 2-Categories Vs Precategories , 2003, FoSSaCS.

[27]  Oscar Nierstrasz,et al.  Towards a type theory for active objects , 1991, OOPSLA/ECOOP '90.

[28]  Pierre America POOL: design and experience , 1991, OOPS Messenger.

[29]  Mahesh Viswanathan,et al.  Runtime Assurance Based On Formal Specifications , 1999, PDPTA.

[30]  Vineet Singh,et al.  Inheritance and synchronization with enabled-sets , 1989, OOPSLA '89.

[31]  E. Allen Emerson,et al.  Temporal and Modal Logic , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[32]  Glynn Winskel,et al.  HOPLA-A Higher-Order Process Language , 2002, CONCUR.

[33]  G. Ro Synthesizing Dynamic Programming Algorithms from Linear Temporal Logic Formulae , 2001 .

[34]  Cristina V. Lopes,et al.  Abstracting Process-to-Function Relations in Concurrency Object-Oriented Applications , 1994, ECOOP.