Fundamental Concepts in Programming Languages

  title={Fundamental Concepts in Programming Languages},
  author={Christopher S. Strachey},
  journal={Higher-Order and Symbolic Computation},
  • C. Strachey
  • Published 1 April 2000
  • Computer Science
  • Higher-Order and Symbolic Computation
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… 

The Algol Research Programme

This chapter suggests that what changed the face of programming was not simply the Algol 60 language, but rather a coherent and comprehensive research programme within which the Al gol 60 report had the status of a paradigmatic achievement, in the sense defined by the historian of science Thomas Kuhn.

Evolving a language in and for the real world: C++ 1991-2006

Various uses of C++ and the technical and commercial pressures that provided the background for its continuing evolution are discussed, including the emergence of generic programming and the STL (the C++ standard library's algorithms and containers).

Object-Oriented Programming in Explicit Mathematics: Towards the Mathematics of Objects

This thesis deals with the mathematical meaning of object-oriented programming languages, taking overloading and late-binding as basic rather than encapsulation, and presents a recursion-theoretic interpretation of Featherweight Java.

Design Patterns for Teaching Type Checking in a Compiler Construction Course

This paper shows how object-oriented design patterns represented in unified modeling language (UML) can be used to both teach type systems and develop the semantic analysis phase of a compiler.

Principals in Programming Languages : Technical ResultsSteve

This paper describes two variants of the simply typed-calculus extended with a notion of principal in languages in which intuitive statements like "the client must call open to obtain a le handle" can be phrased and proven formally.

Principals in Programming Languages: Technical Results

Two variants of the simply typed λ-calculus extended with a notion of principal are described, which are languages in which intuitive statements like “the client must call open to obtain a file handle” can be phrased and proven formally.

Free theorems in languages with real-world programming features

This thesis develops and implements a counterexample generator that tells if and why restrictions on a certain free theorem arise due to general recursion, and develops a refined type system that allows to localize the impact of forced strict evaluation.

The history of Standard ML

The early history of ML, the subsequent efforts to define a standard ML language, and the development of its major features and its formal definition are covered.

A language for generic programming

This dissertation presents and evaluates the design of a new programming language, named G (for generic), that integrates the generic programming specification language with the type system and features of a full programming language.

Programming Language Description Languages

This chapter addresses questions about denotational semantics and gives some grounds for optimism about the development of highly practical, online semantic descriptions.



Correspondence between ALGOL 60 and Church's Lambda-notation

A model for computer languages and computer behavior is described, based on the notions of functional application and functional abstraction, but also having analogues for imperative language features.

On the formal definition of PL/I

  • K. Bandat
  • Computer Science, Linguistics
    AFIPS '68 (Spring)
  • 1968
This paper describes a formal definition of PL/I which has been produced by a group in the IBM Vienna Laboratory. The paper contains the outlines of the method rather than details of PL/I. The

The Mechanical Evaluation of Expressions

It is shown how some forms of expression in current programming languages can be modelled in Church's X-notation, and a way of "interpreting" such expressions is described, which suggests a method of analyzing the things computer users write.

The Main Features of CPL

The paper provides an informal account of CPL, a new programming language currently being implemented for the Titan at Cambridge and the Atlas at London University. CPL is based on, and contains the

Word and Object

This edition offers a new preface by Quine's student and colleague Dagfinn Follesdal that describes the never-realized plans for a second edition of Word and Object, in which Quine would offer a more unified treatment of the public nature of meaning, modalities, and propositional attitudes.

The classification of democratic regime types: Conceptual ambiguity and contestable assumptions

This article examines the classification of regime types. It shows that most writers classify regime types with reference to both their dispositional properties (whether there is a president and/or a

Problems in the Theory of Computation

A number of theoretical problems whose solutions seems feasible and likely to advance the practical art of computation are identified and discussed.

The Institutional Foundations of Demo­cratic Government: A Comparison of Presidential and Parliamentary Systems

As democracy has swept the world, the euphoria of freedom has given way to more practical concerns. The ones we hear about most are economic, as nations try to make the transition from

The analysis of political systems

Originally published between 1943 and 1969, titles in this set were written against a backdrop of rapid and radical political change. This set contains volumes by key political and sociological

Making and breaking governments

Series editors' preface Acknowledgements Part I. The Context: 1. Theory, institutions, and government formation 2. The social context of government formation 3. The government formation process Part