53
Fundamental Concepts in Programming Languages. Christopher Strachey (1967) I am not only temperamentally a Platonist and prone to talking about abstracts if I think they throw light on a discussion, but I also regard syntactical problems as essentially irrelevant to programming languages at their present state of development. In a rough and ready sort of way, it seems to be fair to think of the semantics as being what we want to say and the syntax as how to say it. In these terms the urgent task in programming languages is to explore the field of semantic possibilities…. When we have discovered the main outlines and the principal peaks we can go about describing a suitable neat and satisfactory notation for them. But first we must try to get a better understanding of the processes of computing and their description in programming languages. In computing we have what I believe to be a new field of mathematics which is at least as important as that opened up by the discovery (or should it be invention) of calculus. Lectures given at the International Summer School in Computer Programming at Copenhagen in August, 1967. Published in Higher-Order and Symbolic Computation Volume 13 , Issue 1-2 (April 2000) 1

Fundamental Concepts in Programming Languages. Christopher Strachey (1967)

  • Upload
    grazia

  • View
    58

  • Download
    0

Embed Size (px)

DESCRIPTION

Fundamental Concepts in Programming Languages. Christopher Strachey (1967). - PowerPoint PPT Presentation

Citation preview

TOWARDS A PHILOSOPHY OF COMPUTER SCIENCE

Fundamental Concepts in Programming Languages. Christopher Strachey (1967) I am not only temperamentally a Platonist and prone to talking about abstracts if I think they throw light on a discussion, but I also regard syntactical problems as essentially irrelevant to programming languages at their present state of development. In a rough and ready sort of way, it seems to be fair to think of the semantics as being what we want to say and the syntax as how to say it. In these terms the urgent task in programming languages is to explore the field of semantic possibilities. When we have discovered the main outlines and the principal peaks we can go about describing a suitable neat and satisfactory notation for them. But first we must try to get a better understanding of the processes of computing and their description in programming languages. In computing we have what I believe to be a new field of mathematics which is at least as important as that opened up by the discovery (or should it be invention) of calculus.

Lectures given at the International Summer School in Computer Programming at Copenhagen in August, 1967. Published in Higher-Order and Symbolic ComputationVolume 13 , Issue 1-2 (April 2000)1 SEMANTICS AND ONTOLOGYFOR PROGRAMMING LANGUAGESOutlineGrammar and its LimitationsNormative SemanticsMetacircular InterpretersMachinesInformal SemanticsOperational SemanticsTowards a Theory of OperationsProgramming Languages as Theories of Computation

3GRAMMAR and its LIMITATIONS4Grammar Syntax is given via a formal grammar of some sort e.g., context free, BNF, inference rules, Syntax diagrams, graphical means.But a grammar only pins down what the legal strings of the language are. It does not determine what they mean.We shall illustrate some issues with the following toy programming language.

5Presumably some of the information necessary to use the language to construct correct programs. Indeed, it must go some way to determining what the latter is5The While Language P::= x:=E | skip | P; P | if B then P else P | while B do P | E::= x | 0 | 1 | E+E | EE | B::= x | true | false | E