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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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
Talpin, J.P., Jouvelot, P.: Polymorphic type, region and effect inference. Journal of Functional Programming 2 (1992) 245–271
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
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
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
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
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
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
Walker, D., Crary, K., Morrisett, G.: Typed memory management via static capabilities. ACM Transactions on Programming Languages and Systems 22 (2000) 701–771
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
Reynolds, J.C.: Intuitionistic reasoning about shared mutable data structure. In: Millenial Perspectives in Computer Science, Palgrave (to appear) Draft dated July 28, 2000.
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
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)
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
Wadler, P.: Linear types can change the world! In Broy, M., Jones, C.B., eds.: Programming Concepts and Methods. Elsevier, North-Holland (1990)
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)
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
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
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
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
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
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
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
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
Rugina, R., Rinard, M.C.: Pointer analysis for structured parallel programs. ACM Transactions on Programming Languages and Systems 25 (2003) 70–116
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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