Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/286936.286954acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article
Free access

Logical observable entities

Published: 01 October 1998 Publication History

Abstract

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.

References

[1]
Martfn Abadi and Luca Cardelli. A Theory of Objects. Springer-Verlag, 1996.
[2]
Gul Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge, Mass, 1986.
[3]
Kim B. Bruce, Angela Schuett, and Robert van Gent. Poly- TOIL: A type-safe polymorphic object-oriented language. In W. Olthoff, editor, Proceedings of the 9th European Conference on Object-Oriented Programming (ECOOP '95), pages 27-51. LNCS 952, Springer-Verlag, August 1995.
[4]
Luca Cardelli. A semantics of multiple inheritance. Information and Computation, 76(2/3): 138-164, February/March 1988.
[5]
Luca Cardelli and Peter Wegner. On understanding types, data abstraction, and polymorphism. Computing Surveys, 17(4):471-522, 1985.
[6]
Rance Cleaveland, Joachim Parrow, and Bernhard Steffen. The concurrency workbench: A semantics based tool for the verification of concurrent systems. ACM Transactions on Programming Languages and Systems, 15(1):36-72, 1993.
[7]
Derek Coleman, Fiona Hayes, and Stephen Bear. Introducing Objectcharts, or How to use statecharts in object-oriented design. IEEE Transactions on Software Engineering (TSE), 18(1 ):9-18, January 1992.
[8]
William R. Cook, Walter L. Hill, and Peter S. Canning. Inheritance is not subtyping. In Conference Record of the 17th Annual ACM Symposium on Principles of Programming Languages, January 1990.
[9]
Stephen R. Davis. C++ objects that change their type. The Journal of Object-Oriented Programming, pages 27-32, July/August 1992.
[10]
Rocco de Nicola. Extensional equivalences for transition systems. Acta lnformatica, 24(2):211-237, 1987.
[11]
Krishna Kishore Dhara and Gary T. Leavens. Forcing behavioral subtyping through specification inheritance. Technical Report TR #95-20c, Department of Computer Science, Iowa State University, 1995. Revised, 1997.
[12]
Kathleen Fisher and John C. Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1(3):189-220, 1995.
[13]
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns : Elements of Reusable Object- Oriented Software. Addison-Wesley, 1994.
[14]
David Harel. Statecharts: A visual formalism for complex systems. Science of Computer Programming, pages 231-274, August 1987.
[15]
David Harel and Eran Gery. Executable object modeling with statecharts. IEEE Computer, 30(7):31-42, July 1997.
[16]
David Harel and Amnon Naamad. The STATEMATE semantics of statecharts. ACM Transactions on Software Engineering and Methodology (TOSEM), 5(4):293-333, October 1996.
[17]
David Harel and Amir Pnueli. On the development of reactive systems. In Krzysztof R. Apt, editor, Logics and Models of Concurrent Systems, volume F13 of NATO ASI Series, pages 477--498. Springer-Verlag, New York, 1985.
[18]
Glenn E. Krasner and Stephen T. Pope. A cookbook for using the model/view/controller user interface paradigm in Smalltalk-80. Journal of Object Oriented Programming, 1 (3):26-49, 1988.
[19]
Barbara Liskov. Data abstraction and hierarchy. ACM SIG- PLAN Notices, 23(5), 1988. OOPSLA '87 Addendum to Proceedings: keynote address.
[20]
Barbara Liskov and Jeannette M. Wing. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(6):1811-1841, 1994.
[21]
Andrea Maggiolo-Schettini, Adriano Peron, and Simone Tini. Equivalences of statecharts. In Ugo Montanari and Vladimiro Sassone, editors, CONCUR '96: Concurrency Theory, 7th international Conference. LNCS 1119, Springer-Verlag, August 1996.
[22]
Satoshi Matsuoka, Kenjiro Taura, and Akinori Yonezawa. Highly efficient and encapsulated re-use of synchronization code in concurrent object-oriented languages. In Paepck {29}, pages 109-126.
[23]
Satoshi Matsuoka and Akinori Yonezawa. Analysis of inheritance anomaly in object-oriented concurrent programming languages. In Gul Agha, Peter Wegner, and Akinori Yonezawa, editors, Reseaarch Directions in Concurrent Object-Oriented Programming, pages 107-150. MIT Press, 1993.
[24]
Bertrand Meyer. Object-Oriented Software Construction. Prentice Hall, 1988.
[25]
Robin Milner. Communication and Concurrency. Prentice- Hall, 1989.
[26]
Robin Milner, Joachim Parrow, and David Walker. A calculus of mobile processes. (Parts I and ii). Information and Computation, 100:1-77, 1992.
[27]
Oscar Nierstrasz. Regular types for active objects. In Paepcke {29 }, pages 1-15.
[28]
Tenth Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '95). ACM SIGPLAN Notices 30(1), October 1995.
[29]
Andreas Paepcke, editor. Eighth Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '93). ACM SIGPLAN Notices 28(1), October 1993.
[30]
Benjamin C. Pierce and David N. Turner. Simple typetheoretic foundations for object-oriented programming. Journal of Functional Programming, 4(2):207-247, April 1994.
[31]
Franz Puntigam. Types for active objects based on trace semantics. In Proceedings, FMOODS '96, March 1996.
[32]
Franz Puntigam. Types that reflect changes of object usability. In Proceedings of the Joint Modular Languages Conference (JMLC '97). LNCS 1204, Springer-Verlag, March 1997.
[33]
Rational Software Corporation, Cupertino, California. Unified Modeling Language, Version 1.1 Document Set, September 1997.
[34]
Ant6nio Ravara and Vasco Vasconcelos. Behavioral types tbr a calculus of concurrent objects, in Proceedings, Euro- Par '97, pages 445-561. LNCS 1300, Springer-Verlag, 1997.
[35]
Jonathan G. Rossie Jr. and Daniel P. Friedman. An algebraic semantics of subobjects. In OOPSLA '95 {28}, pages 187- 199.
[36]
Jonathan G. Rossie Jr., Daniel P. Friedman, and Mitchell Wand. Modeling subobject-based inheritance. In Proceedings of the lOth European Conference on Object-Oriented Programming (ECOOP '96), pages 248-274. LNCS 1098, Springer-Verlag, July 1996.
[37]
J. Rumbaugh, M. Blaha, W. Premerlani, E Eddy, and W. Lorenson. Object-Oriented Modeling and Design. Prentice Hail, Englewood Cliffs, New Jersey, 1991.
[38]
Aamod Sane and Roy Campbell. Object-oriented state machines: Subclassing, composition, delegation, and genericity. In OOPSLA '95 {28}, pages 17-32.
[39]
Sally Shlaer and Stephen J. Mellor. Object Lifecycles: Modeling the World in States. Yourdon Press Computing Series. Yourdon Press (Prentice Hall, Englewood Cliffs, New Jersey), 1992.
[40]
Chris Tomlinson and Vineet Singh. Inheritance and synchronization with enabled sets. In Norman Meyrowitz, editor, Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '89), pages 103-I 12. ACM SIGPLAN Notices 24(1), October 1989.
[41]
Andrew C. Uselton and Scott A. Smolka. A process-algebraic semantics for statecharts via state refinement. In Proceedings of PROCOMET '94, pages 267-286. Elsevier/North Holland, 1994.
[42]
Peter Wegner and Stanley B. Zdonik. Inheritance as an incremental modification mechanism or what like is and isn't like. In Stein Gjessing and Kirsten Nygaard, editors, European Conference on Object-Oriented Programming (ECOOP '88), pages 55-77. LNCS 322, Springer-Verlag, August 1988.

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '98: Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
October 1998
428 pages
ISBN:1581130058
DOI:10.1145/286936
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 1998

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

OOPSLA98
Sponsor:

Acceptance Rates

Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 410
    Total Downloads
  • Downloads (Last 12 months)80
  • Downloads (Last 6 weeks)11
Reflects downloads up to 19 Nov 2024

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media