Advertisement

Formal Semantics of ALGOL 60: Four Descriptions in their Historical Context

  • Troy K. AstarteEmail author
  • Cliff B. Jones
Chapter
Part of the Philosophical Studies Series book series (PSSP, volume 133)

Abstract

The programming language ALGOL 60 has been used to illustrate several different styles of formal semantic description. This paper identifies the main challenges in providing formal semantics for imperative programming languages and reviews the responses to these challenges in four relatively complete formal descriptions of ALGOL 60. The aim is to identify the key concepts rather than become distracted by the minutiae of notational conventions adopted by their authors. This paper also explores the historical reasons for the development of these descriptions in particular, and gives some general historical background of the groups involved (the IBM laboratories in Vienna and Hursley, and Oxford’s Programming Research Group).

Keywords

Programming languages Semantic description Operational semantics Denotational semantics 

Notes

Acknowledgements

The authors have benefited from detailed discussions with Peter Mosses, David Beech, Erich Neuhold, Kurt Walk, Gerhard Chroust, John Tucker and Joe Stoy; they are also grateful to Martin Campbell-Kelly for detailed comments on an early draft of the precursor technical report (Jones and Astarte 2016). An anonymous referee provided useful comments and Mark Priestly wrote a detailed and constructive review that has prompted significant changes to our initial submission.

Astarte would particularly like to thank the audience of the History and Philosophy of Programming 3 symposium in Paris in June 2016 for their useful questions and feedback after presentation of this work.

Jones began the detailed analysis of the ALGOL descriptions whilst collaborating with Peter Mosses on his PLanCompS project.

Thanks are also due to the Bodleian Library in Oxford for their archiving and curating of the Strachey papers, and to Juliane Mikoletzky at the Technical University of Vienna for information concerning the Zemanek Nachlass.

Financial support from EPSRC, who are both providing the PhD funding for Astarte and whose ‘Strata’ Platform Grant is funding travel expenses for both authors, is gratefully acknowledged.

References

  1. Alber, K., and P. Oliva. 1968. Translation of PL/I into abstract syntax. Technical Report 25.086, IBM Laboratory Vienna, ULD-IIIvII, June 1968.Google Scholar
  2. Alber, K., P. Oliva, and G. Urschler. 1968. Concrete syntax of PL/I. Technical Report 25.084, IBM Laboratory Vienna, ULD-IIIvII, June 1968.Google Scholar
  3. Alber, K., H. Goldmann, P.E. Lauer, P. Lucas, P. Oliva, H. Stigleitner, K. Walk, and G. Zeisel. 1969. Informal introduction to the abstract syntax and interpretation of PL/I. Technical Report 25.099, IBM Laboratory Vienna, ULD-IIIvIII, June 1969.Google Scholar
  4. Allen, C.D., D. Beech, J.E. Nicholls, and R. Rowe. 1966. An abstract interpreter of PL/I. Technical Report TN 3004, IBM Laboratory Hursley, ULD-II, Nov 1966.Google Scholar
  5. Allen, C.D., D.N. Chapman, and C.B. Jones. 1972. A formal definition of ALGOL 60. Technical Report 12.105, IBM Laboratory Hursley, Aug 1972. http://homepages.cs.ncl.ac.uk/cliff.jones/ftp-stuff/TR12.105.pdf
  6. Andrews, D., and W. Henhapl. 1982. Pascal. In Bjørner and Jones ( 1982 ), chapter 6, pages 175–252. http://homepages.cs.ncl.ac.uk/cliff.jones/ftp-stuff/BjornerJones1982/Chapter-7.pdf.
  7. Andrews, D., A. Garg, S. Lau, and J. Pitchers. 1988. The formal definition of Modula-2 and its associated interpreter. In VDM ’88 VDM—the way ahead, vol. 328, ed. R.E. Bloomfield, L.S. Marshall, and R.B. Jones. Lecture notes in computer science, 167–177. Berlin/Heidelberg: Springer.Google Scholar
  8. ANSI. 1976. Programming language PL/I. Technical Report X3.53-1976, American National Standard.Google Scholar
  9. Arbab, B., and D.M. Berry. 1987. Operational and denotational semantics of Prolog. The Journal of Logic Programming 4(4): 309–329.Google Scholar
  10. Backus, J.W. 1959. The syntax and semantics of the proposed international algebraic language of the Zurich ACM-GAMM conference. In Proceedings of the international conference on information processing, 125–132. Paris: UNESCO.Google Scholar
  11. Backus, J.W., F.L. Bauer, J. Green, C. Katz, J. McCarthy, P. Naur, A.J. Perlis, H. Rutishauser, K. Samelson, B. Vauquois. 1960. Report on the algorithmic language ALGOL 60. Numerische Mathematik 2(1): 106–136.Google Scholar
  12. Backus, J.W., F.L. Bauer, J. Green, C. Katz, J. McCarthy, P. Naur, A.J. Perlis, H. Rutishauser, K. Samelson, B. Vauquois, J.H. Wegstein, A. van Wijngaarden, and M. Woodger. 1963. Revised report on the algorithm language ALGOL 60. Communications of the ACM 6(1): 1–17. http://homepages.cs.ncl.ac.uk/cliff.jones/publications/OCRd/BBG63.pdf Google Scholar
  13. de Bakker, J.W., and D. Scott. 1969. A theory of programs. Manuscript notes for IBM Seminar, Vienna, Aug 1969.Google Scholar
  14. Bandat, K. 1965. Tentative steps towards a formal description of PL/I. Technical Report 25.056, IBM Laboratory Vienna, July 1965.Google Scholar
  15. Bandat, K., E.F. Codd, R.A. Larner, P. Lucas, J.E. Nicholls, and K. Walk. 1965. Unambiguous definition of PL/I. IBM internal memo, Oct 1965. Technical University of Vienna NL. 14. 072/2 Zemanek. PL/I History Documents.Google Scholar
  16. Barron, D.W., J.N. Buxton, D.F. Hartley, and C. Strachey. 1963. The main features of CPL. Computer Journal 6: 134–143.Google Scholar
  17. Beech, D., J.E. Nicholls, and R. Rowe. 1966. A PL/I translator. Technical Report TN 3003, IBM Laboratory Hursley, ULD-II, Oct 1966a.Google Scholar
  18. Beech, D., R. Rowe, R.A. Larner, and J.E. Nicholls. 1966b. Concrete syntax of PL/I. Technical Report TN 3001, IBM Laboratory Hursley, ULD-II, Nov 1966.Google Scholar
  19. Beech, D., R. Rowe, R.A. Larner, and J.E. Nicholls. 1967. Abstract syntax of PL/I. Technical Report TN 3002, IBM Laboratory Hursley, ULD-II, May 1967.Google Scholar
  20. Bekič, H. 1964. Defining a language in its own terms. Technical Report 25.3.016, IBM Laboratory Vienna, Dec 1964.Google Scholar
  21. Bekič, H. 1971. Towards a mathematical theory of processes. Technical Report TR 25.125, IBM Laboratory Vienna, 1971.Google Scholar
  22. Bekič, H., and K. Walk. 1971. Formalization of storage properties. In Symposium on semantics of algorithmic languages, vol. 188, ed. E. Engeler. Lecture notes in mathematics, 28–61. Berlin: Springer.Google Scholar
  23. Bekič, H., D. Bjørner, W. Henhapl, C.B. Jones, and P. Lucas. 1974. A formal definition of a PL/I subset. Technical Report 25.139, IBM Laboratory Vienna, Dec 1974. http://homepages.cs.ncl.ac.uk/cliff.jones/ftp-stuff/TR25139/
  24. Bekič, H., H. Izbicki, C.B. Jones, and F. Weissenböck. 1975. Some experiments with using a formal language definition in compiler development. Technical Report LN 25.3.107, IBM Laboratory Vienna, Dec 1975.Google Scholar
  25. Bergin, T.J., and R.G. Gibson, ed. 1996. History of programming languages—II. New York: ACM Press.Google Scholar
  26. Beyer, K.W. 2009. Grace Hopper and the invention of the information age. Cambridge, Massachusetts: The MIT Press.Google Scholar
  27. Bjørner, D., and C.B. Jones, ed. 1978. The Vienna development method: The meta-language, vol. 61. LNCS. Berlin/Heidelberg: Springer.Google Scholar
  28. Bjørner, D., and C.B. Jones, ed. 1982. Formal specification and software development. Englewood Cliffs: Prentice Hall International. http://homepages.cs.ncl.ac.uk/cliff.jones/ftp-stuff/BjornerJones1982 Google Scholar
  29. Bjørner, D., and O.N. Oest. 1980. Towards a formal description of Ada, vol. 98. LNCS. Berlin/Heidelberg: Springer.Google Scholar
  30. Burstall, R.M. 1970. Formal description of program structure and semantics in first-order logic. Machine Intelligence 5: 79–98.Google Scholar
  31. Campbell-Kelly, M. 1985. Christopher Strachey, 1916–1975: A biographical note. Annals of the History of Computing 7: 19–42.Google Scholar
  32. Daylight, E.G. 2012. The dawn of software engineering: From Turing to Dijkstra. Belgium: Lonely Scholar. ISBN: 9491386026, 9789491386022.Google Scholar
  33. Dijkstra, E.W. 1968. Letters to the editor: Go to statement considered harmful. Communications of the ACM 11(3): 147–148.Google Scholar
  34. Duncan, F.G. 1963. ECMA subset of ALGOL 60. Communications of the ACM 6(10): 595–599.Google Scholar
  35. Duncan, F.G. 1966. Our ultimate metalanguage: An afterdinner talk. In Formal language description languages for computer programming, ed. Thomas B Steel, 295–295. Amsterdam: North-Holland.Google Scholar
  36. de Vere Roberts, M. 1965. Radiogram to Kurt Bandat. IBM internal memo, Sept 1965. Technical University of Vienna NL. 14. 072/2 Zemanek. PL/I History Documents.Google Scholar
  37. ECMA. 1965. Standard ECMA-2 for a subset of ALGOL. Technical report, European Computer Manufacturers’ Association, 1965.Google Scholar
  38. Endres, A. 2013. Early language and compiler developments at IBM Europe: A personal retrospection. Annals of the History of Computing, IEEE 35(4): 18–30.Google Scholar
  39. Fleck, M. 1969. Formal definition of the PL/I compile time facilities. Technical Report 25.095, IBM Laboratory Vienna, ULD-IIIvIII, June 1969.Google Scholar
  40. Fleck, M., and E. Neuhold. 1968. Formal definition of the PL/I compile time facilities. Technical Report 25.080, IBM Laboratory Vienna, ULD-IIIvII, June 1968.Google Scholar
  41. Floyd, R.W. 1962. On the nonexistence of a phrase structure grammar for ALGOL 60. Communications of the ACM 5(9): 483–484.Google Scholar
  42. Floyd, R.W. 1967. Assigning meanings to programs. In Proceedings of the symposium in applied mathematics, vol.19: Mathematical aspects of computer science, 19–32. Providence: American Mathematical Society.Google Scholar
  43. Fröschl, K.A., G. Chroust, and J. Stockinger, eds. 2015. In memoriam Heinz Zemanek, volume Band-311. OCG, 2015.Google Scholar
  44. Hansal, A. 1976. A formal definition of a relational data base system. Technical Report UKSC 0080, IBM UK Scientific Centre, Peterlee, Co. Durham, June 1976.Google Scholar
  45. Henhapl, W., and C.B. Jones. 1970a. The block concept and some possible implementations, with proofs of equivalence. Technical Report 25.104, IBM Laboratory Vienna, Apr 1970.Google Scholar
  46. Henhapl, W., and C.B. Jones. 1970b. On the interpretation of GOTO statements in the ULD. Technical Report 25.3.065, IBM Laboratory Vienna, Mar 1970.Google Scholar
  47. Henhapl, W., and C.B. Jones. 1971. A run-time mechanism for referencing variables. Information Processing Letters 1(1): 14–16.Google Scholar
  48. Henhapl, W., and C.B. Jones. 1978. A formal definition of ALGOL 60 as described in the 1975 modified report. In Bjørner and Jones, 1978, 305–336. http://homepages.cs.ncl.ac.uk/cliff.jones/publications/OCRd/HJ82.pdf Google Scholar
  49. Henhapl, W., and C.B. Jones. 1982. ALGOL 60. In Bjørner and Jones, 1982, chapter 6, 141–174. http://homepages.cs.ncl.ac.uk/cliff.jones/ftp-stuff/BjornerJones1982
  50. Hoare, C.A.R. 1969. An axiomatic basis for computer programming. Communications of the ACM 12(10): 576–580.Google Scholar
  51. Hoare, C.A.R. 1972. Proof of correctness of data representations. Acta Informatica 1: 271–281.Google Scholar
  52. Hoare, C.A.R. 1973. Hints on programming language design. Technical report, Stanford University, Stanford, 1973.Google Scholar
  53. Hoare, C.A.R., and N. Wirth. 1973. An axiomatic definition of the programming language Pascal. Acta Informatica 2(4): 335–355.Google Scholar
  54. IFIP. 1964. Working Conference Vienna 1964. Formal Language Description Languages. Program. Christopher Strachey Collection, Bodleian Library, Oxford. Box 287, E.39, Feb 1964.Google Scholar
  55. Izbicki, H. 1975. On a consistency proof of a chapter of a formal definition of a PL/I subset. Technical Report 25.142, IBM Laboratory Vienna, Feb 1975.Google Scholar
  56. Jones, C.B. 1969. A comparison of two approaches to language definition as bases for the construction of proofs. Technical Report 25.3.050, IBM Laboratory Vienna, Feb 1969.Google Scholar
  57. Jones, C.B. 1970. A technique for showing that two functions preserve a relation between their domains. Technical Report LR 25.3.067, IBM Laboratory Vienna, Apr 1970.Google Scholar
  58. Jones, C.B. 1976. Formal definition in compiler development. Technical Report 25.145, IBM Laboratory Vienna, Feb 1976.Google Scholar
  59. Jones, C.B. 1978. Denotational semantics of goto: An exit formulation and its relation to continuations. In Bjørner and Jones, 1978, 278–304.Google Scholar
  60. Jones, C.B. 1982. More on exception mechanisms. In Bjørner and Jones, 1982, chapter 5, 125–140. http://homepages.cs.ncl.ac.uk/cliff.jones/ftp-stuff/BjornerJones1982
  61. Jones, C.B. 1999. Scientific decisions which characterize VDM. In FM’99—formal methods, vol. 1708 LNCS, 28–47. Berlin/Heidelberg: Springer.Google Scholar
  62. Jones, C.B. 2003. The early search for tractable ways of reasoning about programs. IEEE, Annals of the History of Computing 25(2): 26–49.Google Scholar
  63. Jones, C.B., and T.K. Astarte. 2016. An Exegesis of Four Formal Descriptions of ALGOL 60. Technical Report 1498, Newcastle University School of Computer Science, Sept 2016.Google Scholar
  64. Jones, C.B., and P. Lucas. 1971. Proving correctness of implementation techniques. In A Symposium on algorithmic languages, ed. E. Engeler, vol. 188. Lecture notes in mathematics, 178–211. Berlin/Heidelberg: Springer.Google Scholar
  65. Knuth, D.E. 1964. Backus normal form vs. backus naur form. Communications of the ACM 7(12): 735–736.Google Scholar
  66. Knuth, D.E., and R.W. Floyd. 1971. Notes on avoiding “go to” statements. Information Processing Letters 1(1): 23–31.Google Scholar
  67. Knuth, D.E., and L.T. Pardo. 1976. The early development of programming languages. Technical Report STAN-CS-76-562, Stanford University.Google Scholar
  68. Landin, P.J. 1964. The mechanical evaluation of expressions. The Computer Journal 6(4): 308–320.Google Scholar
  69. Landin, P.J. 1965a. A correspondence between ALGOL 60 and Church’s lambda-notation: Part I. Communications of the ACM 8(2): 89–101.Google Scholar
  70. Landin, P.J. 1965b. A correspondence between ALGOL 60 and Church’s lambda-notation: Part II. Communications of the ACM 8(3): 158–167.Google Scholar
  71. Landin, P.J. 1966. A formal description of ALGOL 60. In Formal language description languages for computer programming, ed. Thomas B Steel, 266–290. Amsterdam: North Holland.Google Scholar
  72. Larner, R.A., and J.E. Nicholls. 1965. Plan for development of formal definition of PL/I. IBM internal memo, Sept 1965. Technical University of Vienna NL. 14. 072/2 Zemanek. PL/I History Documents.Google Scholar
  73. Lauer, P.E. 1967. The formal explicates of the notion of algorithm: An introduction to the theory of computability with special emphasis on the various formalisms underlying the alternate explicates. Technical Report 25.072, IBM Laboratory Vienna.Google Scholar
  74. Lauer, P.E. 1968a. Formal definition of ALGOL 60. Technical Report 25.088, IBM Laboratory Vienna, Dec 1968. http://homepages.cs.ncl.ac.uk/cliff.jones/publications/OCRd/Lau68.pdf
  75. Lauer, P.E. 1968b. An introduction to H. Thiele’s notions of algorithm, algorithmic process, and graph schemata calculus. Technical Report TR 25.079, IBM Laboratory Vienna, Jan 1968.Google Scholar
  76. Lauer, P.E. 1971. Consistent Formal Theories of the Semantics of Programming Languages. Ph.D. thesis, Queen’s University of Belfast, 1971. Printed as TR 25.121, IBM Laboratory Vienna.Google Scholar
  77. Lee, J.A.N. 1972. The formal definition of the BASIC language. The Computer Journal 15(1): 37–41.Google Scholar
  78. Lee, J.A.N., and W. Delmore. 1969. The Vienna definition language, a generalization of instruction definitions. In SIGPLAN Symposium on Programming Language Definitions, San Francisco.Google Scholar
  79. Lucas, P. 1968. Two constructive realisations of the block concept and their equivalence. Technical Report 25.085, IBM Laboratory Vienna, June 1968.Google Scholar
  80. Lucas, P. 1981. Formal semantics of programming languages: VDL. IBM Journal of Research and Development 25(5): 549–561.Google Scholar
  81. Lucas, P., and K. Walk. 1969. On the formal description of PL/I. Annual Review in Automatic Programming 6: 105–182.Google Scholar
  82. Lucas, P., K. Alber, K. Bandat, H. Bekič, P. Oliva, K. Walk, and G. Zeisel. 1968a. Informal introduction to the abstract syntax and interpretation of PL/I. Technical Report 25.083, IBM Laboratory Vienna, ULD-IIIvII, June 1968.Google Scholar
  83. Lucas, P., P.E. Lauer, and H. Stigleitner. 1968b. Method and notation for the formal definition of programming languages. Technical Report 25.087, IBM Laboratory Vienna, ULD-IIIvII, June 1968. http://homepages.cs.ncl.ac.uk/cliff.jones/publications/VDL-TRs/TR25.087.pdf
  84. McCarthy, J. 1962. Towards a mathematical science of computation. In IFIP Congress, 21–28.Google Scholar
  85. McCarthy, J. 1966. A formal description of a subset of ALGOL. In Formal language description languages for computer programming, ed. Thomas B Steel, 1–12. Amsterdam: North-Holland.Google Scholar
  86. McCarthy, J. 1981. History of LISP. In History of programming languages, ed. R.L. Wexelblat, chapter 4, 173–183. New York: Academic.Google Scholar
  87. McCarthy, J., and J. Painter. 1966. Correctness of a compiler for arithmetic expressions. Technical Report CS38, Computer Science Department, Stanford University, Apr 1966. See also pages 33–41 Proceedings of the symposium in applied mathematics, vol. 19: Mathematical aspects of computer science. Providence: American Mathematical Society.Google Scholar
  88. Milne, R.E. 2016. Semantic relationships: Reducing the separation between practice and theory. Unpublished, Nov 2016. Talk given at Strachey 100 centenary conference.Google Scholar
  89. Milne, R.E., and C. Strachey. 1974. A theory of programming language semantics. Privately circulated, 1973. An essay submitted for the Adams Prize 1973–1974.Google Scholar
  90. Milne, R.E., and C. Strachey. 1976a. A theory of programming language semantics. London: Chapman and Hall. Part A: Indices and Appendices, Fundamental Concepts and Mathematical Foundations.Google Scholar
  91. Milne, R.E., and C. Strachey. 1976b. A theory of programming language semantics. London: Chapman and Hall. Part B: Standard Semantics, Store Semantics and Stack Semantics.Google Scholar
  92. Milner, R. 1971. An algebraic definition of simulation between programs. Technical Report CS-205, Computer Science Dept, Stanford University, Feb 1971.Google Scholar
  93. Moggi, E. 1989. An abstract view of programming languages. Technical Report ECS-LFCS-90-113, Edinburgh University Laboratory for the Foundation of Computer Science.Google Scholar
  94. de Morgan, R.M., I.D. Hill, and B.A. Wichmann. 1976a. Modified report on the algorithmic language ALGOL 60. The Computer Journal 19(4): 364–379.Google Scholar
  95. de Morgan, R.M., I.D. Hill, and B.A. Wichmann. 1976b. A supplement to the ALGOL 60 revised report. The Computer Journal 19(3): 276–288.Google Scholar
  96. Mosses, P.D. 1974. The mathematical semantics of ALGOL 60. Technical Monograph PRG-12, Oxford University Computing Laboratory, Programming Research Group, Ja 1974. http://homepages.cs.ncl.ac.uk/cliff.jones/publications/OCRd/Mosses74.pdf
  97. Mosses, P.D. 1975a. The semantics of semantic equations. In Mathematical foundations of computer science: 3rd symposium at Jadwisin near Warsaw, 17–22 June 1974, ed. A. Blikle, 409–422. Berlin/Heidelberg. Springer.Google Scholar
  98. Mosses, P.D. 1975b. Mathematical semantics and compiler generation. Ph.D. thesis, University of Oxford, Apr 1975.Google Scholar
  99. Mosses, P.D. 2004. Modular structural operational semantics. The Journal of Logic and Algebraic Programming 60: 195–228.Google Scholar
  100. Mosses, P.D. 2005. Action semantics, vol. 26. Cambridge/New York: Cambridge University Press.Google Scholar
  101. Mosses, P.D. 2011. VDM semantics of programming languages: Combinators and monads. Formal Aspects of Computing 23(2): 221–238.Google Scholar
  102. Mosses, P.D., and F. Vesely. 2014. Funkons: Component-based semantics in K. In Rewriting logic and its applications, ed. S. Escobar, 213–229. Cham: Springer.Google Scholar
  103. Naur, P. 1981a. The European side of the last phase of the development of ALGOL 60. In History of programming languages, ed. R.L. Wexelblat, chapter 3, 92–137. New York: Academic.Google Scholar
  104. Naur, P. 1981b. Formalization in program development. BIT Numerical Mathematics 22(4): 437–453.Google Scholar
  105. Naur, P., and B. Randell. 1969. Software Engineering: Report of a Conference Sponsored by the NATO Science Committee, Garmisch, Germany, 7–11 Oct 1968, Brussels, Scientific Affairs Division, NATO.Google Scholar
  106. Ollongren, A. 1971. A theory for the objects of the Vienna definition language. Technical Report 25.123, IBM Laboratory Vienna, Sept 1971.Google Scholar
  107. Pel´aez Valdez, M.E. 1988. A gift from Pandora’s box: The software crisis. Ph.D. thesis, University of Edinburgh, 1988.Google Scholar
  108. Penrose, R. 2000. Reminiscences of Christopher Strachey. Higher-Order and Symbolic Computation 13(1): 83–84.Google Scholar
  109. Perlis, A.J. 1981. The American side of the development of ALGOL. In History of programming languages, ed. R.L. Wexelblat, chapter 3, 75–91. New York: Academic.Google Scholar
  110. PL/I Definition Group of the Vienna Laboratory. 1966. Formal definition of PL/I (Universal Language Document No. 3). Technical Report 25.071, IBM Laboratory Vienna, ULD-IIIvI, Dec 1966.Google Scholar
  111. Plotkin, G.D. 1976. A powerdomain construction. SIAM Journal on Computing 5: 452–487.Google Scholar
  112. Plotkin, G.D. 1981. A structural approach to operational semantics. Technical report, Aarhus University.Google Scholar
  113. Plotkin, G.D. 2004a. A structural approach to operational semantics. Journal of Logic and Algebraic Programming 60–61: 17–139.Google Scholar
  114. Plotkin, G.D. 2004b. The origins of structural operational semantics. Journal of Logic and Algebraic Programming 60–61: 3–15.Google Scholar
  115. Priestley, M. 2011. A science of operations: Machines, logic and the invention of programming. London: Springer Science & Business Media.Google Scholar
  116. Radin, G. 1981. The early history and characteristics of PL/I. In History of programming languages, ed. R.L. Wexelblat, 551–589. New York: Academic.Google Scholar
  117. Radin, G., and H.P. Rogoway. 1965. NPL: Highlights of a new programming language. Communications of the ACM 8(1): 9–17.Google Scholar
  118. Radin, G., and P. Schneider 1976. An architecture for an extended machine with protected addressing. Technical Report 00.2757, IBM Poughkeepsie Lab, May 1976.Google Scholar
  119. Randell, B. 2013. The origins of digital computers: Selected papers. Berlin/Heidelberg: Springer.Google Scholar
  120. Reynolds, J.C. 1993. The discoveries of continuations. Lisp and Symbolic Computation 6(3–4): 233–247.Google Scholar
  121. Schwarzenberger, F., and H. Zemanek. 1966. Editing algorithms for texts over formal grammars. Technical Report 25.066, IBM Laboratory Vienna, July 1966.Google Scholar
  122. Scott, D. 1969. A type-theoretical alternative to CUCH, ISWIM, OWHY. Typed script—Oxford, Oct 1969.Google Scholar
  123. Scott, D. 1970. The lattice of flow diagrams. Technical Report PRG-3, Oxford University Computing Laboratory, Programming Research Group, Nov 1970.Google Scholar
  124. Scott, D. 1971a. Continuous lattices. Technical Report PRG-7, Oxford University Computing Laboratory, Programming Research Group, Aug 1971.Google Scholar
  125. Scott, D. 1971b. The lattice of flow diagrams. In Symposium on Semantics of Algorithmic Languages, 311–366. Berlin: Springer.Google Scholar
  126. Scott, D. 1973. Models for various type-free calculi. In Studies in logic and foundations of mathematics vol. 74 (Proceedings of the 4th international congress for logic, methodology and philosophy of science, Bucharest, 1971), ed. P. Suppes, L. Henkin, A. Joja, and G. Moisil, 158–187. Amsterdam: North Holland Publishing Company.Google Scholar
  127. Scott, D. 2000. Some reflections on Strachey and his work. Higher-Order and Symbolic Computation 13(1): 103–114.Google Scholar
  128. Scott, D. 2016. Greetings to the participants at “Strachey 100”. A talk read out at the Strachey 100 centenary conference, Nov 2016.Google Scholar
  129. Scott, D., and C. Strachey. 1971. Toward a mathematical semantics for computer languages. Technical Monograph PRG-6, Oxford University Computing Laboratory, Programming Research Group.Google Scholar
  130. Scott, D., and T. Traxler. 2015. Logic Lounge with Dana Scott. Online, June 2015. https://www.youtube.com/watch?v=nhc94A829qI Video interview.
  131. Shustek, L. 2015. An interview with Fred Brooks. Communications of the ACM 58(11): 36–40.Google Scholar
  132. Steel, T.B. 1966. Formal language description languages for computer programming. New York: North-Holland Publishing Company.Google Scholar
  133. Stoy, J.E. 1977. Denotational semantics: The Scott-Strachey approach to programming language theory. Cambridge: MIT Press.Google Scholar
  134. Stoy, J.E. 1980. Foundations of denotational semantics. In Proceedings of the abstract software specifications: 1979 copenhagen winter school Jan 22–Feb 2 1979, ed. D. Bjørner, 43–99. Berlin/Heidelberg: Springer.Google Scholar
  135. Strachey, C. 1966a. System analysis and programming. Scientific American 215: 112–124.Google Scholar
  136. Strachey, C. 1966b. Towards a formal semantics. In Formal language description languages for computer programming, ed. Thomas B Steel. Amsterdam: North Holland.Google Scholar
  137. Strachey, C. 1970. Jumping into and out of expressions, Aug 1970. Unpublished note. Strachey Papers, Bodleian Library, Oxford. Folder C229.Google Scholar
  138. Strachey, C. 1971a. Curriculum vitae, Dec 1971. Written by Strachey to send to the times newspaper in case of the need for obitual information. Strachey Papers, Bodleian Library, Oxford. Folder A3.Google Scholar
  139. Strachey, C. 1971b. Letter to Lord Halsbury, Oct 1971. Strachey Papers, Bodleian Library, Oxford. Folder A3.Google Scholar
  140. Strachey, C. 1973. The varieties of programming language. Technical Monograph PRG-10, Oxford University Computing Lab, Mar 1973.Google Scholar
  141. Strachey, C., and C.P. Wadsworth. 1974. Continuations—a mathematical semantics for handling jumps. Monograph PRG-11, Oxford University Computing Laboratory, Programming Research Group, Jan 1974.Google Scholar
  142. Strachey, C., and M.V. Wilkes. 1961. Some proposals for improving the efficiency of ALGOL 60. Communications of the ACM 4(11): 488–491.Google Scholar
  143. Tennent, R.D. 1976. The denotational semantics of programming languages. Communications of the ACM 19: 437–453.Google Scholar
  144. Urschler, G. 1969a. Concrete syntax of PL/I. Technical Report 25.096, IBM Laboratory Vienna, ULD-IIIvIII, June 1969.Google Scholar
  145. Urschler, G. 1969b. Translation of PL/I into abstract syntax. Technical Report 25.097, IBM Laboratory Vienna, ULD-IIIvIII, June 1969.Google Scholar
  146. Utman, R.E. 1963. Minutes of the 3rd meeting of IFIP TC2. Online, Sept 1963. http://ershov-arc.iis.nsk.su/archive/eaindex.asp?did=41825. Chaired by H. Zemanek. Archived by Andrei Ershov.
  147. Utman, R.E. 1964. Minutes of the 4th meeting of IFIP TC2. Online, May 1964. http://ershov-arc.iis.nsk.su/archive/eaindex.asp?did=41826. Chaired by H. Zemanek. Archived by Andrei Ershov.
  148. van den Hove, G. 2014. On the origin of recursive procedures. The Computer Journal 58(11): 2892–2899.Google Scholar
  149. Wadsworth, C.P. 1971. Semantics and pragmatics of the Lambda-Calculus. Ph.D. thesis, Programming Research Group, University of Oxford, Sept 1971.Google Scholar
  150. Walk, K., K. Alber, K. Bandat, H. Bekič, G. Chroust, V. Kudielka, P. Oliva, and G. Zeisel. 1968. Abstract syntax and interpretation of PL/I. Technical Report 25.082, IBM Laboratory Vienna, ULD-IIIvII, June 1968.Google Scholar
  151. Walk, K., K. Alber, M. Fleck, H. Goldmann, P.E.Lauer, E. Moser, P. Oliva, H. Stigleitner, and G. Zeisel. 1969. Abstract syntax and interpretation of PL/I. Technical Report 25.098, IBM Laboratory Vienna, ULD-IIIvIII, Apr 1969.Google Scholar
  152. Wegner, P. 1972. The Vienna definition language. ACM Computing Surveys (CSUR) 4(1): 5–63.Google Scholar
  153. Weissenböck, F. 1975. A formal interface specification. Technical Report 25.141, IBM Laboratory Vienna, Feb 1975.Google Scholar
  154. Welsh, A. 1982. The specification, design and implementation of NDB. Master’s thesis, Department of Computer Science, University of Manchester, Oct 1982. Also published as technical report UMCS-82-10-1.Google Scholar
  155. Welsh, A. 1984. A database programming language: definition, implementation and correctness proofs. PhD thesis, Department of Computer Science, University of Manchester, Oct 1984. Also published as technical report UMCS-84-10-1.Google Scholar
  156. Wexelblat, R.L., ed. 1981. History of programming languages. New York: Academic.Google Scholar
  157. Wilkinson, J.H. 1972. Letter to Christopher Strachey, Dec 1972. Strachey Papers, Bodleian Library, Oxford. Folder A3.Google Scholar
  158. Wolczko, M.I. 1988. Semantics of object-oriented languages. Ph.D. thesis, Department of Computer Science, University of Manchester, Mar 1988. Also published as Technical Report UMCS-88-6-1.Google Scholar
  159. Zemanek, H. 1968. Abstrakte objekte. Elektron. Rechenanl. 5: 208–217.Google Scholar
  160. Zhang, Y., and B. Xu. 2004. A survey of semantic description frameworks for programming languages. ACM Sigplan Notices 39(3): 14–30.Google Scholar
  161. Zimmermann, K. 1969. Outline of a formal definition of FORTRAN. Technical Report 25.3.053, IBM Laboratory Vienna, 1969.Google Scholar

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  1. 1.Newcastle UniversityNewcastle upon TyneUK

Personalised recommendations