Abstract
In collaboration with his colleagues at Oxford, Christopher Strachey pioneered the analysis of programming languages in terms of semantic features. Three of Strachey's contributions—inductive definition of semantics, semantic-domain definitions, and calculi for semantic description—are presented, and their consequences on languages research are described. Strachey's impact, present and future, on the computer programming “mainstream” is also outlined.
Similar content being viewed by others
References
Abadi, M. and Cardelli, L. A Theory of Objects. Springer, Berlin, 1996.
Abadi, M. and Gordon, A. A calculus for cryptographic protocols: The SPi calculus. Information and Computation 148 (1999) 1-70.
Barron, D.W. An Introduction to the Study of Programming Languages. Cambridge Univ. Press, 1977.
Bjø rner, D. and Oest, O. Towards a Formal Description of Ada. Lecture Notes in Computer Science, Vol. 98. Springer Verlag, 1980.
Burstall, R., MacQueen, D., and Sanella, D. HOPE: An experimental applicative language. Technical Report CSR-62-80, Computer Science Dept., University of Edinburgh, 1981.
Cardelli, L. Abstractions for mobile computation. In Secure Internet Programming. Lecture Notes in Computer Science, Vol. 1603, J. Vitek and C. Jensen (Eds.). Springer Verlag, 1999, pp. 51-94.
Cardelli, L. and Wegner, P. On understanding types, data abstraction, and polymorphism. Computing Surveys 17(4) (1985) 471-522.
Cousot, P. and Cousot, R. Abstract interpretation: A unified lattice model for static analysis of programs. In Proc. 4th ACM Symp. on Principles of Programming Languages. ACM Press, 1977, pp. 238-252.
Cousot, P. and Cousot, R. Higher-order abstract interpretation. In Proc. IEEE Int'l. Conf. Programming Languages. IEEE Press, 1994.
Floyd, R.W. Assigning meanings to programs. Symposia in Applied Mathematics 19 (1967) 19-32.
Gamma, E. Helm, R., Johnson, R., and Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Reading, MA, 1994.
Garlan, D. and Shaw, M. An introduction to software architecture. In Advances in Software Engineering and Knowledge, V. Ambriola and G. Tortora (Eds.). World Scientific, 1993, pp. 1-39.
Gelernter, D. and Jagannathan, S. Programming Linguistics. MIT Press, Cambridge, MA, 1990.
Gordon, M.J.C. Towards a semantic theory of dynamic binding. Technical Report STAN-CS-75-507, Computer Science Dept., Stanford Univ., 1975.
Gosling, J., Joy, B., and Steele, G. The Java Language Specification. Addison Wesley, Reading, MA, 1996.
Gunter, C. Semantics of Programming Languages. MIT Press, Cambridge, MA, 1992.
Heintze, N. and Riecke, J. The SLam calculus: Programming with secrecy and integrity. In Proc. ACM Symp. on Principles of Programming Languages, 1998, pp. 365-377.
Hoare, C.A.R. An axiomatic basis for computer programming. Commun. ACM12 (1969) 576-580.
Hoare, C.A.R. Notes on data structuring. In Structured Programming, O.J. Dahl, E. Dijkstra, and C.A.R. Hoare (Eds.). Academic Press, 1972, pp. 83-174.
Hoare, C.A.R. and Wirth, N. An axiomatic definition of the programming language Pascal. Acta Informatica, 2 (1973) 335-355.
Jones, N. and Nielson, F. Abstract interpretation: A semantics-based tool for program analysis. In Handbook of Logic in Computer Science, Vol. 4, S. Abramsky, D. Gabbay, and T. Maibaum (Eds.). Oxford Univ. Press, 1995, pp. 527-636.
Kahn, G. Natural semantics. In Lecture Notes in Computer Science, Vol. 247. Springer, Berlin, 1987, pp. 22-39. Proc. STACS '87.
Knuth, D. On the translation of languages from left to right. Information and Control 8(6) (1965) 607-639.
Knuth, D. The semantics of context-free languages. Math. Systems Theory 2 (1971) 127-145. Corrigenda, Vol. 5, p. 95, 1971.
Landin, P.J. The next 700 programming languages. Communications of the ACM 9(3) (1966) 157-166.
Lloyd, J. Combining functional and logic programming languages. In Logic Programming: Proceedings of the 1994 Symposium, M. Bruynooghe (Ed.). MIT Press, 1994, pp. 43-57.
Milne, R. and Strachey, C. A Theory of Programming Language Semantics. Chapman and Hall, 1976.
Milner, R. Communication and Concurrency. Prentice-Hall, 1989.
Milner, R. and Tofte, M. Commentary on Standard ML. The MIT Press, 1991.
Milner, R., Tofte, M., and Harper, R. The Definition of Standard ML. The MIT Press, 1990.
Mitchell, J.C. Foundations for Programming Languages. The MIT Press, Cambridge, Massachusetts, 1996.
Mosses, P.D. Mathematical semantics of Algol60. Technical Report Technical Monograph PRG-12, Programming Research Group, University of Oxford, U.K., 1974.
Mosses, P.D. Action Semantics. Cambridge Tracts in Theoretical Computer Science 26. Cambridge University Press, 1992.
Mosses, P.D. and Watt, D.A. The use of action semantics. In Formal Description of Programming Concepts III, Proc. IFIP TC2 Working Conference, Gl. Avernæ s, 1986, M. Wirsing (Ed.). IFIP, North-Holland, 1987.
Muchnick, S. and Pleban, U. A semantic comparison of LISP and Scheme. In Conf. on LISP and Functional Programming. ACM, 1982, pp. 56-64.
Naur, P. Revised report on the algorithmic language Algol 60. Communications of the ACM 6(1) (1963) 1-17.
Nielson, F. A denotational framework for data flow analysis. Acta Informatica 18 (1982) 265-287.
Nielson, F., Nielson, H.R., and Hankin, C. Principles of Program Analysis. Springer Verlag, 1999.
Nordström, B., Petersson, K., and Smith, J. Programming in Martin-Löf's Type Theory. International Series on Monographs on Computer Science No. 7. Oxford University Press, 1990.
Plotkin, G.D. A structural approach to operational semantics. Technical Report FN-19, Computer Science Department, Aarhus University, Aarhus, Denmark, September 1981.
Reynolds, J. Types, abstraction, and parametric polymorphism. In Information Processing '83, R.E.A. Mason (Ed.). North-Holland, Amsterdam, 1983, pp. 513-523.
Reynolds, J.C. Notes on a lattice-theoretic approach to the theory of computation. Technical Report, Computer Science, Syracuse University, 1972.
Schmidt, D.A. Denotational Semantics: A Methodology for Language Development. Allyn and Bacon, Inc., 1986.
Schmidt, D.A. The Structure of Typed Programming Languages. MIT Press, 1994.
Scott, D.S. Outline of a mathematical theory of computation. Technical Report PRG-2, Prog. Research Group, Oxford University, 1971.
Scott, D.S. and Strachey, C. Toward a mathematical semantics for computer languages. In Proceedings of Symposium on Computers and Automata, pp. 19-46. Microwave Research Institute Symposia Series, Vol. 21, J. Fox (Ed.). Polytechnic Institute of Brooklyn, 1971.
Shaw, M. and Garlan, D. Software Architecture: Pespectives on an Emerging Discipline. Prentice Hall, 1996.
Strachey, C. The varieties of programming language. Technical Report PRG-10, Prog. Research Group, Oxford University, 1973.
Tennent, R.D. Mathematical semantics of SNOBOL4. In POPL'73, Conference Record of the 1st Annual ACM Symposium on Principles of Programming Languages, 1973, pp. 95-107.
Tennent, R.D. A denotational description of the programming language Pascal. Technical Report 77-47, Dept. of Computing and Information Sciences, Queen's University, Kingston, Ontario, Canada, 1977.
Tennent, R.D. Language design methods based on semantic principles. Acta Informatica 8 (1977) 97-112.
Tennent, R.D. Principles of Programming Languages. Prentice-Hall International, Englewood Cliffs, New Jersey, 1981.
Thompson, S. Haskell: The Craft of Functional Programming. Addison-Wesley, Reading, MA, 1999.
Turner, D. An overview of Miranda. ACM SIGPLAN Notices 21 (1986) 158-166.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Schmidt, D.A. Induction, Domains, Calculi: Strachey's Contributions to Programming-Language Engineering. Higher-Order and Symbolic Computation 13, 89–101 (2000). https://doi.org/10.1023/A:1010066127644
Issue Date:
DOI: https://doi.org/10.1023/A:1010066127644