statement type and the rules governing this form, and an explanation of what the statement meant.
Form and meaning. In the realm of a natural language like English, linguists usually call form the
syntax
of the language, and the meaning its
semantics
. The FORTRAN
Programmerâs Manual
of 1956 marked the emergence of a new consciousness among language designers about the linguistic (rather than merely the notational) nature of programming languages. The terms
syntax
and
semantics
(as we will see) would come to be used very soon thereafter, but we find a presence of this consciousness in the writing of the
Programmerâs Manual
.
The text describing a programming language must describe all and only what the language is about. For the user of that language, the text is all. But, unlike the postmodernistâs âtext,â which can be âreadâ in as many different ways as there are readers, and the writerâs intention is not relevant, the text describing a programming language mustprovide only one âreadingââthere should be only one way of making meaning, one way of interpreting the language.
The FORTRAN group took this obligation seriously. In the
Programmerâs Manual
each type of statement is described in terms of its form and meaning, syntax and semantics.
âDO n i = m 1 , m 2 â or âDO n i = m 1 , m 2 , m 3 â where n is a statement number, I is a ⦠variable, and m 1 , m 2 , m 3 are each either an unsigned ⦠constant or a nonsubscripted ⦠variable. If m 3 is not stated it is taken to be 1. 50
Here, then, was the âgeneral formâ of the
DO
statement. Alongside were given examples: DO 30 I = 1, 10, DO 30 I = 1, M, 3. Then followed the meaning of the
DO
statement:
The DO statement is a command to âDO the statements which follow, to and including the statement with statement number n, repeatedly, the first time with i = m 1 , and with I increased by m 3 for each succeeding time; after they have been done with i equal to the highest of this sequence of values which does not exceed m 2 let control reach the statement following the statement with statement number n.⦠51
Conciseness and eleganceâattributes valued by mathematicians, as many of the FORTRAN group wereâis in evidence in certain sections of the language description. âRecursion,â the mathematical strategy of defining a concept in terms of itself (such as defining the factorial of a number recursively,
N! = N*(Nâ1)!
, and
0!=1
) was used to specify the rules for forming algebraic expressions (such as
X+Y
):
By repeated use of the following rules, all permissible expressions may be derived â¦
4. If E is an expression the (E) is an expression
5. If E and F are expressions ⦠then E+F, E-F, E*F, E/F are expressions.⦠52
X
Yet, by Backusâs own admission, language design played a secondary role in the FORTRAN endeavor. 53 Rather, as (it was once said) Britain acquired India as part of its empire in a fit of absent-mindedness, so also, it almost seems, reading Backus, that the FORTRAN language was designed absent-mindedly. But Backus and his colleagues, collectively, were too much the engineerâscientists to be absent-minded, even in a metaphorical sense. What Backus really implied, as he would write in 1981, was thatâno matter how satisfying the FORTRAN programming language wasâas a programming tool, it would never have sufficed. The emphasis had to be on program efficiency. It was this criterion that ruled above all else. 54
The burden of responsibility for producing efficient IBM 704 machine code from a FORTRAN programâlater, the former came to be called
object program
or
object code
and the latter,
source program
or
source code
âfell on the compiler or, more precisely, on the compiler writer. By the time the first book-length texts and monographs on compilers began to appear during the mid to late 1960s, 55