Syntactic Control of Interference
In programming languages which permit both assignment and procedures, distinct identifiers can represent data structures which share storage or procedures with interfering side effects. In addition to being a direct source of programming errors, this phenomenon, which we call interference, can impact type structure and parallelism. We show how to eliminate these difficulties by imposing syntactic restrictions, without prohibiting the kind of constructive interference which occurs with higher-order procedures or Simula classes. The basic idea is to prohibit interference between identifiers, but to permit interference among components of collections named by single identifiers.
KeywordsReduction Rule Program Type Class Element Type Integer Passive Procedure
Unable to display preview. Download preview PDF.
- van Wijngaarden, A. (ed.), Mailloux, B. J., Peck, J. E. L., and Koster, C. H. A. Report on the Algorithmic Language ALGOL 68. MR 101, Mathematisch Centrum, Amsterdam, February 1969.Google Scholar
- Hoare, C. A. R. Towards a theory of parallel programming. In Operating Systems Techniques (eds. C. A. R. Hoare and R. N. Perrott), Academic Press, New York, 1972, pp. 61–71.Google Scholar
- Hoare, C. A. R. Monitors: an operating system structuring concept. Communications of the ACM 17 (October 1974), pp. 549–557.Google Scholar
- Brinch Hansen, P. Structured multiprogramming. Communications of the ACM 15 (July 1972), pp. 574–577.Google Scholar
- Hoare, C. A. R. Procedures and parameters: an axiomatic approach. In Symposium on the Semantics of Algorithmic Languages (ed. E. Engeler). Springer, Berlin- Heidelberg-New York, 1971, pp. 102–116.Google Scholar
- Popek, G. J., Horning, J. J., Lampson, B. W., Mitchell, J. G., and London, R. L. Notes on the design of EUCLID. In Proceedings of an ACM Conference on Language Design for Reliable Software, SIGPLAN Notices 12, no. 3 (March 1977), pp. 11–18.Google Scholar
- Dahl, O.–J. and Hoare, C. A. R. Hierarchical program structures. In Structured Programming (O.-J. Dahl, E. W. Dijkstra, and C. A. R. Hoare), Academic Press, New York 1972, pp. 175–200.Google Scholar
- Landin, P. J. A correspondence between ALGOL 60 and Church’s lambda notation. Communications of the ACM 8 (February and March 1965), pp. 89–101 and 158–165.Google Scholar
- Henderson, P., and Morris, Jr., J. H. A lazy evaluator. In Conference Record of the Third Annual ACM Symposium on Principles of Programming Languages, Atlanta, Georgia, January 1976. ACM, New York, 1976, pp. 95–103.Google Scholar
- Friedman, D. P., and Wise, D. S. CONS should not evaluate its arguments. In Third Int’l Colloquium on Automata, Languages, and Programming (eds. S. Michaelson and R. Milner), Edinburgh, Scotland, July 1976. Edinburgh University Press, Edinburgh, 1976, pp. 257–284.Google Scholar
- Reynolds, J. C. User-defined types and procedural data structures as complementary approaches to data abstraction. In New Directions in Algorithmic Languages 1975 (ed. S. A. Schuman). INRIA, Rocquencourt, France, 1975, pp. 157–168.Google Scholar