This paper forms the substance of a course of lectures given at the International Summer School in Computer Programming at Copenhagen in August, 1967. The lectures were originally given from notes and the paper was written after the course was finished. In spite of this, and only partly because of the shortage of time, the paper still retains many of the shortcomings of a lecture course. The chief of these are an uncertainty of aim—it is never quite clear what sort of audience there will be for such lectures—and an associated switching from formal to informal modes of presentation which may well be less acceptable in print than it is natural in the lecture room. For these (and other) faults, I apologise to the reader.
There are numerous references throughout the course to CPL [1–3]. This is a programming language which has been under development since 1962 at Cambridge and London and Oxford. It has served as a vehicle for research into both programming languages and the design of compilers. Partial implementations exist at Cambridge and London. The language is still evolving so that there is no definitive manual available yet. We hope to reach another resting point in its evolution quite soon and to produce a compiler and reference manuals for this version. The compiler will probably be written in such a way that it is relatively easyto transfer it to another machine, and in the first instance we hope to establish it on three or four machines more or less at the same time.
The lack of a precise formulation for CPL should not cause much difficulty in this course, as we are primarily concerned with the ideas and concepts involved rather than with their precise representation in a programming language.
This is a preview of subscription content, access via your institution.
Beyme, K. von (1973). Die parlamentarischen Regierungssysteme in Europa. Munich: Piper.
Bryce, J. (1921). Modern democracies. New York: Macmillan.
Duverger, M. (1980). A new political system model: Semi-presidential government, European Journal of Political Research 8: 165-187.
Elgie, R. (1998). The classification of democratic regime types: conceptual ambiguity and contestable assumptions, European Journal of Political Research 33: 219-238.
Laver, M. & Shepsle, K.A. (1996). Making and breaking governments: Cabinets and legislatures in parliamentary democracies. Cambridge: Cambridge University Press.
Linz, J.J. & Valenzuela., A. (1994). The failure of presidential democracy. Baltimore: Johns Hopkins University Press.
Loewenberg, G. & Patterson, S.C. (1979). Comparing legislatures. Boston: Little, Brown.
Loewenstein, K. (1957). Political power and the governmental process. Chicago: University of Chicago Press.
Mainwaring, S. (1990). Presidentialism in Latin America: A review essay, Latin American Research Review 25: 157-179.
Michels, R. (1962). Political parties. New York: Free Press.
Moe, T.M. & Caldwell, M. (1994). The institutional foundations of democratic government: A comparison of presidential and parliamentary systems, Journal of Institutional and Theoretical Economics 150: 171-195.
Riker, W.H. (1982). Liberalism against populism: A confrontation between the theory of democracy and the theory of Social Choice. San Francisco: W.H. Freeman.
Shugart, M.S. & Carey, J. (1992). Presidents and assemblies. Cambridge: Cambridge University Press.
Steffani, W. (1979). Parlamentarische und präsidielle Demokratie. Opladen: Westdeutscher Verlag.
Verney, D.V. (1959). The analysis of political systems. London: Routledge & Kegan Paul.
Weaver, R.K. & Rockman, B.A. eds. (1993). Do institutions matter? Government capabilities in the United States and abroad. Washington, DC: The Brookings Institution.
Weber, M. (1972). Wirtschaft und Gesellschaft. Tübingen: Mohr.
About this article
Cite this article
Strachey, C. Fundamental Concepts in Programming Languages. Higher-Order and Symbolic Computation 13, 11–49 (2000). https://doi.org/10.1023/A:1010000313106
- programming languages
- foundations of computing
- parameter passing
- variable binding
- functions as data
- parametric polymorphism
- ad hoc polymorphism
- binding mechanisms
- type completeness