Typestate: A programming language concept for enhancing software reliability
IEEE Transactions on Software Engineering
Object-oriented modeling and design
Object-oriented modeling and design
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Unified Modeling Language user guide
The Unified Modeling Language user guide
State machine specification directly in Java and C++ (poster session)
OOPSLA '00 Addendum to the 2000 proceedings of the conference on Object-oriented programming, systems, languages, and applications (Addendum)
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Class-is-type is inadequate for object reuse
ACM SIGPLAN Notices
A Theory of Objects
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
Fickle: Dynamic Object Re-classification
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Towards Integration of State Machines and Object-Oriented Languages
TOOLS '99 Proceedings of the Technology of Object-Oriented Languages and Systems
Hi-index | 0.00 |
In current class-based Object-Oriented Programming Languages (OOPLs), object types include only static features. How to add object dynamic behaviors modeled by Harel's statecharts into object types is a challenging task. We propose adding states and state transitions, which are largely unstated in object type theory, into object type definitions and typing rules. We argue that dynamic behaviors of objects should be part of object type definitions. We propose our type theory, the @t-calculus, which refines Abadi and Cardelli's @z-calculus, in modeling objects with their dynamic behaviors. In our proposed type theory, we also explain that a subtyping relation between object types should imply the inclusion of their dynamic behaviors. By adding states and state transitions into object types, we propose modifying programming language constructs for state tracking.