Syntactic Control of Interference Revisited

  • Peter W. O’Hearn
  • A. John Power
  • Makoto Takeyama
  • Robert D. Tennent
Part of the Progress in Theoretical Computer Science book series (PTCS)

Abstract

In “Syntactic Control of Interference” [33] J. C. Reynolds proposes three design principles intended to constrain the scope of imperative state effects in Algol-like languages. The resulting linguistic framework seems to be a very satisfactory way of combining functional and imperative concepts, having the desirable attributes of both purely functional languages (such as PCF) and simple imperative languages (such as the language of while programs).

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    N. Benton, G. Bierman, V. de Paiva, and M. Hyland. A term calculus for intuitionistic linear logic. In M. Bezen and J. F. Groote, editors, Typed Lambda Calculi and Applications, volume 664 of Lecture Notes in Computer Science, pages 75–90, Utrecht, The Netherlands, March 1993. Springer-Verlag, Berlin.CrossRefGoogle Scholar
  2. [2]
    P. N. Benton. A mixed linear and non-linear logic: proofs, terms and models (preliminary report). Technical Report 352, University of Cambridge Computer Laboratory, October 1994.Google Scholar
  3. [3]
    G.M. Bierman. What is a categorical model of intuitionistic linear logic? In Proceedings of Second International Conference on Typed A-calculi and Applications,volume 902 of Lecture Notes in Computer Science,pages 78–93, Edinburgh, Scotland, April 1995. Springer-Verlag, Berlin.Google Scholar
  4. [4]
    R. Bird and P. Wadler. Introduction to Functional Programming. Prentice-Hall International, London, 1988.Google Scholar
  5. [5]
    P. Brinch Hansen. Structured multiprogramming. Comm. ACM, 15 (7): 574–78, 1972.CrossRefGoogle Scholar
  6. [6]
    F. Brown, editor. The Frame Problem in Artificial Intelligence. Proceedings of the 1987 workshop. Morgan Kaufmann, 1987.Google Scholar
  7. [7]
    M. Coppo and M. Dezani. A new type assignment for A-terms. Archiv. Math. Logik, 19: 139–156, 1978.MATHCrossRefGoogle Scholar
  8. [8]
    B. J. Day. On closed categories of functors. In S. Mac Lane, editor, Reports of the Midwest Category Seminar, volume 137 of Lecture Notes in Mathematics, pages 1–38. Springer-Verlag, Berlin-New York, 1970.CrossRefGoogle Scholar
  9. [9]
    S. Eilenberg and G. M. Kelly. Closed categories. In S. Eilenberg et al., editors, Proceedings of the Conference on Categorical Algebra, pages 421–562, La Jolla, California, 1965. Springer-Verlag, New York, 1966.Google Scholar
  10. [10]
    P. Freyd, P. W. O’Hearn, A. J. Power, M. Takeyama, and R. D. Tennent. Bireflectivity. In S. Brookes, M. Main, A. Melton, and M. Mislove, editors, Mathematical Foundations of Programming Semantics, Eleventh Annual Conference,volume 1 of Electronic Notes in Theoretical Computer Science,Tulane University, New Orleans, Louisiana, March 29-April 1 1995. Elsevier Science.Google Scholar
  11. [11]
    J.-Y. Girard. Linear logic. Theoretical Computer Science, pages 1–102, 1987.Google Scholar
  12. [12]
    J.-Y. Girard. On the unity of logic. Annals of Pure and Applied Logic, 59: 201–217, 1993.MathSciNetMATHCrossRefGoogle Scholar
  13. [13]
    C. A. R. Hoare. An axiomatic basis for computer programming. Comm. ACM, 12(10):576–580 and 583, 1969.Google Scholar
  14. [14]
    C. A. R. Hoare. Hints on programming-language design. In C. Bunyan, editor, Computer Systems Reliability,volume 20 of State of the Art Report,pages 505–34. Pergamon/Infotech, 1974. Also pages 193–216 of [15].Google Scholar
  15. [15]
    C. A. R. Hoare and C. B. Jones, editors. Essays in Computing Science. Prentice Hall International, 1989.Google Scholar
  16. [16]
    P. Hudak. Conception, evolution, and application of functional programming languages. Computing Surveys, 31: 359–411, 1989.CrossRefGoogle Scholar
  17. [17]
    J. Hughes. Why functional programming matters. The Computer Journal, 32: 98–107, 1989.CrossRefGoogle Scholar
  18. [18]
    G. M. Kelly. Doctrinal adjunction. In G. M. Kelly, editor, Category Seminar: Proceedings, Sydney Category Theory Seminar, 1972/73, volume 420 of Lecture Notes in Mathematics, pages 257–280. Springer-Verlag, New York, 1974.Google Scholar
  19. [19]
    J. Launchbury and S. Peyton Jones. State in Haskell. Lisp and Symbolic Computation, 8 (4): 293–341, December 1995.CrossRefGoogle Scholar
  20. [20]
    S. Mac Lane. Categories for the Working Mathematician. Springer-Verlag, New York, 1971.MATHCrossRefGoogle Scholar
  21. [21]
    M. Odersky, D. Rabin, and P. Hudak. Call by name, assignment, and the lambda calculus. In POPL [29], pages 43–56.Google Scholar
  22. [22]
    P. W. O’Hearn. The Semantics of Non-Interference: A Natural Approach. Ph.D. thesis, Queen’s University, Kingston, Canada, 1990.Google Scholar
  23. [23]
    P. W. O’Hearn. Linear logic and interference control. In D. H. Pitt et al., editors, Category Theory and Computer Science, volume 530 of Lecture Notes in Computer Science, pages 74–93, Paris, France, September 1991. Springer-Verlag, Berlin.CrossRefGoogle Scholar
  24. [24]
    P. W. O’Heam. A model for syntactic control of interference. Mathematical Structures in Computer Science, 3 (4): 435–465, 1993.MathSciNetCrossRefGoogle Scholar
  25. [25]
    P. W. O’Hearn and R. D. Tennent. Semantical analysis of specification logic, 2. Information and Computation,107(1):25–57, 1993. See Chapter 14.Google Scholar
  26. [26]
    P. W. O’Hearn and R. D. Tennent. Parametricity and local variables. J. ACM,42(3):658–709, May 1995. See Chapter 16.Google Scholar
  27. [27]
    F. J. O1es. A Category-Theoretic Approach to the Semantics of Programming Languages. Ph.D. thesis, Syracuse University, Syracuse, N.Y., 1982. See Chapter 11.Google Scholar
  28. [28]
    S. Peyton-Jones and P. Wadler. Imperative functional programming. In POPL [29], pages 71–84.Google Scholar
  29. [29]
    Conference Record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages,Charleston, South Carolina, 1993. ACM, New York.Google Scholar
  30. [30]
    A. J. Power. Why tricategories? Information and Computation, 120 (2): 251–262, 1995.MathSciNetMATHCrossRefGoogle Scholar
  31. [31]
    U. S. Reddy. Passivity and independence. In Proceedings, Ninth Annual IEEE Symposium on Logic in Computer Science,pages 342–352, Paris, France, 1994 IFFF Computer Society Press, Los Alamitos, California.Google Scholar
  32. [32]
    U. S. Reddy. Global state considered unnecessary: Introduction to object-based semantics. LISP and Symbolic Computation,9(1):7–76, 1996. See Chapter 19.Google Scholar
  33. [33]
    J. C. Reynolds. Syntactic control of interference. In Conference Record of the Fifth Annual ACM Symposium on Principles of Programming Languages,pages 39–46, Tucson, Arizona, January 1978. ACM, New York. See Chapter 10.Google Scholar
  34. [34]
    J. C. Reynolds. The Craft of Programming. Prentice-Hall International, London, 1981.MATHGoogle Scholar
  35. [35]
    J. C. Reynolds. The essence of Algol. In J. W. de Bakker and J. C. van Vliet, editors, Algorithmic Languages, pages 345–372, Amsterdam, October 1981. North-Holland, Amsterdam. See Chapter 3.Google Scholar
  36. [36]
    J. C. Reynolds. Idealized Algol and its specification logic. In D. Néel, editor, Tools and Notions for Program Construction, pages 121–161, Nice, France, December 1981. Cambridge University Press, Cambridge, 1982. See Chapter 6.Google Scholar
  37. [37]
    J. C. Reynolds. Syntactic control of interference, part 2. In G. Ausiello, M. DezaniCiancaglini, and S. Ronchi Della Rocca, editors, Automata, Languages and Programming, 16th International Colloquium, volume 372 of Lecture Notes in Computer Science, pages 704–722, Stresa, Italy, July 1989. Springer-Verlag, Berlin.Google Scholar
  38. [38]
    R. D. Tennent. Semantics of interference control. Theoretical Computer Science, 27: 297–310, 1983.MathSciNetMATHCrossRefGoogle Scholar
  39. [39]
    R. D. Tennent. Semantical analysis of specification logic. Information and Computation,85(2):135–162, 1990. See Chapter 13.Google Scholar
  40. [40]
    P. Wadler. A syntax for linear logic. In S. Brookes et al., editors, Mathematical Foundations of Programming Semantics, volume 802 of Lecture Notes in Computer Science, pages 513–529, New Orleans, 1993. Springer-Verlag, Berlin.Google Scholar
  41. [41]
    N. Wirth. On the design of programming languages. In J. L. Rosenfeld, editor, Proceedings Ifip Congress 74, pages 386–393, Stockholm, 1974. North-Holland, Amsterdam.Google Scholar

Copyright information

© Springer Science+Business Media New York 1997

Authors and Affiliations

  • Peter W. O’Hearn
  • A. John Power
  • Makoto Takeyama
  • Robert D. Tennent

There are no affiliations available

Personalised recommendations