SCHOOL: a Small Chorded Object-Oriented Language

Chords are a declarative synchronisation construct based on the Join-calculus, available in the programming language C-omega. To our knowledge, chords have no formal model in an object-oriented setting. In this paper we suggest SCHOOL, a formal model for an imperative, object-oriented language with chords. We give an operational semantics and type system, and can prove soundness of the type system.

[1]  Nancy G. Leveson,et al.  An investigation of the Therac-25 accidents , 1993, Computer.

[2]  Gérard Berry,et al.  The chemical abstract machine , 1989, POPL '90.

[3]  Cosimo Laneve,et al.  Inheritance in the join calculus , 2000, J. Log. Algebraic Methods Program..

[4]  Matthias Felleisen,et al.  A Syntactic Approach to Type Soundness , 1994, Inf. Comput..

[5]  Sophia Drossopoulou An Abstract Model of Java Dynamic Linking and Loading , 2000, Types in Compilation.

[6]  Simon L. Peyton Jones,et al.  Imperative functional programming , 1993, POPL '93.

[7]  Matthias Felleisen,et al.  Classes and mixins , 1998, POPL '98.

[8]  Jeremy Manson,et al.  The Java memory model , 2005, POPL '05.

[9]  Alan Burns,et al.  Concurrent programming , 1980, Operating Systems Engineering.

[10]  Andrew P. Black,et al.  Object structure in the Emerald system , 1986, OOPLSA '86.

[11]  Kristen Nygaard,et al.  SIMULA: an ALGOL-based simulation language , 1966, CACM.

[12]  Gul Agha,et al.  Concurrent programming using actors , 1987 .

[13]  Sylvain Conchon,et al.  Jocaml: mobile agents for Objective-Caml , 1999, Proceedings. First and Third International Symposium on Agent Systems Applications, and Mobile Agents.

[14]  Jan Vitek,et al.  A Semantic Framework for Designer Transactions , 2004, ESOP.

[15]  Susan Eisenbach,et al.  A Chorded Compiler for Java , 2004 .

[16]  Vladimiro Sassone,et al.  The inheritance anomaly: ten years after , 2004, SAC '04.

[17]  Gul Agha,et al.  Research directions in concurrent object-oriented programming , 1993 .

[18]  Doug Lea,et al.  Concurrent programming in Java - design principles and patterns , 1996, Java series.

[19]  G. Stewart Von Itzstein,et al.  Applications of Join Java , 2002 .

[20]  Michael Philippsen A survey of concurrent object-oriented languages , 2000 .

[21]  Keir Fraser,et al.  Language support for lightweight transactions , 2003, SIGP.

[22]  Andrew P. Black,et al.  Object structure in the Emerald system , 1986, OOPSLA 1986.

[23]  Andreas Paepcke,et al.  Conference proceedings on Object-oriented programming systems, languages, and applications , 1991, Conference on Object-Oriented Programming Systems, Languages, and Applications.

[24]  Michael R. Lowry,et al.  Experimental Evaluation of Verification and Validation Tools on Martian Rover Software , 2013, Formal Methods Syst. Des..

[25]  Rachid Guerraoui,et al.  Concurrency and distribution in object-oriented programming , 1998, CSUR.

[26]  Luca Cardelli,et al.  Modern concurrency abstractions for C# , 2002, TOPL.

[27]  Cédric Fournet,et al.  The reflexive CHAM and the join-calculus , 1996, POPL '96.

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