On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
Actors: a model of concurrent computation in distributed systems
Actors: a model of concurrent computation in distributed systems
Extensional equivalence for transition systems
Acta Informatica
Statecharts: A visual formalism for complex systems
Science of Computer Programming
A semantics of multiple inheritance
Information and Computation - Semantics of Data Types
A cookbook for using the model-view controller user interface paradigm in Smalltalk-80
Journal of Object-Oriented Programming
Inheritance as an incremental modification mechanism or what like is and isn'tlike
on ECOOP '88 (European Conference on Object-Oriented Programming)
Keynote address - data abstraction and hierarchy
OOPSLA '87 Addendum to the proceedings on Object-oriented programming systems, languages and applications (Addendum)
Communication and concurrency
Inheritance and synchronization with enabled-sets
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On the development of reactive systems
Logics and models of concurrent systems
Object lifecycles: modeling the world in states
Object lifecycles: modeling the world in states
Introducing Objectcharts or How to Use Statecharts in Object-Oriented Design
IEEE Transactions on Software Engineering
Object-oriented modeling and design
Object-oriented modeling and design
The concurrency workbench: a semantics-based tool for the verification of concurrent systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
A calculus of mobile processes, I
Information and Computation
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Regular types for active objects
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Analysis of inheritance anomaly in object-oriented concurrent programming languages
Research directions in concurrent object-oriented programming
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Object-oriented state machines: subclassing, composition, delegation, and genericity
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
An algebraic semantics of subobjects
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
The development of type systems for object-oriented languages
Theory and Practice of Object Systems - Special issue: type systems
The STATEMATE semantics of statecharts
ACM Transactions on Software Engineering and Methodology (TOSEM)
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
A Theory of Objects
Types That Reflect Changes of Object Usability
JMLC '97 Proceedings of the Joint Modular Languages Conference on Modular Programming Languages
Modeling Subobject-based Inheritance
ECCOP '96 Proceedings of the 10th European Conference on Object-Oriented Programming
CONCUR '96 Proceedings of the 7th International Conference on Concurrency Theory
A Process Algebraic Semantics for Statecharts via State Refinement
PROCOMET '94 Proceedings of the IFIP TC2/WG2.1/WG2.2/WG2.3 Working Conference on Programming Concepts, Methods and Calculi
PolyTOIL: A Type-Safe Polymorphic Object-Oriented Language
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Behavioural Types for a Calculus of Concurrent Objects
Euro-Par '97 Proceedings of the Third International Euro-Par Conference on Parallel Processing
Types and trace effects of higher order programs
Journal of Functional Programming
Hi-index | 0.00 |
We show how finite-state machines can standardize the protocol used by a component object to notify other interested objects of its state changes, resulting in a more effective use of static types to constrain both parties, and a more efficient dissemination of information. The enhanced component specification is called a logical observable entity, or LOE. We address two key issues in effectively applying such a strategy: how to extend subtyping to consider the state machines, and how to ensure some kind of compliance between the state-machine specification and its implementation. This leads to an unusual subtyping predicate for LOEs on the one hand, and a prototype code generation strategy on the other.