Reflections on Programming Systems pp 83-152 | Cite as

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

## 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

- 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 - 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 - 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 - 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 - 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 - 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.
- 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 - ANSI. 1976. Programming language PL/I.
*Technical Report X3.53-1976*, American National Standard.Google Scholar - Arbab, B., and D.M. Berry. 1987. Operational and denotational semantics of Prolog.
*The Journal of Logic Programming*4(4): 309–329.Google Scholar - 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 - 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 - 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 - de Bakker, J.W., and D. Scott. 1969.
*A theory of programs*. Manuscript notes for IBM Seminar, Vienna, Aug 1969.Google Scholar - Bandat, K. 1965. Tentative steps towards a formal description of PL/I.
*Technical Report 25.056*, IBM Laboratory Vienna, July 1965.Google Scholar - 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 - 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 - 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 - 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 - 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 - Bekič, H. 1964. Defining a language in its own terms.
*Technical Report 25.3.016*, IBM Laboratory Vienna, Dec 1964.Google Scholar - Bekič, H. 1971. Towards a mathematical theory of processes.
*Technical Report TR 25.125*, IBM Laboratory Vienna, 1971.Google Scholar - 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 - 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/ - 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 - Bergin, T.J., and R.G. Gibson, ed. 1996.
*History of programming languages—II*. New York: ACM Press.Google Scholar - Beyer, K.W. 2009.
*Grace Hopper and the invention of the information age*. Cambridge, Massachusetts: The MIT Press.Google Scholar - Bjørner, D., and C.B. Jones, ed. 1978.
*The Vienna development method: The meta-language*, vol. 61. LNCS. Berlin/Heidelberg: Springer.Google Scholar - 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 - Bjørner, D., and O.N. Oest. 1980.
*Towards a formal description of Ada*, vol. 98. LNCS. Berlin/Heidelberg: Springer.Google Scholar - Burstall, R.M. 1970. Formal description of program structure and semantics in first-order logic.
*Machine Intelligence*5: 79–98.Google Scholar - Campbell-Kelly, M. 1985. Christopher Strachey, 1916–1975: A biographical note.
*Annals of the History of Computing*7: 19–42.Google Scholar - Daylight, E.G. 2012.
*The dawn of software engineering: From Turing to Dijkstra*. Belgium: Lonely Scholar. ISBN: 9491386026, 9789491386022.Google Scholar - Dijkstra, E.W. 1968. Letters to the editor: Go to statement considered harmful.
*Communications of the ACM*11(3): 147–148.Google Scholar - Duncan, F.G. 1963. ECMA subset of ALGOL 60.
*Communications of the ACM*6(10): 595–599.Google Scholar - 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 - 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
- ECMA. 1965.
*Standard ECMA-2 for a subset of ALGOL*. Technical report, European Computer Manufacturers’ Association, 1965.Google Scholar - 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 - 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 - 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 - 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 - 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 - Fröschl, K.A., G. Chroust, and J. Stockinger, eds. 2015.
*In memoriam Heinz Zemanek*, volume Band-311. OCG, 2015.Google Scholar - Grad, B. 2006.
*Oral history of Richard Case*. Online, 2006. http://archive.computerhistory.org/resources/text/Oral_History/Case_Richard/Case_Richard_1.oral_history.2006.102658006.pdf - 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 - 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 - 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 - Henhapl, W., and C.B. Jones. 1971. A run-time mechanism for referencing variables.
*Information Processing Letters*1(1): 14–16.Google Scholar - 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
- 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
- Hoare, C.A.R. 1969. An axiomatic basis for computer programming.
*Communications of the ACM*12(10): 576–580.Google Scholar - Hoare, C.A.R. 1972. Proof of correctness of data representations.
*Acta Informatica*1: 271–281.Google Scholar - Hoare, C.A.R. 1973. Hints on programming language design.
*Technical report*, Stanford University, Stanford, 1973.Google Scholar - Hoare, C.A.R., and N. Wirth. 1973. An axiomatic definition of the programming language Pascal.
*Acta Informatica*2(4): 335–355.Google Scholar - 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
- 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 - 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 - 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 - Jones, C.B. 1976. Formal definition in compiler development.
*Technical Report 25.145*, IBM Laboratory Vienna, Feb 1976.Google Scholar - 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
- 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
- Jones, C.B. 1999. Scientific decisions which characterize VDM. In
*FM’99—formal methods*, vol. 1708*LNCS*, 28–47. Berlin/Heidelberg: Springer.Google Scholar - 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 - 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 - 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 - Knuth, D.E. 1964. Backus normal form vs. backus naur form.
*Communications of the ACM*7(12): 735–736.Google Scholar - Knuth, D.E., and R.W. Floyd. 1971. Notes on avoiding “go to” statements.
*Information Processing Letters*1(1): 23–31.Google Scholar - Knuth, D.E., and L.T. Pardo. 1976. The early development of programming languages.
*Technical Report STAN-CS-76-562*, Stanford University.Google Scholar - Landin, P.J. 1964. The mechanical evaluation of expressions.
*The Computer Journal*6(4): 308–320.Google Scholar - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - Lee, J.A.N. 1972. The formal definition of the BASIC language.
*The Computer Journal*15(1): 37–41.Google Scholar - 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 - Lucas, P. 1968. Two constructive realisations of the block concept and their equivalence.
*Technical Report 25.085*, IBM Laboratory Vienna, June 1968.Google Scholar - Lucas, P. 1981. Formal semantics of programming languages: VDL.
*IBM Journal of Research and Development*25(5): 549–561.Google Scholar - Lucas, P., and K. Walk. 1969. On the formal description of PL/I.
*Annual Review in Automatic Programming*6: 105–182.Google Scholar - 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 - 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 - McCarthy, J. 1962. Towards a mathematical science of computation. In
*IFIP Congress*, 21–28.Google Scholar - 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 - McCarthy, J. 1981. History of LISP. In
*History of programming languages*, ed. R.L. Wexelblat, chapter 4, 173–183. New York: Academic.Google Scholar - 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 - 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 - 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 - 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 - 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 - Milner, R. 1971. An algebraic definition of simulation between programs. Technical Report CS-205, Computer Science Dept, Stanford University, Feb 1971.Google Scholar
- 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
- 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 - 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 - 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
- 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 - Mosses, P.D. 1975b.
*Mathematical semantics and compiler generation*. Ph.D. thesis, University of Oxford, Apr 1975.Google Scholar - Mosses, P.D. 2004. Modular structural operational semantics.
*The Journal of Logic and Algebraic Programming*60: 195–228.Google Scholar - Mosses, P.D. 2005.
*Action semantics*, vol. 26. Cambridge/New York: Cambridge University Press.Google Scholar - Mosses, P.D. 2011. VDM semantics of programming languages: Combinators and monads.
*Formal Aspects of Computing*23(2): 221–238.Google Scholar - 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 - 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 - Naur, P. 1981b. Formalization in program development.
*BIT Numerical Mathematics*22(4): 437–453.Google Scholar - 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 - Ollongren, A. 1971. A theory for the objects of the Vienna definition language. Technical Report 25.123, IBM Laboratory Vienna, Sept 1971.Google Scholar
- Pel´aez Valdez, M.E. 1988.
*A gift from Pandora’s box: The software crisis.*Ph.D. thesis, University of Edinburgh, 1988.Google Scholar - Penrose, R. 2000. Reminiscences of Christopher Strachey.
*Higher-Order and Symbolic Computation*13(1): 83–84.Google Scholar - 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 - 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
- Plotkin, G.D. 1976. A powerdomain construction.
*SIAM Journal on Computing*5: 452–487.Google Scholar - Plotkin, G.D. 1981. A structural approach to operational semantics. Technical report, Aarhus University.Google Scholar
- Plotkin, G.D. 2004a. A structural approach to operational semantics.
*Journal of Logic and Algebraic Programming*60–61: 17–139.Google Scholar - Plotkin, G.D. 2004b. The origins of structural operational semantics.
*Journal of Logic and Algebraic Programming*60–61: 3–15.Google Scholar - Priestley, M. 2011.
*A science of operations: Machines, logic and the invention of programming*. London: Springer Science & Business Media.Google Scholar - 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 - Radin, G., and H.P. Rogoway. 1965. NPL: Highlights of a new programming language.
*Communications of the ACM*8(1): 9–17.Google Scholar - 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
- Randell, B. 2013.
*The origins of digital computers: Selected papers*. Berlin/Heidelberg: Springer.Google Scholar - Reynolds, J.C. 1993. The discoveries of continuations.
*Lisp and Symbolic Computation*6(3–4): 233–247.Google Scholar - Schwarzenberger, F., and H. Zemanek. 1966. Editing algorithms for texts over formal grammars. Technical Report 25.066, IBM Laboratory Vienna, July 1966.Google Scholar
- Scott, D. 1969. A type-theoretical alternative to CUCH, ISWIM, OWHY. Typed script—Oxford, Oct 1969.Google Scholar
- Scott, D. 1970. The lattice of flow diagrams. Technical Report PRG-3, Oxford University Computing Laboratory, Programming Research Group, Nov 1970.Google Scholar
- Scott, D. 1971a. Continuous lattices. Technical Report PRG-7, Oxford University Computing Laboratory, Programming Research Group, Aug 1971.Google Scholar
- Scott, D. 1971b. The lattice of flow diagrams. In
*Symposium on Semantics of Algorithmic Languages*, 311–366. Berlin: Springer.Google Scholar - 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 - Scott, D. 2000. Some reflections on Strachey and his work.
*Higher-Order and Symbolic Computation*13(1): 103–114.Google Scholar - Scott, D. 2016. Greetings to the participants at “Strachey 100”. A talk read out at the Strachey 100 centenary conference, Nov 2016.Google Scholar
- 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
- Scott, D., and T. Traxler. 2015. Logic Lounge with Dana Scott. Online, June 2015. https://www.youtube.com/watch?v=nhc94A829qI Video interview.
- Shustek, L. 2015. An interview with Fred Brooks.
*Communications of the ACM*58(11): 36–40.Google Scholar - Steel, T.B. 1966.
*Formal language description languages for computer programming*. New York: North-Holland Publishing Company.Google Scholar - Stoy, J.E. 1977.
*Denotational semantics: The Scott-Strachey approach to programming language theory*. Cambridge: MIT Press.Google Scholar - 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 - Strachey, C. 1966a. System analysis and programming.
*Scientific American*215: 112–124.Google Scholar - Strachey, C. 1966b. Towards a formal semantics. In
*Formal language description languages for computer programming*, ed. Thomas B Steel. Amsterdam: North Holland.Google Scholar - Strachey, C. 1970. Jumping into and out of expressions, Aug 1970. Unpublished note. Strachey Papers, Bodleian Library, Oxford. Folder C229.Google Scholar
- 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
- Strachey, C. 1971b. Letter to Lord Halsbury, Oct 1971. Strachey Papers, Bodleian Library, Oxford. Folder A3.Google Scholar
- Strachey, C. 1973. The varieties of programming language. Technical Monograph PRG-10, Oxford University Computing Lab, Mar 1973.Google Scholar
- 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
- 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 - Tennent, R.D. 1976. The denotational semantics of programming languages.
*Communications of the ACM*19: 437–453.Google Scholar - Urschler, G. 1969a. Concrete syntax of PL/I. Technical Report 25.096, IBM Laboratory Vienna, ULD-IIIvIII, June 1969.Google Scholar
- Urschler, G. 1969b. Translation of PL/I into abstract syntax. Technical Report 25.097, IBM Laboratory Vienna, ULD-IIIvIII, June 1969.Google Scholar
- 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.
- 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.
- van den Hove, G. 2014. On the origin of recursive procedures.
*The Computer Journal*58(11): 2892–2899.Google Scholar - Wadsworth, C.P. 1971.
*Semantics and pragmatics of the Lambda-Calculus*. Ph.D. thesis, Programming Research Group, University of Oxford, Sept 1971.Google Scholar - 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
- 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
- Wegner, P. 1972. The Vienna definition language.
*ACM Computing Surveys (CSUR)*4(1): 5–63.Google Scholar - Weissenböck, F. 1975. A formal interface specification. Technical Report 25.141, IBM Laboratory Vienna, Feb 1975.Google Scholar
- 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
- 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 - Wexelblat, R.L., ed. 1981.
*History of programming languages*. New York: Academic.Google Scholar - Wichmann, B. 2004. The ALGOL bulletin, Feb 2004. http://archive.computerhistory.org/resources/text/algol/algol_bulletin/ Google Scholar
- Wilkinson, J.H. 1972. Letter to Christopher Strachey, Dec 1972. Strachey Papers, Bodleian Library, Oxford. Folder A3.Google Scholar
- 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 - Zemanek, H. 1968. Abstrakte objekte.
*Elektron. Rechenanl.*5: 208–217.Google Scholar - Zhang, Y., and B. Xu. 2004. A survey of semantic description frameworks for programming languages.
*ACM Sigplan Notices*39(3): 14–30.Google Scholar - Zimmermann, K. 1969. Outline of a formal definition of FORTRAN. Technical Report 25.3.053, IBM Laboratory Vienna, 1969.Google Scholar