0% found this document useful (0 votes)
291 views13 pages

Algorithm Logic + Control PDF

Uploaded by

tom-844468
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
291 views13 pages

Algorithm Logic + Control PDF

Uploaded by

tom-844468
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 13

S.

Programming J. J. Horning
1
Languages Editor

Algorithm =
Logic + Control
Robert Kowalski
Imperial College, London

An algorithm can be regarded as consisting of a


. logic component, which specifies the knowledge to be
used in solving problems, and a control component,
which determines the problem-solving strategies by
means of which that knowledge is used. The logic
component determines the meaning of the algorithm
whereas the control component only affects its
effkiency. The effkiency of an algorithm can often be
improved by improving the control component without
changing the logic of the algorithm. We argue that
computer programs would be more often correct and
more easily improved and modified if their logic and
control aspects were identified and separated in the
program text.
Key Words and Phrases: control language, logic
programming, nonprocedural language, programming
methodology, program specification, relational data
structures
CR Categories: 3.64, 4.20, 4.30, 5.21, 5.24

Introduction

Predicate logic is a high level, human-oriented lanl


guage for describing problems and problem-solving
methods to computers. In this paper, we are concerned
not with the use of predicate logic as a programming
language in its own right, but with its use as a tool for
the analysis of algorithms. Our main aim will be to study
ways in which logical analysis can contribute to improv-
ing the structure and efficiency of algorithms.
Permission to copy without fee all or part of this material is
granted provided that the copies are not made or distributed for direct
Eommer&al advantage, the ACM copyright notice and the title of the
publication and its date appear, and notice is given that copying is by
permission of the Association for Computing Machinery. To copy
otherwise, or to republish, requires a fee and/or specific permission.
This research was supported
-- by- a grant from the Science Research
Council.
Author’s address: R.A. Kowalski, Dept. of Computing and Con*
trol, Imperial College of Science and Technology, 180 Queens Gate,
London SW7 2BZ, England.
0 1979 ACM OOOl-0782/79/0700-0424 $00.75.

Communications July 1979


of Volume 22
the ACM Number 7
The notion that computation = controlled deduction presses the knowledge which can be used in solving
was first proposed by Pay Hayes [19] and more recently problems and the control component determines the way
by Bibel [2] and Vaughn-Pratt [31]. A similar thesis that in which that knowledge can be used. The distinction
database systems should be regarded as consisting of a between logic and control is not wholly unambiguous.
relational component, which defines the logic of the data, The same algorithm A can often be analyzed in different
and a control component, which stores and retrieves it, ways.
has been successfully argued by Codd [10]. Hewitt's A = L~ + C~.
argument [20] for the programming language PLAN- A = L z + C2.
NER, though generally regarded as an argument against
logic, can also be regarded as an argument for the thesis One analysis might include in the logic component what
that algorithms be regarded as consisting of both logic another analysis includes in the control component. In
and control components. In this paper we shall explore general, we prefer an analysis which places the greatest
some of the useful consequences of that thesis. burden for achieving efficiency on the control compo-
We represent the analysis of an algorithm A into a nent. Such an analysis has two advantages: (1) the logic
logic component L, which defines the logic of the algo- component can afford to be a clearer and more obviously
rithm, and a control component C, which specifies the correct statement of the problem and the knowledge
manner in which the definitions are used, symbolically which can be used in its solution and (2) the control
by the equation component assumes greater responsibility for the effi-
ciency of the algorithm, which consequently can be more
A=L+C. readily improved by upgrading the efficiency of the
control.
Algorithms for computing factorials are a simple exam-
It is the intention that this paper should be self-
ple. The definition of factorial constitutes the logic com-
contained. The first part, accordingly, introduces the
ponent of the algorithms:
clausal form of predicate logic and defines the top-down
1 is the factorial o f 0; and bottom-up interpretations of Horn clauses. The body
u is the factorial o f x + 1 ~ v is the factorial o f x a n d u is v times of the paper investigates the following decomposition of
x+l.
algorithms into their various components.
The definition can be used bottom-up to derive a se-
quence of assertions about factorial or it can be used top-
down to reduce the problem of computing the factorial
of x + 1 to the subproblems of computing the factorial
cLOgic ./
//•ithm \
of x and multiplying the result by x + 1. Different ways
of using the same definition give rise to different algo-
Abstract Oefinitk)ns of ~,~Control component
rithms. Bottom-up use of the definition behaves like procedure data -structures
definitions represented by / / ~
iteration. Top-down use behaves like recursive evalua-
tion. Direction Strategy for Strategy for Scheme for
The manner in which the logic component is used to (e.g. top-down execution of investigating storing data
or bottorn-up) i)rocedure alternative represented
solve problems constitutes the control component. As a calls (e.g. procedures relationally
sequential or
first approximation, we restrict the control component C parallel )

to general-purpose problem-solving strategies which do We study the affect of altering each of the above com-
not affect the meaning of the algorithm as it is deter- ponents of an algorithm. The final section of the paper
mined by the logic component L. Thus different algo- introduces a graphical notation for expressing, more
rithms A1 and Az, obtained by applying different meth- formally than in the rest of the paper, certain kinds of
ods of control Cx and C2 to the same logic definitions L, control information. Much of the material in this paper
are equivalent in the sense that they solve the same has been abstracted from lecture notes [23] prepared for
problems with the same results. Symbolically, if A1 = the advanced summer school on foundations of comput-
L + C1 and Az = L + C2, then A1 and Az are equivalent. ing held at the Mathematical Centre in Amsterdam in
The relationship of equivalence between algorithms, be- May 1974.
cause they have the same logic, is the basis for using
logical analysis to improve the efficiency of an algorithm
Notation
by retaining its logic but improving the way it is used. In
particular, replacing bottom-up by top-down control We use the clausal form of predicate logic. Simple
often (but not always) improves efficiency, whereas re- assertions are expressed by clauses:
placing top-down sequential solution of subproblems by Father (Zeus,Ares) ~--
top-down parallel solution seems never to decrease effi- Mother (Hera, Ares)
ciency. Father (Ares, Harmonia) ~-
Mother (Semele, Dionisius)
Both the logic and the control components of an Father (Zeus, Dionisius)
algorithm affect efficiency. The logic component ex- etc.
425 Communications July 1979
of Volume 22
the ACM Number 7
Here Father (x, y) states that x is the father of y and .... An are conditions of the clause and the atoms B1.... ,
Mother (x, y) states that x is the mother o f y . Bm are alternative conclusions of the clause. I f the clause
Clauses can also express general conditional propo- contains the variables Xl ..... Xk then interpret it as stating
sitions: that
Female (x) * - Mother (x, y) for all xl ..... xk
Male (x) ,--- Father (x, y) B1 or ... or Bm if A1 and ... and An.
Parent (x, y) ~ Mother (x, y)
Parent (x, y) ~-- Father (x, y). I f n = 0, then interpret it as stating unconditionally that
for all x~, .... xk
These state that B~ or ... or Bin.
x is f e m a l e / f x is mother of y,
I f m = 0, then interpret it as stating that
x is m a l e / f x is father of y,
x is parent o f y t f x is mother of y, and for no x~, ..., xk
x is parent o f y t f x is father ofy. A ~ and ... and A n.

The arrow ~ is the logical connective "if"; " x " and "y" I f m = n = O, then interpret the clause as a sentence
are variables representing any individuals; "Zeus," which is always false.
"Ares," etc. are constant symbols representing particular An atom (or atomic formula) is an expression of the
individuals; "Father," "Mother," "Female," etc. are form
predicate symbols representing relations among individ- P (h ..... tn)
uals. Variables in different clauses are distinct even if
they have the same names. where P is an n-place predicate symbol and t~, ..., t,, are
A clause can have several joint conditions or several terms. Interpret the atom as asserting that the relation
alternative conclusions. Thus called P holds a m o n g the individuals called t~. . . . . tn.
A term is a variable, a constant symbol, or an expres-
Grandparent (x, y) ,--- Parent (x, z), Parent (z, y)
Male (x), Female (x) ~-- Parent (x, y) sion of the form
Ancestor (x, y) ,--- Parent (x, y)
f (h . . . . . tn)
Ancestor (x, y) ~ Ancestor (x, z), Ancestor (z, y)
where f is an n-place function symbol and tl . . . . . tn are
where x, y, and z are variables, state that for all x, y, and terms.
g
The sets of predicate symbols, function symbols, con-
x is grandparent o f y / f x is parent of z a n d z is parent of y; stant symbols, and variables are any mutually disjoint
x is male or x is female t f x is parent of y; sets. (By convention, we reserve the lower case letters u,
x is ancestor o f y t f x is parent of y; and
v, w, x, y, z, with or without adornments, for variables.
x is ancestor o f y t f x is ancestor of z a n d z is ancestor ofy.
The type o f other kinds of symbols is identified by the
Problems to be solved are represented by clauses position they occupy in clauses.)
which are denials. The clauses Clausal form has the same expressive power as the
~-- Grandparent (Zeus, Harmonia) standard formulation of predicate logic. All variables Xl,
Ancestor (Zeus, x) .... Xk which occur in a clause C are implicitly governed
•,-- Male (x), Ancestor (x, Dionisius) by universal quantifiers Vxa . . . . . Vxk (for all xl and ...
and for all Xk). Thus C is an abbreviation for
where x is a variable state that
Vx~ ... Vxh C.
Zeus is not grandparent of Harmonia,
for no x is Zeus ancestor of x, and The existential quantifier 3 x (there exists an x) is avoided
for no x is x male a n d is x an ancestor of Dionisius.
by using constant symbols or function symbols to n a m e
A typical problem-solver (or theorem-prover) reacts individuals. For example, the clauses
to a denial by using other clauses to try to refute the Father (dad (x), x) ~ H u m a n (x)
denial. I f the denidl contains variables, then it is possible Mother (mum (x), x) <-- H u m a n (x)
to extract from the refutation the values of the variables
state that for all humans x, there exists an individual,
which account for the refutation and represent a solution
called dad (x), who is father of x, and there exists an
of the problem to be solved. In this example, different
individual, called m u m (x), who is mother of x.
refutations of the second denial find different x of which
Although the clausal form has the same power as the
Zeus is the ancestor:
standard form, it is not always as natural or as easy to
x = Ares, x = Harmonia, x = Dionisius. use. The definition of subset is an example: "x is a subset
More generally, we define clauses and their interpre- of y if for all z, z belongs to y if z belongs to x." The
tation as follows. A clause is an expression of the form definition in the standard form of logic

Bh...,Bm*--AI,...,A,~ re, n-->0, xC_y~--Vz[z¢y'~-z¢x]

where B~. . . . . Bin, A1 . . . . . An are atoms. The atoms A~, _is a direct translation o f the English. The clausal form of
426 Communications July 1979
of Volume 22
the ACM Number 7
the definition can be systematically derived from the The problem of showing that Zeus is a grandparent
standard form. It can take considerable effort, however, of Harmonia can be solved either top-down or bottom-
to recognize the notion of subset in the resulting pair of up. Reasoning bottom-up, we start with the assertions
clauses: Father (Zeus, Ares) ~--
x C__y, arb (x, fl) ~ x Father (Ares, Harmonia) ~--
x CC_y ~-- arb ( x , y ) ~ y .
and use the clause Parent (x, y) ~-- Father (x, y) to derive
(Here we have used infix notatio 9 for predicate symbols, new assertions
writing xPy instead of P(x, y).) Parent (Zeus,Ares)
In this paper, we shall avoid the awkwardness of the Parent (Ares, Harmonia) ~--
clausal definition of subset by concentrating attention on
clauses which contain at the most one conclusion. Such Continuing bottom-up we derive, from the definition of
clauses, called Horn clauses, can be further classified into grandparent, the new assertion
four kinds: Grandparent (Zeus, Harmonia) *--
assertions (of the form) B which matches the original goal.
procedure declarations (of the form) B *---A1 .... , An Reasoning top-down, we start with the original goal
denials ~-- A~, ..., A,,
a n d contradiction ~--
of showing that Zeus is a grandparent of Harmonia
Grandparent (Zeus, Harmonia)
Assertions can be regarded as the special case of proce-
dure declarations where n = 0. and use the definition of grandparent to derive two new
The Horn clause subset of logic resembles conven- subgoals
tional programming languages more closely than either ,--- Parent (Zeus, z), Parent (z, Harmonia)
the full clausal or standard forms of logic. For example,
the notion of subset can be defined recursively by means by denying that any z is both a child of Zeus and a
of Horn clauses: parent of Harmonia. Continuing top-down and consid-
ering both subgoals (either one at a time or both simul-
x C y "~- E m p t y (x)
x _ y ~-- Split (x, z, x ' ) z ~y, x ' _ y .
taneously), we use the clause Parent (x, y) *--
Father (x, y) to replace the subproblem Parent (Zeus, z)
Here it is intended that the relationship Empty (x) holds by Father (Zeus, z) and the subproblem Parent (z, Har-
when x is empty, and Split (x, z, x') holds when x monia) by Father (z, Harmonia). The newly derived
consists of element z and subset x'. Horn clauses used in subproblems are solved compatibly by assertions which
this way, to define relations recursively, are related to determine "Ares" as the desired value of z.
Herbrand-Grdel recursion equations as described by In both the top-down and bottom-up solutions of the
Kleene [22], elaborated by McCarthy [28], employed for grandparent problem, we have mentioned the derivation
program transformation by Burstall and Darlington of only those clauses which directly contribute to the
[13], and augmented with control annotations by eventual solution. In addition to the derivation of rele-
Schwarz [34]. vant clauses, it is often unavoidable, during the course of
searching for a solution, to derive assertions or subgoals
which do not contribute to the solution. For example, in
the bottom-up search for a solution to the grandparent
Top-Down and Bottom-Up Interpretations of Horn problem, it is possible to derive the irrelevant assertions
Clauses Parent (Hera, Ares) ~--
Male (Zeus}
A typical Horn clause problem has the form of In the top-down search it is possible to replace the
subproblem Parent (Zeus, z) by the irrelevant and un-
(1) a set of clauses which defines a problem domain
solvable subproblem Mother (Zeus, z).
and
There are both proof procedures which understand
(2) a theorem which consists of (a) hypotheses repre-
logic top-down (e.g. model elimination [17], SL-resolu-
sented by assertions A1 ~ . . . . . An ~-- and (b) a
tion [20], and interconnectivity graphs [35]) as well as
conclusion which is negated and represented by a
ones which understand logic bottom-up (notably hyper-
denial ~--B1 ..... Bin.
resolution [35]). These proof procedures operate with the
In top-down problem-solving, we reason backwards clausal form of predicate logic and deal with both Horn
from the conclusion, repeatedly reducing goals to clauses and non-Horn clauses. Among clausal proof
subgoals until eventually all subgoals are solved directly procedures, the connection graph procedure [25] is able
by the original assertions. In bottom-up problem-solving, to mix top-down and bottom-up reasoning. Among non-
we reason forwards from the hypotheses, repeatedly clausal proof procedures, Gentzen systems [ 1] and Bled-
deriving new assertions from old ones until eventually soe's related natural deduction systems [5] provide facil-
the original goal is solved directly by derived assertions. ities for mixing top-down and bottom-up reasoning.
427 Communications July 1979
of Volume 22
the ACM Number 7
The terminology "top-down" and "bottom-up" ap- by the first procedure call in the goal statement
plied to proof procedures derives from our investigation
~-- Father (Zeus, z), Parent (z, Harmonia)
of the parsing problem formulated in predicate logic [23,
25]. Given a grammar formulated in clausal form, top- derives the new goal statement
down reasoning behaves as a top-down parsing algo-
rithm and bottom-up reasoning behaves as a bottom-up ~-- Parent (Ares, Harmonia).
algorithm. David Warren (unpublished) has shown how
to define a general proof procedure for Horn clauses, The matching substitution
which when applied to the parsing problem, behaves like z = Ares
the Earley parsing algorithm [16].
transmits output only. In general, however, a single
procedure invocation may transmit both input and out-
put.
The Procedural Interpretation of Horn Clauses The top-down interpretation of Horn clauses differs
in several important respects from procedure invocation
The procedural interpretation is the top-down inter- in conventional programming languages:
pretation. A clause of the form
(1) The body of a procedure is a set rather than a
B~----A~..... A. n>_O
sequence of procedure calls. This means that pro-
is interpreted as a procedure. The name of the procedure cedure calls can be executed in any sequence or in
is the conclusion B which identifies the form of the parallel.
problems which the procedure can solve. The body of (2) More than one procedure can have a name which
the procedure is the set o f procedure calls Ai. A clause of matches a given procedure call. Finding the "right"
the form procedure is a search problem which can be solved
*--Bl ..... Bm m-->O by trying the different procedures in sequence, in
parallel, or in other more sophisticated ways.
consisting entirely of procedure calls (or problems to be (3) The input-output arguments of a procedure are not
solved) behaves as a goal statement. A procedure fixed but depend upon the procedure call. A pro-
B,---A1 ..... A, cedure which tests that a relationship holds among
given individuals can also be used to f i n d individ-
is invoked by a procedure call Bi in the goal statement: uals for which the relationship holds.
(1) By matching the call Bi with the name B of the
procedure;
(2) By replacing the call Bi with the body of the pro- The Relationship Between Logic and Control
cedure obtaining the new goal statement
B1 . . . . . Bi-l, A1, ..., An, Bi+l .... , B m In the preceding sections we considered alternative
and; top-down and bottom-up control strategies for a fixed
(3) By applying the matching substitution 0 predicate logic representation of a problem-domain. Dif-
ferent control strategies for the same logical representa-
(B1 . . . . . Bi-1, A1 . . . . . An, Bi+l . . . . . Bin) O. tion generate different behaviors. However, information
(The matching substitution 0 replaces variables by terms about a problem-domain can be represented in logic in
in a manner which makes B and Bi identical: BO = B,O.) different ways. Alternative representations can have a
The part of the substitution 0 which affects variables in more significant effect on the efficiency of an algorithm
the original procedure calls B~..... Bm transmits output. than alternative control strategies for the same represen-
The part which affects variables in the new procedure tation.
calls A1 . . . . . An transmits input. Consider the problem of sorting a list. In one repre-
For example, ihvoking the grandparent procedure by sentation, we have the definition
the procedure call in
sorting x givesy ~---yis a permutationof x, y is ordered.
Grandparent (Zeus, Harmonia)
derives the new goal statement (Here we have used distributed infix notation for predi-
cate symbols, writing P l x l P z x 2 ... PnX,P,+I instead of
Parent (Zeus,z), Parent (z, Harmonia). P(x1 . . . . . Xn) where the Pi (possibly empty) are parts of
The matching substitution P.) As described in [24], different control strategies ap-
plied to the definition generate different behaviors. None
x = Zeus

y = Harmonia of these behaviors, however, is efficient enough to qualify


as a reasonable sorting algorithm. By contrast, even the
transmits input only. Invoking the assertional procedure simplest top-down, sequential control behaves efficiently
Father (Zeus, Ares) with the logic of quicksort [17]:
4211 Communications July 1979
of Volume 22
the ACM Number 7
sorting x gives y ~-- x is empty, y is empty when the second goal fails. Another example of such
sorting x g i v e s y ~-- first element o f x is x~, rest o f x is xe, information might be that one procedure
partitioning x~ by x~ gives u and v,
sorting u gives u', pe--Q
sorting v gives v',
a p p e n d i n g w to u' gives y, is more likely to solve P than another procedure
first element of w is xl, Pe-R.
rest of w is v'.
This kind of information is common in fault diagnosis
where, on the basis of past experience, it might be known
Like the predicates "permutation" and "ordered" before,
that symptom P is more likely to have been caused by Q
the predicates "empty," "first," "rest," "partitioning,"
than R.
and "appending" can be defined independently from the
Notice, in both of these examples, that the control
definition of "sorting." (Partitioning x2 by Xl is intended
information is problem-specific. However, if the control
to give the list u of the elements of x2 which are smaller
information is correct and the interpreter is correctly
than or equal to xl and the list v of the elements of x2
implemented, then the control information should not
which are greater than xl.)
affect the meaning of the algorithm as determined by its
Our thesis is that, in the systematic development of
logic component.
well-structured programs by successive refinement, the
logic component needs to be specified before the control
component. The logic component defines the problem-
domain-specific part of an algorithm. It not only deter-
Data Structures
mines the meaning of the algorithm but also influences
the way the algorithm behaves. The control component
specifies the problem-solving strategy. It affects the be-
In a well-structured program it is desirable to separate
havior of the algorithm without affecting its meaning.
data structures from the procedures which interrogate
Thus the efficiency of an algorithm can be improved by
and manipulate them. Such separation means that the
two very different approaches, either by improving the
representation of data structures can be altered without
logic component or by leaving the logic component
altering the higher level procedures. Alteration of data
unchanged and improving the control over its use.
structures is a way of improving algorithms by replacing
Bibel [3, 4], Clark, Darlington, Sickel [7, 8, 9], and
an inefficient data structure by a more effective one. In
Hogger [21] have developed strategies for improving
a large, complex program, the demands for information
algorithms by ignoring the control component and using
made on the data structures are often fully determined
deduction to derive a new logic component. Their meth-
only in the final stages of the program design. By sepa-
ods are similar to the ones used for transforming formal
rating data structures from procedures, the higher levels
grammars and programs expressed as recursion equa-
of the program can be written before the data structures
tions [13].
In a logic programming system, specification of the have been finally decided.
The data structures of a program are already included
control component is subordinate to specification of the
in the logic component. Lists for example can be repre-
logic component. The control component can either be
expressed by the programmer in a separate control-spec- sented by terms, where
ifying language, or it can be determined by the system nil n a m e s for the empty list and
itself. When logic, is used, as in the relational calculus, cons ( x , y ) names the list with first element x and rest which is
another list y.
for example [11], to specify queries for a database, the
control component is determined entirely by the system. Thus the term
In general, the higher the level of the programming cons (2, cons (1, cons (3, nil)))
language and the less advanced the level of the program-
mer, the more the system needs to assume responsibility names the three-element list consisting of the individuals
for efficiency and to exercise control over the use of the 2, 1, 3 in that order.
information which it is given. The data-structure-free definition of quicksort in the
The provision of a separate control-specifying lan- preceding section interacts with the data structure for
guage is more likely to appeal to the more advanced lists via the definitions
programmer. Greater efficiency can often be achieved nil is empty ~--
when the programmer is able to communicate control first element of cons (x, y) is x
information to the computer. Such information might rest of cons (x, y) is y
be, for example, that in the relation F(x, y) the value of If the predicates "empty," "first," and "rest" are elimi-
y is a function of the argument x. This could be used by nated from the definition of quicksort by a preliminary
a backtracking interpreter to avoid looking for another bottom-up deduction, then the original data-structure-
solution to the first goal in the goal statement free definition can be replaced by a definition which
•--F(A,y), G(y) mixes the data structures with the procedures
429 Communications July 1979
of V o l u m e 22
the A C M Number 7
sorting nil gives nil is obtained from the original algorithm
sorting cons (x~, x2) g i v e s y ~ partitioning x2 by x~ gives u and v,
sorting u gives u', A~ = L + C1
sorting v gives v',
a p p e n d i n g to u' the list cons (x~, v') gives by replacing one control strategy by another leaving the
y.
logic of the algorithm unchanged.
Clark and Tarnlund [6] show how to obtain a more For example, executing procedure calls in sequence,
efficient version of quicksort from the same abstract the procedure
definition with a different data structure for lists. sorting x gives y ~-- y is a permutation of x, y is ordered
Comparing the original data-structure-free definition
with the new data-structure-dependent one, we notice first generates permutations of x and then tests whether
another advantage of data-structure-independence: the they are ordered. Executing procedure calls as corou-
fact that, with well-chosen names for the interfacing tines, the procedure generates permutations, one element
procedures, data-structure-independent programs are at a time. Whenever a new element is generated, the
virtually self-documenting. For the conventional pro- generation of other elements is suspended while it is
gram which mixes procedures and data structures, the determined whether the new element preserves the or-
programmer has to provide documentation, external to deredness of the existing partial permutation. This ex-
the program, which explains the data structures. For the ample is discussed in more detail elsewhere [24].
well-structured, data-independent program, such docu- Similarly the procedure calls in the body of the
mentation is provided by the interfacing procedures and quicksort definition can be executed either in sequence
is part of the program. or as coroutines or parallel processes. Executed in par-
Despite the arguments for separating data structures allel, partitioning the rest of x can be initiated as soon as
and procedures, programmers mix them for the sake of the first elements of the rest are generated. Sorting the
run-time efficiency. One way of reconciling efficiency output, u and v, of the partitioning procedure can begin
with good program structure is to use the macroexpan- and proceed in parallel as soon as the first elements of u
sion facilities provided in some programming languages. and v are generated. Appending can begin as soon as the
Macroexpansion flattens the hierarchy of procedure calls first elements of u', the sorted version of u, are known.
before run-time and is the computational analog of the Philippe Roussel [33] has investigated the problem of
bottom-up and middle-out reasoning provided by some showing that two trees have the same lists of leaves:
theorem-proving systems. Macro-expansion is also a fea- x and y have the same leaves ~ the leaves of x are z,
ture of the program improving transformations devel- the leaves o f y are z',
oped by Burstall and Darlington. z and z' are the same
Notice how our terminology conflicts with Wirth's x and x are the same ~--
[39]: program = algorithm + data structure. In our Executing procedure calls in the sequence in which they
terminology the definition of data structures belongs to are written, the procedure first constructs the li.st z of
the logic component of algorithms. Even more confus- leaves of x, then constructs the list z' of leaves of y, and
ingly, we would like to call the logic component of finally tests that z and z' are the same. Roussel has
algorithms "logic programs." This is because, given a argued that a more sophisticated algorithm is obtained,
fixed Horn clause interpreter, the programmer need only without changing the logic of the algorithm, by executing
specify the logic component. The interpreter can exercise the same procedure calls as communicating parallel pro-
its own control over the way in which the information in cesses. When one process finds a leaf, it suspends activity
the logic component is used. Of course, if the program- and waits until the other process finds a leaf. A third
mer knows how the interpreter behaves, then he can process then tests whether the two leaves are identical. If
express himself in a manner which is designed to elicit the leaves are identical, then the first two processes
the behavior he desires. resume. If the leaves are different, then the entire pro-
cedu~e fails and terminates.
The parallel algorithm is significantly more efficient
than the simple sequential one when the two trees have
Top-Down Execution of Procedure Calls
different lists of leaves. In this case the sequential algo-
rithm recognizes failure only after both lists have been
completely generated. The parallel algorithm recognizes
In the simplest top-down execution strategy, proce-
dure calls are executed one at a time in the sequence in failure as soon as the two lists begin to differ.
The sequential algorithm, whether it eventually suc-
which they are written. Typically an algorithm can be
ceeds or fails, constructs the intermediate lists z and z'
improved by executing the same procedure calls either
which are no longer needed when the procedure termi-
as coroutines or as communicating parallel processes.
nates. In contrast, the parallel algorithm can be imple-
The new algorithm
mented in such a way that it compares the two lists z
A 2 = L + C2 and z', one element at a time, without constructing and
430 Communications July 1979
of V o l u m e 22
the A C M Number 7
saving the initial lists of those elements already compared is both more intelligible and efficient when interpreted
and found to be identical. bottom-up:
In a high level programming language like SIMULA
it is possible to write both the usual sequential algorithms the 0 - t h F i b o n a c c i n u m b e r is 1 ~--
the l - t h F i b o n a c c i n u m b e r is 1
and also coroutining ones in which the programmer
the u + 2 - t h F i b o n a c c i n u m b e r is x
controls when coroutines are suspended and resumed. the u + l - t h F i b o n a c c i n u m b e r is y,
But, as in other conventional programming languages, the u - t h F i b o n a c c i n u m b e r is z,
logic and control are inextricably intertwined in the y plus z is x.
program text. It is not possible to change the control
strategy of an algorithm without rewriting the program (Here the terms u + 2 and u + 1 are expressions to be
entirely. evaluated rather than terms representing data structures.
The arguments for separating logic and control are This notation is an abbreviation for the one which has
like the ones for separating procedures and data struc- explicit procedure calls in the body to evaluate u + 2
tures. When procedures are separated from data struc- and u + 1.)
tures, it is possible to distinguish (in the procedures) Interpreted top-down, finding the u + l-th Fibonacci
what functions the data structures fulfill from the manner number reintroduces the subproblem of finding the u-th
in which the data structures fulfill them. When logic is Fibonacci number. The top-down computation is a tree
separated from control, it is possible to distinguish (in whose nodes are procedure calls, the number of which is
the logic) what the program does from how the program an exponential function of u. Interpreting the same
does it (in the control). In both cases it is more obvious definition bottom-up generates the sequence of assertions
what the program does, and therefore it is easier to
the 0-th Fibonacci number is 1 ~--
determine whether it correctly does what it is intended the l-th Fibonacci number is 1
to do. the 2-th Fibonacci number is 2 ~--
The work of Clark and Tarnlund [6] (on the correct- the 3-th Fibonacci number is 3 ~--
ness of sorting algorithms) and the unpublished work of etc.

Warren and Kowalski (on the correctness of plan-for-


The number of computation steps is a linear function of
mation algorithms) supports the thesis that correctness l/.
proofs are simplified when they deal only with the logic
In this example, bottom-up execution is also less
component and ignore the control component of algo-
space-consuming than top-down execution. Top-down
rithms. Similarly, ignoring control simplifies the deriva-
execution uses space which is proportional to u, whereas
tion of programs from specifications [3, 4, 7, 8, 9, 21].
bottom-up execution needs to store only two assertions
and can use a small constant amount of storage. That
only two assertions need to be stored during bottom-up
Top-Down vs. Bottom-Up Execution execution is a consequence of the deletion rules for the
connection graph proof procedure [25]. As Bibel ob-
Recursive definitions are common in mathematics serves, the greater efficiency of bottom-up execution
where they are more likely to be understood bottom-up disappears if similar procedure calls are executed top-
rather than top-down. Consider, for example, the defi- down only once. This strategy is, in fact, an application
nition of factorial of Warren's generalization of the Earley parsing algo-
T h e factorial o f 0 is 1 ~-- rithm.
T h e factorial o f x is u <--y plus 1 is x,
the factorial o f y is v,
x times v is u.
Strategies for Investigating Alternative Procedures
The mathematician is likely to understand such a defi-
nition bottom-up, generating the sequence of assertions When more than one procedure has a conclusion
The factorial of 0 is 1 <--- which matches a given procedure call, the logic compo-
The factorial of 1 is 1 <-- nent does not determine the manner in which the alter-
The factorial of 2 is 2 <-- native procedures are investigated. Sequential explora-
The factorial of 3 is 6 <--
tion of alternatives gives rise to iterative algorithms.
etc.
Although in theory all iterations can be replaced by
Conventional programming language implementations top-down execution of recursive definitions, in practice
understand recursions top-down. Programmers, accord- some iterations might better be thought of as bottom-up
ingly, tend to identify recursive definitions with top- execution of recursive definitions (as in the definition of
down execution. factorial). Other iterations can better be regarded as
An interesting exception to the rule that recursive controlling a sequential search among alternatives.
definitions are more efficiently executed top-down than Assume, for example, that we are given data about
bottom-up is the definition o f a Fibonacci number, which individuals in the parenthood relationship:
431 Communications J u l y 1979
of V o l u m e 22
the A C M Number 7
Parent (Zeus, Ares) clause programs. Several PROLOG programs employ a
Parent (Hera, Ares) ~-
relational representation of data. Notable among these
Parent (Ares, Harmonia) ~--
Parent (Semele, Dionisius) ~- are Warren's [37] for plan-formation and those for drug
Parent (Zeus, Dionisius) analysis written in the Ministry of Heavy Industry in
etc. Budapest [14].
Suppose that the problem is to find a grandchild of Zeus
Two Analyses of Path-Finding Algorithms
,--- Grandparent (Zeus, u)

using the definition of grandparent. In a conventional The same algorithm A can often be analyzed in
programming language, the parenthood relationship different ways:
might be stored in a two-dimensional array. A general A =LI+ CI=L2+ 6"2.
procedure for finding grandchildren (given grandpar-
Some of the behavior determined by the control com-
ents) might involve two iterative loops, one nested inside
ponent C1 in one analysis might be determined by the
the other, with a jump out when a solution has been
logic component L2 in another analysis. This has signif-
found. Similar behavior is obtained by interpreting the
icance for understanding the relationship between pro-
grandparent procedure top-down, executing procedure
gramming style and execution facilities. In the short term
calls one at a time, in the sequence in which they are
sophisticated behavior can be obtained by employing
written, trying alternative procedures (assertions in this
simple execution strategies and by writing complicated
case) one at a time in the order in which they are written.
programs. In the longer term the same behavior may be
The logical analysis of the conventional iterative algo-
obtained from simpler programs by using more sophis-
rithm does not concern recursion but involves sequential
ticated execution strategies.
search through a space of alternatives. The sequential
The path-finding problem illustrates a situation in
search strategy is identical to the backtracking strategy
which the same algorithm can be analyzed in different
for executing nondeterministic programs [ 18].
ways. Consider the problem of finding a path from A to
Representation of data by means of clauses, as in the
Z in the following directed graph.
family relationships example, rather than by means of
terms, is similar to the relational model of databases D
[10]. In both cases data is regarded as relationships
among individuals. When data is represented by conven-
tional data structures (terms), the programmer needs to
specify in the logic component of programs and queries
both how data is stored and how it is retrieved. When
data is represented relationally (by clauses), the program-
mer needs only to specify data in the logic component;
the control component manages both storage and re- rV
trieval. In one analysis, we employ a predicate G o ( x ) which
The desirability of separating logic and control is states that it is possible to go to x. The problem of going
now generally accepted in the field of databases. An from A to Z is then represented by two clauses. One
important advantage is that storage and retrieval schemes asserts that it is possible to go to A. The other denies that
can be changed and improved in the control component it is possible to go to Z. The arc directed from A to B is
without affecting the user's view of the data as defined represented by a clause which states that it is possible to
by the logic component. go to B if it is possible to go to A:
The suitability of a search strategy for retrieving data Go (.4) ,-- ~ Go (Z)
depends upon the structure in which the data is stored. Go (B) ~-- Go (A) Go (Z) <-- Go (X)
Iteration, regarded as sequential search, is suitable for Go (C) ~-- Go (.4) Go (Z) ,---Go (Y)
data stored sequentially in arrays or linked lists. Other Go (D) ~ Go (B) Go (Y) <-- Go (U)
Go (E) <-- Go (B) Go (Y) ~-- Go (V)
search strategies are more appropriate for other data
Go (X) ",- Go (E) etc.
structures, such as hash tables, binary trees, or semantic
networks. McSkimin and Minker [29], for example, Different control strategies determine different path-
store clauses in a manner which facilitates both parallel finding algorithms. Forward search from the initial node
search and finding all answers to a database query. A is bottom-up reasoning from the initial assertion
Deliyanni and Kowalski [ 15], on the other hand, propose G o ( A ) ~-- . Backward search from the goal node Z is
a path-finding strategy for retrieving data stored in se- top-down reasoning from the initial goal statement
mantic networks. *-- G o ( Z ) . Bidirectional search from both the initial
Representation of data by means of terms is a com- node and the goal node is the combination of top-down
mon feature of Horn clause programs written in and bottom-up reasoning. Whether the path-finding al-
PROLOG [12, 33, 38]. Tiirnlund [36], in particular, has gorithm investigates one path at a time (depth-first) or
investigated the use of terms as data structures in Horn develops all paths simultaneously (breadth-first) is a
432 Communications July 1979
of Volume 22
the A C M Number 7
matter of the search strategy used to investigate alter- top-down sequential manner behaves in the same way
natives. as the original formulation executed in a mixed top-
In the second analysis, we employ a predicate down, bottom-up fashion.
Go* (x, y ) which states that it is possible to go from x to
y. In addition to the assertions which describe the graph A Notation for Expressing Control Information
and the goal statement which describes the problem, The distinction between top-down and bottom-up ex-
there is a single clause which defines the logic of the ecution can be expressed in a graphical notation which
path-finding algorithms: uses arrows to indicate the flow of control. The same
<--Go* (A, Z) notation can be used to represent different combinations
Go* (A, B) <-- GO* (X, Z) <-- of top-down and bottom-up execution. The notation does
Go* (A, C) *-- Go* ( Y, Z) ~- not, however, aim to provide a complete language for
Go* (B, D) <--- Go* (U, Y) <'- expressing useful control information.
Go* (B, E) <-- Go* (V, Y) <-
Arrows are attached to atoms in clauses to indicate the
Go* (E, X) <---- etc.
Go* (x, y) <'- Go* (x, z), GO* (z, y) direction of transmission of processing activity from
clause to clause. For every pair of matching atoms in the
Here both forward search from the initial node A initial set of clauses (one atom in the conclusion of a
and backward search from the goal node Z are top-down clause and the other among the conditions of a clause),
reasoning from the initial goal statement <-- Go* (A, Z). there is an arrow directed from one atom to the other.
The difference between forward and backward search is For top-down execution, arrows are directed from
the difference in the choice of subproblems in the body conditions to conclusions. For the grandparent problem,
of the path-finding procedure. Solving Go* (x, z) before we have the graph:
Go* (z, y ) is forward search, and solving Go* (z, y ) before
Go* (x, z) is backward search. Coroutining between the <- Grandparent (Zeus,Harmonia)
two subproblems is bidirectional search. Bottom-up rea-
soning from the assertions which define the graph gen-
erates the transitive closure, effectively adding a new arc
to the graph directed from node x to node y, whenever Grandporent ( x , y ) Parent ( x , z ) , Parent ( z , y )
there is a path from x to y.
Many problem domains have in common with path-
finding that an initial state is given and the goal is to
achieve some final state. The two representations of the
Parent ( x , y ) ~- Father ( x , y ) Parent ( x , y ) ~- Mother ( x , y )
path-finding problem exemplify alternative representa-
tions which apply more generally in other problem do-
mains. Warren's plan-formation program [37], for ex-
ample, is of the type which contains both the given and
Father (Zeus, Ares) <-- Father (Ar~s,Harmonia} ~- Mother (Hera,Ares) <-
the goal state as different arguments of a single predicate.
It runs efficiently with the sequential execution facilities
Processing activity starts with the initial goal statement.
provided by P R O L O G . The alternative formulation,
It transmits activity to the body of the grandparent
which employs a predicate having one state as argument,
procedure, whose procedure calls, in turn, activate the
is easier to understand but more difficult to execute
efficiently. parenthood definitions. The database of assertions pas-
Even the definition of factorial can be represented in sively accepts processing activity without transmitting it
to other clauses.
two ways. The formulation discussed earlier corresponds
to the one-place predicate representation of path-finding. For bottom-up execution, arrows are directed from
conclusions to conditions:
The formulation here corresponds to the two-place pred-
icate representation. Read 4- Grandparent (Zeus,Harmonia)

F(x,y, u, v)

as stating that
the factorial of x is y G r a n d p o ~ n t ( x , y ) ~- PQrent ( x , z ) , Parent ( z , y )
given that the factorial of u is v.
F(x,y, x,y) <--
F (x, y, u, v) <--u plus 1 is u', u' times v is v', F (x, y, u', v').
To find the factorial of an integer represented by a term Purent ( x , y ) 4 - Father ( x , y ) Purent ( x , y ) ~" Mother ( x , y )
t, a single goal statement incorporates both the goal and
the basis of the recursion . . . .

,---F(t,y,O, 1).
The new formulation of factorial executed in a simple Father (7-eus.Ar~s) ~ - leather (Ares,Hormooia) ~- Moth~" (Ftera.Ares) ~-

433 Communications July 1979


of Volume 22
the ACM Number 7
Processing activity originates with the database of initial Arrow notation can also be used to give a procedural
assertions. They transmit activity to the parenthood def- interpretation of non-Horn clauses. The definition of
initions, which, in turn, activate the grandparent defini- subset, for example, "x is a subset of y if, for all z, if z
tion. Processing terminates when it reaches all the con- belongs to x, then z belongs to y," gives rise to a
ditions in the passive initial goal statement. procedure which shows that x is a subset o f y by showing
The grandparent definition can be used in a combi- that every member of x is a member ofy. It does this by
nation of top-down and bottom-up methods. Using num- asserting that some individual belongs to x and by
bers to indicate sequencing, we can represent different attempting to show that the same individual belongs to
combinations of top-down and bottom-up execution. For y. The name of the individual must be different from the
simplicity we only show the control notation associated name of any individual mentioned elsewhere, and it
with the grandparent definition. The combination of must depend upon x and y (being different for different
logic and control indicated by x and y). In clausal notation with arrows to indicate
control, the definition of subset becomes
3
1 2
Grandparent (x, y) ~ Parent (x, z), Parent (z, y)
x is a subset of y, arb (x, y) belongs to x ~-
1 2 x is a subset o f y ~ arb (x, y) belongs to y
n
represents the algorithm which 1 2

(l) waits until x is asserted to be parent of z, then Given the goal of showing that x is a subset of y, the first
(2) finds a child y of z, and finally clause asserts that the individual named arb (x,y) belongs
(3) asserts that x is grandparent ofy. to x and the second clause generates the goal of showing
The combination indicated by that arb (x, y) belongs to y.
The grandparent definition illustrates the inadequacy
2 of the arrow notation for expressing certain kinds of
control information. Suppose that the grandparent defi-
Grandparent (x, y) ~-- Parent (x, z), Parent (z, y)
nition is to be used entirely top-down.
1 3
Grandparent (x, y) ~ Parent (x, z), Parent (z, y).
represents the algorithm which
(1) waits until x is asserted to be parent of z, then The effective sequencing of procedure calls in the body
(2) waits until it is given the problem of showing that of the procedure depends upon the parameters of the
x is grandparent of y,
activating procedure call:
(3) which it then attempts to solve by showing that z is
parent ofy. (1) If the problem is to find a grandchild y of a given
The algorithm represented by x, then it is more effective (i) first to find a child z
of x; (ii) and then to find a child y of z.
1 (2) If the problem is to find a grandparent x of a given
IL y, then it is better (i) first to find a parent z of y; (ii)
Grandparent (x, y) ~ Parent (x, z), Parent (z, y)
and then to find a parent x of z.
2 3
Such sequencing of procedure calls depending on the
(1) responds to the problem of showing that x is grand- pattern of input and output cannot be expressed in the
parent of y, arrow notation.
(2) by waiting until x is asserted to be parent of z, and In relational database query languages, input-sensi-
then tive sequencing of procedure calls needs to be determined
(3) attempting to show that z is parent ofy. by the data retrieval system rather than by the user.
Consider, for example, a database which defines the
Using the arrow notation, we can be more precise following relations:
than before about the bottom-up execution of the recur-
sive definition of Fibonacci number. The bottom-up Supplier (x, y, z) supplier n u m b e r x has n a m e y and status z,
Part (x, y, z) part n u m b e r x has n a m e y and unit cost z,
execution referred to previously is, in fact, a mixture of supplier n u m b e r x supplies part n u m b e r y in
Supply (x, y, z)
bottom-up and top-down execution: quantity z.

4
Given the query
the u + 2 Fib is x ~-- the u + 1 Fib is y, the u Fib is z, y plus z is x. W h a t is the n a m e of suppliers of pens?
Answer (y)
2 1 3 Answer (y) ~-- Supplier (x, y, z), Supply (x, u, v), Part (u, pen, w)

434 Communications July 1979


of Volume 22
the A C M Number 7
the system needs to determine that, for the sake of M. van Emden, P. Hayes, and D. Warren for their
efficiency, the last procedure call should be executed helpful comments on earlier drafts of this paper. This
first; whereas given the query research was supported by a grant from the Science
What is the name of parts supplied by Jones? Research Council. The final draft of this paper was
•-- Answer (y) completed during a visiting professorship held in the
Answer (y) ~ Supplier (x, Jones, z), Supply (x, u, v), Part (u, y, w) School of Computer and Information Science at the
University of Syracuse.
the first procedure call should be executed before the
others.
Received December 1976; revised February 1978
The arrow notation can be used to control the behav-
ior of a connection graph theorem-prover [12]. The links
References
of a connection graph are turned into arrows by giving 1. Bibel, W., and Schreiber, J. Proof procedures in a Gentzen-like
them a direction. A link may be activated (giving rise to system of first-order logic. Proc. Int. Comptng. Symp., North-
a resolvent) only if the link is connected to a clause all Holland Pub. Co., Amsterdam, 1975, pp. 205-212.
2. Bibel, W. Programmieren in der Sprache der Pr~idikatenlogik.
of whose links are outgoing. The links of the derived Eingereicht als Habibitationsarbeit. Fachbereich Mathematik, Techn.
resolvent inherit the direction of the links from which Miinchen, Jan. 1975. Shorter versions published as: Pr~idikatives
they descend in the parent clauses. Connection graphs Programmieren. Lecture Notes in Computer Science, 33, GI-2.
Fachtagung fiber Automatentheorie und formale Sprachen, Springer-
controlled in such a manner are similar to Petri nets Verlag, Berlin, Heidelberg, New York, 1975, pp. 274-283. And as:
[16]. Predicative Programming. S6minaires IRIA, th6orie des algorithms,
des languages et de la programmation 1975-1976, IRIA,
Roquencourt, France, 1977.
3. Bibel, W. Syntheses of strategic definitions and their control.
Conclusion Bericht Nr. 7610, Abt. Mathem., Techn. Miinchen, 1976.
4. Bibel, W. A uniform approach to programming. Bericht Nr.
We have argued that conventional algorithms can 7633, Abtl. Mathem., Techn. MiJnchen, 1976.
usefully be regarded as consisting of two components: 5. Bledsoe, W.W., and Bruell, P. A man-machine theorem-proving
system. Artif. Intell. 5 (Spring 1974), 51-72.
(1) a logic component which specifies what is to be 6. Clark, K.L., and T~irnlund, S.A. A first order theory of data and
done and programs. Information Processing 77, North-Holland Pub. Co.,
(2) a control component which determines how it is to Amsterdam, 1977, pp. 939-944.
7. Clark, K., and Sickel, S. Predicate logic: A calculus for the
be done. formal derivation of programs. Proc. Int. Joint Conf. Artif. Intell.,
The efficiency of an algorithm can often be improved 1977.
8. Clark, K. The synthesis and verification of logic programs. Res.
by improving the efficiency of the control component Rep., Dept. Comptng. and Control, Imperial College, London, 1977.
without changing the logic and therefore without chang- 9. Clark, K., and Darlington, J. Algorithm analysis through
ing the meaning of the algorithm. synthesis. Res. Rep., Dept. Comptng. and Control, Imperial College,
London, Oct. 1977.
The same algorithm can often be formulated in dif- I0. Codd, E.F. A relational model for large shared databases.
ferent ways. One formulation might incorporate a clear Comm. ACM 13, 6 (June 1970), 377-387.
statement, in the logic component, of the knowledge to 1 I. Codd, E.F. Relational completeness of data base sublanguages.
In Data Base Systems, R. Rustin, Ed., Prentice-Hall, Englewood
be used in solving the problem and achieve efficiency by Cliffs, N.J., 1972.
employing sophisticated problem-solving strategies in 12. Colmerauer, A., Kanoui, H., Pasero, R., and Roussel, P. Un
the control component. Another formulation might pro- systeme de communication homme-machine en francais. Rapport
preliminaire, Groupe de Res. en Intell. Artif., U. d'Aix-Marseille,
duce the same behavior by complicating the logic com- Luminy, 1972.
ponent and employing a simple problem-solving strat- 13. Darlington, J., and Burstall, R.M. A system which automatically
egy. improves programs. Proc. of Third Int. Joint Conf. Artif. Intell.,
S.R.I., Menlo Park, Calif., 1973, pp. 437-542.
Although the trend in databases is towards the sep- 14. Darvas, F., Futo, I., and Szeredi, P. Logic based program for
aration of logic and control, programming languages predicting drug interactions. To appear in Int. J. Biomedical
today do not distinguish between them. The programmer Computing.
15. Deliyanni, A., and Kowalski, R.A. Logic and semantic networks.
specifies both logic and control in a single language Comm. ACM 22, 3 (March 1979), 184-192.
while the execution mechanism exercises only the most 16. Earley, J. An efficient context-free parsing algorithm. Comm.
rudimentary problem-solving capabilities. Computer ACM 13, 2 (Feb. 1970), 94-102.
17. van Emden, M.H. Programming in resolution logic. To appear in
programs will be more often correct, more easily im- Machine Representations of Knowledge published as Machine
proved, and more readily adapted to new problems when Intelligence 8, E.W. Elcock and D. Michie, Eds., Ellis Horwood and
programming languages separate logic and control, and John Wylie.
18. Floyd, R.W. Non-deterministic algorithms. J. ACM 14, 4 (Oct.
when execution mechanisms provide more powerful 1967), 636-644.
problem-solving facilities of the kind provided by intel- 19. Hayes, P.J. Computation and deduction. Proc. 2nd MFCS
ligent theorem-proving systems. Symp., Czechoslovak Acad. of Sciences, 1973, pp. 105-118.
20. Hewitt, C. Planner: A language for proving theorems in robots.
Proc. of Int. Joint Conf. Artif. Intell., Washington, D.C., 1969, pp.
Acknowledgments. The author has benefited from 295-301.
valuable discussions with K. Clark, A. Colmerauer, 21. Hogger, C. Deductive synthesis of logic programs. Res. Rep.,
Dept. Comptng. and Control, Imperial College, London, 1977.
M. van Emden, P. Hayes, P. Roussel, S. T~irnlund, and 22. Kleene, S.C. Introduction to Metamathematics. Van Nostrand,
D. Warren. Special thanks are due to W. Bibel, K. Clark, New York, 1952.

435 Communications July 1979


of Volume 22
the ACM Number 7
23. K o w a l s k i , R . A . L o g i c f o r p r o b l e m - s o l v i n g . M e m o N o . 75, D e p t . P r i n c i p l e s o f P r o g r a m m i n g L a n g u a g e s , S a n t a M o n i c a , Calif., J a n .
C o m p u t . Logic, U. o f E d i n b u r g h , 1974. 1977, p p 194-200.
24. K o w a l s k i , R . A . P r e d i c a t e logic as p r o g r a m m i n g l a n g u a g e . 32. R o b i n s o n , J.A. A u t o m a t i c d e d u c t i o n w i t h h y p e r - r e s o l u t i o n . Int.
Information Processing 74, N o r t h - H o l l a n d P u b . Co., A m s t e r d a m , J. Comput. Math. 1 (1965), 2 2 7 - 3 4 .
1974, pp. 5 6 9 - 5 7 4 . 33. R o u s s e l , P. M a n u a l d e r e f e r e n c e et d ' U t i l i s a t i o n . G r o u p e d ' I n t e l l .
25. K o w a l s k i , R . A . A p r o o f p r o c e d u r e u s i n g c o n n e c t i o n g r a p h s . Artif., U E R , M a r s e i l l e - L u m i n y , F r a n c e , 1975.
J. A C M 22, 4 (Oct. 1974), 5 7 2 - 9 5 . 34. S c h w a r z , J. U s i n g a n n o t a t i o n s to m a k e r e c u r s i o n e q u a t i o n s
26. K o w a l s k i , R.A., a n d K u e h n e r , D. L i n e a r r e s o l u t i o n w i t h selection b e h a v e . Res. M e m o , D e p t . Artif. Intell., U. o f E d i n b u r g h , 1977.
f u n c t i o n . Artif. IntelL 2 (1971), 2 2 7 - 2 6 0 . 35. Sickel, S. A s e a r c h t e c h n i q u e f o r c l a u s e i n t e r c o n n e c t i v i t y g r a p h s .
27. L o v e l a n d , D . W . A s i m p l i f i e d f o r m a t for the m o d e l - e l i m i n a t i o n I E E E Trans. Comptrs. ( S p e c i a l Issue o n A u t o m a t i c T h e o r e m
t h e o r e m - p r o v i n g p r o c e d u r e . J. A C M 16, 3 ( J u l y 1969), 3 4 9 - 3 6 3 . P r o v i n g ) , A u g . 1976.
28. M a c C a r t h y , J. A basis f o r a m a t h e m a t i c a l t h e o r y o f 36. T~irnlund, S.A. A n i n t e r p r e t e r f o r the p r o g r a m m i n g l a n g u a g e
c o m p u t a t i o n . In Computer Programming and F o r m a l Systems, P. p r e d i c a t e logic. Proc. Int. J o i n t C o n f . Artif. Intell., Tiblisi, 1975, pp.
B r a t f o r t a n d D. H i r s c h b e r g , Eds., N o r t h - H o l l a n d P u b . Co., 601-608.
A m s t e r d a m , 1967. 37. W a r r e n , D. A s y s t e m f o r g e n e r a t i n g plans. M e m o N o . 76, D e p t .
29. M c S k i m i n , J.R., a n d M i n k e r , J. T h e use o f a s e m a n t i c n e t w o r k in C o m p u t . Logic, U. o f E d i n b u r g h , 1974.
a d e d u c t i v e q u e s t i o n - a n s w e r i n g system. Proc. Int. J o i n t C o n f . Artif. 38. W a r r e n , D., Pereira, L . M . , a n d Pereira, F. P R O L O G - - T h e
lntell., 1977, pp. 5 0 - 5 8 . l a n g u a g e a n d its i m p l e m e n t a t i o n c o m p a r e d w i t h L I S P . Proc. S y m p .
30. Petri, C . A . G r u n d s a t z l i c h e s z u r B e s c h r e i b u n g d i s k r e t e r P r o z e s s e o n Artif. Intell. a n d P r o g r a m m i n g L a n g u a g e s ; S I G P L A N N o t i c e s
3. C o l l o q . u b e r A u t o m a t h e n t h e o r i e , B i r k h a u s e r V e r l a g , Basel, ( A C M ) 12, 8; S I G A R T N e w s l e t t e r s ( A C M ) 64 ( A u g . 1977), pp. 1 0 9 -
S w i t z e r l a n d , 1967. 115
31. Pratt, V . R . T h e c o m p e t e n c e / p e r f o r m a n c e d i c h o t o m y in 39. W i r t h , N. Algorithms + Data Structures = Programs. P r e n t i c e -
p r o g r a m m i n g . Proc. F o u r t h A C M S I G A C T / S I G P L A N Symp. on H a l l , E n g l e w o o d Cliffs, N.J., 1976.
Sponsor: A C M SIGCSE. Conf. chm: William C. De~t.. University of Natal. King George V Ave-
Professional Activities: Bulgren, Dept. of Computer Science, The Uni- nue, Durban, 4001, Republic of South Africa.
versity of Kansas, Lawrence, KS 66044; 913 864-
Calendar of Events 4482.
27-29 July 1979
Seminar on Scientific Go Theory (with Euro-
A C M ' s calendar policy is to list open com- 12-14 March 1980 pean Go Congress 1979) near Bonn, W. Germany.
puter science meetings that are held on a not-for- International Symposium on Distributed Contact: Klaus Heine, Kleiststr. 67, 294 Wil-
profit basis. Not included in the calendar are edu- Databases, Versailles, France. Sponsor: IRIA. helmshaven, W. Germany.
cational seminars, institutes, and courses. Sub- Contact: Symposium Secretariat, IRIA, Services 6-8 August 1979
mittals should be substantiated with name of the des Relations Ext&ieures, Domaine de Voluceau- 1979 Pattern Recognition and Image Proc-
sponsoring organization, fee schedule, and chair- BP 105, 78150 Le Chesnay, France. essing Conference, Chicago, IlL Sponsor: 1EEE-
m a n ' s name and full address. 19-21 March 1980 CS. Contact: PRIP79, Box 639, Silver Spring, MD.
One telephone number contact for those in- • 13th Annual Simulation Symposium, Tampa, 6-8 August 1979
terested in attending a meeting will be given when Fla. Sponsors: A C M SIGSIM, IEEE-CS, SCS. Seventh Conference on Electronic Compu-
a number is specified for this purpose. Sylnp. chin: Harvey Fisher, Alean Products, Box tation, St. Louis, Mo. Sponsors: ASCE. Washing-
511, Warren, O H 44482; 216 841-3416. ton University. Contact: C. Wayne Martin, 212
All requests for A C M sponsorship or coop- 28 March-3 April 1980 Bancroft Bldg., University of Nebraska, Lincoln,
eration should be addressed to Chairman, Con- Sixth International A L L C Symposium on N E 68588.
ferences and Symposia Committee, Seymour J. Computers in Literary and Linguistic Research,
Wolfson. 643 MacKenzie Hall, Wayne State Uni- 6-10 August 1979
versity, Detroit, MI 48202, with a copy to Louis University of Cambridge, England. Sponsor: As- • S I G G R A P H 79, Sixth Annual Conference on
Flora, Conference Coordinator, A C M Head- sociation for Literary and Linguistic Research. Computer Graphics and Interactive Techniques,
Contact: J.L. Dawson, Secretary, 1980 Sympo- Chicago, I11. Sponsor: ACM S I G G R A P H . Conf.
quarters, 1133 Avenue of the Americas, New York, sium, Literary and Linguistic Computing Centre,
NY 10036; 212 265-6300. F o r European events, a co-chin: Thomas DeFanti. Bruce H. McCormick,
copy of the request should also be sent to the Sidgcwick Site, Cambridge CB3 9DA, England. Dept. of Information Engineering, University of
European Representative. Technical Meeting Re- 2 May 1980 Illinois at Chicago Circle, Box 4348, Chicago, IL
quest F o r m s for this purpose can be obtained • Role of Documentation in the Project Life 60680; 312 996-2315.
from A C M Headquarters or from the European Cycle, New York City. Sponsors: A C M SIGDOC, 6-10 August 1979
Regional Representative. Lead time should include SIGCOSIM. Conf. chm: Belden Menkus, Box 85, • A C M S I G P L A N Symposium on Compiler
2 months (3 months if for Europe) for processing Middleville, NJ 07855; 201 383-3928. Construction, Brown Palace Hotel, Denver, Colo.
of the request, plus the necessary months (mini- 19-22 May 1980 Sponsor: A C M S I G P L A N . Conf. chm: F r a n Al-
mum 3) for any publicity to appear in Communi- • N C C 80, Anaheim, Calif. Sponsor: AFIPS. len, IBM T.J. Watson Research Center, York-
cations. Contact: Jerry Chriffriller, AFIPS, 210 Summit town Heights, N Y 10598.
Ave.. Montvale, NJ 07645; 201 391-9810. 11-12 August 1979
• This symbol indicates that the Conferences 3-6 June 1980 Association for Computational Linguistics
and Symposia Committee has given its approval 4th International I F A C Conference on In- 17th Annual Meeting, University of California
for ACM sponsorship or cooperation. strumentation and Automation in the Paper, (San Diego), L a Jolla, Calif. Sponsor: ACL. Con-
In this issue the calendar is given in its entirety. Rubber, Plastics, and Polymerization Industries, tact: Donald E. Walker, A C L See'y-Treas., SRI
New Listings are shown ~rst; they will appear Ghent, Belgium. Sponsor: IFAC. Contact: 4th International, Menlo Park, C A 94025.
next month as Previous Listings. IFAC-P.R.P. Automation Conference, Jan Van 13-15 August 1979
Rijswijcklaan, 58, B-2000 Antwerp, Belgium. • Conference on Simulation, Measurement,
N E W LISTINGS 16-18 June 1980 and Modeling of Computer Systems, Boulder,
6-8 August 1979 I F A C / I F I P Symposium on Automation for Colo. Sponsors: A C M SIGMETRICS, SIGSIM,
Seventh Conference on Electronic Compu- Safety in Shipping and Offshore Operations, NBS. Conf. chin: Paul F. Roth, National Bureau
tation, Washington University, St. Louis, Mo. Trondheim, Norway. Sponsors: IFAC, IFIP of Standards, A-265 Technology Bldg., Washing-
Sponsor: ASCE, Washington University. Contact: SINTEF, Norwegian Petroleum Directorate. Con- ton. D C 20234.
C. Wayne Martin, 212 Bancroft Hall, University tact: SINTEF, Automatic Control Division, N- 16-17 August 1979
of Nebraska, Lincoln, N E 68588. 7034 Trondheim-NTH, Norway. • S I G C P R 16th Annual Conference on Com-
puter Personnel Research, Princeton, N.J. Spon-
7-8 August 1979 sor: A C M SIGPCR. Conf. chm: T.C. Willoughby,
Workshop on the Use of Computers in Management Science. College of Business Ad-
Teaching Statistics, University of New Hamp- PREVIOUS LISTINGS
shire, Durham, NH. Sponsor: University of New 15-20 July 1979 ministration. Ball State University, Muncie, IN
Hampshire. Contact: Office of Academic Com- International Users' Conference, Cambridge, 47306; 317 285-1265.
puting, University of New Hampshire, 304 Mc- Mass. Sponsor: H a r v a r d University L a b o r a t o r y 16-18 August 1979
Connell Hall, Durham, N H 03824; 603 862-1990. for Computer Graphics and Spatial Analysis. I F A C Symposium on Computer Applications
Contact: Kathleen Quigley, Center for Manage- ill Large Scale Power Systems, Bangalore, India.
12-14 September 1979 Sponsor: International Federation of Antonaatic
7th S I M U L A Users' Conference, Hotel Re- ment Research (conference coordinators), 850
Boylston St., Chestnut Hill, M A 02167. Control. Contact: Institution of Engineers, 8
gina Olga, Cernobbio, Lake Coma, Italy. Spon- Cookhale Road, Calcutta-700020, India.
sor: Association of SIMULA Users. Contact: 16-18 July 1979
Eileen Schreiner, Norwegian Computing Center, 1979 Summer Computer Simulation Confer- 19-22 August 1979
Postboks 335. Blindern, Oslo 3, Norway. ence, Toronto, Ont., Canada. Sponsors: SCS, ISA, 3rd Rocky Mountain Symposium on Micro-
AMS, SHARE. Gen. chin: A.J. Schiewe, c / o The computers, Pingree Park, Colo. Sponsor: Colorado
8 November 1979 Aerospace Corp., Box 92957, Los Angeles, CA State University. Contact: Carolyn Frye, Office
Annual Western Systems Conference, Los 90009; 213 648-6120. of Conferences and Institutes, Colorado State
Angeles, Calif. Sponsor: Association for Systems University, F o r t Collins, CO 80523; 303 491-6222.
Management. Gen. chin: Sylvia Twomey, 18700 16-20 July 1979
Y o r b a Linda Blvd., Apt. 47, Yorba Linda, CA Sixth International Colloquium on Auto- 19-24 August 1979
92686; 714 993-6730. main, Languages, and Programming, Technical Seventeenth Annual U R I S A Conference, San
University of Graz, Austria. Sponsor: European Diego, Calif. Sponsor: U r b a n and Regional In-
27-30 November 1979 Association for Theoretical Computer Science. formation Systems Association. Prog. chin: Lee
CAUSE National Conference, Planning Contact: H. Maurer. Institut flit Informationsver- P. Johnston, U R I S A Conf. Prog. Chm., 823 Mon-
Higher Education Information Systems for the arbeitung, Techn. Universit~it Graz. Steyrergasse ticello Drive, Escondido, C A 92025.
1980s, Orlando, Fla. Sponsor: CAUSE. Contact: 17, A-8010-Graz, Austria. 20-22 August 1979
CAUSE, 737 Twenty-Ninth St., Boulder, CO 18-20 July 1979 Fourth International Conference on Com-
80303; 303 492-7353. Fifth South African Symposium on Numeri- puters and the Humanities, D a r t m o u t h College,
14-15 February 1980 cal Mathematics, University of Natal, Durban, Hanover. N . H , Sponsors: D a r t m o u t h College and
• A C M SIGCSE Technical Symposium on South Africa. Sponsor: University of Natal. Con- the Association for Computers and the Humani-
Computer Science Education, Kansas City, Mo. tact: H. Roland Weistroffer, Computer Science (Calendar continued on p. 439)

436 Communications July 1979


of Volume 22
the ACM Number 7

You might also like