Dynamic Structural Operational Semantics

We introduce Dynamic SOS as a framework for describing semantics of programming languages that include dynamic software upgrades, for upgrading software code during run-time. Dynamic SOS (DSOS) is built on top of the Modular SOS of P. Mosses, with an underlying category theory formalization. The idea of Dynamic SOS is to bring out the essential differences between dynamic upgrade constructs and program execution constructs. The important feature of Modular SOS (MSOS) that we exploit in DSOS is the sharp separation of the program execution code from the additional (data) structures needed at run-time. In DSOS we aim to achieve the same modularity and decoupling for dynamic software upgrades. This is partly motivated by the long term goal of having machine-checkable proofs for general results like type safety. We exemplify Dynamic SOS on two languages supporting dynamic software upgrades, namely the C-like Proteus, which supports updating of variables, functions, records, or types at specific program points, and Creol, which supports dynamic class upgrades in the setting of concurrent objects. Existing type analyses for software upgrades can be done on top of DSOS too, as we illustrate for Proteus. As a side result we define of a general encapsulating construction on Modular SOS useful in situations where a form of encapsulation of the execution is needed. We use encapsulation in the Creol setting of concurrent object-oriented programming with active objects and asynchronous method calls.

[1]  Olaf Owe,et al.  An evaluation of interaction paradigms for active objects , 2019, J. Log. Algebraic Methods Program..

[2]  Sam Tobin-Hochstadt,et al.  Run your research: on the effectiveness of lightweight mechanization , 2012, POPL '12.

[3]  Einar Broch Johnsen,et al.  A formal model of service-oriented dynamic object groups , 2016, Sci. Comput. Program..

[4]  Joe Armstrong,et al.  Programming Erlang: Software for a Concurrent World , 1993 .

[5]  Peter D. Mosses,et al.  FunKons: Component-Based Semantics in K , 2014, WRLA.

[6]  Peter D. Mosses,et al.  Tool support for component-based semantics , 2016, MODULARITY.

[7]  Einar Broch Johnsen,et al.  Type-Safe Runtime Class Upgrades in Creol , 2006, FMOODS.

[8]  SOPHIA DROSSOPOULOU More Dynamic Object Reclassification : F ickleII , 2011 .

[9]  Matthias Felleisen,et al.  The Semantics of Future and an Application , 1999, J. Funct. Program..

[10]  Liuba Shrira,et al.  Lazy modular upgrades in persistent object stores , 2003, OOPSLA '03.

[11]  HicksMichael,et al.  Safe and timely updates to multi-threaded programs , 2009 .

[12]  Luís Veiga,et al.  Rubah: DSU for Java on a stock JVM , 2014, OOPSLA.

[13]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[14]  David D. McDonald,et al.  Programs , 1984, CL.

[15]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[16]  James Riely,et al.  Resource Access Control in Systems of Mobile Agents , 2002, HLCL.

[17]  Frank S. de Boer,et al.  A Complete Guide to the Future , 2007, ESOP.

[18]  Narciso Martí-Oliet,et al.  Maude: specification and programming in rewriting logic , 2002, Theor. Comput. Sci..

[19]  Peter D. Mosses A Modular SOS for ML Concurrency Primitives , 1999 .

[20]  Olaf Owe,et al.  Dynamic Structural Operational Semantics (long version) , 2019 .

[21]  Mohammad Reza Mousavi,et al.  Modular Semantics for Transition System Specifications with Negative Premises , 2013, CONCUR.

[22]  Frits W. Vaandrager,et al.  Turning SOS Rules into Equations , 1994, Inf. Comput..

[23]  Vaughan R. Pratt,et al.  SEMANTICAL CONSIDERATIONS ON FLOYD-HOARE LOGIC , 1976, FOCS 1976.

[24]  Gavin M. Bierman,et al.  Mutatis Mutandis: Safe and predictable dynamic software updating , 2007, TOPL.

[25]  Hans Httel Transitions and Trees: An Introduction to Structural Operational Semantics , 2010 .

[26]  Einar Broch Johnsen,et al.  Inheritance in the Presence of Asynchronous Method Calls , 2005, Proceedings of the 38th Annual Hawaii International Conference on System Sciences.

[27]  Fabricio Chalub,et al.  Maude MSOS Tool , 2007, WRLA.

[28]  Benjamin C. Pierce,et al.  Basic category theory for computer scientists , 1991, Foundations of computing.

[29]  Einar Broch Johnsen,et al.  A Dynamic Class Construct for Asynchronous Concurrent Objects , 2005, FMOODS.

[30]  Grigore Rosu,et al.  An overview of the K semantic framework , 2010, J. Log. Algebraic Methods Program..

[31]  Joe Armstrong,et al.  Concurrent programming in ERLANG , 1993 .

[32]  Einar Broch Johnsen,et al.  Dynamic Classes: Modular Asynchronous Evolution of Distributed Concurrent Objects , 2009, FM.

[33]  Peter D. Mosses,et al.  Modular Bisimulation Theory for Computations and Values , 2013, FoSSaCS.

[34]  Gunter Saake,et al.  JavAdaptor—Flexible runtime updates of Java applications , 2013, Softw. Pract. Exp..

[35]  Martín Abadi,et al.  A model of cooperative threads , 2009, POPL '09.

[36]  Einar Broch Johnsen,et al.  An Asynchronous Communication Model for Distributed Concurrent Objects , 2004, Proceedings of the Second International Conference on Software Engineering and Formal Methods, 2004. SEFM 2004..

[37]  Luca Aceto,et al.  Algebraic Properties for Free! , 2009, Bull. EATCS.

[38]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[39]  Tudor Dumitras,et al.  Cloud software upgrades: Challenges and opportunities , 2011, 2011 International Workshop on the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems.

[40]  Olaf Owe,et al.  Dynamic Structural Operational Semantics (preliminary version) , 2012 .

[41]  Gerard J. Holzmann,et al.  The SPIN Model Checker , 2003 .

[42]  James Riely,et al.  Resource Access Control in Systems of Mobile Agents , 2002, Inf. Comput..

[43]  Liuba Shrira,et al.  Modular Software Upgrades for Distributed Systems , 2006, ECOOP.

[44]  Peter D. Mosses,et al.  Implicit Propagation in Structural Operational Semantics , 2009, SOS@ICALP.

[45]  Peter D. Mosses Foundations of Modular SOS , 1999, MFCS.

[46]  Wan Fokkink,et al.  Compositionality of Hennessy-Milner logic by structural operational semantics , 2006, Theor. Comput. Sci..

[47]  Earl T. Barr,et al.  Runtime Support for Type-Safe Dynamic Java Classes , 2000, ECOOP.

[48]  Serge Demeyer,et al.  Software Evolution , 2010 .

[49]  Carolyn L. Talcott,et al.  A foundation for actor computation , 1997, Journal of Functional Programming.

[50]  Michael Hicks,et al.  Tedsuto: A General Framework for Testing Dynamic Software Updates , 2016, 2016 IEEE International Conference on Software Testing, Verification and Validation (ICST).

[51]  W. Marsden I and J , 2012 .

[52]  M.M. Lehman,et al.  Programs, life cycles, and laws of software evolution , 1980, Proceedings of the IEEE.

[53]  Jan Friso Groote,et al.  Notions of bisimulation and congruence formats for SOS with data , 2005, Inf. Comput..

[54]  Sophia Drossopoulou,et al.  More dynamic object reclassification: Fickle∥ , 2002, TOPL.

[55]  Peter D. Mosses,et al.  Modular structural operational semantics , 2004, J. Log. Algebraic Methods Program..

[56]  Iulian Neamtiu,et al.  Safe and timely updates to multi-threaded programs , 2009, PLDI '09.

[57]  Kevin Barraclough,et al.  I and i , 2001, BMJ : British Medical Journal.

[58]  Bernhard Beckert,et al.  Dynamic Logic , 2007, The KeY Approach.

[59]  Tom Ridge,et al.  Ott: effective tool support for the working semanticist , 2007, ICFP '07.

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

[61]  Luca Aceto,et al.  Structural Operational Semantics , 1999, Handbook of Process Algebra.

[62]  Matthew Hennessy,et al.  A distributed Pi-calculus , 2007 .

[63]  Gavin M. Bierman,et al.  UpgradeJ: Incremental Typechecking for Class Upgrades , 2008, ECOOP.

[64]  Luca Cardelli,et al.  Mobile Ambients , 1998, FoSSaCS.

[65]  Carl Hewitt,et al.  A Universal Modular ACTOR Formalism for Artificial Intelligence , 1973, IJCAI.

[66]  Mohammad Reza Mousavi,et al.  Algebraic Meta-Theory of Processes with Data , 2013, EXPRESS/SOS.

[67]  Jan Friso Groote,et al.  SOS formats and meta-theory: 20 years after , 2007, Theor. Comput. Sci..