Hostname: page-component-78c5997874-s2hrs Total loading time: 0 Render date: 2024-10-31T22:46:45.905Z Has data issue: false hasContentIssue false

A model for syntactic control of interference

Published online by Cambridge University Press:  04 March 2009

P. W. O'Hearn
Affiliation:
School of Computer and Information Science, Syracuse University, Syracuse, NY, USA 13224–4100

Abstract

Two imperative programming language phrases interfere when one writes to a storage variable that the other reads from or writes to. Reynolds has described an elegant linguistic approach to controlling interference in which a refinement of typed λ-calculus is used to limit sharing of storage variables; in particular, different identifiers are required never to interfere. This paper examines semantic foundations of the approach.

We describe a category that has (an abstraction of) interference information built into all objects and maps. This information is used to define a ‘tensor’ product whose components are required never to interfere. Environments are defined using the tensor, and procedure types are obtained via a suitable adjunction. The category is a model of intuitionistic linear logic. Reynolds' concept of passive type - i.e. types for phrases that do not write to any storage variables - is shown to be closely related, in this model, to Girard's ‘of course’ modality.

Type
Research Article
Copyright
Copyright © Cambridge University Press 1993

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

Abramsky, S. (1993) Computational interpretations of linear logic. To appear in Theoretical Computer Science.CrossRefGoogle Scholar
ANSI (1978) American National Standards Institute, Fortran Standard, ANSI X3.9.Google Scholar
Breazu-Tannen, V., Coquand, T., Gunter, C. A. and Scedrov, A. (1991) Inheritance and explicit coercion. Information and Computation 93 172221.CrossRefGoogle Scholar
Brinch Hansen, P. (1973) Operating Systems Principles, Prentice Hall.Google Scholar
Coppo, M. and Dezani, M. (1978) A new type-assignment for λ-terms. Archiv. Math. Logik. 19 139156.CrossRefGoogle Scholar
Dahl, O. J. (1972) Hierarchical program structures. In: Structured Programming, Academic Press, London.Google Scholar
Girard, J.-Y. (1987) Linear logic. Theoretical Computer Science 50 1102.CrossRefGoogle Scholar
Guzmàn, J. and Hudak, P. (1990) Single-threaded polymorphic lambda calculus. Proceedings of the 5th IEEE Symposium on Logic in Computer Science 333345.CrossRefGoogle Scholar
Halpern, J. Y., Meyer, A. R. and Trakhtenbrot, B. A. (1983) The semantics of local storage, or what makes the free list free? Conference Record of the 11th ACM Symposium on Principles of Programming Languages 245257.CrossRefGoogle Scholar
Hoare, C. A. R. (1971) Procedures and parameters: an axiomatic approach. In: Engeler, E. (ed.) Symposium on Semantics of Algorithmic Languages. Springer-Verlag Lecture Notes in Mathematics 188 102116.CrossRefGoogle Scholar
Hoare, C. A. R. (1974a) Monitors: an operating system concept. Communications of the ACM 17 549557.CrossRefGoogle Scholar
Hoare, C. A. R. (1974b) Hints on programming language design. Technical Report CS-74–403, Stanford University.Google Scholar
Holmstrom, S. (1988) Linear functional programming. Proceedings of the Workshop on Implementation of Lazy Functional Languages, Chalmers University.Google Scholar
Holt, et al. (1987) The Turing Programming Language. Design and Definition, Prentice Hall.Google Scholar
INMOS LTD. (1988) occam 2 Reference Manual, Prentice Hall.Google Scholar
Lafont, Y. (1988) The linear abstract machine. Theoretical Computer Science 59 157180.CrossRefGoogle Scholar
Lambek, J. and Scott, P. J. (1986) Introduction to Higher-Order Categorical Logic, Cambridge University Press.Google Scholar
Lent, A. F. (1992) The category of functors from state shapes to bottomless CPOs is adequate for block structure, Master's thesis, MIT.Google Scholar
Lucaseen, J. M. and Gifford, D. K. (1988) Polymorphic effect systems. Conference Record of the 15th ACM Symposium on Principles of Programming Languages.CrossRefGoogle Scholar
Mac Lane, S. (1971) Categories for the Working Mathematician, Springer-Verlag.CrossRefGoogle Scholar
Meyer, A. R. and Sieber, K. (1988) Towards fully abstract semantics for local variables. Conference Record of the 15th ACM Symposium on Principles of Programming Languages 191203.CrossRefGoogle Scholar
Moggi, E. (1989) An abstract view of programming languages. Course Notes.Google Scholar
O'Hearn, P. W. (1991) Linear logic and interference control (preliminary report). 4th Conference on Category Theory and Computer Science, Springer-Verlag Lecture Notes in Computer Science 530 7493.CrossRefGoogle Scholar
O'Hearn, P. W. and Tennent, R. D. (1992) Semantics of local variables. In: Fourman, , Johnstone, and Pitts, (eds.) Applications of Categories in Computer Science. London Math. Soc. Lecture Notes Series 177, Cambridge University Press.Google Scholar
O'Hearn, P. W. and Tennent, R. D. (1993) Semantical analysis of specification logic, part 2. To appear in Information and Computation.CrossRefGoogle Scholar
Oles, F. J. (1982) A Category-Theoretic Approach to the Semantics of Programming Languages, Syracuse University.Google Scholar
Oles, F. J. (1985) Type Algebras, Functor Categories and Block Structure. In: Nivat, M. and Reynolds, J. C. (eds.) Algebraic Methods in Semantics, Cambridge University Press 543573.Google Scholar
Padua, D. A. and Wolfe, M. J. (1986) Advanced compiler optimizations for supercomputers. Communications of the ACM 29 (12).CrossRefGoogle Scholar
Popek, et al. (1977) Notes on the design of EUCLID. SIGPLAN Notices 12 (3) 1118.CrossRefGoogle Scholar
Reynolds, J. C. (1978) Syntactic control of interference. Conference Record of the 5th ACM Symposium on Principles of Programming Languages 3946.CrossRefGoogle Scholar
Reynolds, J. C. (1981) The essence of Algol. In: de Bakker, J. W. and van Vliet, J. C. (eds.) Algorithmic Languages, North-Holland, Amsterdam345372.Google Scholar
Reynolds, J. C. (1987) Conjunctive types and Algol-like languages (abstract of invited lecture). Proc. 2nd IEEE Symposium on Logic in Computer Science, Ithaca.Google Scholar
Reynolds, J. C. (1989) Syntactic control of interference, part II. ICALP 89 Proceedings, Springer-Verlag Lecture Notes in Computer Science 372 704722.CrossRefGoogle Scholar
Reynolds, J. C. (1991) The coherence of languages with intersection types. International Conference on Theoretical Aspects of Computer Software, Sendai, Japan.Google Scholar
Seeley, R. A. G. (1989) Linear logic, *-autonomous categories and cofree coalgebras. Contemporary Mathematics 92: Categories in Computer Science and Logic 371382.CrossRefGoogle Scholar
Swarup, V., Reddy, U. S. and Ireland, E. (1991) Assignments for applicative languages. Proc. Conference on Functional Programming Languages and Computer Architecture.CrossRefGoogle Scholar
Tennent, R. D. (1983) Semantics of interference control. Theoretical Computer Science 27 297310.CrossRefGoogle Scholar
Tennent, R. D. (1986) Functor-category semantics of programming languages and logics, Category Theory and Computer Programming, Springer-Verlag Lecture Notes in Computer Science 240 206224.CrossRefGoogle Scholar
Tennent, R. D. (1990) Semantical analysis of specification logic. Information and Computation 85 (2) 135162.CrossRefGoogle Scholar
Tennent, R. D. (1991) Semantics of Programming Languages, Prentice Hall International, London.Google Scholar
Tennent, R. D. (1992) The essence of functional programming. Conference Record of the 19th ACM Symposium on Principles of Programming Languages.Google Scholar
Wadler, P. (1990) Linear types can change the world! In: Broy, M. and Jones, C. (eds.) Programming Concepts and Methods, North Holland.Google Scholar