Skip to main content

An Object-Oriented Effects System

  • Conference paper
  • First Online:
ECOOP’ 99 — Object-Oriented Programming (ECOOP 1999)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1628))

Included in the following conference series:

Abstract

An effects systems describes how state may be accessed during the execution of some program component. This information is used to assist reasoning about a program, such as determining whether data dependencies may exist between two computations. We define an effects system for Java that preserves the abstraction facilities that make objectoriented programming languages attractive. Specifically, a subclass may extend abstract regions of mutable state inherited from the superclass.

The effects system also permits an object’s state to contain the state of wholly-owned subsidiary objects. In this paper, we describe a set of annotations for declaring permitted effects in method headers, and show how the actual effects in a method body can be checked against the permitted effects.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Alexander Aiken, Manuel Fähndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Proceedings of the ACM SIGPLAN’ 95 Conference on Programming Language Design and Implementation, San Diego, California, USA, ACM SIGPLAN Notices, 30(6):174–185, June 1995.

    Article  Google Scholar 

  2. John Boyland. Deferring destruction when reading unique variables. Submitted to IWAOOS’ 99, March 1999.

    Google Scholar 

  3. John Boyland and Aaron Greenhouse. MayEqual: A new alias question. Submitted to IWAOOS’ 99, March 1999.

    Google Scholar 

  4. Edwin C. Chan, John T. Boyland, and William L. Scherlis. Promises: Limited specifications for analysis and manipulation. In Proceedings of the IEEE International Conference on Software Engineering (ICSE’ 98), Kyoto, Japan, April 19–25, pages 167–176. IEEE Computer Society, Los Alamitos, California, 1998.

    Google Scholar 

  5. David G. Clarke, John M. Potter, and James Noble. Ownership types for flexible alias protection. In OOPSLA’98 Conference Proceedings Object-Oriented Programming Systems, Languages and Applications, Vancouver, Canada, October 18–22, ACM SIGPLAN Notices, 33(10):48–64, October 1998.

    Article  Google Scholar 

  6. D. K. Gifford, P. Jouvelot, J. M. Lucassen, and M. A. Sheldon. FX-87 reference manual. Technical Report MIT/LCS/TR-407, Massachusetts Institute of Technology, Laboratory for Computer Science, September 1987.

    Google Scholar 

  7. Daniel Jackson. Aspect: Detecting bugs with abstract dependencies. ACM Transactions on Software Engineering and Methodology, 4(2):109–145, April 1995.

    Article  Google Scholar 

  8. Pierre Jouvelot and David K. Gifford. Algebraic reconstruction of types and effects. In Conference Record of the Eighteenth Annual ACM SIGACT/SIGPLAN Symposium on Principles of Programming Languages, pages 303–310. ACM Press, New York, 1991.

    Google Scholar 

  9. K. Rustan M. Leino. Data groups: Specifying the modification of extended state. In OOPSLA’98 Conference Proceedings-Object-Oriented Programming Systems, Languages and Applications, Vancouver, Canada, October 18–22, ACM SIGPLAN Notices, 33(10), October 1998.

    Google Scholar 

  10. John C. Reynolds. Syntactic control of interference. In Conference Record of the Fifth ACM Symposium on Principles of Programming Languages, pages 39–46. ACM Press, New York, January 1978.

    Google Scholar 

  11. Bjarne Steensgaard. Points-to analysis in almost linear time. In Conference Record of the Twenty-third Annual ACM SIGACT/SIGPLAN Symposium on Principles of Programming Languages, St. Petersburg, Florida, USA, January 21–24, pages 32–41. ACM Press, New York, 1996.

    Google Scholar 

  12. Jean-Pierre Talpin and Pierre Jouvelot. Polymorphic type, region and effect inference. Journal of Functional Programming, 2(3):245–271, July 1992.

    Article  MATH  MathSciNet  Google Scholar 

  13. Mads Tofte and Jean-Pierre Talpin. Implementation of the typed call-by-value λ-calculus using a stack of regions. In Conference Record of the Twenty-first Annual ACM SIGACT/SIGPLAN Symposium on Principles of Programming Languages, Portland, Oregon, USA, January 17–21, pages 188–201. ACM Press, New York, 1994.

    Google Scholar 

  14. Bill Venners. Design for thread safety: Design tips on when and how to use synchronization, immutable objects, and thread-safe wrappers. JavaWorld, August 1998.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Greenhouse, A., Boyland, J. (1999). An Object-Oriented Effects System. In: Guerraoui, R. (eds) ECOOP’ 99 — Object-Oriented Programming. ECOOP 1999. Lecture Notes in Computer Science, vol 1628. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48743-3_10

Download citation

  • DOI: https://doi.org/10.1007/3-540-48743-3_10

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66156-6

  • Online ISBN: 978-3-540-48743-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics