Вы находитесь на странице: 1из 10

The Next 700 Programming Languages

P. J. Landin
Univac Division of Sperry Rand Corp., New York, New York

" . . . t o d a y . . . 1,700 special programming languages used to 'com-


municate' in over 700 application areas."--Computer Software Issues,
an American Mathematical Association Prospectus, July 1965.

A family of unimplemented computing languages is de- differences in the set of things provided by the library or
scribed that is intended to span differences of application area operating system. Perhaps had ALGOL 60 been launched
by a unified framework. This framework dictates the rules as a family instead of proclaimed as a language, it would
ckout the uses of user-coined names, and the conventions have fielded some of the less relevant criticisms of its
about characterizing functional relationships. Within 'lhis frame- deficiencies.
work 'lhe design of a specific language splits into two inde- At first sight the facilities provided in IswI~,~ will appear
pendent parts. One is 'lhe choice of written appearances of comparatively meager. This appearance will be especially
programs (or more generally, their physical representation). misleading to someone who has not appreciated how much
The o:her is the choice of the abstract entities (such as numbers, of current manuals are devoted to the explanation of
character-strings, lists of them, functional relations among common (i.e., problem-orientation independent) logical
them) that can be referred to in the language. structure rather than problem-oriented specialties. For
The system is biased towards "expressions" rather than example, in almost every language a user can coin names,
"statements." It includes a nonprocedural (purely functional) obeying certain rules about the contexts in which the
subsystem fhat aims to expand the class of users' needs that name is used and their relation to the textual segments
can be met by a single print-instruction, without sacrificing the that introduce, define, declare, or otherwise constrain its
important properties that make conventional right-hand-side use. These rules vary considerably from one language to
expressions easy to construct and understand. another, and frequently even within a single language
there may be different conventions for different classes of
1. Introduction names, with near-analogies that come irritatingly close to
Most programming languages are partly a way of being exact. (Note that restrictions on what names can
expressing things in terms of other things and partly a be coined also vary, but these are trivial differences. When
basic set of given things. The Isw~M (If you See What I they have any logical significance it is likely to be perni-
Mean) system is a byproduct of an attempt to disentangle cious, by leading to puns such as ALaOL'S integer labels.)
these two aspects in some current languages. So rules about user-coined names is an area in which
This attempt has led the author to think that many we might expect to see the history of computer applica-
linguistic idiosyneracies are concerned with the former tions give ground to their logic. Another such area is in
rather than the latter, whereas aptitude for a particular specifying functional relations. In fact these two areas are
class of tasks is essentially determined by the latter rather closely related since any use of a user-coined name im-
than the former. The conclusion follows that m a n y plicitly involves a functional relation; e.g., compare
language characteristics are irrelevant to the alleged x(x-ka) f(b+2c)
problem orientation. w h e r e x = b -4- 2c w h e r e f(x) = x(x+a)
IswI~ is an attempt at a general purpose system for ISW~M is thus part. programming language and part pro-
describing things in terms of other things, that can be gram for research. A possible first step in the research
problem-oriented by appropriate choice of "primitives." program is 1700 doctoral theses called " A Correspondence
So it is not a language so much as a family of languages, between x and Church's X-notation. ''~
of which each member is the result of choosing a set of
2. The where-Notation
primitives. The possibilities concerning this set and what
is needed to specify such a set are discussed below. I n ordinary mathematical communication, these uses
Isw~M is not alone in being a family, even after mere of 'where' require no explanation. Nor do the following:
syntactic variations have been discounted (see Section 4). f(b-l-2c) ---I-f(2b--c)
In practice, this is true of most languages that achieve w h e r e f(x) = x(x-t-a)

more than one implementation, and if the dialects are well f(bA--2c) -- f ( 2 b - c )
w h e r e f(x) = x ( x + a )
disciplined, they might with luck be characterized as
and b = u/(u+l)
Presented at an ACM Programming Languages and Pragmatics a n d c = v/(v-t-1)
Conference, San Dimes, California, August 1965. g ( f w h e r e f ( x ) = ax 2 -]- bx -I- c,
1Throe is no more use or mentiol~ of Xin this paper--eognoseenti u/(u-4-1),
will nevertheless sense an undercurrent. A not inappropriate title v/(v+l))
would have been "Church without lambda," w h e r e g ( f , p, q) = f ( p - k 2 q , 2 p - - q )

Volume 9 / Number 3 / March, 1966 Communications of the ACM 157


A phrase of the form ' w h e r e definition' will be called a method of expressing these functionally is explained in
"where-clause." An expression of the form 'expression [2]. I t amounts to using named transfer-functions instead
where-clause' is a "where-expression." Its two principal of class names like i n t e g e r , i.e., writing
components are called, respectively, its "main clause" where n = round(n)
and its "supporting definition." To put ' w h e r e ' into a
programming language the following questions need instead of the specification
answers. integer n
Linguistic Structure. What structures of expression
can appropriately be qualified by a where-clause, e.g., Thus the use of functional notation does not jeopardize
conditional expressions, operand-listings, statements, the determination of type from textual evidence.
declarations, where-expressions?
3. P h y s i c a l I S W I M a n d :Logical I S W I M
Likewise, what structures of expression can appro-
priately be written as the right-hand side (rhs) of a Like ALGOL 60, ISWIM has no prescribed physical
supporting definition? What contexts are appropriate for a appearance. ALGOL C0'S designers sought to avoid commit-
where-expression, e.g., as an arm of a conditional ex- ment to any particular sets of characters or type faces.
pression, an operator, the main-clause of a where-ex- Accordingly they distinguish between "publication hm-
pression, the left-hand side (lhs) of a supporting definition, guage," "reference language" and "hardware languages."
the rhs of a supporting definition? Of these the reference language was the standard and was
Syntax. Having answered the above questions, what used in the report itself whenever pieces of ALGOL 60
are the rules for writing the acceptable configurations occurred. Publication and hardware languages are trans-
unambiguously? E.g., where are brackets optional or literations of the reference language, varying according to
obligatory? or other punctuation? or line breaks? or in- the individual taste, needs and physical constraints on
dentation? Note the separation of decisions about struc- available type faces and characters.
ture from decisions about syntax. (This is not a denial Such variations are different physical representations
that language designers might iterate, like hardware of a single abstraction, whose most faithful physical
designers who distinguish levels of hardware design.) representation is the reference language. In describing
Semantic Constraints on Linguistic Structure. In the IswI~ we distinguish an abstract language called "logical
above examples each main clause was a numerical ex- ISWIM," whose texts are made up of "textual elements,"
pression; i.e., given appropriate meanings for the various characterized without commitment to a particular physical
identifiers in it, it denoted a number. What other kinds of representation. There is a physical representation suitable
meaning are appropriate for a mainclause, e.g., arrays, for the medium of this report, and used for presenting
functions, structure descriptions, print-formats? each piece of IswI~1 that occurs in this report. So this
Likewise what kinds of meaning are appropriate for physical representation corresponds to "reference ALGOL
rhs's of supporting definitions? Notice there is not a third 60," and is called "reference ISWIM," or the "IswI~i
question analogous to the third question above under reference representation," or the "IswI~,r reference hm-
linguistic structure. This is because a where-expression guage."
must mean the same kind of thing as its main clause and To avoid imprecision one should never speak just of
hence raises no new question concerning what contexts "ISWIM," but always of "logical IswxM" or of "such-
are meaningful. Notice also that the questions about and-such physical ISWlM." However, in loose speech,
meaning are almost entirely independent of those about where the precise intention is clear or unimportant, we
structure. They depend on classifying expressions in two refer to "ISWlM" without quMifieation. We aim at a more
ways that run across each other. formal relation between physical and logical languages
Outcome. What is the outcome of the more recondite than was the case in the ALGOL C0. This is necessary since
structural configurations among those deemed admissible, we wish to systematize and mechanize the use of different
e.g. mixed nests of where-expressions, function definitions, physical representations.
conditional expressions, etc.?
Experimental programming has led the author to think 4. F o u r L e v e l s o f A b s t r a c t i o n
that there is no configuration, however unpromising it The "physical~logical" terminology is often used to
might seem when judged cold, that will not turn up quite distinguish features that are a fortuitous consequence of
naturally. Furthermore, some configurations of ' w h e r e ' physical conditions from features that are in some sense
that might first appear to reflect somewhat pedantic dis- more essential. This idea is carried further by making a
tinctions, in fact provide close matches for current lan- similar distinction among the "more essential" features.
guage features such as n a m e / v a l u e and o w n (see [2, 3]). In fact ISWlM is presented here as a four-level concept
All these questions are not answered in this paper. The comprising the following:
techniques for answering them are outlined in Section 4. (1) physical IswlM'S, of which one is the reference
One other issue arises when ' w h e r e ' is added to a language and others are various publication and hardware
programming language--types and specifications. A languages (not described here).

158 C o m m u n i c a t i o n s of t h e ACM Volt, me 9 / N u m b e r 3 / March, 1966


(2) logical ISWlM, which is uncommitted as to char- demand, simple, infixed, etc; also the selectors body, rator,
acter sets and type faces, but committed as to the sequence leflarm, nee, etc; also (taking for granted certain un-
of textual elements, and the grammatical rules for group- formalized conventions concerning structure definitions)
ing them, e.g., by parentheses, indentation and precedence the constructors, consdemand, conscombination (elsewhere
relations. ~bbreviated to combine), consstandardade], etc. Examples
(3) abstract Iswls,,, which is uncommitted as to the of reference IswI~ are given alongside, against the right
grammatical rules of sequence and grouping, but com- margin.
mitted as to the grammatical categories and their nesting
An a m e s s a g e is
structure. Thus abstract Iswis,~ is a "tree language" of e i t h e r a demand, a n d has [ P r i n t a+2b
which logical IswlM is one linearization. a body w h i c h is an a e x p r c s s i o n ,
(4) applicative expressions (AEs), which constitute or e l s e a definition, [Def x=a+2b
another tree language, structurally more austere than where rec
an a e x p r e s s i o n (aexp) is
abstract ISWlM, and providing certain basic grammatical
e i t h e r simple, a n d has [CAth231"
categories in terms of which all of Isw1~'s more numerous a body w h i c h is an identifier
categories can be expressed. or a combination, in w h i c h case it has [sin(a+2b)
The set of acceptable texts of :t physical ISWlM is a rator, w h i c h is an aexp, or
specified by the relations between 1 and 2, and between a n d a rand, which is an aexp, a + 2b
or conditional, in w h i c h case it is
2 and 3. The outcome of each text is specified by these
e i t h e r two-armed, a n d has [p--*a+2b; 2a--b
relations, together with a "frame of reference," i.e., a rule a condition, w h i c h is an aexp,
that associates a meaning with each of a chosen set of a n d a teftarm, w h i c h is a n aexp,
identifiers. a n d a rightarm, w h i c h is a n aexp,
These are the things that vary from one member of our or one-armed, a n d has [q-+2a--b
a condition, w h i c h is a n aexp,
language family to the next. The specification of the family
a n d a n arm, w h i c h is an aexp,
is completed by the relation between abstract IswI~ and or a listing, a n d h a s [a+b, c+d, e + f
AEs, together with an abstract machine that interpret a body w h i c h is an aexp-list,
AEs. These elements are the same for all members of the or beet, a n d has [ x ( x + l ) w h e r e x = a + 2b
family and are not discussed in this paper (see [1, 2, 4]). a mainclause, w h i c h is a n aexp, or
a n d a support l e t x = a + 2b; x ( x + l )
The relationship between physical ISWlM and logical
w h i c h is a n adef,
ISWIM is fixed by saying what physical texts represent and
each logical element, and also what layout is permitted in an adefinition (adef) is
stringing them together. The relationship between logical e i t h e r standard, a n d has [x=a+2b
I s w ~ and abstract IswlM is fixed by a formal grammar a definee (nee), which is an a b e ,
a n d a definiens (niens), w h i c h is a n aexp,
not unlike the one in the ALGOL 60 report, together with a
or functionform, arid has [f(x) = z ( x + l )
statement connecting the phrase categories with the a lefthandside (lhs),
abstract grammatical categories. w h i c h is a n a b e - l i s t of l e n g t h > 2 ,
These two relations cover what is usually called the a n d a righthandside (rhs), w h i c h is an aexp
"syntax" or "grammar" of a language. In this paper or programpoint, a n d has [ppf(x) =x(x+l)
a body w h i c h is an adef,
syntax is not discussed beyond a few general remarks and
or circular, a n d h a s [tee f ( n ) = ( n = 0 ) - + l ; n f ( n - 1 )
a few examples whose meaning should be obvious. a body w h i c h is a n adef,
The relationship between abstract Iswls( and AEs is or simultaneous, a n d has [x=a+2b a n d y=2a--b
fixed by giving the form of AE equivalent to each abstract a body, w h i c h is an adef-list,
IswiM grammatical category. It happens that these latter or beet, a n d has [f(y) = z ( x + y )
a mainclause, w h e r e x=a+2b
include a subset that exactly matches AEs. Hence this w h i c h is a n adef,
link in our chain of reh~tions is roughly a mapping of a n d a support, w h i c h is an adef.
ISWIM into an essential "kernel" of IswIM, of which all the w h e r e a n a b e is
rest is mere decoration. e i t h e r simple, a n d h a s
body, w h i c h is an identifier,
5. A b s t r a c t I S W I M or e l s e , is an abv-lislo. [x, (y, z), w

The texts of abstract ISWlM are composite information A program-point definition introduces a deviant kind
structures called amessage's. The following structure of function. Applying such a function precipitates pre-
definition defines~ the class amessage in terms of a class mature termination of the where-expression containing
called identifier. It also defines several functions for it, and causes its result to be delivered as the value of the
manipulating amessage's. These comprise the predicates entire where-expression.
Program-points are Iswli'S, nearest thing to jumping.
2 W r i t i n g a s t r u c t u r e definition i~volves coining n a m e s for the
v a r i o u s a l t e r n a t i v e f o r m a t s of amessage's and t h e i r c o m p o n e n t s .
Assignment is covered as a particular case of an operator.
T h e only o b s c u r e coinage is " b e e t , " w h i c h a b b r e v i a t e s " b e t a - For both of these the precise specification is in terms of the
r e d e x , " i.e., " a n e x p r e s s i o n a m e n a b l e to rule (fl)"; see Section 7'. underlying abstract machine (see [2]).

V o l u m e 9 / N u m b e r 3 / M a r c h , 1966 Communications of the ACM 159


6. R e l a t i o n s h i p to LISP rule has three important features. I t is based on vertical
alignment, not character width, and hence is equally
IswI~r can be looked on as an attempt to deliver LisP
fronI its eponymous commitment to lists, its reputation appropriate in handwritten, typeset or typed texts. Its
for hand-to-mouth storage allocation, the hardware use is not obligatory, and use of it can be mixed freely with
dependent flavor of its pedagogy, its heavy bracketing, more conventionM alternatives like punctuation. Also, it
is incorporated in IswI~t in a systematic way that admits
and its compromises with tradition. These five points are
of alternatives without changing other features of Isw~.r
now dealt with in turn:
(1) Iswi~ has no particular problem orientation. and that can be applied to other languages.
Experiments so far have been mainly in numerical work (5) The most important contribution of LisP was not
and language processing with brief excursions into "com- in listprocessing or storage allocation or in notation, but
mercial" programming and elsewhere. No bias towards or in the logic~d properties lying behind the notation, ttere
Iswi?i makes little improvement because, except for a few
away from a particular field of application has emerged.
minor details, Lisp left none to make. There are two
(2) Outside a certain subset (corresponding closely to
equivalent ways of stating these properties.
ALGOL ~0 without dynamic own arrays), IswIM needs
garbage collection. An experimental prototype imple- (a) LIsP simplified the equivalence relations that
mentation followed common ALGOL 60 practice. I t used determine the extent to which pieces of program can be
interchanged without affecting the outcome.
dynamic storage allocation with two sources, one LIFO
and the other garbage collected, with the intention that
(b) LISP brought the class of entities that are denoted
the LIFO source should take as big a share as possible. by expressions a programmer can write nearer to those
that arise in models of physical systems and in mathe-
However, as with ALGOL 60, there is a latent potential
matieM and logical systems.
for prealloeating storage in certain favorable and com-
These remarks are expanded in Sections 7 and 8.
monly useful situations. Compared with LISP the chief
amelioration of storage allocation comes out of a mere 7. T h e C h a r a c t e r i s t i c E q u i v a l e n c e s o f I S W I M
syntactic difference, namely, the use of w h e r e (ol 'let' For most programming languages there are certain
which is exactly equal in power and program structure). statements of the kind, "There is a systematic equivalence
This provides a block-structure not dissimilar in textual between pieces of program like this, and pieces like t h a t , "
appearance from ALGOL 60'S, though it slips off the pen that nearly hold but not quite. For instance in ALGOL 60
more easily, and is in many respects more generM. there is a nearly true such statement concerning procedure
(3) LisP has some dark corners, especially outside calls and blocks.
"pure LISP," in which both teachers and programmers At first sight it might appear pedantic to quibble about
resort to talking about addresses and to drawing storage such untidiness--"What's the point of having two different
diagrams. The abstract machine underlying IswI~,r is ways of doing the same thing anyway? Isn't it better to
aimed at illuminating these corners with a mininmm of have two facilities than just one?" The author believes
hardware dependence. that expressive power should be by design rather than
(4) The textual appearance of IswI~l is not like Lisp's accident, and that there is great point in equivalences that
S-expressions. It is nearer to LISP'S M-expressions (which hold without exception. I t is a platitude that any given
constitute an informal language used as an intermediate outcome can be achieved by a wide variety of programs.
result in hand-preparing LISP programs). IswlAi has the The practicability of all kinds of program-processing
following additional features: (optimizing, checking satisfaction of given conditions,
(a) "Auxiliary" definitions, indicated by 'let' or 'where', constructing a program satisfying given conditions)
with two decorations: ' a n d ' for simultaneous definitions, depends on there being elegant equivalence rules. For
and 'rec' for self-referential definitions (not to be mistaken IswlM there are four groups 3, concerning:
for a warning about recursive activation, which can of (1) the extent to which a subexpression can be replaced
course also arise from self-application, and without self- by an equivalent subexpression without disturbing the
reference). equivalence class of the whole expression. Without this
(b) Infixed operators, incorporated systematically. A group the other rules would be applicable only to complete
logical ISWIM can be defined in terms of four unspecified expressions, not to subexpressions.
parameters: three subsets of the class of identifiers, for use (2) user-coined names, i.e., in definitions and, in particu-
as prefixed, infixed and postfixed operators; and a prec- lar, function definitions.
edence relation defined over the union of these subsets. (3) built-in entities implicit in special forms of ex-
(c) Indentation, used to indicate program structure. A pression. The only iiistanees of this in Iswllv[ are conditional
physical IswiM can be defined in terms of an unspecified expressions, listings and self-referential definitions.
parameter: a subset of phrase categories, instances of (4) named entities added in any specific problem-
which are restricted in layout by the following rule called orientation of IswIM.
"the offside rule." The southeast quadrant that just con-
3 To facilitate subsequent discussion each rule is preceded
tains the phrase's first symbol nmst contain the entire by a name, e.g., "(~t)", "(,)", etc. These are chosen to conform
phrase, except possibly for bracketed subsegments. This with precedents in Curry's Combinatory Logic.

160 Communications of the ACM Volume 9 / Number 3 / March, 1966


GROUP 1 (undefined) undefined ~ self apply (selfapply)
w h e r e self apply (f) = f ( f )
(tz) If L -= L' then L (M) -= L ' (M) (Y) recx = L ~ x = (Lwhere recx = L)
@) If M ~ M' then L (M) ~ L (M') (D") (x, - . . , z ) = M ~- (x, ' " , z ) =
@') If M ~ M' then (L,...,M, ..-,N)~(L, ...,M', ...N) null (tkw)
(v") If L ~ L' then (L--~M; N ) ~ (L'--+M, N ) hw, . . . , h(t~-lw)
(v') If M ~ M' then (L--aM; N ) ~ ( L - a M ' ; N ) where w = M
(vi~) If N -~ N' then (L--~M; N ) ~ (L--~M; N ' ) (for k > 2)
(v ~) If M -= M~ then (L w h e r e x = M ) ~- ( L w h e r e x = M t) (x, (u, v), z) = M =- (x, (u, v), z) =
null (taw)
The significant omissions here are the main-clause in the h(w),
last case above, the rhs of a function definition " f ( x ) = M " (null (t2w ') --~
and of a circular definition " r e e :c = M". h(w'), h(t(w'))
where w ' = h(t(w)))
h(t2w)
GRoue 2
where w = M
(let) letx = M; L --= L w h e r e x = M arid so on for each shape of definee
(I') f(x) = L ~ f = (g w h e r e g ( x ) = L ) (null) null (nullisl) -= t r u e
f(a,b,c)(x,y) = L ~ f(a,b,c)= (gwhereg(x,y)=L) (null I) null (La, . . ' , Lk) ~ false
and so on for each s h a p e of l e f t - h a n d s i d e w h e r e (x, " ' , z)
(I) (f where f(x)=L) M ~ L wherex = M = L b " " , Lk (k > 2)
(~') (x=L) where y = M ~ x ~ (L w h e r e y = M ) (h) h ( L b " " , Lk) ~ x
(D') x = L and y = M a n d ~- . . - a n d z = N w h e r e (x, - . . , z)
(z,y, "",z) = (L,M, -",N) = Lj, . - . , Lit (k > 2)
(t) t(L1, . . . , L~) ~ y, . . . , z
Rules (I'), (~'), (D'), together with (Y) below, enable where (x,y, -.-,z)
any definition to be "standardized," i.e., expressed in a = L1, " ' , Lk (k _ 3)
lhs/rhs form, in which the lhs is precisely the definee. Thus (t') t(t(Ll, L2)) =-- nullist
w h e r e (x, y) = L1, L2
a nonstandard definition can be transformed so as to be
amenable to rules (~) and (~) (see Group 2'). The rules about listings may appear willfully indirect.
The more natural transformations are those effected by
GROUP 2 f
applying, for example, (D I') then (~). But these would
M
have suffered the same limited validity as (~). In their
(fl) L where x = M Subst L above slightly cautious formulation the validity of (DI'),
X
etc. is unrestricted, and the more powerful equivalences
where "Subst ~i C" means roughly the expression resulting that hold for nonimperative expressions arise entirely
from (/3).
from substituting A for B throughout C. Here 'x' may be
any list-structure of distinct identifiers, provided that GRouP 4
'M' has structure that fits it. A problem-orientation of IswI~r can be characterized
This rule is the most important, but it has only limited by additional axioms. In the simplest case such an axiom
validity, namely, within the "purely functional" subset of is an IswiM definition. The resulting modification is called
ISWlM that results from not using the program-point a "definitional extension" of the original system.
feature or assignment. In more elaborate cases axioms may mutually constrain
Its importance lies in a variant of a famous theorem of a group of identifiers; e.g. the following rule for equality
mathematical logic, the Church-Rosser theorem. This among integers:
concerns the possibility of eliminating ' w h e r e ' from an ( = ) Suppose L and M are ISWIM written integers
expression by repeatedly applying the rules stated above, (i.e., strings of digits); then either one or the other of the
including crucially (~). The theorem ensures that if there following holds:
are several ways of doing this they all reach the same L = M ~-true
result. L = M ~ false
The author thinks that the fruitful development to
encompass all ISWlM will depend on establishing "safe" according as L and 114 differ at most in lefthand zeros, or
areas of an ISWlA~ expression, in which imperative features not.
can be disregarded. The usefulness of this development Another example, presented even less formally, is the
will depend on how successfully ISWlM'S nonimperative structure definition for abstract ISWlM.
features supersede conventional programming. Group 1 above makes no provision for substitutions
within expressions that are qualified by a supporting
GROUP 3 definition or are used to define a function. However, such
(--~) t r u e --~ M ; N ~ M a substitution is legitimized as long as it does not involve
(--/) f a l s e - ~ M; N ~ N the definees or variables, by encasing it within applications
(---~") P ~ M ~ P ~ M; undefined of rule (/3) and its inverse (with any other rules that might

Volume 9 / Number 3 March, 1966 Communications of the ACM 161


be needed to produce something that is amenable to (~), contains expressions such as
i.e., a beet with a standard definition). 'wine'
EquivMence rules can be used to prove things about the Anyone with a generous ontology will admit that
system. For example, the reader will readily verify that this 6-character expression denotes the 4-character-string
the equivalence of wine
For such a person its use in the language is characterized
f (6) where reef(n) = (n=0) --~ 1; nf (n--l)
by
and • the objects that it is applicable to, and the object it
6 (f(5) where r e e f (n) = (n=0) --~ 1; nf (n--l)) produces in each case (e.g., strings might be used like
vectors, whose application to an integer produces an
can be established with the following steps: item of the string).
(I'), (Y), (f~), (Y), (f3), (I), (=), (i3) backwards, (Y) backwards, • The objects that it is amenable to, and the object it
(I') backwards. yields in each case (e.g., prefixing, appending, selection,
etc.).
in this sequence we omit the auxiliary applications of (~), The sceptic need not feel left out. He just has to talk, a
etc. that are needed at Mmost every step to legitimize the bit more clumsily, about
substitution.
'wine'
8. A p p l i c a t i o n a n d D e n o t a t i o n
being in the equivalence class that also contains
The commonplace expressions of arithmetic and algebra
have a certain simplicity that most communications to concatenate ('wi', 'he')
computers lack. In particular, (a) each expression has a
and
nesting subexpression structure, (b) each subexpression
denotes something (usually a number, truth vMue or append (fiflhletterof (romanalphabet),
numerical function), (c) the thing an expression denotes, (threeletterstemof ('winter'))
i.e., its "value", depends only on the values of its sub-
Then he goes on to speak of the equivalence class of
expressions, not on other properties of them.
expressions that can serve as operand or operator to any
It is these properties, and crucially (c), that explains
of the above, and the equivalence class of the resulting
why such expressions are easier to construct and under-
operator/operand combination.
stand. Thus it is (c) that lies behind the evolutionary
trend towards "bigger righthand sides" in place of strings
9. N o t e o n T e r m i n o l o g y
of small, explicitly sequenced assignments and jumps.
When faced with a new notation that borrows the func- ISWIM brings into sharp relief some of the distinctions
tional appearance of everyday algebra, it is (c) that gives that the author thinks are intended by such adjectives as
us a test for whether the notation is genuinely functional procedural, nonproeedural, algorithmic, heuristic, impera-
or merely masquerading. tive, declarative, functional, descriptive. Here is a sug-
The important feature of ISWIM's equivalence rules is gested classification, and one new word.
chat they guarantee the same desirable properties to First, none of these distinctions are concerned with the
ISWlM'S nonimperative subset. We may equate "abstract use of pidgin English rather than pidgin algebra. Any
object" with "equivalence class," and equate "denotes" pidgin algebra can be dressed up as pidgin English to
with "is a member of." Then the properties (g) and (v) please the generals. Conversely, it is a special ease of the
ensures anologies of (c) above. They state that the value thesis underlying ISWlM that any pidgin English that has
of an operator/operand combination depends only on the so far been implemented can be stripped to pidgin algebra.
values of its component subexpressions, not on any other There is nevertheless an important possibility of having
aspects of them. languages that are heuristic on account of their "applica-
Thus conditions (g) and (v) are equivalent to the tive structure" being heuristic.
existence of a dyadic operation among the abstract ob- An important distinction is the one between indicating
jects; we call this operation "application." what behavior, step-by-step, you want the machine to
The terminology of "abstract objects," "denoting" and perform, and merely indicating what outcome you want.
"application" is frequently more convenient than that of P u t that way, the distinction will not stand up to close
equivalence relations. For example, it suggests another investigation. I suggest that the conditions (a-e) in Section
way of characterizing each problem-orientation of ISWlM. 8 are a necessary part of "merely indicating what outcome
We can think of a set of abstract objects with a partially you want." The word "denotative" seems more appro-
defined dyadic "application" operation and a monadic priate than nonproeedural, declarative or functional. The
"designation" operation that associates a "primitive" antithesis of denotative is " i m p e r a t i v e . " Effectively
abstract object with each of some chosen set of names, "denotative" means "can be mapped into ISW~M without
called the "constants" of the special system. using jumping or assignment," given appropriate primi-
Consider for example a programming language that tives.

162 C o m m u n i c a t i o n s of the ACM Voh, me 9 / Number 3 / March, 1966


I t follows that functional programming has little to do (i.e., nonproeedural/procedural) distinction. On the other
with functional notation. I t is a trivial and pointless task hand if limited forms of i can be algorithmized, they still
to rearrange some piece of symbolism into prefixed opera- deserve the term "descriptive." So this factor is also
tors and heavy bracketing. I t is an intellectually demand- independent.
ing activity to characterize some physical or logical
system as a set of entities and functional relations among 10. Eliminating Explielt Sequenelng
them. However, it m a y be less demanding and more Thm'e is a game sometimes played with ALGOL 60
revealing than characterizing the system by a conventional programs--rewriting them so as to avoid using labels and
program, and it m a y serve the same purpose. Having go to statements. I t is part of a more embracing g a m e - -
formulated the model, a specific desired feature of the reducing the extent to which the program conveys its
system can be systematically expressed in functional information by explicit sequencing. Roughly speaking this
notation. E u t other notations m a y be better h u m a n amounts to using fewer and larger statements. The game's
engineering. So the role of functional notation is a standard significance lies in t h a t it frequently produces a more
by which to describe others, and a standby when they fail. " t r a n s p a r e n t " program--easier to understand, debug,
The phrase "describe in terms of" has been used above modify and incorporate into a larger program.
with reference to algorithmic modes of expression, i.e., The author does not argue the ease against explicit
interchangeably with "express in terms of." I n this sense sequencing here. Instead he takes as point of departure the
" 3 + 4" is a description of the number 7 in terms of the observation that the user of any programming language is
numbers 3 and 4. This conflicts with current use of the frequently presented with a choice between using explicit
phrase "descriptive languages," which appears to follow sequencing or some alternative feature of the language.
the logicians. For example, a language is descriptive in Furthermore languages v a r y greatly in the alternatives
which the machine is told they offer. For example, our game is greatly facilitated b y
ALGOL 60'S conditional statements and conditional ex-
P r i n t t h e x s u c h t h a t x 2 -- x - - 6 = 0 /~ x > 0
pressions. So the question considered here is: W h a t other
Such a classification of languages (as opposed to merely such features are there? This question is considered be-
expressions within languages) is useless, and even harmful cause, not surprisingly, it turns out t h a t an emphasis on
b y encouraging stupidly restrictive language design, if it describing things in terms of other things leads to the
excludes the following: same kind of requirements as an emphasis against explicit
P r i n t square ( t h e x s u c h t h a t x ~ -- x -- 6 = 0 A x > 0) sequencing.
Print u(u+l) Though A~GO~ g0 is comparatively favorable to this
whereu = thexsuchth~tx 2- x-- 6 = 0Ax _> 0. activity, it shares with most other current languages
P r i n t f ( 1 , --1, 6) certain deficiencies that severely limit how far the game
where f ( a , b, c) = the x such that ax ~ ÷ bx + c = 0 A x >_0 can go. The author's experiments suggest that two of the
On the other hand it might reasonably exclude most needed features are:
• Treat a listing of expressions as a special ease of the
P r i n t solepositivezeroof (1, --1, - - 6 )
class of expressions, especially in the arms of a conditional
where s o l e p o s i t i v e z e r o o ] happens to be a library function. expression, and in defining a function.
The author therefore suggests that there is a useful • Treat, argument lists as a special ease of lists. So a
distinction that can be made here concerning l a n g u a g e s . triadic function can have its arguments supplied by a
Consider the function i, which operates on a class (or conditional whose arms are 3-listings, or by application of
property) having a sole member (or instance), and trans- a function that produces a 3-list. A similar situation arises
forms it into its sole member. We are interested in whether when a 3-listing occurs as a definee. (Even LIsP trips up
or not a language permits reference to i, with more or here, over lists of length one.)
less restricted domain. To clarify their practical use, here are some of the
For example the above programs become: steps by which m a n y a conventional ALGOL e0 or P L / 1
P r i n t i(p w h e r e p(x)=x2--x--6 A x > O) program can be transformed into an IswI~,r program t h a t
P r i n t square (i(p w h e r e p(x)=x2--x--6 A x > 0)) exploits IswIsl's nonimperative features.
P r i n t u (u--}-1) (1) Rewrite the program so as to use two-dimensional
w h e r e u = i (p w h e r e p(x)=x~--x--6 A x > O) layout and arrows to illuminate the explicit sequencing,
P r i n t f ( 1 , --1, - - 6 )
i.e., as a flowchart with algebraic steps. Rearrange this to
w h e r e f (a, b, c) = i(p w h e r e p(x)=ax2-bbx+c A x > O)
achieve the least confusing network of arrows.
More precisely, the distinction hinges on whether, when (2) Apply the following changes repeatedly wherever
"applicative structure" is imputed to the language, it can they are applicable:
be done without resorting to i, or to primitives in terms of (a) Replace a string of independent assignments by one
which i can be defined. multiple assignment.
This discussion of i reveals the possibility that primitives (b) Replace an assignment having purely local signifi-
might be sensationally nonalgorithmie. So the algorithmic/ cance b y a where-clause.
heuristic distinction cuts across the denotative/imperative (e) Replace procedures by type-procedures (possibly

Volume 9 / Number 3 / March, 1966 Communications of tbe ACM 163


with multiple type), and procedure statements by assign- ~EFERENCES
ment statements. 1. LANDIN, P. J. The mechanical evaluation of expressions.
(d) Replace conditional jumps by conditional state- Comput. J. 6, 4 (Jan. 1964), 308-320.
ments having bigger arms. 2.--. A correspondence between ALGOL 60 arid Church's
(e) Replace a branch whose arms have assignees in L a m b d a - n o t a t i o n . Comm. ACM 8 (1965), 89-101; 158-165.
3. - - . A formal description of ALGOL 60. In Formal Language
common by an assignment with conditional right-hand
Description Languages for Computer Programming, T. B.
side. Steel, Jr. (Ed.), N o r t h Holland, Amsterdam, 1965.
(f) Replace a join by two calls for a procedure. 4. - - . An abstract machine for designers of computing lan-
I t should be observed that translating into ISWlM does guages. (Summary). IFIP65 Proc., P a r t II.
not force such rearrangements; it merely facilitates them.
One interesting observation is that the most recalcitrant DISCUSSION
uses of explicit sequencing appear to be associated with Naur: Ilegarding i n d e n t a t i o n , in many ways I am in s y m p a t h y
success/failure situations and the action needed on failure. with this, but I believe t h a t if it came about t h a t this notation
Section 2 discussed adding ' w h e r e ' to a conventional were used for very wide communication and also publication, you
would regret it because of the kind of rearrangement of manu-
programming language. Theory and experiment both
scripts done in printing, for example. You very frequently run
support the opposite approach, that taken in Llsv, of into the problem t h a t you have a wide w r i t t e n line and then
adding imperative features to a basically nonimperative suddenly you go to the Communications of the ACM and radically,
language. One big advantage is that the resulting language perhaps, you have to compress it. The printer will do this in any
will have a nonimperative subset. way he likes; he is used to having great freedom here and he will
foui up your notation.
The special claim of ISWlM is that it grafts procedural
Landin: I have great experience with this. (Laughter) I t h i n k
notions onto a purely functional base without disturbing I am p r o b a b l y the only person who has run through three versions
many of the desirable properties. The underlying ideas of the galley proofs for the Communications of the ACM. However,
have been presented in [2]. This paper can do no more than I think t h a t next time I could do better, and I t h i n k it is worth
begin the task of explaining their practical significance. looking into. At any rate, the principle t h a t [ have described here
is a good deal better than some t h a t one might t h i n k of ; for example
it does riot depend on details of character width, character by
11. C o n c l u s i o n
c h a r a c t e r - - i t is just as good h a n d w r i t t e n as it is printed. Secondly,
The languages people use to communicate with com- limiting the b r e a d t h of the page, I agree with you, needs more
consideration. By the time I got through with the particular
puters differ in their intended aptitudes, towards either a
example I am talking about, by getting it printed, I had devised
particular application area, or a particular phase of com- what I t h o u g h t was a fairly reasonable method of communicating
puter use (high level programming, program assembly, the principles t h a t have been used in indentation.
job scheduling, etc). They also differ in physical appear- Floyd: A n o t h e r objection t h a t 7[ t h i n k is quite serious to
ance, and more important, in logical structure. The ques- i n d e n t a t i o n is t h a t while it works on the m i c r o - s c a l e - - t h a t is, one
page is all r i g h t - - w h e n dealing with an extensive program, turning
tion arises, do the idiosyncracies reflect basic logical
from one page to the next there is no obvious way of indicating
properties of the situations that are being catered for? how far i n d e n t a t i o n stretches because there is no p r i n t i n g at all to
Or are they accidents of history and personal background indicate how far you have indented. I would like you to keep t h a t
that may be obscuring fruitful developments? This in mind.
question is clearly important if we are trying to predict or Landin: Yes, I agree. In practice I deal with this by first making
the page breaks in sensible places.
imq_uence language evolution.
Floyd: T h a t ' s all right as long as you d o n ' t have an indented
To answer it we must think in terms, not of languages, region which is simply several pages long.
but of families of languages. T h a t is to say we must Landin: Well in t h a t ease the way I did it was to cut down the
systematize their design so that a new language is a point number of carryover levels to about four or five from one page to
chosen from a well-mapped space, rather than a laboriously another. You can at least make it simpler when you are hand-
writing by p u t t i n g some kind of symbols at the b o t t o m of the page
devised construction.
and top of the continuation.
To this end the above paper has marshalled three Floyd: Even if you regard your indentation spaces as characters
techniques of language design: abstract syntax, axiomatiza- there still d o e s n ' t seem to be any w a y - - i n fact, I am fairly sure
tion, and an underlying abstract machine. t h e r e is no w a y - - o f representing the i n d e n t a t i o n conventions
It is assumed that future calls on language development within a phrase-structure grammar.
Landin: Yes, but some indentation conventions can be kept
cannot be forstalled without gener~lizing the alternatives
within phrase structure grammars by introducing two terminal
to explicit sequencing. The innovations of "program- symbols t h a t are grammatically like parentheses, but are textually
points" and the "off-side rule" are directed at two of the like typewriter keys for settling and clearing tabulation positions.
problems (respectively in the areas of semantics and More precisely, the textual representation of the second of these
syntax) that must consequently be faced. symbols can be explained as the following sequence of t y p e w r i t e r
actions: 1) line-feed; 2) back-space as far as the right-most tab
Acknowledgments. The author is grateful for helpful position t h a t is still currently active; 3) clear tab position; and
discussions with W. H. Burge. Wider influences on the 4) do step 2 again.
While this fits some indentation conventions, the olle I propose
investigation of which this paper is one outcome are
is too permissive to be included. For my language I have written
mentioned in [1]. Of these the main ones are the publica- a formal grammar t h a t is not phrase structure and includes one
tions of Curry and of McCarthy. departure t h a t meets this problem.

164 C o m m u n i c a t i o n s o f t h e ACM V o l u m e 9 / N u m b e r 3 / M a r c h , 1966


Leavenworth: I should like to raise the question of eliminating assignment s t a t e m e n t s and it is remarkable what you can do with
explicit jumps, I mean of using recursion as against interation. pure Lisp if you try. If you t h i n k of it in terms of the implementa-
Landin: I t seems to me t h a t there are rather a small number of tions t h a t we know about, the result is generally intolerably
functions which you could use if you were writing a Lisp program inefficient--but then t h a t is where we come to the later questions.
in the places where ordinary programs would use iterations, and How do we implement them? There have not been many at-
t h a t if you were to use these the processor might do as well as if t e m p t s to implement DLs efficiently, I think. Obviously, it can be
you had written a loop. For example, i t e r a t e (m, f, x) might done fairly straightforwardly by an interpretive method, but this
apply f, m times to x with the result f'~(x). This is the simplest is very slow. Methods which compile a runable program run into a
kind of loop I know and the function i t e r a t e provides a purely lot of very interesting problems. It can be done, because DLs are
functional notation for this rather simple kind of loop. If a lot of a subset of ordinary programming languages; any programming
familiar types of loop can be represented by a few functions which language which has sufficient capabilities can cope with them.
could be defined recursively, I think it is sensible to take these as There arc problems, however: we need entities whose value is a
primitive. Another such function is w h i l e (p, f, x) which goes on f u n c t i o n - - n o t the application of a function but a f u n c t i o n - - a n d
applying f to x until the predicate p becomes false. these involve some problems.
Strachey: I must just interpolate here something which is a bit Itow to implement efficiently is another very interesting and
of advertising l suppose. Nearly all the linguistic features, such as difficult problem. It means, I think, recognizing certain subsets
w h e r e and w h i l e and a n d and r e c u r s i v e , t h a t P e t e r Landin has and transforming t h e m from, say, recursions into loops. This can
been talking about are incorporated as an integral p a r t of a pro- certainly be done even if they have been written iu terms of
gramming language being developed at Cambridge and London recursions and not, as P e t e r Landin suggested, in terms of already
called CPL. In fact the w h e r e clauses are a very i m p o r t a n t feature transformed functions like i t e r a t e or w h i l e .
of this" language. I think the last question, "Should DLs be nIixed with impera-
Irons: I have put together a program which uses some of these tive languages?", clearly has the answer t h a t they should, be-
features and which has a s t a n d a r d output which prints the pro- cause at the moment we d o n ' t know how to do everything in pure
gram in an indented manner. If it runs off the right end of the page, DLs. If you mix declarative and imperative features like this, you
it t:rnduces another page to go on the right, and so forth. While may get an apparently large programming language, but the
certainly there are some situations t h a t occur when it would be a important thing is t h a t it should be simple and easy to define a
bit awkward to make the paper go around the room, I have found function. Any language which by mere chance of the way it is writ-
t h a t in practice, by and large it is true t h a t this is a very profit- ten makes it extremely difficult to write compositions of functions
able a ay of operating. and very easy to write sequences of commands will, of course, in an
Strachey: I should like to intervene now and try to initiate a obvious psychological way, hinder people from using descriptive
slightly more general discussion on declarative or descriptive rather t h a n imperative features. In the long run, I think the effect
languages and to try to clear up some points about which there is will delay our understanding of basic similarities, which underlie
considerable confusion. I have called the objects I am trying to different sorts of programs and different ways of solving problems.
discuss DLs because I d o n ' t quite know what they are. Here are Smith: As I understand the declarative languages, there has to
some questions concerning ])Ls: (1) What are DLs? (2) What is be a mixture of imperative and descriptive s t a t e m e n t s or no com-
their relationship to imperative languages? (3) Why do we need p u t a t i o n will take place. If I give you a set of simultaneous equa-
DLs? (4) How can we use t h e m to program? (5) How can we tions, you may say "yes?", meaning well, what am I supposed to
implement them? (6) How can we do this efficiently? (7) Should we do about it, or you may say " y e s " , meaning yes I understand, b u t
mix l)Ls with imperative languages? you d o n ' t do anything until I say "now find the values of the vari-
It seems to me t h a t what I mean by DLs is not exactly what ables." In fact, in a well-developed language there is not just one
other people mean. I inean, roughly, languages which do not question t h a t I can ask but a number of questions. So, in effect, the
contain assignment s t a t e m e n t s or jumps. This is, as a m a t t e r of declarative s t a t e m e n t s are like data which you set aside to be u~ed
fact, not a very clear distinction because you can always disguise later after I give you the imperatives, of which I had a choice,
the assignments and the jumps, for t h a t matter, inside other state- which get the action.
m e a t forms which m~ke t h e m look different. The i m p o r t a n t Strachey: This is a major point of confusion. There are two ideas
characteristic of DLs is t h a t it is possible to produce equivalence here and I t h i n k we should try to sort t h e m out. If you give a
relations, particularly the rule for substitution which P e t e r quadratic equation to a machine and then say " p r i n t the value of
Landin describes as (~) in his paper. T h a t equivalance relation, x", this is not the sort of language t h a t I call a DL. I regard it as
which appears to be essential in ahnost every proof, does not an implicit l a n g u a g e - - t h a t is, one where you give the machine the
hold if you allow assignment statements. The great advantage data and then hope t h a t it will be smart enough to solve the prob-
then of l)Ls is t h a t they give you some hope of proving the equi- lem for you. I t is very different from a language such as LisP,
valence of program transformations and to begin to have a calculus where you define a function explicitly and have only one impera-
for combining and manipulating them, which at the moment we tive. which says "evaluate this expression and print the r e s u l t . "
h a v e n ' t got. Abrahams: I ' v e clone a fair amount of programming in LisP,
I suggest t h a t an answer to the second question is t h a t DLs form and there is one situation which I feel is symptomatic of the times
a subset of all languages. They are an interesting subset, but one when you really do want an imperative language. I t is a situation
which is inconvenient to use unless you are used to it. We need t h a t arises if you are planning to do programming in pure Lisp and
t h e m because at the moment we d o n ' t know how to construct you find t h a t your functions accumulate a large number of argu-
proofs with languages which include imperatives and jumps. ments. This often happens when you have a nmnber of variables
How should we use them to program? I think this is a m a t t e r of and you are actually going through a process and at each stage of
learning a new programnling technique. I am not convinced t h a t the process you want to change the state of the world a little b i t - -
all problems are amenable to programming in DLs but I am not say, to change one of these variables. So you have the choice of
convinced t h a t there are any which are not either; I preserve an either trying to communicate t h e m all, or trying to do some sort
open mind on this point. It is perfectly true t h a t in the process of of essentially imperative action t h a t changes one of them. If you
rewriting programs to avoid labels and jumps, you've gone half t r y to list all of the transitions from state to state and incorporate
the way towards going into 1)Ls. When you have also avoided t h e m into one function, you'll find t h a t this is not really a very
assignment statements, you've gone the rest of the way. With natural kind of function because the natures of the transitions
many problems yeu can, in fact, go the whole way. LisP has no are too different.

V o l u m e 9 / N u m b e r 3 / M a r c h , 1966 C o m m u n i c a t i o n s o f t h e ACM 165


Landin: I said in iny talk t h a t LisP h a d not gone quite all the the chances of being ttble to get all the way descriptive is a b o u t
way and I t h i n k t h a t t h i s difficulty is connected with going all t h e zero, b u t there is a settle a n d we should recognize t h i s scale.
way. If we write a f u n c t i o n definition where the r i g h t - h a n d side is Smilh: I t h i n k t h a t there is a confusion between implicit or
a listing of expressions such as explicit on the one h a n d a n d i m p e r a t i v e or declarative on the
other. These are two s e p a r a t e d i s t i n c t i o n s a n d can occur in all
F ( x ) = E1 , E 2 , E~
c o m b i n a t i o n s . For illstance, an analog c o m p u t e r h a n d l e s ilnplicit
thel~ we can say t h a t this f u n c t i o n will produce a three-list as its declaratives.
result. If llOW we h a v e ~mother f u n c t i o n G(x, y, z) = E, on some Young: I t h i n k it is fairly obvious t h a t y o u ' v e got to h a v e t h e
occasion we m i g h t h a v e an expression s u c h as G(a 2, b 2, c ~) a n d we ability for s e q u e n c i n g i m p e r a t i v e s in a n y sort of practical lan-
often feel t h a t we should be able to write G(F(t)), a n d a n o t h e r guage. T h e r e are m a n y , m a n y cases in which only a certain se-
example which s h o u l d be allowed is quence of operations will produce the logically correct results.
So t h a t we c a n n o t have a purely declarative language, ~ e m u s t
G(a > b --~ E1 , E2 , E3 e l s e E4 , E5 , E6). h a v e a general p u r p o s e one. A possible definition of a declarative
l a n g u a g e is one in which I can m a k e the s t a t e m e n t s (a), (b), (c)
l a m n o t quite sure b u t I t h i n k you can get a r o u n d y o u r problem a n d (d) a n d indicate w h e t h e r I m e a n these to be t a k e n as a se-
by t r e a t i n g every f u n c t i o n as if it were in fact monadic a n d h a d quence or as a set; t h a t is, m u s t t h e y be p e r f o r m e d in a p a r t i c u l a r
a single a r g u m e n t which was t h e list s t r u c t u r e y o u are t r y i n g to order or do I merely m e a n t h a t so long as t h e y are all performed,
process. t h e y m a y be p e r f o r m e d in a n y sequence at a n y t i m e a n d w h e n e v e r
Abrahams: T h i s is a difficulty in o t h e r p r o g r a m m i n g l a n g u a g e s c o n v e n i e n t for efficiency.
too; you c a n n o t define a f u n c t i o n of an indefinite n u m b e r of argu- Strachey: Y o u can, in fact, impose an ordering on a l a n g u a g e
ments. which d o e s n ' t h a v e t h e s e q u e n c i n g of c o m m a n d s by n e s t i n g t h e
Naur: I still d o n ' t u n d e r s t a n d t h i s d i s t i n c t i o n a b o u t an im- f u n c t i o n a l applications.
plicit language. Does it m e a n t h a t w h e n e v e r y o u h a v e s u c h a Landin: T h e p o i n t is t h a t w h e n y o u c o m p o u n d f u n c t i o n a l ex-
l a n g u a g e there is a built-in f e a t u r e for solving e q u a t i o n s ? pressions y o u are i m p o s i n g a p a r t i a l ordering, a n d w h e n y o u de-
Abrahams: I t h i n k t h e p o i n t is w h e t h e r y o u are concerned w i t h compose t h i s into c o m m a n d s y o u are u n n e c e s s a r i l y giving a lot of
the problem or are concerned w i t h t h e m e t h o d of solution of t h e inforination a b o u t sequencing.
problem. Strachey: One i n c o n v e n i e n t t h i n g a b o u t a p u r e l y i m p e r a t i v e
Ingerman: I s u g g e s t t h a t in the s i t u a t i o n where y o u h a v e speci- l a n g u a g e is t h a t y o u h a v e to specify far too m u c h sequencing. F o r
fied e v e r y t h i n g t h a t y o u w a n t to know, t h o u g h t h e exact sequence example, if y o u wish to do a m a t r i x m u l t i p l i c a t i o n , y o u h a v e to do
in which y o u evoke t h e v a r i o u s o p e r a t i o n s to cause t h e solution is n a m u l t i p l i c a t i o n s . If you write an o r d i n a r y p r o g r a m to do this,
left unspecified, t h e n y o u h a v e s o m e t h i n g which is effectively a y o u h a v e to specify t h e exact sequence which t h e y are all to be
descriptive l a n g u a g e ; if y o u h a v e exactly t h e s a m e pieces of in- done. A c t u a l l y , it d o e s n ' t m a t t e r in w h a t order y o u do the m u l t i -
f o r m a t i o n , s u r r o u n d e d w i t h p r o m i s e s t h a t y o u will do t h i s a n d plications so long as y o u a d d t h e m t o g c t h e r in t h e right groups.
t h e n this, t h e n y o u h a v e an i m p e r a t i v e l a n g u a g e . T h e significant T h u s t h e o r d i n a r y sort of i m p e r a t i v e l a n g u a g e imposes m u c h too
p o i n t is t h a t it is n o t all or n o t h i n g b u t there is a scale a n d while m u c h sequencing, which m a k e s it v e r y difficult to r e a r r a n g e if y o u
it is p r o b a b l y p r e t t y simple to go all t h e way with i m p e r a t i v e s , w a n t to m a k e t h i n g s more efficient.

Syntax-Directed Interpretation of Classes of Pictures


R. N a r a s i m h a n
Tata Institute of Fundamental Research, Bombay, India

A descriptive scheme for classes of pictures based on label- 1. I n t r o d u c t i o n


ing techniques using parallel processing algorithms was pro- Recent active interest in the area of graphic data-based
posed by the author some years ago. Since then much work "conversation programs ''1 has pointed up the urgent need
has been done in applying this to bubble chamber pictures. for sophisticated picture processing models in a convincing
The parallel processing simulator, originally written for an manner. Kitsch [2] has very ably argued that "from the
IBM 7094 system, has now been rewritten for a CDC 3600 point of view of computer information processing, the
system. This paper describes briefly the structure of syntactic important fact about natural language text and pictures
descriptive models by considering their specific application to is that both have a syntactic structure which is capable of
bubble chamber pictures. How the description generated in being described to a machine and of being used for purposes
this phase can be embedded in a larger "conversation" pro- of interpreting the information within a data processing
gram is explained by means of a certain specific example that system." " T h e problem of how to describe the syntactic
has been worked out. A partial generative grammar for structure of text and pictures and how to use the syntactic
"handwritten" English letters is given, as are also a few com- description in interpreting the text and pictures" has been
puter-generated outputs using this grammar and the parallel tackled in a certain specific way by Kirsch and his co-
processing simulator mentioned earlier. workers. (For other references, see [9].)
1 See [9] for a good s u r v e y of work a c c o m p l i s h e d a n d in progress
P r e s e n t e d at an A C M P r o g r a m m i n g L a n g u a g e s a n d P r a g m a t i c s in this area, as well as in t h e general field of " E n g l i s h q u e s t i o n -
Conference, San D i m a s , California, A u g u s t , 1965. answer" programs.

166 Communications o f t h e ACM V o l u m e 9 / N u m b e r 3 / M a r c h , 1966

Вам также может понравиться