State Controlled Object Oriented Programming

ion is the process in programming that allows the complexity of certain aspects of a program to be limited to parts of the program and provides a clean interface for using those features. For instance, object oriented features such as polymorphism and encapsulation can be implemented in a non-object oriented programming language (such as C) by exploiting related design patterns [3], but at the cost of complex logic to be coded by the programmer. Alternatively, object oriented languages provide declarative syntax that abstracts the object oriented features and reduces the complexity of code to be written by the programmer. Similarly, in conventional object oriented programming, a programmer can write code to maintain the state of an object, but at the cost of writing the state maintenance code himself. Usually state maintenance code is in the form of conditional checks, state tables or in the form of state design patterns that potentially make the object oriented code more complex.

[1]  Matteo Pradella,et al.  Context-Oriented Programming: A Programming Paradigm for Autonomic Systems , 2011, ArXiv.

[2]  Jonathan Aldrich,et al.  Modular typestate checking of aliased objects , 2007, OOPSLA.

[3]  Hideki Nomoto State oriented programming , 2004, Eighth IEEE International Symposium on High Assurance Systems Engineering, 2004. Proceedings..

[4]  Anna Gringauze,et al.  Detecting Data Race and Atomicity Violation via Typestate-Guided Static Analysis , 2008 .

[5]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[6]  Sheng Yu Class-is-type is inadequate for object reuse , 2001, SIGP.

[7]  Girish Keshav Palshikar Introduction to Model-checking , 2004 .

[8]  Thierry Villemur,et al.  Towards Context-Aware Deployment and Reconfiguration , 2013, 2013 Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises.

[9]  K. Rustan M. Leino,et al.  Verification of Object-Oriented Programs with Invariants , 2003, J. Object Technol..

[10]  Alessandro Orso,et al.  A technique for dynamic updating of Java software , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[11]  Stephen M. Watt A technique for generic iteration and its optimization , 2006, WGP '06.

[12]  Walter F. Tichy,et al.  Adding autonomic functionality to object-oriented applications , 2003, 14th International Workshop on Database and Expert Systems Applications, 2003. Proceedings..

[13]  Klaus Havelund,et al.  Model checking programs , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[14]  Michael Hicks,et al.  State transfer for clear and efficient runtime updates , 2011, 2011 IEEE 27th International Conference on Data Engineering Workshops.

[15]  Michael L. Scott,et al.  Programming Language Pragmatics , 1999 .

[16]  Robert E. Strom,et al.  Typestate: A programming language concept for enhancing software reliability , 1986, IEEE Transactions on Software Engineering.

[17]  Bernhard Schätz,et al.  Language engineering as an enabler for incrementally defined formal analyses , 2012, 2012 First International Workshop on Formal Methods in Software Engineering: Rigorous and Agile Approaches (FormSERA).

[18]  Philip K. McKinley,et al.  Perimorph: run-time composition and state management for adaptive systems , 2004, 24th International Conference on Distributed Computing Systems Workshops, 2004. Proceedings..

[19]  Seyed Masoud Sadjadi,et al.  Separating introspection and intercession to support metamorphic distributed systems , 2002, Proceedings 22nd International Conference on Distributed Computing Systems Workshops.

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

[21]  Robert DeLine,et al.  Enforcing high-level protocols in low-level software , 2001, PLDI '01.

[22]  Betty H. C. Cheng,et al.  A Taxonomy of Compositional Adaptation , 2004 .

[23]  Robert DeLine,et al.  Adoption and focus: practical linear types for imperative programming , 2002, PLDI '02.

[24]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[25]  William Stalling Operating systems : internals and design principles / William Stallings , 2001 .

[26]  Hassan Abolhassani,et al.  A survey of dynamic software updating , 2013, J. Softw. Evol. Process..

[27]  Michael L. Scott Programming Language Pragmatics, Third Edition , 2009 .

[28]  Stephan Merz An Introduction to Model Checking , 2010 .

[29]  Jonathan Aldrich,et al.  An Empirical Study of Object Protocols in the Wild , 2011, ECOOP.

[30]  Jonathan Aldrich,et al.  Lightweight object specification with typestates , 2005, ESEC/FSE-13.

[31]  Jorge Fox,et al.  Exploring approaches to dynamic adaptation , 2009, MAI '09.

[32]  Hong Sun,et al.  ACCADA: A Framework for Continuous Context-Aware Deployment and Adaptation , 2009, SSS.

[33]  Eran Yahav,et al.  Effective typestate verification in the presence of aliasing , 2006, TSEM.

[34]  Philip K. McKinley,et al.  Adaptive Java: Refractive and Transmutative Support for Adaptive Software , 2001 .

[35]  Lynne Blair,et al.  Using Dynamic Aspect-Oriented Programming to Implement an Autonomic System , 2004 .

[36]  Robert DeLine,et al.  Typestates for Objects , 2004, ECOOP.

[37]  Seyed Masoud Sadjadi,et al.  Composing adaptive software , 2004, Computer.

[38]  Jeffrey O. Kephart,et al.  Research challenges of autonomic computing , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[39]  Viktor Kuncak,et al.  Role analysis , 2002, POPL '02.

[40]  Jonathan Aldrich,et al.  Typestate-oriented programming , 2009, OOPSLA Companion.

[41]  William Stallings,et al.  Operating Systems: Internals and Design Principles , 1991 .

[42]  Linda Null,et al.  The essentials of computer organization and architecture , 2003 .

[43]  Eelco Visser,et al.  WebWorkFlow: An Object-Oriented Workflow Modeling Language for Web Applications , 2008, MoDELS.

[44]  Timothy A. Budd,et al.  An introduction to object-oriented programming , 1991 .

[45]  Viktor Kuncak,et al.  Generalized Typestate Checking for Data Structure Consistency , 2005, VMCAI.

[46]  Edmund M. Clarke,et al.  Symbolic Model Checking: 10^20 States and Beyond , 1990, Inf. Comput..

[47]  Éric Tanter,et al.  Gradual Typestate , 2011, ECOOP.

[48]  Gunter Saake,et al.  Software Evolution through Dynamic Adaptation of Its OO Desgin , 2003, Objects, Agents, and Features.

[49]  Sheng Yu,et al.  Type Theory and Language Constructs for Objects with States , 2006, Electron. Notes Theor. Comput. Sci..

[50]  Cornel Klein,et al.  A Survey of Context Adaptation in Autonomic Computing , 2008, Fourth International Conference on Autonomic and Autonomous Systems (ICAS'08).