Skip to main content

Checking Interference with Fractional Permissions

  • Conference paper
  • First Online:
Book cover Static Analysis (SAS 2003)

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

Included in the following conference series:

Abstract

We describe a type system for checking interference using the concept of linear capabilities (which we call “permissions”). Our innovations include the concept of “fractional” permissions: reads can be permitted with fractional permissions whereas writes require complete permissions. This distinction expresses the fact that reads on the same state do not conflict with each other. One may give shared read access at one point while still retaining write permission afterwards. We give an operational semantics of a simple imperative language with structured parallelism and prove that the permission system enables parallelism to proceed with deterministic results.

This material is based upon work supported by the National Science Foundation under Grant No. 9984681

The author wishes to acknowledge support through the High Dependability Computing Program from NASA Ames cooperative agreement NCC-2-1298.

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. Jouvelot, P., Gifford, D.K.: Algebraic reconstruction of types and effects. In: Conference Record of the Eighteenth Annual ACM SIGACT/SIGPLAN Symposium on Principles of Programming Languages. ACM Press, New York (1991) 303–310

    Google Scholar 

  2. Talpin, J.P., Jouvelot, P.: Polymorphic type, region and effect inference. Journal of Functional Programming 2 (1992) 245–271

    Article  MATH  MathSciNet  Google Scholar 

  3. Reynolds, J.C.: Syntactic control of interference. In: Conference Record of the Fifth ACM Symposium on Principles of Programming Languages, New York, ACM Press (1978) 39–46

    Google Scholar 

  4. Greenhouse, A., Boyland, J.: An object-oriented effects system. In Guerraoui, R., ed.: ECOOP’99 — Object-Oriented Programming, 13th European Conference. Volume 1628 of Lecture Notes in Computer Science., Berlin, Heidelberg, New York, Springer (1999) 205–229

    Google Scholar 

  5. Clarke, D., Drossopoulou, S.: Ownership, encapsulation and the disjointness of type and effect. In: OOPSLA’02 Conference Proceedings—Object-Oriented Programming Systems, Languages and Applications. Volume 37., New York, ACM Press (2002) 292–310

    Google Scholar 

  6. Flanagan, C., Abadi, M.: Types for safe locking. In Swierstra, S.D., ed.: ESOP’99 — Programming Languages and Systems, 8th European Symposium on Programming. Volume 1576 of Lecture Notes in Computer Science., Berlin, Heidelberg, New York, Springer (1999) 91–108

    Google Scholar 

  7. Boyapati, C., Rinard, M.: A parameterized type system for race-free Java programs. In: OOPSLA’01 Conference Proceedings—Object-Oriented Programming Systems, Languages and Applications. Volume 36., New York, ACM Press (2001) 56–69

    Google Scholar 

  8. Boyapati, C., Lee, R., Rinard, M.: Ownership types for safe programming: Preventing data races and deadlocks. In: OOPSLA’02 Conference Proceedings—Object-Oriented Programming Systems, Languages and Applications. Volume 37., New York, ACM Press (2002) 211–230

    Google Scholar 

  9. Walker, D., Crary, K., Morrisett, G.: Typed memory management via static capabilities. ACM Transactions on Programming Languages and Systems 22 (2000) 701–771

    Article  Google Scholar 

  10. Ishtiaq, S.S., O’Hearn, P.W.: BI as an assertion language for mutable data structures. In: Conference Record of the Twenty-eighth Annual ACM SIGACT/SIGPLAN Symposium on Principles of Programming Languages, New York, ACM Press (2001) 14–26

    Google Scholar 

  11. Reynolds, J.C.: Intuitionistic reasoning about shared mutable data structure. In: Millenial Perspectives in Computer Science, Palgrave (to appear) Draft dated July 28, 2000.

    Google Scholar 

  12. Reynolds, J.: Separation logic: A logic for shared mutable data structures. In: Logic in Computer Science, Los Alamitos, California, IEEE Computer Society (2002) 55–74

    Google Scholar 

  13. Boyland, J., Greenhouse, A.: MayEqual: A new alias question. Presented at IWAOOS’ 99: Intercontinental Workshop on Aliasing in Object-Oriented Systems. http://cuiwww.unige.ch/~ecoopws/iwaoos/papers/papers/greenhouse.ps.gz (1999)

    Google Scholar 

  14. Steensgaard, B.: Points-to analysis in almost linear time. In: Conference Record of the Twenty-third Annual ACM SIGACT/SIGPLAN Symposium on Principles of Programming Languages, New York, ACM Press (1996) 32–41

    Google Scholar 

  15. Wadler, P.: Linear types can change the world! In Broy, M., Jones, C.B., eds.: Programming Concepts and Methods. Elsevier, North-Holland (1990)

    Google Scholar 

  16. O’Hearn, P.W., Takeyama, M., Power, A.J., Tennent, R.D.: Syntactic control of interference revisited. In: MFPS XI, conference on Mathematical Foundations of Program Semantics. Volume 1., Elsevier (1995)

    Google Scholar 

  17. Smith, F., Walker, D., Morrisett, J.G.: Alias types. In Smolka, G., ed.: ESOP’00 — Programming Languages and Systems, 9th European Symposium on Programming. Volume 1782 of Lecture Notes in Computer Science., Berlin, Heidelberg, New York, Springer (2000) 366–381

    Google Scholar 

  18. Sagiv, M., Reps, T., Wilhelm, R.: Parametric shape analysis via 3-valued logic. In: Conference Record of the Twenty-sixth Annual ACM SIGACT/SIGPLAN Symposium on Principles of Programming Languages, New York, ACM Press (1999) 105–118

    Google Scholar 

  19. Morrisett, G., Felleisen, M., Harper, R.: Abstract models of memory management. In: Proceedings of the Seventh International Conference on Functional Programming Languages and Computer Architecture (FPCA’95), New York, ACM Press (1995) 66–77

    Chapter  Google Scholar 

  20. Boyland, J., Noble, J., Retert, W.: Capabilities for sharing: A generalization of uniqueness and read-only. In Knudsen, J.L., ed.: ECOOP’01 — Object-Oriented Programming, 15th European Conference. Volume 2072 of Lecture Notes in Computer Science., Berlin, Heidelberg, New York, Springer (2001) 2–27

    Google Scholar 

  21. Walker, D., Morrisett, G.: Alias types for recursive data structures. In: Types in Compilation: Third International Workshop, TIC 2000. Volume 2071 of Lecture Notes in Computer Science., Berlin, Heidelberg, New York, Springer (2001) 177–206

    Google Scholar 

  22. DeLine, R., Fähndrich, M.: Enforcing high-level protocols in low-level software. In: Proceedings of the ACM SIGPLAN’ 01 Conference on Programming Language Design and Implementation. Volume 36., New York, ACM Press (2001) 59–69

    Chapter  Google Scholar 

  23. Fähndrich, M., DeLine, R.: Adoption and focus: Practial linear types for imperative programming. In: Proceedings of the ACM SIGPLAN’ 02 Conference on Programming Language Design and Implementation. Volume 37., New York, ACM Press (2002) 13–24

    Chapter  Google Scholar 

  24. Ross, J.L., Sagiv, M.: Building a birdge between pointer aliases and program dependencies. In Hankin, C., ed.: ESOP’98 — Programming Languages and Systems, 7th European Symposium on Programming. Volume 1381 of Lecture Notes in Computer Science., Berlin, Heidelberg, New York, Springer (1998) 221–235

    Google Scholar 

  25. Rugina, R., Rinard, M.C.: Pointer analysis for structured parallel programs. ACM Transactions on Programming Languages and Systems 25 (2003) 70–116

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Boyland, J. (2003). Checking Interference with Fractional Permissions. In: Cousot, R. (eds) Static Analysis. SAS 2003. Lecture Notes in Computer Science, vol 2694. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44898-5_4

Download citation

  • DOI: https://doi.org/10.1007/3-540-44898-5_4

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-40325-8

  • Online ISBN: 978-3-540-44898-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics