1964 04_#25 04 #25

1964-04_#25 1964-04_%2325

User Manual: 1964-04_#25

Open the PDF directly: View PDF PDF.
Page Count: 636

Download1964-04_#25 1964-04 #25
Open PDF In BrowserView PDF
AFIPS
CONFERENCE
PROCEEDINGS
VOLUME 25

1964
SPRING JOINT
COMPUTER
CONFERENCE

The ideas and opinions expressed herein are solely
those of the authors and are not necessarily representative of or endorsed by the 1964 Spring Joint
Computer Conference Committee or the American
Federation of Information Processing Societies.

Library of Congress Catalog Card Number: 55-44701
Copyright © 1964 by American Federation of Information Processing
Societies, P. O. Box 1196, Santa Monica, California. Printed in the United
States of America. All rights reserv:ed. This book or parts thereof, may not
he reproduced in any form without permission of the publishers.
Sole Distributors in Great Britain, the British
Commonwealth and the Continent of Europe:
CLEA VER-HUME PRESS
10-15 St. Martins Street
London W. C. 2
ii

LIST OF JOINT COMPUTER CONFERENCES
1. 1951 Joint AlEE-IRE Computer Conference, Philadelphia, December 1951
2. 1952 Joint AIEE-IRE-ACM Computer Conference, New York, December 1952
3. 1953 Western Computer Conference, Los
Angeles, February 1953
4. 1953 Eastern Joint Computer Conference,
Washington, December 1953
5. 1954 Western Computer Conference, Los
Angeles, February 1954
6. 1954 Eastern Joint Computer Conference,
Philadelphia, December 1954
7. 1955 Western Joint Computer Conference,
Los Angeles, March 1955
8. 1955 Eastern Joint Computer Conference,
Boston, November 1955
9. 1956 Western Joint Computer Conference,
San Francisco, February 1956
10. 1956 Eastern Joint Computer Conference,
N ew York, December 1956
11. 1957 Western Joint Computer Conference,
Los Angeles, February 1957
12. 1957 Eastern Joint Computer Conference,
Washington, December 1957
13. 1958 Western Joint Computer Conference,
Los Angeles, May 1958

14. 1958 Eastern Joint Computer Conference,
Philadelphia, December 1958
15. 1959 Western Joint Computer Conference,
San Francisco, March 1959
16. 1959 Eastern Joint Computer Conference,
Boston, December 1959
17. 1960 Western Joint Computer Conference,
San Francisco, May 1960
18. 1960 Eastern Joint Computer Conference,
New York, December 1960
19. 1961 Western Joint Computer Conference,
Los Angeles, May 1961
20. 1961 Eastern Joint Computer Conference.
Washington, December 1961
21. 1962 Spring Joint Computer Conference,
San Francisco, May 1962
22. 1962 Fall J oint Computer Conference,
Philadelphia, December 1962
23. 1963 Spring Joint Computer Conference,
Detroit, May 1963
24. 1963 Fall Joint Computer Conference, Las
Vegas, November 1963
25. 1964 Spring Joint Computer Conference,
Washington, April 1964

Conferences 1 to 19 were sponsored by the National Joint Computer Committee, predecessor of AFIPS. Back copies of the proceedings of these
conferences may be obtained, if available, from:
• Association for Computing Machinery, 14 E. 69th St.,
New York 21, N. Y.
• American Institute of Electrical Engineers, 345 E. 47th St.,
New York 17, N. Y.
• Institute of Radio Engineers, 1 E. 79th St., New York 21, N. Y.
Conferences 20 and up are sponsored by AFIPS. Copies of AFIPS Conference Proceedings may be ordered from the publishers as available at
the prices indicated below. Members of societies affiliated with AFIPS
may obtain copies at the special "Member Price" shown.

List
Prne

Member
Price

20

$12.00

$7.00

21

6.00

6.00

22

(LOO

4.00

23
24
25

1000
16.50

5.00
8.25

Volume

I

Publisher
Macmillan Co., 60 Fifth Ave., New York 11,
N. Y.
National Press, 850 Hansen Way, Palo Alto,
Calif.
Sparatan Books, Inc., 301 N. Charles St.,
Baltimore 1, Md.
Sparatan Books, Inc.
Sparatan Books, Inc.
Sparatan Books, Inc.

NOTICE TO LIBRARIANS
This volume (25) continues the Joint Computer Conference
Proceedings (LC55-44701) as indicated in the above table. It
is suggested that the series be filed under AFIPS and cross
referenced as necessary to the Eastern, Western, Spring, and
Fall Joint Computer Conferences.

CONTENTS
Page

Preface
COMPILERS: TUTORIAL
Programming Systems and Languages: A Historical Survey
Bounded Context Translation
Syntax-Directed Compiling
TECHNICAL SESSION
A general-Purpose Table-Driven Compiler
APPLICATIONS
A Computer Technique for Producing Animated Movies
Simulation of Biological Cells by Systems
Composed of String-Processing Finite
Automata
Computer Simulation of Human Interaction
in Small Groups
Real-Time Computer Studies of Bargaining
Behavior: The Effects of Threat Upon
Bargaining
Real-Time Quick-Look Analysis for the
OGO Satellites
SOCIAL IMPLICATIONS OF DATA PROCESSING
An Ethos for the Age of Cyberculture
Information Processing and Some Implications
for More Rational Economic Activities
The Computer Revolution and the Spirit of Man
NUMERICAL ANALYSIS
New Difference Equation Technique for Solving NonLinear Differential Equations
Discontinuous System Variables in the Optimum
Control of Second Order Oscillatory Systems
With Zeros
Two New Direct. Minimum Search Procedures for
Functions of Several Variables
COMMAND AND CONTROL
On the Evaluation of the Cost-Effectiveness of
Command and Control Systems

S. ROSEN
R. M. GRAHAM
T. E. CHEATHAM, JR.
K. SATTLEY

1
17
31

S. WARSHALL
R. M. SHAPIRO

59

K. C. KNOWLTON
W. R. STAHL
R. W. COFFIN
H. E. GOHEEN
J. T. GULLAHORN
J. E. GULLAHORN
R. J. MEEKER
G. H. SHURE
W. H. MOORE, JR.
R. J. COYLE
J. K. STEWART

67
89

103
115
125

A. M. HILTON 139
H. E. STRINER 155
R. H. DAVIS 161

J. M. HURT 169
W. NEVIUS 181
H. TITUS
B. WITTE 195

N. P. EDWARDS 211

Page
Fractionization of the Military Context
Some Problems Associated With Large
Programming Efforts
Some Cost Contributors to Large-Scale Programs
HYBRID SYSTEMS: TUTORIAL
Hybrid-Computation ... What is it? ... Who.
Needs it? ...
HYBRID SYSTEMS: TECHNICAL
A Hybrid Analog-Digital Parameter Optimizer
for Astrac II
A Hybrid Analog-Digital Pseudo-Random Noise
Generator
A 2MC Bit-Rate Delta-Sigma Modulation System
for Analog Function Storage
ARTIFICIAL INTELLIGENCE
A Computer-Simulated On-Line Learning Control
System
A Heuristic Program to Solve Geometric-Analogy
Problems
Experiments With a Theorem-Utilizing Program
EVALUATING COMPUTER SYSTEMS
Analytical Technique for Automatic Data Processing
Equipment Acq.uisition
Cost-Value Technique for Evaluation of Computer
System Proposals
The Use of a Computer to Eyaluate Computers
MULTI-PROGRAMMING
A General-Purpose Time-Sharing System

Remote Computing: An Experimental System Part 1 :
External Specifications
Remote Computing: An Experimental System Part 2 :
Internal Design
Multi-Computer Programming for a Large-Scale,
Real-Time Data Processing System
LOGIC, LAYOUT AND ASSOCIATIVE MEMORIES
On the Analysis and Synthesis of Three-Valued
Digital -Systems
An Algorithm for Placement of Interconnected
Elements Based on Minimum Wire Length
Studies of an Associatively Addressed Distributed
Memory
Design of an Experimental Multiple Instantaneous
Response File

F. B. THOMPSON
A. E. DANIELS

219
231

B. NANUS
L. FARR

239

T. D. TRUITT

249

B. A. MITCHELL, JR.

271

R. L. T. HAMPTON

287

H. HANDLER
R. H. MANGELS

303

J. D. HILL 315
G. McMuRTY
K. S. Fu
T. G. EVANS 327
L. E. TRAVIS 339
S. ROSENTHAL 359
E. O. JOSLIN 367
D. J. HERMAN 383
E. G. COFFMAN, JR.
J. 1. SCHWARTZ
C. WEISSMAN
T. M. DUNN
J. H. MORRISSEY
J. 1\1:. KELLER
E. C. STRUM
G. H. YANG
G. E. PICKERING
G. A. ERICKSON
E. G. MUTSCHLER

397

413
425

445

J. SANTOS 463
H. ARANGO
R. A. RUTMAN 477
G. J. SIMMONS 493
E. L. YOUNKER 515
C. H. HECKLER, JR.
D. P. MASHER
J. M. YARBOROUGH

Page
INFORMATION RETRIEVAL TUTORIAL
Research in Automatic Generation of Classification
Systems
Information Storage and Retrieval :. Analysis of the
State-of-the-Art

INFORMATION RETRIEVAL: TECHNICAL
Training a Computer to Assign Descriptors to
Documents: Experiments in Automatic Indexing
Experiments in Information Correlation
Some Flexible Information Retrieval
Structure Matching Procedures

System~

Using

BUSINESS DATA PROCESSING
Two New Improvements in Sorting Techniques
Conceptual Models for Determining Information
Requirements

H. BORKO

529

G. ARNOVICK
J. A. LILES
A. H. ROSEN
J. S. WOOD

537

M. E. STEVENS
G. H. URBAN
J. L. KUHNS
A.
MONTGOMERY
C.
G. SALTON
E. H. SUSSENGUTH, JK

563

M. A. GOETZ

J. C. MILLER

577
587

599
609

PREFACE
The following pages contain the papers which were presented and
discussed in the formal technical and tutorial sessions of the 1964 Spring
Computer Conference. The Conference theme, "Computers '64: ProblemSolving in a Changing World," is intended to suggest the significanc~ of
this year as the mid-point between the infancy of electronic digital conlputation (the first elements of ENIAC began operating in June 1944) and
the Orwellian year 1984, which symbolizes to some critics an unhappy
potential which might be achieved if we do not wisely guide our rapidly
advancing technology. Society is increasingly concerned with the broad
adjustments that must take place if man is to gain the maximum long-term
advantage from the computer. Reflections of this concern and of the
increasing uses to which computers are being applied are, among others,
the papers dealing with social implications and the tutorial papers on hybrid systems, compilers, and information retrieval.
This volume, a product of the 25th in the series of Joint Computer
Conferences, for the first time includes an -index. Thanks for this useful
addition are due to the authors and session chairmen, who were most -cooperative in getting "final copy" submitted on schedule, and to our publisher,
who assumed the burden of preparing the index. Appreciation must also
be expressed for the contributions of many other persons, who participated
as conference planners, panel members, and reviewers. A special acknowledgement is made to the members of the Technical Program Committee,
who willingly assumed the heavy burden of assembling the formal program.

R. KOLLER
General Chairman
1964 Spring Joint Computer Conference
HERBERT

PROGRAMMING SYSTEMS AND LANGUAGES
A Historical Survey
Saul Rosen
Professor of Mathematics and Computer Sciences
Purdue University
West Lafayette, Indiana
1. Introduction. Twenty years ago, in 1943,
there were no Electronic computers. Ten years
ago, in 1953, a large number of Electronic calculators were in use, but the general purpose
stored program electronic computer was still
quite rare. The Coincident Current Magnetic
Core memory which finally provided both reliability and speed at reasonable cost had only
just been developed, and was still. a laboratory
device. A number of specially designed, mostly
one of a kind, computers were in operation at
Universities and government' research centers.
Commercially, a few Univac I computers had
been delivered and were operating with great
reliability at rather low speed. A few IBM 701's
provided high speed but with very poor reliability. In 1953 most computing was being done by
the Card-Programmed Calculator, an ingenious
mating of an Electromechanical Accounting
\ Machine with an Electronic Calculating Punch.

installed, including many hundreds of very
large computers. Electronic Computing and
Data-processing have become part of the everyday industrial and commercial environment, and
Electronic Computer manufacturing and programming has become a multi-billion dollar industry.
Because of this rapid, almost explosive pattern of gro'wth mod systems, both in the hard~
ware and software area could not be adequately
planned, and it was often not possible to make
adequate evaluations of old systems in time to
use such evaluations in the design of new ones.

2. Developments up to 1957. The first programming systems were systems of subroutines.
Subroutines were in use on the pre-electronic
Mark I, a large electromechanical computer
built as a joint effort by IBM and Harvard University in the early forties.! The EDSAC at the
University of Manchester was probably the first
stored program Electronic Computer in operation (1949). The classic text on programming
the EDSAC, by Wilkes, Wheeler and Gill 2
makes the subroutine library the basis of programming, and stresses the automatic relocation
feature of the EDSAC, which makes such
libraries easy to use.

Between 1954 and 1958 many hundreds of
Electronic computers were installed. This was
the era of the Vacuum Tube Computer, with
Magnetic Drum storage on lower priced machines, and Magnetic Core storage on the larger
more expensive ones. By 1959 the first transistorized computers had been delivered, and the
production of vacuum tube computers ceased
almost immediately, Low cost magnetic core
memories made the magnetic drum almost obsolete except as auxiliary storage. Since 1959
thousands of computers have been delivered and

The IBM Card-Programmed Calculator, developed between 1947 and 1949, was not very
fast by modern standards, but was an extremely
versatile device. Operation codes were deter1

2

PROCEE'DINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

mined by the wiring of control boards. Ingenuity could be expended on designing boards
to optimize performance on particular problems
that taxed the capacity of the computer, or it
could be expended on the design of general purpose boards for use in large classes of problems.
A set of general purpose boards represented a
language for the CPC, and a number of languages were tried and used. 3 Most Scientific
installations finally settled on a wiring that
made the CPC appear to be a floating point machine with three-address logic, and with a
standard vocabulary of built-in routines like
Sq,uare Root, Sine, Exponential, etc. Experience with the CPC systems had many influences
on the programming systems that were designed
for the stored-program computers that followed.
One of the most important of the early automatic programming groups was associated with
the Whirlwind project at MIT. Whirlwind,
which was built between 1947 and 1951, was a
fast but very basic computer. With only a 16
bit word it had a very limited instruction code,
and very limited high speed storage. Even relatively simple calcula,tions required the use of
multi-precision techniques. The very difficulty
of using the machine in its own language provided great incentive toward the development
of programming languages. The Summer Session Computer at MIT was one of the early
interpreti ve systems, designed to make the
Whirlwind computer available to students at a
summer course in computing at MIT. These
~.arly developments led to the design of a quite
elaborate "Comprehensive System" for Whirlwind. 4 At the associated Lincoln Laboratories
the groundwork was laid for the very large programming systems that were developed in connection with Sage and other military projects. s
The first large scale electronic computer
3;vailable commercially was the Univac I
(1951. The first Automatic Programming
group associated with a commercial computer
effort was the group set up by Dr. Grace Hopper
in what was then the Eckert-Mauchly Computer
Corp., and which later became the Univac Division of Sperry Rand. The Univac had been designed so as to be relatively easy to program in
its own code. It was a decimal, alphanumeric

machine, with mnemonic instructions that were
easy to remember and use. The 12 character
word made sca)ing of many fixed-point calculations fairly easy. It was not always easy to see
the advantage of assembly systems and compilers that were often slow and clumsy on a
machine with only 12,000 characters of high
speed storage (200 microseconds average access time per 12 character word). In spite of
occasional setbacks, Dr. Hopper persevered in
her belief that programming should and would
be done in problem-oriented languages., Her
group embarked on the development of a whole
series of languages, of which the most used was
probably A2, a compiler that provided a three
address floating point system by compiling calls
on floating point subroutines stored in main
memory.6,7 The Algebraic Translator AT3
(Math-Matic 8 ) contributed a number of ideas
to Algol and other compiler efforts, but its own
usefulness was very much limited by the fact
that Univac had become obsolete as a scientific
computer before AT3 was finished. The BO
(Flow-Matic 8 ,9) compiler was one of the major
influences on the COBOL language development
which will be discussed at greater length later.
The first sort generators 10 were produced by the
Univac programming group in 1951. They also
produced what was probably the first large
scale symbol manipulation program, a program
that performed differentiation of formulas submitted to it in symbolic form.1 1
Another and quite independent group at Univac concerned itself with an area that would
now be called computer-oriented compilers.
Anatol Holt and William Turanski developed a
compiler and a concept that they called GP
(Generalized Programming 12) • Their system
assumed the existence of a very general subroutine library. All programs would be written
as if they were to be library programs, and the
library and system would grow together. A
program was assembled at compile time by the
selection and modification of particular library
programs and parts of library programs. The
program as written by the programmer would
provide parameters and specifications according
to which the very general library programs
would be made specific to a particular problem.
Subroutines in the library were organized in
hierarchies, in which subroutines at one level

PROGRAMMING SYSTEMS AND LANGUAGES

could call on others at the next level. Specifications and parameters could be passed· from one
level to the next.
The system was extended and elaborated in
the GPX system that they developed for Univac
II. They were one of the early groups to give
serious attention to some difficult problems relative to the structure of programs, in particular
the problem of segmenting of programs, and
the related problem of storage allocation.
Perhaps the most important contribution of
this group was the emphasis that they placed on
the programming system rather than on the
programming language. In their terms, the
machine that the programmer uses is not the
hardware machine, but rather an extended machine consisting of the hardware enhanced by
a programming system that performs all kinds
of service and library maintenance functions in
addition to the translation and running of programs.
The IBM 701 (1952) was the first commercially marketed large scale binary computer.
The best known programming language on the
701 was Speedcode,13,14 a language that made
the one address, binary, fixed point 701 appear
to be a three address decimal floating point machine with index registers. More than almost
any other language, Speedcode demonstrated
·the extent to which users were willing to sacrifice computer speed fOF the sake of programming convenience.
The PACT15,16 system on the 701 set a precedent as the first programming system designed
by a committee of computer users. It also set a
precedent for a situation which unfortunately
has been quite common in the computer field.
The computer for which the programming
system was developed was already obsolete before the programming system itself was completed. P ACT ideas had a great deal of
influence on the later developments that took
place under the auspices of the SHARE organization.
Delivery of the smaller, medium scale magnetic-drum computers started in 1953, and by
1955-56 they were a very important factor in
the computer field. The IBM 650 was by far the
most popular of the early drum computers. The

3

650 was quite easy to program in its own language, and was programmed that way in many
applications, especially in the data-processing
area. As a scientific computer it lacked floating
point hardware, a feature that was later made
available. A number of interpretive floating
point systems were developed, of which the most
popular was the one designed at the Bell Telephone Laboratories. 17 This was a three address
floating point system with automatic looping
and with built in Mathematical subroutines. It
was a logical continuation of the line of systems
that had started with the general purpose CPC
boards, and had been continued in 701 Speedcode. It proved that on the right kind of computer an interpretive system can provide an
efficient effective tool. Interpretive systems fell
into disrepute for a number of years: They are
making a very strong comeback at the present
time in connection with a number of so-called
micro-programmed computers that have recently appeared on the market.
The 650 permitted optimization of programs
by means of proper placement of instructions on
the drum. Optimization was a very tedious job
f'or the programmer, but could produce a very
considerable improvement in program running
time. A program called SOAP, a Symbolic
Optimize:c. and Assembly Programs, combined
the features of symbolic assembly and automatic optim.ization. There is some" doubt a~ to
whether a symbolic assembly system would have
received very general acceptance on the 650 at
the time SOAP was introduced. The optimization feature was obviously valuable. Symbolic
assembly by itself on a decimal machine without
magnetic tape did not present advant~ges that
were nearly as obvious.
The major competitor to the 650 among the
early magnetic drum computers was the Datatron 205, which eventually became a Burroughs
product. It featured a 4000 word magnetic
drum storage plus a small 80 word fast access
memory in high speed loops on the drum. Efficient programs had to make very frequent use
of block transfer instructions, moving both data
and programs to high speed storage. A number
of interpretive and assembly system were built
to provide programmed floating point instructions and some measure of automatic use of the

4

PROCEE'DINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

high speed loops. The eventual introduction of
floating point hardware removed one of the
principal advantages of most of these systems.
The Datatron was the first commercial system
to provide an index register and automatic relocation of subroutines, features provided by
programming systems on other computers. For
these reasons among others the use of machine
code programming persisted through most of
the productive lifetime of the Datatron 205.
One of the. first Datatron computers was installed at Purdue University. One of the first
Algebraic compilers was designed for the Datatron by a group at Purdue headed by Dr. Al
Perlis. This is another example of a compiler
effort based on a firm belief that programming
should be done in problem-oriented languages,
even if the computer immediately available may
not lend itself too well to th~ use of such languages. A big problem in the early Datatron
systems was the complete lack of alphanumeric
input. The computer would recognize pairs of
numbers as representing characters for printing on the flexowriter, but there was no way to
produce the same pair of numbers by a single
key stroke on any input preparation device.
Until the nluch later development of new inputoutput devices, the input to the Purdue compiler
was prepared by manually transcribing the
source language into pairs of numbers.
When Dr. Perlis moved to Carnegie Tech the
some compiler was written for the 650, and was
named IT.I8 IT made use of the alphanumeric
card input of the 650, and translated from a
simplified algebraic language into SOAP language as output. IT and languages derived
from it became quite popular on the 650, and on
other computers, and have had great influence
on the later development of programming languages. A language Fortransit provided translation from a subset of Fortran into IT, whence
a program would be translated into SOAP, and
Slofter two or more passes through SOAP it
wou Id finally emerge as a machine language
program. The language would probably have
been more popular if its translation were not
such an involved and time-consuming process.
Eventually other, more direct translators were
built that avoided many of the intermediate
passes.

The 701 used a rather unreliable electrostatic
tube storage system. When Magnetic core storage became available there was some talk about
a 701M computer that would be an advanced
701 with core storage. The idea of a 701M was
soon dropped in favor of a completely new computer, the 704. The 704 was going to incorporate into hardware many of the features for
which programming systems had been developed in the past. Automatic floating point hardware and index registers would make interpretive systems like Speedcode unnecessary.
Along with the development of the 704 hardware IBM set up a project headed by John
Backus to develop a suitable compiler for the
new computer. After the expenditure of about
25 man years of effort they produced the first
Fortran compiler.I 9 •20 Fortran is in many ways
the most important and most impressive development in the early history of automatic programming.
Like most of the early hardware and software systems Fortran was late in delivery, and
didn't really work when it was delivered. At
first people thought it would never be done.
Then when it was in field test, with many bugs,
and with some of the most important parts unfinished, many thought it would never work. It
gradually got to the point where a program in
Fortran had a reasonable expectancy of compiling all the way through and maybe even of
running. This gradual change of status from
an experiment to a working system was true of
most compilers. It is stressed here in the case
of Fortran only because Fortran is now almost
taken for granted, as if it were built into the
computer hardware.
t

In -the early days of automatic programming,
the most important criterion on which a compiler was judged was the efficiency of the object
code. "You only compile once, you run the
object program many times," was a statement
often quoted to justify a compiler design philosophy that permitted the compiler to take as
long as necessary, within reason, to produce
good object code. The Fort.ran compiler on the
704 applied a number of difficult and ingenious
techniques in an attempt to produce object coding that would be as good as that produced by
a good programmer programming in machine

PROGRAMMING SYSTEMS AND LANGUAGES

code. For many types of programs the coding
produced is very good. Of course there are some
for which it is not so good. In order to make
effective use of index registers a very complicated index register assignment algorithm was
used that involved a complete analysis of the
flow of the program and a simulation of the
running of the program using information obtained from frequency statements and from
the flow analysis. This was very time consuming, especially on the relatively small initial 704
configuration. Part of the index register optimization fell into disuse quite early but much
of it was carried along into Fortran II and is
still in use on the 704/9/90. In many programs
it still contributes to the production of better
code than can be achieved on the new Fortran
IV compiler.
Experience led to a gradual change of philosophy with respect to compilers. During debugging, compiling is done over and over again.
One of the major reasons for using a problem
oriented language is to make it easy to modify
programs frequently on the basis of experience
gained in running the programs. In many cases
the total compile time used by a project is much
greater than the total time spent running object
codes. More recent compilers on many computers have emphasized compiling time rather than
run time efficiency. Some may have gone too far
in that direction.
It was the development of Fortran II that
made it possible to use Fortran for large problems without using excessive compiling time.
Fortran II permitted a program to be broken
down into subprograms which could be tested
and debugged separately. With Fortran II in
full operation, the use of Fortran spread very
rapidly. Many 704 installations started to use
nothing but Fortran. A revolution was taking
place in the scientific computing field, but many
of the spokesmen for the computer field were
unaware of it. A number of major projects
that were at crucial points in their development
in 1957-1959 might have proceeded quite differently if there was more general awareness of
the extent to which the use of Fortran had been
accepted in many major 704 installations.
Among these are the Algol project and the SOS
project which are discussed below.

5

3. Algol and its Dialects. Until quite recently, large scale computers have been mainly
an American phenomenon. Smaller computers
were almost worldwide right from the beginning. An active computer organization GAMM
had been set up in Europe, and in 1957 a number of members of this organization were actively interested in the design of Algebraic
compilers for a number of machines. They decided to try to reach agreement on a common
language for various machines, and made considerable progress toward the design of such a
language. There are many obvious advantages
to having generally accepted computer independent problem oriented languages. It was
clear that a really international effort in this
direction could only be achieved with United
States participation. The President of GAMM
wrote a letter to John Carr who was then President of the ACM, suggesting that representatives of ACM and of GAMM meet together for
the purpose of specifying an international language for the description of computing procedures.
The ACM up to that time had served as a
forum for the presentation of ideas in all aspects
of the computer field. It had never engaged in
actual design of languages or systems.
In response to the letter from GAMM, Dr.
Carr appointed Dr. Perlis as chairman of a
committee on programming languages. The
committee set out to specify an Algebraic compiler language that would represent the American proposal at a meeting with representatives
of GAMM at which an attempt would be made
to reach agreement on an internationally accepted language. The ACM committee consisted
of representatives of the major computer manufacturers, and representatives of several Universities and research agencies that had done
work in the compiler field. Probably the most
active member of the committee was John
Backus of IBM. He was probably the only member of the committee whose position permitted
him to spend full time on the language design
project, and a good part of the "American Proposal" was based on his work.
The ACM committee had a number of meetings without any very great sense of urgency.
Subcommittees worked on various parts of the

6

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

language and reported back to the full committee, and in general there was little argument or
disagreement. There is after all very general
agreement about the really basic elements of
an Algebraic language. Much of the language
is determined by the desirability of remaining
as close as possible to Mathematical notation.
This is tempered by experience in the use of
computers and in the design of compilers which
indicates some compromises between the demands of desirable notation and those of practical implementation.
At one meeting of the committee Dr. Bauer,
one of the leaders of the GAMM effort, presented
a report on the proposed European language.
Among other things they proposed that English
language key words, like begin, end, for, do, be
used as a world-wide standard. Of course this
is something the American committee would
never have proposed, but it seemed quite reasonable to go along with the Europeans in this
matter. Although some of the notations seemed
strange, there were very few basic disagreements between what GAMM was proposing, and
what the ACM committee was developing. Dr.
Bauer remarked that the GAMM organization
felt somewhat like the Russians who were meeting with constant rebuffs in an effort to set up a
summit meeting. With such wide areas of
agreement why couldn't the ACM-GAMM meeting take place?
Although there is quite general agreement
about the basic elements of an Algebraic language, there is quite considerable disagreement
about how far such a language should go, and
about how some of the more advanced and more
difficult concepts should be specified in the language. Manipulation of strings of symbols,
direct handling of vectors, matrices, and multiple precision quantities, ways to specify segmentation of problems, and the allocation and
sharing of storage; these were some of the
top~cs which could lead to long and lively discussion. The ACM language committee decided
that it was unreasonable to expect to reach an
agreement on an international language embodying features of this kind at that time. It
was decided to set up two subcommittees. One
would deal with the specification of a language
which included those features on which it was
reasonable to expect a wide range of agreement.

The other was to work toward the future, toward the specification of a language that would
really represent the most advanced thinking in
the computer field.
The short-range committee was to set up a
meeting in Europe with representatives of
GAMM. Volunteers for work on this committee
would have to arrange for the trip to Europe
and back, and were therefore limited to those
who worked for an organization that would be
willing to sponsor such a trip. The ACM was
asked to underwrite the trip for Dr. Perlis.
The meeting of the ACM and GAMM subcommittees was held in Zurich in the spring of
1958, and the result was a Preliminary report
on an International Algebraic Language, which
has since become popularly known as Algol 58. 21
With the use of Fortran already well established in 1958, one may wonder why the American committee did not recommend that the
international language be an extension of, or at
least in some sense compatible with Fortran.
There were a number of reasons. The most obvious has to do with the nature and the limitations of the Fortran language itself. A few
features of the Fortran language are clumsy
because of the very limited experience with
compiler languages that existed when Fortran
was designed. Most of Fortran's most serious
limitations occur because Fortran was not designed to provide a completely computer independent language; it was designed as a compiler
language for the 704. The handling of a number
of statement types, in particular the Do and If
statements, reflects the hardware constraints of
the 704, and the design philosophy which kept
these statements simple and therefore restricted
in order to simplify optimization of object
coding.
Another and perhaps more important reason
for the fact that the ACM committee almost
ignored the existence of Fortran has to do with
the predominant position of IBM in the large
scale computer field in 1957-1958 when the
Algol development started. Much more so than
now there were no serious comp~titors. In the
data processing field the Univac II was much
too late to give any serious competition to the
IBM 705. RCA's Bizmac never really had a
chance, and Honeywell's Datamatic 1000, with

PROGRAMMING SYSTEMS AND LANGUAGES

its 3 inch wide tapes, had only very few specialized customers. In the Scientific field there were
those who felt that the Univac 1103/1103a/1105
series was as good or better than the IBM 701/
704/709. Univac's record of late delivery and
poor service and support seemed calculated to
discourage sales to the extent that the 704 had
the field almost completely to itself. The first
Algebraic compiler produced by the manufacturer for the Univac Scientific computer, the
1103a, was Unicode, a compiler with many
interesting features, that was not completed
until after 1960, for computers that were already obsolete. There were no other large scale
scientific computers. There was a feeling on the
part of a number of persons highly placed in the
ACM that Fortran represented part of the IBM
empire, and that any enhancement of the status
of Fortran by accepting it as the basis of an
international standard would also enhance
IBM's monopoly in the large scale scientific
computer field.
The year 1958 in which the first Algol report
was published, also marked the emergence of
large scale high speed transistorized computers,
competitive in price and superior in performance to the vacuum tube computers in general
use. At the time I was in charge of Programming systems for the new model 2000 computers
that Philco was preparing to market. An Algebraic compiler was an absolute necessity, and
there was never really any serious doubt that
the language had to be Fortran. 22, 22A The very
first saies contracts for the 2000 specified that
the computer had to be equipped with a compiler that would accept 704 Fortran source
decks essentially without change. Other manufacturers, Honeywell, Control Data, Bendix,
faced with the same problems, came to the same
conclusion. Without any formal recognition, in
spite of the attitude of the professional committe~s, Fortran became the standard scientific
computing language. Incidentally, the emergence of Fortran as a standard helped rather
than hindered the development of a competitive
situation in the scientific computer field.
To go on with the Algol development, the
years 1958-1959 were years in which many naw
computers were introduced. The time was ripe
for experimentation in new languages. As mentioned earlier there are many elements in com-

7

mon in all Algebraic languages, and everyone
who introduced a new language in those years
called it Algol, or a dialect of Algol. The initial
result of this first attempt at the standardization of Algebraic ]anguages was the proliferation of such languages in great variety.
A very bright young programmer at Burroughs had some ideas about writing a very fast
one pass compiler for Burroughs new 220 computer. The compiler has come to be known as
Balgol.
A compiler called ALGO was written for the
Bendix G15 computer. At Systems Development
Corporation, programming systems had to be
developed for a large command and control
system based on the IBM military computer
(ANFSQ32). The resulting Algebraic language
with fairly elaborate data description facilities
was JOVIAL23 (Jules Schwartz' own Version
of the International Algebraic Language). By
now compilers for JOVIAL ha:ve been written
for the IBM 7090, the Control Data 1604, the
Philco 2000, the Burroughs D825, and for several versions of IBM military computers.
The Naval Electronics Laboratory at San
Diego was getting a new Sperry Rand Computer, the Countess. With a variety of other
computers installed and expected they stressed
the description of a compiler in its own language to make it easy, among other things, to
produce a compiler on one computer using a
compiler on another. They also stressed very
fast compiling times, at the expense of object
code running times, if necessary. The language
was called Neliac,24,25 a dialect of Algol. Compilers for Neliac are available on at least as
great a variety of computers as for JOVIAL.
The University of Michigan developed a compiler for a language called Mad, the Michigan
Algorithmic Decoder. 26 .27 They were quite unhappy at the slow compiling times of Fortran,
especially in connection with short problems
typical of student use of a computer at a University. Mad was originally programmed for
the 704 and has been adapted for the 7090. It
too was based on the 1958 version of Algol.
All of these languages derived from Algol 58
are well established, in spite of the fact that
the ACM GAMM committee continued its work

8

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

and issued its now well known report defining
Algol 60. 28
Algol 60, known simply as Algol, went considerably further than was anticipated in some
of the early committee meetings. The language
did not limit itself to those areas in which there
exists almost universal agreement. Concepts
like recursive subroutines, dynamic storage
allocation, block structure, own variables and
arrays, were introduced which require the inclusion of rather complex structures in the running programs produced by the compiler. Without attempting any serious evaluation of these
concepts here, I think it is fair to say that they
are difficult, and their inclusion in an Algebraic
language that is intended to ba universal is controversial. They led to much debate about the
difficult areas and tended to obscpre some of the
more fundamental accomplishments of the
Algol committee. Algol set an important precedent in language definition by presenting a
rigorous definition of its syntax in the Backus
normal form.29 As compared to Fortran it contains a much more general treatment of iterative loops. It provides a good systematic handling of Boolean expressions and variables and
of conditional statements. The most serious
deficiency in Algol results from its complete
lack of input-output specifications. The handling of input-output is one of the most important services provided by a compiler, and a
general purpose Algebraic compiler language
is not completely specified until its input-output
language has been defined.
Algol compilers have been written for many
different computers, but with the exception
of Burroughs no computer manufacturer has
pushed it very strongly. It is very popular
among University and mathematically oriented
computer people especially in Europe. For some
time in the United States it will probably remain in its status as another available computer
language.

4. Data Processing Compilers. The largest
user by far of data-processing equipment is the
United States government. The government, by
law and by design, avoids giving preferential
treatment to anyone computer manufacturer.
More than any other computer user, the government is plagued by the problems caused by the

lack of compatibility between different kinds of
computing equipment, whether manufactured
by the same or by different suppliers.
In the spring of 1959, the office of the Secretary of Defense summoned representatives of
the major manufacturers and users of dataprocessing equipment to a meeting in Washington, to discuss the problem associated with the
lack of standard programming languages in the
data processing area. This was the start of
the Committee on Data Systems Languages
(CODASYL), that went on to produce COBOL,
the common business oriented language. From
the beginning their effort was marked by missionary zeal for the cause of English language
coding.
Actually, there had been very little previous
experience with Data processing compilers.
Univac's B-O or Flow-Matic,8.9 which was running in 1956, was probably the first true DataProcessing compiler. It introduced the idea of
file descriptions, consisting of detailed record
and item descriptions, separate from the description of program procedures. It also introduced the idea of using the English language as
a programming language.
It is remarkable to note that the Univac I on
which Flow-Matic was implemented did not
have the data-processing capabilities of a good
sized 1401 installation. To add to the problems
caused by the inadequacy of the computer, the
implementation of the compiler was poor, and
compilation was very very slow. There were
installations that tried it and dropped it. Others
used it, with the philosophy that even with
compiling times measured in hours the total
output of the installation was greater using the
compiler than without it. Experience with
Flow-Matic was almost the only experience
available on Data Processing compilers prior to
the launching of the COBOL project.

A group at IBM had been working for some
time on the Commercial Translator, 30 and some
early experience on that system was also available.
At the original Defense Department meeting
there were two points of view. One group felt
that the need was so urgent that it was necessary to work within the state of the art as it

PROGRAMMING SYSTEMS AND LANGUAGES

then existed and to specify a common language
on that basis as soon as possible. The other
group felt that a better understanding of the
problems of Data-Processing programming was
needed before a standard language could be proposed. They suggested that a longer range approach looking toward the specification of a
language in the course of two or three years
might produce better results. As a result two
committees were set up, a short range committee, and an intermediate range committee. The
original charter of the short range committee
was to examine existing techniques and languages, and to report back to CODASYL with
recommendations as to how these could be used
to produce an acceptable language. The committee set to work with a great sense of urgency. A number of companies represented had
commitments to produce Data-processing compilers, and representatives of some of these became part of the driving force behind the committee effort. The short range committee decided that the only way it could satisfy its
obligations was to start immediately on the
design of a new language. The committee became known as the COBOL committee, and their
language was COBOL.
Preliminary specifications for the new language were released by the end of 1959, and
several companies, Sylvania, RCA, and Univac
started almost immediately on implementation
on the MOBIDIC, 501, and Univac II respectively.
There then occurred the famous battle of the
committees. The intermediate range committee
had been meeting occasionally, and on one of
these occasions they evaluated the early COBOL
specifications and found them wanting. The preliminary specifications for Honeywell's F ACT30
compiler had become available, and the intermediate range committee indicated their feeling
that Fact would be a better basis for a Common
Business Oriented Language than Cobol.
The COBOL committee had no intention of
letting their work up to that time go to waste.
With some interesting rhetoric about the course
of history having made it impossible to consi·1er any other action, and with the support of
the Codasyl executive board, they affirmed Cobol
as the Cobol. Of course it needed improvements,

9

but the basic structure would remain. The
charter of the Cobol committee was revised to
eliminate any reference to. short term goals and
its effort has continued at an almost unbelievable rate from that time to the present. Computer manufacturers assigned programming
Systems people to the committee, essentially on
a full time basis. Cobol 60, the first official description of the language, was followed by 61 31
and more recently by 61 extended. 32
Some manufacturers dragged their feet with
respect to Cobol implementation. Cobol was an
incomplete and developing language, and some
manufacturers, especially Honeywell and IBM,
were' implementing quite sophisticated data
processing compilers of their own which would
become obsolete if Cobol were really to achieve
its goal. In 1960 the United States government
put the full weight of its prestige and purchasing power behind Cobol, and all resistance disappeared. This was accomplished by a simple
announcement that the United States government would not purchase or lease computing
equipment from any manufacturer unless a
Cobol language compiler was available, or unless the manufacturer could prove that the performance of his equipment would not be enhanced by the availability of such a compiler.
No such proof was ever attempted for large
scale electronic computers.
To evaluate Cobol in this short talk is out of the
question. A number of quite good Cobol compilers have been written. The one on the 7090
with which I have had some experience may be
typical. It implements only a fraction, less than
half I would guess, of the language described in
the manual for Cobol 61 ext~nded. No announcement has been made as to whether or
when the rest, some of which has only been published very recently, will be implemented. What
is there is well done, and does many useful
things, but the remaining features are important, as are some that have not yet been put into
the manual and which may appear in Cobol 63.
The language is rather clumsy to use; for
example, long words like synchronized and
computational must be written out all too frequently; but many programmers are willing to
put up with this clumsiness because, within its
range of applicability the compiler performs

10

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

many important functions that would otherwise
have to be spelled out in great detail. It is hard
to believe that this is the last, or even very close
to the last word in data processing languages.
Before leaving Data Processing compilers I
wish to say a few words about the development
of the FACT compiler.
In 1958 Honeywell, after almost leaving the
computer business because of the failure of their
Datamatic 1000 computer, decided to make an
all out effort to capture part of the medium
priced computer market with their Honeywell
800 computer. The computer itself is very interesting but that is part of another talk.
They started a trend, now well established, of
contracting out their programming systems development, contracting with Computer Usage
Co. for a Fortran language compiler.
Most interesting from our point of view was
their effort in the Data Processing field. On the
basis of a contract with Honeywell, the Computer Sciences Corporation was organized.
Their contract called for the design and production of a Data processing compiler they called
FACT.3o.33
Fact combined the ideas of data processing
generators as developed by Univac, GE Hanford,34 Surge 35 and 9PAC with the concepts of
English language data processing compilers that
had been developed in connection with Univac's
Flow-Matic and IBM's commercial translator.
The result was a very powerful and very interesting compiler. When completed it contained over 250,000 three address instructions.
Designed to work on configurations as small as
4096 words of storage and 4 tape units it was
not as fast as some more recent compilers on
larger machines.
The Fact design went far beyond the original
COBOL specifications,30 and has had considerable influence on the later COBOL development.
Like all other manufacturers Honeywell has
decided to go along with the COBOL language,
and Fact will probably fall into disuse.

5. Assemblers and Operating Systems. Symbolic assembly language has become an almost
universal form for addressing a computer in a
computer oriented language.

After the first 704's were delivered in 1956
a number of users produced assembly routines
for use on the computer. One of the early standardization efforts involved a choice of a standard assembly program to be used by Share, the
704 users group. It is a sign of some of the
thinking that was current then that the standard chosen was U ASAP. 36 The first SAP was
a very basic assembly system. It did practically
nothing but one-to-one translation, and left the
programmer in complete control of all of the
parameters of the program. In the early days
many users felt that this was all an assembly
system should do. Some still feel that way, but
on most computers the simple assembly system
has been replaced by the full scale computer
oriented compiler in which one-to-one code
translation is augmented by extensive libraries
of subroutines and generators and by allocation,
segmentation, and other program-organization
features. 37
The word-macro-instruction apparently was
coined in connection with the symbolic assembly
systems that were developed for IBM's 702/705
computers. These Autocoder 38 systems with
their large macro-instruction libraries have
been used for huge amounts of data processing
programming on a number of machines.
Assembly systems gradually grew into or became incorporated into operating systems. 39 .40
Perhaps the earliest monitor system on the 704
was put into operation at the General Motors
Research center.41.42 The idea of automatic sequencing of batches of jobs spread rapidly until
it was almost universally used in connection
with large computers. It made it possible for
large computers to handle small jobs with reasonable efficiency and greatly extended their
range of application. The idea of such systems
was to run the computer without any stops, and
to relegate the operator to occasional mounting of tapes, and otherwise to responding to
very simple requests presented to him on the
on-line printer. Under such a system debugging
becomes a completely off-line process. The only
response to trouble in a program is to dump and
get on with the next program.
At the end of 1956 IBM announced its new
709 computer. The 709 was essentially a 704
with internally buffered input and output.

PROGRAMMING SYSTEMS AND LANGUAGES

As mentioned earlier, IBM was at its peak of
penetration of the large scale scientific computer market at that time, and the rest of the
industry watched with great interest as many
of the best programming systems people representing many leading scientific computer installations met as a Share committee to design the
very complex programming system which was
eventually called SOS (Share Operating System).
The design of programming systems by large
committees representing many companies and
institutions has almost invariably led to disappointing results. SOS was no exception.
Planned mainly by personnel of \Vest Coast aircraft and research companies, it was to be written according to their specifications by the IBM
programming systems activity on the East
Coast. Separation of design and implementation responsibility by 3000 miles is almost
enough in itself to guarantee great difficulty, if
not complete failure. In 1958 the chairman of
the Share 709 system committee wrote,43 "ThE
fundamental procedures used throughout the
system will undoubtedly be retained in every
installation." This has not been the case. The
SOS system is now in use at only a very few installations. There are many reasons, of which I
would like to suggest just a few. SOS put all of
its emphasis on the computer oriented programming system. The time during which SOS was
being designed and implemented was the time
during which the attitude toward Fortran was
changing from polite skepticism to very general
acceptance. By the time SOS was ir nearly full
operation some installations were using almost
nothing but Fortran. Apparently little or no
effort had been expended on the problem of
compatibility between SOS and Fortran. It was
only in 1962 that an SOS system which handles
Fortran was distributed by the Rand Corporation. 44 Their system accepts Fortran source
programs, and produces the binary symbolic or
squoze decks that can be combined with other
programs produced by the SOS system. IBM
boasted of over 50 man years of effort on the
SOS system for the 709. They spent almost no
effort on Fortran for the 709, on the theory that
Fortran was developed for the 704 would be
adequate. The Fortran II system that was
originally distributed for the 709 took no ad-

11

vantage of the fact that the 709 hardware permitted buffered input and output. The SOS
system provided a very elaborate buffering
system.
SOS proposed to provide a system in which
the programmer would need to know and use
only one language, the compiler source language. One of its major achievements was the
provision of source language modification of
programs at load tinle without full recompilation. A very versatile debugging system was
built around this feature. While this and other
features of the system are extremely attractive,
there is a' serious question as to whether they
are worth the price paid in system complexity,
and in increased loading time. I think it is
interesting to point out that a relatively simple
assembly system, FAP, and a very basic operating system, the Fortran Monitor System, both
originated at customer installations and not by
the manufacturer, became the most widely used
systems on the 709/90 computers. Quite similar
systems were introduced on competitive equipment, the Philco 2000 and the CDC 1604. Complexity and system rigidity no doubt contributed to the fact that SOS was not generally accepted. It win be interesting to foliow the history of a new and very complicated system, the
IBSYS/IBJOB complex that has recently been
introduced by IBM on the 7090 and related machines. A critique of these systems is far beyond the scope of this discussion. A few comments may be in order. IBJOB presents a very
elaborate assembly system MAP, and translators from two languages, FORTRAN IV and
Cobol into Map. They are then translated into
a language that is close to machine language,
with the final steps of the translation left to a
very complicated loader. T~le design, which
calls for the translation of problem oriented
source languages into an intermediate computer
oriented source language is very attractive. By
ha ving the assembly system do most of the work
of the compiler it is possible to have many of
the features of the problem oriented language
available by means of subroutine calls to those
who prefer to write in assembly language. This
design philosophy is attractive, but I think that
it is wrong. Attractiveness and elegance should
not be the determining design criteria for production compiling systems. Design of a system

12

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

is a compromise between many design criteria.
One of the most important is keeping the system overhead cost low on the many problems
that do not require the use of very sophisticated
system features. The code produced by a compiler like Fortran is straightforward simple
code. The assembler for such code can be simple and straightforward. The loading program
can be designed to permit easy combination with
programs produced by other systems. An assembler designed to aid in the production of
large programming systems contains many features that are seldom used except in the coding
of such systems. A wasteful mismatch may
occur when the output of Fortran is fed through
such an assembler.
Not so very many years ago there was quite
a bit of discussion as to whether general purpose operating systems should be designed and
supplied by the manufacturers. Some users felt
that the very great difference in the job mix
and operating philosophy at the various installations called for specially designed and tailored
system programs. For a time the argument
seem to be settled by the almost universal assumption that operating systems, and computer
software in general were as much an obligation
of the manufacturer as was the building of the
computers themselves. I wonder if this assumption will be able to stand up in face of the rapid
developments in the large computer field that
will lead to computing systems that are very
much more diverse, and very much more complex than those that are in general use today.
In the large computer field multiprocessing
and multiprogramming systems will soon become the rule rather than the exception. Many
experiments in these directions are being tried
with computers of the generation that is now
coming to an end. Systems combining a 7094,
a 1301 Disc unit and a 7040 will soon be com·monplace. There are a number of military systems involving several computers and much
peripheral equipment all working together under a common operating system.
Among newer computers already delivered to
customers there are several models that }lave
been designed to make it possible and practical
to run peripheral equipment on-line while simultaneously carrying out independent computer

processing tasks. The distinction between offline and on-line tends to disappear on such
systems, and the operating systems must be able
to control equipment in many different modes.
Systems already delivered that have some features that permit multiprogramming and multiprocessing include the Honeywell 800, The Ferranti Atlas, The Burroughs 5000 and D825.
There is some very interesting recent literature
about programming systems for these compu ters. 45.46.47
In the next generation of large computers it
may be possible to implement true demand processing systems. Demand systems have been
advocated by many in opposition to batching
systems. In a demand system problems are sub....
mitted as they arise. The system controls the
input of jobs and the scheduling of jobs by
stacking jobs in queues according to length,
priority, etc. A demand system requires multiprogramming facilities, but also requires much
more elaborate decision making on the part of
an executive system than is present in most
monitors today.
The complexity required in some of these operating systems may seem to require that they
be uniform systems designed and produced by
the manufacturer. But, another feature that is
being stressed more and more is modularity,
which permits an almost unlimited variety in
system configurations. It is very difficult to design a single operating system that is appropriate for a computing system based on Disc storage, and also for one based on tapes or drums,
and also for any combination of auxiliary devices. The problem will get more complicated
when high speed storage at different levels is
available in various q,uantities. It is quite reasonable to anticipate a system in the next few
years that will have a very high speed film memory, backed up by a fast core memory, backed
up by a large and somewhat slower core memory, backed up by high speed drums, then discs
and tapes. It will be a real challenge to design
programming systems that are valid for all
combinations in such systems.
In the early days one of the aims of the operating system was to get the human being out of
the system as much as possible. In a multi-programming system it is possible to allow human

PROGRAMMING SYSTEMS AND LANGUAGES
intervention in the running of a program without any appreciable loss of computer time, since
the computer will presumably have other programs it can work on. There has been a great
deal of publicity given to the experiments in the
use of on-line consoles on present day systems. 4H
Such consoles may be a routine part of many
computing systems in a few years.
In recent issues of a number of Computer
publications there is an advertisement for a
computer that claims to be faster than the 7090
and costs only $215,000 dollars. Whether or not
the claim is true, it does serve to emphasize the
fact that the cost of computer processing capability is going to go down rapidly. It is going
to be economically feasible to put together extremely large, varied, and complicated concentrations of computer components. Programming sys!ems are going to increase in number
and complexity, and the job of the system program designer is going to remain "as it always
has been, very difficult, but very, very interesting.
6. B'ibliography. This is not intended to be a
complete bibliography of the field of Programming Systems and Languages. It is rather a
selected list of publications that may help to
document the text. A great deal of reference
material is contained in manuals published by
computer manufacturers. It would serve no
useful purpose to list such manuals here. Manuals exist for just about every programming
system mentioned in the text, and the mention
of a language or system may be interpreted as
an implied reference to the manual. I have attempted to include specific references to sources
other than manuals for most systems discussed,
but in many cases the system manuals provide
better and more complete documentation.
In the following Bibliography the abbreviation "1954 Symposium" will be used to refer to
the Proc~edings of a Symposium on Automatic
Programming for Digital Computers, Navy
Mathematical Computing Advisory Panel, Office of Naval Research, Washington, D. C. May
13-14, 1954. These proceedings include a bibliography on pp. 150-152.
Additional references will be found in the
bibliography on pages 260-270 of reference 49.

13

1. AIKEN, H. H. and HOPPER, G. M. The Automatic Sequence Controlled Calculator.
Electrical Engineering 65 (1946) pp. 384391, 449-454, 522-528.
2. vVILKES, M. V., WHEELER, D. J. and GILL,
S. The Preparation of Programs for an
Electronic Digital Qomputer. AddisonWesley 1957. (First edition published in
1951.)
3. MACMILLAN, D. B. and STARK, R. H.
"Floating Decimal" Calculation on the IBM
Card Programmed- Electronic Calculator.
Mathematical Tables and other Aids to
Computation. (Mathematics of Computation.) 5(1951) pp. 86-92.
4. ADAMS, CHARLES W. and LANING, J. H. JR.
The M.LT. System of Automatic Coding:
Comprehensive, Summer Session, and Algebraic. 1954 Symposium. pp. 40-68.
5. BENNINGTON, H. D. Production of Large
Computer Programs. Proceedings of a
Symposil:lm on Advanced Programming
Methods for Digital Computers. Navy
Mathematical Computing Advisory Panel
and Office of Naval Research. Washington,
D. C. June 28,29, 1956.
6. HOPPER, G. M. The Education of a Computer. Proceedings of the Conference of
the ACM. Pittsburgh, 1952.
7. RIDGWAY, R. K. Compiling Routines. Proceedings of the Conference of the ACM
Toronto, 1952.
8. TAYLOR, A. E. The Flow-Matic and MathMatic Automatic Programming Systems.
Annual Review of Automatic Programming 1 (1960) pp. 196-206. Pergamon.
9. KINZLER, H. and MOSKOWITZ, P. M. The
Procedure Translator-A System of Automatic Programming. Automatic Coding.
Monograph No.3. Journal of the Franklin
Institute. Philadelphia, 1957 pp. 39-55.
10. HOLBERTON, F. E. Application of Automatic Coding to- Logical Processes. 1954
Symposium pp. 34-~9.
11. KAHRIMANIAN, H. G. Analytic Differentiation by a Digital Computer. 1954 Symposium pp. 6-14.
12. HOLT, ANATOL W. General Purpose Programming Systems. Communications of
the ACM 1 (1958) pp. 7-9.

14

PROCEE'DINGS-SPRING JOINT OOMPUTER CONFERENCE, 1964

13. BACKUS, J. W. and HERRICK, H. IBM 701
Speedcoding and other Automatic Programming Systems. 1954 Symposium. pp.
106-113.
14. BACKUS, J. W. The IBM 701 Speedcoding
System. Journal of the ACM 1 (1954) 4-6.
15. BAKER, CHARLES L. The Pact I Coding
System for the IBM Type 701. Journal of
the ACM 3 (1956) pp. 272-278. This is one
of seven papers on the Pact I system in the
same issue of JACM.
16. STEEL, T. B. JR. Pact lA. Journal of the
ACM. 4 (1957) pp.8-11.
17. WOLONTIS, V. M. A Complete Floating
Decimal Interpretive System. Technical
Newsletter No. 11 IBM Applied Science
Division. 1956.
18. PERLIS, A. J. and SMITH, J. W. A Mathematical Language Compiler. Automatic
Coding. Monograph No.3. Journal of the
Franklin Institute. Phildelphia 1957 pp.
87-102.
19. BACKUS r J. W. et al. The Fortran Automatic Coding System. Proceedings of the
Western Joint Computer Conference. Los
Angeles 1957 pp. 188-198.
20. SHERIDAN, P. B. The Arithmetic Translator-Compiler of the IBM Fortran Automatic Coding System. Communications of
the ACM 2 (February 1959) pp. 9-21.
21. PERLIS, A. J. and SAMELSON, K. Preliminary Report - International Algebraic
Language. Communications of the ACM
1 (December 1958) PP. 8-22.
22. ROSEN, S. and GOLDBERY, I. B. Altac, The
Transac Algebraic Translator. Preprints
of papers presented at the 14th National
Conference of the ACM. Boston, 1959.
22. ROSEN, S. Altac, Fortran, and CompataAbility. Preprints of papers presented at the
16th National Conference of the ACM, Los
Angeles, 1961.
23. SHAW, C. J. Jovial-A Programming Language for Real-time Command Systems.
Annual Review of Automatic Programming
3(1963) pp. 53-119. Pergamon.
24. HUSKEY, H. D., HALSTEAD, M. H. and
McARTHUR, R. Neliac, A Dialect of Algol.
Communicaitons of the ACM 3(1960) pp.
463-468.

25. HALSTEAD, M. H. Machine Independent
Computer Programming. Spartan Books,
1962.
26. ARDEN, B. W., GALLER, B. A., GRAHAM, R.
M. The Internal Organization of the Mad
Translator. Communication of the ACM
4(1961). This issue of the CACM contains
the Proceedings of an ACM Compiler Symposium, Washington D.C. November 1718, 1960.
27. GALLER, B. A. The Language of Computers. McGraw Hill, 1962.
28. NAUR, P. Editor. Revised Report on the
Algorithmic Language Algol 60. Communications of the ACM 6(1963) pp. 1-17.
Also published in Numerische Mathematic
and the Computer Journal.
29. BACKUS, J. W. The Syntax and Semantics
of the Proposed International Algebraic
Language of the Zurich ACM-GAMM Conference. Information Processing. Proceedings of ICIP, UNESCO, Paris 1959 pp.
125-132.
30. CLIPPINGER, R. F. FACT A Business Compiler. Description and Comparison with
COBOL and Commercial Translator. Annual Review in Automatic Programming.
Vol. 2(1961) Pergamon. pp. 231-292.
31. SAMMET, JEAN E. Basic Elements of
COBOL 61. Communications of the ACM
5(1962) p.237-253.
32. COBOL-1961 Extended. External Specifications for a Common Business Oriented
Language Dept. of Defense. 1962. U.S.
Govt Printing Office. Washington, D.C.
33. CLIPPINGER, R. F. FACT. The Computer
Journal 5(1962) pp. 112-119.
34. MCGEE, \V. C. Generalization: Key to Successful Electronic Data Processing Journal of the ACM 6(1959) pp. 1-23.
35. LONGO, F. SURGE: A Recording of the
COBOL Merchandise Control Algorithm.
Communications of the ACM 5(1962) pp.
98-100.
36. MELCHER, W. P. Share Assembler UASAP
3-7. Share Distributor 564. 1958. The
Original UASAP 1 was written by Mr.
Roy Nutt.

PROGRAMMING SYSTEMS AND LANGUAGES
37. CHEATHAM JR., T. E., and LEONARD, G. F.
An introduction to the CL-II Programming System. Document CAD-63-4-SD.
Computer Associates Inc. Wakefield, lVlass.
1963.
38. GOLDFINGER, R. The IBM Type 705 Autocoder Proceedings of the Western Joint
Computer Conference.
San Francisco
1956.
39. ORCHARD-HAYS, W. The Evolution of Programming Systems. Proceedings of the
IRE 49(1961) pp. 283-295.
40. MEALY, G. H. Operating Systems. Rand
Corporation Document P-2584. Santa
Monica, California, 1962.
41. RYCKMAN, G. F. The Computer Operation
Language. Proceedings of the Western
Joint Computer Conference 1960, pp. 341343.
42. FISHMAN, J. J., HARROFF, D. F., LIVERMORE, F. G. and KUHN, E. F System
(FS-3). Internal Publication of the General Motors Research Laboratories (1960).
43. SHELL, D. L. The Share 709 System: A
Cooperative Effort. Journal of the ACM
6(1959) p. 123-127. This is one of the six
papers on the Share 709 System in the
same issue of J AGM.

15

44. BRYAN, G. E., Editor. The Rand-Share
Operating System Manual for the IBM
7090 Computer. Memorandum RM-3327PR, Rand Corporation. Sept. 1962.
45. KILBURN, T., HOWARTH, D. J., PAYNE, R. B.
and SUMNER, F. H. The Manc,hester University Atlas Operating System. Parts 1
and II. The Computer Journal 4(1961) pp.
222-229.
46. KILBURN, T., PAYNE, R. B. and HOWARTH,
D. J. The Atlas Supervisor. Proceedings
of the Eastern Joint Computer Conference, Washington, D. C. 1961. pp. 279-294.
47. THOMPSON, R. N. and WILKINSON, J. A.
The D825 Automatic Operating and Scheduling Program. Proceedings of The Spring
Joint Computer Conference.
Detroit,
Mich. 1963 pp. 41-49.
48. CORBATO, F. J., MERWIN-DAGGETT, M. and
DALEY, R. C. An Experimental Time-Sharing System. Proceedings of The Spring
J oint Computer Conference. San Francisco, 1962.
49. CARR, J. W., III. Programming and Coding. Part B of Handbook of Automation,
Computation and Control. Volume 2. Wiley
1959.

BOUNDED CONTEXT TRANSLATION
Robert M. Graham
Computation Center
Massachusetts Institute of Technology
Cambridge, Mass.
All translators are syntax-directed in the
sense that the translator must obviously recognize the various syntactic structures and the
output of the translator is a function of the
syntax of the language. The term syntax-directed is usually applied to a translator which
contains a direct encoding of the syntax of the
language, this direct encoding being used by
the translator as data. The companion paper
by Cheatham and Sattley is concerned with this
type of translation.! In the other class of
translators the syntax is essentially buried in
the coding of the translator. Most of the
algebraic languages in use are precedence
grammars,2.3 or close enough so that the properties of precedence grammars are useful.
U sing the properties of precedence grammars,
bounded context translation is possible. At each
step in the scan of an expression in bounded
context translation the decision as to what
action to take next is a function of the symbol
currently under scan and of N symbols on
either side (where N is fixed for the particular
language) .

elimination of common sUbe:x;pressions and
optimum evaluation of Boolean expressions, 8
are much simpler when applied to some intermediate form rather than to the original expression or the final machine language version.
The intermediate form exhibits the structure
(i.e., which subexpressions are the operands of
each operator) and the order of evaluation of
the subexpressions.
In this paper we will restrict ourselves to
the source language defined in Appendix A.
For the sake of brevity when we say expression
we will mean either an expression, as defined
in Appendix A, or an assignment statement.
This language has no constants and identifiers
are single letters, thus avoiding the problem
of recognition. A translator for a language
such as ALGOL would have a recognizer which
would scan a statement and which, each time
it was called; would recognize the next element
in the input string. After recognizing an identifier the recognizer would store it in a symbol
table if it were not already there. The symbol
table would also contain other information pertaining to the identifier such as type, address,
dimension, etc. The recognizer would then return a pointer to the place in the symbol table
where that identifier and its properties were
stored. A constant, after recognition, would, be
stored in a table of constants, given an internal
identifier, and treated from that point on just
as any other identifier would be. When an
operator was recognized, a pointer to the place

Most translators produce an intermediate
form of the program before producing the final
machine code. Once this intermediate form is
produced, the distinction between syntax-directed translation and other methods disappears. The primary goal of the intermediate
form is to encode the program in a form which
is easily and efficiently processed by the computer. Most optimization algorithms, such as

17

18

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

in the operator table where the properties of
that operator were stored would be returned.
Thus we see that the recognizer would effectively reduce an expression of a language such
as ALGOL to an expression of our language;
that is, each element would be reduced to a
single symbol. In general, the intermediate
form does not contain the identifiers or operators but the pointers supplied by the recognizer.
However, for clarity, in the examples we will
use the actual identifiers and operators. The
recognizer is heavily dependent upon the details
of the particular language being translated and
such characteristics of the computer as character representation, word size, etc. The algorithms to be discussed in this paper depend only
upon a few very general properties of the source
language. Most of the common compiler languages have these properties so the techniques
discussed here are essentially language independent. While the algorithms which we will
describe here apply only to the simple expressions of Appendix A, several of them may be
trivially generalized to translate more complex
expressions and even the bulk of the ALGOL
statements.'·8.12
Some representation of the tree form of an
expression is used in several translators. Fig1..

Tree fOrAI

B

C

2. -

E

F

3..

0

2

II. +

1

3

5. :- A

II

,,

Matrix fOrAI

/:-~
''''-,
/.
B

1. If this is the first time this row has been
examined and,
a. If the minor string pointer is not
empty; proceed to the row named by
it.
b. If the minor string pointer is empty;
evaluate this row and proceed to the
row named by the maj or string
pointer.

2. If this is the second time this row has
been examined, evaluate this row and
proceed to the row named by the major
string pointer.

Figure l.
I

ure 1 shows the tree form of the expression
A :=:B*C+D* (E-F) and the matrix re-presentation of the tree 5 ,6,7,8 The first column is
the operator, the second column is the left
hand operand, and the third column is the
right-hand operand. An integer represents theresult of the row with that number. The subexpressions are to be evaluated in the sequence
in which the rows are written. Figure 2 shows
the tree form used by ROSS.12 The first three
columns in the representation are the same as
in Figure 1. There are two additional columns
which explicitly state the sequence of subexpression evaluation. The fourth column is
the minor evaluation string pointer (dashed
arrows in the tree) and the fifth column is the
major evaluation string winter (solid arrows
in the tree). In the example the evaluation is
to start with row 2. The rules for following the
evaluation strings for the row under examination are:

~~~

1. :- A

3

*

B

C

II

2.

I
."
"CID/~

3. +

2

II • •

\~

D7

5. (

6

E/-.. . . . . .F

6. -

£

7. )

5

,\,~ d"",
?

Ross's tree form

Figure 2.

5

1

3
6

F

Representat Ion

7

In this example the '('and')' symbols should
be treated as "do nothing" operators when their
evaluation is called for by the rules. Ross's
representation is part of a more general system
and, hence, some features of the representation
are not pertinent to this discussion. A representation similar to Ross's based on threaded
lists is described in Ref. 9.
Evans' bases his intermediate form on postfix
notation. The expression A :=:B*C+D*(E-F)
in postfix form is ABC*DEF-*+ :=:. In this
form both the structure and the order of subexpression evaluation are implicit. The rigbthand operand of an operator is the first complete expression to the left of the operator and

BOUNDED CONTEXT TRANSLATION

the left-hand operand is the second complete
expression to the left of the operator. In the
example the right-hand operand of the
is
'DEF-*' and the left hand operand is 'BC*'
The subexpressions are evaluated in left to
right order.

'+'

The transformation of a completely parenthesized expression into matrix form is relatively simple. The expression is scanned from
left to right. The following rules are applied
to each symbol as it is encountered (a variable
name is considered as a single symbol) :

+

-

*

/

19

+

left

left

right

right

-

left

left

right

r.i gh t

*

left

left

left

left

/

left

left

left

left

:

.

right right right

right

1. If the symbol is not a ')'; continue the

scan.
2. If the symbol is a ')' and the expression
is properly formed then the four symbols
to the left of the')' should be of the form
'sl#s2', where 'sl' and 's2' stand for
variable names or integers (row numbers) and '#' is any operator; write
'# sl s2' as the next row of the matrix
and replace '(sl#2)' in the expression
by the number of the row just written in
the matrix. Continue the scan.
In Figure 3 the changes in the expression are
shown on the left, the small.arrow under the
expression indicating the points, during the
scan, at which a row is written in the matrix.
The row actually written at that point is shown
on the right.
Completely parenthesized expressions have
such an overabundance of. parentheses that they
are difficult to read; hence, languages such as
ALGOL have precedence rules making it unnecessary to write completely parenthesized expressions. The language is a precedence grammar if the precedence rules are such that given
two adjacent operators it is unambiguous which
is to be evaluated first. Thus if a language is
a precedence grammar it is possible to construct

t

(A:-(
(A:-(
(A:-(
(A:-

1
1
1

-... -

1.

B

C

+(O*(E-F~»)

2.

E

F

»)

3.

0

2

1

3

(A: -( (B*C)+(O*( E-F»»

+(0+

2

,

+

»
t
)

t

Figure 3.

5. :-

" ..

Figure 4.

a table of the type shown in Figure 4. To determine which of two adjacent operators to evaluate first, find the intersection of the row labeled
with the left operator ,and the column labeled
with the right operator. In the context of
transforming an expression into matrix form,
the order of evaluation of the operators is to
be interpreted as the order of their entry into
the matrix. A subexpression enclosed by parentheses is to be completely evaluated before any
consideration is given to the operators on either
side of it. ~pplying these considerations we
have the following rules for transforming an
expression to matrix form. We enclose the
expression on the left by '[-' ;and on the right
by '-I'. Again we scan from left to right, applying the rules to each symbol in turn:
1. If the symbol is an operator, # I, and the
left context is,
a. '[-sl'; continue the scan.
b. '( sl' ; continue the scan.
c. 's2#2s1'; look up #2#1 in the table.
If the table entry is,
i. 'right'; continue the scan.
ii. 'left'; write '#2 s2 s1' as the next
row of the matrix, replace 's2#2s1' in
the expression by the number of the
row just written in the matrix, and
apply rule 1 again.

2. If the symbol is ')' and the left context'
is,
a. 's2#s1'; write '# s2 sl' as the next
row of the matrix, replace 's2#sl' in

20

PROCE,E'DINGS-SPRING JOINT COM,PUTER CONFERENCE, 1964

the expression by the number of the
row just written in the matrix, and
apply rule 2 again.
b. '(s'; replace' (s)' by's' and continue
the scan.
3. If the symbol is '-I' and the left context
is,
a. 's2#s1~; write '# s2 s1' as the next
row of the matrix, replace 's2#s1' in
the expression by the number of the
row just written in the ,matrix, and
apply rule 3 again.
b. '1- s'; the expression has been completely transformed into matrix form.

6. The label ERR has been filled in for all illegal
operator pairs. If one of these occurs then the
expression is incorrectly formed. The questions
of the detection of incorrectly formed expressions and what action to take when errors are
detected is very important in actual translator
construction. These questions will not, however, be discussed in this "paper. We will assume
here that all expressions are properly formed.
When the function T (x, y) takes on the value
END then the matrix form of the expression
is complete.

This is the essence of bounded cpntext translation. The rules just stated show that N ==3 for
the precedence grammar of appendix A. That
is, in deciding what action to take next, at most
only the three symbols immediately to the left
of the symbol currently under scan need be
examined regardless of the length of the expression being translated.
Before examining some ways that bounded
context analysis has actually been implemented
let us restate, precisely, the above rules in the
form of a flow chart (Figure 5). In the flow
charts of this paper the true exit of a decision
box is marked t and the false exit is marked f.
We consider the expression being analyzed as
a string of symbols, S (indexed by k), bounded
on the left by '/-' and on the right by '-I'.
We will distinguish three classes of symbols:

1:-1+1
1iI( I.I>:-L(j-I>
M(I,Z):-L(j-Z)
~I( 1.3):-L(j)
j :-j-2;LO ):-1

1. I, the class of identifiers: any variable

name.
2. R, the class of matrix row numbers: any
integer.
3. 8, the class of operator symbols: 8 ==
{+, -, *, I, :==, (, ), 1-, -/}. For future use we distinguish the subclass of
arithmetic operators, 8° == {+,-, *, I}.
Symbols from the input string are transferred
to an auxiliary list, L (indexed by j). This will
avoid the problem of gaps when replacements
are made in the input string. M is the matrix
(with i the row index) and T (x, y) is a function whose arguments are a pair of operators
and whose value is the label found at the intersection of the x-row and the y-column in Figure

Figure 5.

.

.I

+

-

.

I

MTX

MTX

PUT

PUT

:-

)

-f

ERR

MTX

MTX

MTX

MTX

PUT

PUT

ERR

f.lTX

MTX

MTX

MTX

MTX

~ITX

ERR

MTX

MTX

MTX

MTX

MTX

MTX

ERR

MTX

MTX

:- PUT

PUT

PUT

PUT

ERR

ERR

MTX

(

PUT

PUT

PUT

PUT

ERR

DEL

ERR

... PUT

PUT

PUT

PUT

PUT

ERR

END

Figure 6.

BOUNDED CONTEXT TRANSLATION

21

It is obvious from the table in Figure 6 that
most operator pairs cause one of two actions
to take place: 1) the operator currently under.
scan is put on the list, or 2) rows are written
in the matri~ until an operator pair is found
which calls for some other action. The only
exceptions are the removal of parentheses and
termination of the transformation. If a precedence function is defined for each operator then
a table of all operator pairs is not necessary.
A precedence function, P (x), is defined such
that, given a pair of operators #1#2, if
P(#1)#~#P(#2) then the operator #1 is
evaluated before the operator #2. A precedence
function for the operators used in the previous
examples is defined in Figure 7. The algorithm
for transforming an expression into matrix
form that is used in GAT5 and MAD6.7 uses
a precedence function. The flow chart in
Figure 8 gives an algorithm for generating the
matrix form of the expression. This algorithm
differs from the GAT-MAD algorithm only in
the direction of scanning the expression. N 0tice that, assuming all expressions are properly
formed and since P('(') < P(')') and P(,I-')
< P('-I'), when the test P(Lj-1» ~
P(S(k) ) fails then S(k)==')' implies L(j-1) ==
'(' and S(k) == '-I' implies L(j-1) == '1-'.

is encountered in the scan, instructions are
generated to move its value onto the N list.
Bauer and Samelson give, in the same paper,
modifications to this algorithm which will generate more efficient machine code.

Bauer and Samelson 10 use two lists, one,
L, in the translator and one, N, in the object
program. L, called the "symbols cellar," is used
for storing operators which can not be evaluated yet, just as in the previous algorithms. N,
called the "numbers cellar," is used by the
object program during execution for the temporary storage of partial results and values of
identifiers. Their algorithm does not generate
an intermediate form, but immediately generates machine code~ In the examples of this
paper, the machine language used will be that
described in Appendix B. This language is very
similar to the F AP symbolic machine language
used on the IBM 709-90-94 computers. C (indexed by m) will be a matrix where generated
machine instructions are stored. The first column will contain the operation code and the
second column the. address. ·Figure 9 is the
table, for Bauer and Samelson's algorithm, corresponding to the table in Figure 6, and Figure
10 is their algorithm. Whenever an identifier

Figure 7.

x

P(x)

I

7

*

7

+

6

-

6

:=

5

)

4

(

3

-f

2

I-

1

Figure 8.

22

PROGE~EnINGS-SPRING

JOINT COM'PUTER CONFERENCE, 1964

.

-

*

I

(

)

PUT

PUT

PUT

PUT

PUT

ERR

END

+

MTXl

MTXl

PUT

PUT

PUT

MTXl

MTXl

-

MTX2

MTX2

PUT

PUT

PUT

MTX2

MTX2

*

MTX3

MTX3

MTX3' MTX3

PUT

MTX3

~'TX3

I

MTX ..

MTX ..

MTXII

MTXII

PUT

MTX ..

MTXII

(

PUT

PUT

PUT

PUT

PUT

DEL

ERR

~

-I

Figure 9.

Figure 11.

+

C("l,ll:-'CLA'
C(ot+l,2':-N(h-ll
C(m+2,1):-'FOP'
C(ot+2,2':-N(h)
C(ot+3,1l:-'STQ'
C(m+3 2):-N(h-ll

+

-

*

I

:-

MTX

MTX

PUT

PUT

ERR

(

)

-I

PUT

PRN

MTX

-

MTX

MTX

PUT

PUT

ERR

,?UT

PRN

~'Tx'"

*

MTX

MTX

MTX

MTX

ERR

PUT

PRN

MTX

I

MTX

MTX

MTX

MTX

ERR

PUT

PRN

MTX

:-

PUT

PUT

PUT

PUT

ERR

PUT

ERR

MTX

(

PUT

PUT

PUT

PUT

ERR

PUT

MTX

ERR

)

·MTX

~'TX

MTX

MTX

ERR

ERR

ERR

MTX

~

PUT

PUT

PUT

PUT

PUT

PUT

ERR

END

Figure 10.

Ross's algorithm, as given in Ref. 12, transforms more than just expressions into tree
form. In the version of his algorithm given in
Figures 11 and 12 the machinery not needed to
transform expres~ions has been omitted. A
minor evaluation string pointer is set whenever
the right operand of an operator is set and
both operands are variables, or whenever a left
operand is set and the o-perator is a modifier.
The only modifier in an expression is the '('.
The minor evaluation string is forced to pass

Figure 12.

through modifiers since a modifier may change
the interpretation of the right operand. For
example, the right operand of '(' may' be either
a normal subexpression or the argument of a
function depending upon whether the left argument of the' (' is empty or is an identifier. A
major evaulation string pointer is set whenever
a right or left operand is set and the operand,
is a row number.

BOUNDED CONTEXT TRANSLATION

Evans 4 uses an algorithm based on Floyd's
productions. l l Instead of generating machine
code directly as Floyd did in his paper, Evans
transforms the expression into postfix form.
This algorithm is probably the most versatile
of the lagorithms which we have described here.
The central idea here is a set of productions
which determine the course of action at each
step in the translation process. A production
consists of five parts;
1. A top of stack configuration.
2. A replacement for the configuration of
part 1.
3. The name of an action routine.
4. Scan, no scan flag.
5. Which production to consider next.

Figure 14 gives the productions for transforming ,an expression into postfix form. The expression is scanned from left to right. As each
new character is scanned it is put on the top
of the pushdown stack and the productions are
then searched for the first one whose part 1
matches the present top of the stack (when a
class symbol such as eo appears, any member
of that class will give a match). When a match
is found, that portion of~ the top of the stack
which matched part 1 of the production is replaced by part 2 of the production. If part 2
is empty, the replacement degenerates to the
deletion of the symbols, which matched part 1,
from the top of the stack. The action routine
named in part 3 is then executed. After the
action routine has been executed the ,productions are again searched for a match with the
top of the stack; however, the search is started
with the production whose line number is given
in part 5 of the last interpreted production. If

1
1

•

2

(

3

"

5

2

(

,. ,:-

:-

-. -.

6

)

7

()

3
OUT

)

Nap
CaMP
OUTP( 'loc')
CaMP

"

·
··
·

CaMP
Nap

x

P(x)

*

7

/

7

+

6

-

6

:-

5

)

4

-I

3

(

2

1-

1

Figure 14.

5
3

1
1
1
END

7

·

3

P-Table

Figure 13.

Figure 15.

23

24

PROCE'E'DINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

a '*' appears in part 4, a new symbol is scanned
from the input string before the search continues. The productions given in Figure 13 are
sufficient only to transform the simple expressions of this paper. The productions that Evans
gives will transform all the statements of
ALGOL into postfix form. Figure 15 gives an
algorithm for transforming an expression into
postfix form using the productions of Figure
13. The action routine OUT puts the last identifier scanned into the output string, M. The
action routine OUTP (x) puts its argument, x,
into the output string. The productions cause
the unary operator 'loc' to be introduced into
the output string following a variable which is
on the left ,side of ':==', .which indicates that
a location (where a value is to be stored) is
involved rather than a valu~. The action routine COMP uses the precedence function, defined in Figure 14, to determine when operators
are placed in the output string (i.e., to determine the sequence of evaluation of the operators) .

the matrix, M, is translated by making a copy,
in the code output matrix, of the pattern corresponding to the operator M (i, 1), replacing all
cccurrences of '1' by the left operand, M (i, 2),
all occurrences of lr' by the right operand,
M (i, 3), and all occurrences of 't' by the row
number, i. The row numbers (integers) which
appear in the code are to be interpreted as the
names of temporary storage locations. Figure
17 is an algorithm for performing this translation. N is the number of rows in the matrix,
M, C is the code output matrix, P AT1 (x) a
function whose value is the index of the first
line of the pattern for the operator x, and
P AT2 (x) a function whose value is the index
of the last line of the pattern for x (both these
functions are defined in Figure 18). The translation of the matrix in Figure 1 is shown in
Figure 19.
It is immediately obvious that very inefficient
machine code is produced by this algorithm.

Once the matrix form of the expression has
been generated, the final translation to symbolic machine code is relatively simple. Corresponding to each operator is a set of machine
instructions, a pattern. Figure 16 gives the
patterns for the operators of our language; the
fi"rst column is the operation code and the second column is the address. The matrix is translated one row at a time, in sequence. Row i of
operator

1

eLA

1

2

FAD

r

3

STO

t

II

eLA

1

5

FSB

r

6

STO

t

7

LDQ

1

8

FMP

r

t

9

STO

10

eLA

I

11

FOP

r
t

12

STQ

13

eLA

r

111

STO

1

+

:-

Pattern Table

Figure 16.

Figure 17.

BOUNDED CONTEXT TRANSLATION

x

PATl(x)

PAT2(x)

+

1

3

-

4

6

*

7

9

I

10

12

:a

13

14

Figure 18.

1.

*

2. -

:3.

*

II. +

B

E

D

1

A

Matrix

C

F

2

:3

II

LDQ

B

FMP

C

STO

1

CLA

E

FSB

F

STO

2

LDQ

D

FMP

2

STO

:3

CLA

1

FAD

:3

STO

II

the code output matrix depend upon the contents of the special registers.
The method used in the MAD translator is
general enough for the machine structure assumed in this paper. The problem of generating efficient machine code is a very difficult
one and is yet unsolved. There are methods,
undocumented, other than the one to be described but none which can claim to produce
highly efficient code in all circumstances. The
patterns will be arranged so that the result of
a row is, in general, not stored, i.e., it will be
left in one of the registers AC or MQ. The
machine code produced when a row of the
matrix is translated will depend on the values
of four Boolean variables. These variables are
named AC, MQ, LO, and RO. Suppose we are
ready to translate the ith row of the matrix,
then these variables have the following meanings:
1. If AC is true, the result produced by row
i-I is in the AC.

I

CLA

II

I

STO

A

.

~lachlne

25

2. If MQ is true, the result produced by row
i-I is.in the MQ.
3. If LO is true, the left operand in row i is
i-l (I.e., the result of row i-I).

code

Figure 19.

Once we begin to consider the production of
efficient machine code, the algorithms rapidly
get very complicated. We can make some improvement, however, without a great deal of
complication. In the example are several redundant store and fetch instructions. These can
be eliminated if we keep track of the contents
of the special machine registers. We then insert
store instructions only when the current contents of a special register is not one of the
operands of the next operator and fetch instructions only when the operand is not already
in a special register. To implement this we
generalize the idea of patterns. Corresponding
to each operator is a variable ·pattern, that is,
the instructions which are actually copied into

Figure 20.

26

PROCE'EDINGS-SPRING JOINT COM·PUTER CONFERENCE, 1964

4. If RO is true, the right operand in row i
is i-I.
Instead of regarding the patterns as a ·fixed set
of machine code to be produced in translating
operation
code

first
operand

second
operand

M

inst

a

11

12

s

val

J

a row of the matrix, we now take the view
that the pattern is really a small 'program
which, when executed, produces machine code.
Viewing it in this light, we need a language in
which to write the program.

meaning
compile the machine instruction inst with a
in its address field (a may be I, r, t, or blank)
if AC -1 == 'true' transfer to line 11,
MQ JI otherwise transfer to line 12
LO

r

AO
l
set the value of

[~gJ to val

transfer to line 1
halt

H

In our language we will need the following
types of instructions: produce a machine instruction, branch on the truth or falsity of one
of the Boolean variables, absolute transfer, set
the value of one of the Boolean variables, and
halt. Figure 20 is a flow chart for a program
to produce the code for '+', where '1' and 'r'
have the same meanings as in Figure 16, but
't' now refers to the temporary used to store
the result of the previous row. Notice that if
there is a result in the AC or MQ and it is not
either of the operands then instructions to
store it and fetch one of the operands are generated. If one of the operands is in the wrong
special register an exchange instruction is gen-

x

PAT(x)

-+

1

-

20

*

37

I

54

:-

68

erated. The word COMPILE means, here,
write the instruction into the code output
matrix.
A command in our pattern programming language will have a line number, an operation
1 RO

2

26

AC

28

2 AC

~

27

:,

XCA

27

~IQ

52

~9

52

M

STQ

t

53

J

49

5 ..

LO

55

61

57

56

3 M

XCA

28

M

FSB

.. M

FAD

I

29

J

5

5 S

AC

true

30

AC

n

3~

55

AC

6 S

MO

false

31

H

STO

t

56

'1

'J"

elA

I

57

34

/110

35

32

35

M

STU

t

36

J

32

61

37

RO

38

102

62

)9

63

7 H

32

8 lO

9

13

9 AC

11

10

H

28

10 M

XCA

11M

FAD

12 J

5

13 AC

III

17

31

MO

.. 0

III M

STO

t

39

M

XCA

1

r

15 M

ClA

16 J

11

17MQ

18

15

t

r

1

XCA
FOP

r

S

AC

false

59

S

"Q

true

60

H
AC

62

65

M

5TO

t

M

CLA

I

610

J

57

65

','0

66

63

66

M

STI"!

t

J

63

58

"

40

M

FMP

U

J

5

"2

lO

43

107

67

H

'~Q

.. 5

....

68

RO

69

7 ..

....

,.,

xeA

69

AC

70

72

STO

I

STQ

I

r

IBM

STQ

19 J

15

20 RO

21

25

.. 5

/I

FMP

21 AC

23

22

.. 6

J

5

r

70

M

71

H

22 M

lCA

.. 7

AC

108

51

72

H

23M

CHS

.. 8

M

STO

t

73

H

49

M

lDQ

I

n

,.,

CLA

50

J

.. 5

75

J

70

211 J

II

25 LO

'76

3D

Pa ttl! rn PrO.l'l'Ilms

Figun21.

51

Figure 22.

BOUNDED CONTEXT TRANSLATION

MQ:-'false'
RO:-'false'

C(j , 2 ) : -M ( i , 2 )

Figure 23.

27

28

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

x

OP(x)

M

MOP

AC

ACOP

MQ

MQOP

LO

LOOP

RO

R,OOP

S

SOP

J

JOP

H

HOP

Figure 24.

AC

M

1.

*

-

I

LO

E

fal se

false

C

RO

B C
true

2.

MQ

fal se

F

LOQ

B

FMP

C

STO

1

CLA

E

F

I

line of the pattern program for the operator x.
The values of LO and RO are set by examining
the operands in a row before executing the pattern program for that row. The function
P AT (x) is defined by the table of Figure 21,
~igure 22 gives the pattern programs (the P
matrix), and Figure 23 is the interpreter for
the pattern programs, i.e., the algorithm for
translating the matrix into machine code.
OP (y) is a function, defined in Figure 24,
whose argument, y, is one of the operation
codes of the pattern programming language and
whose value is a label, the label of that portion
of the algorithm which interprets the operation
code y. Figure 25 shows the translation of the
matrix in Figure 1 into machine code using the
algorithm of Figure 23. For each row of the
matrix is shown the machine code produced for
that row and the status of the four Boolean
variables after translating that row and just
before considering the next row, that is, at
point 3 in the flow chart of Figure 23. Notice
that just this simple consideration of the contents of the special registers gives us a saving
of five instructions when compared to the instructions produced by the algorithm of Figure
17.

Figure 25.

It is obvious that only trivial modifications
are necessary to be able to use the pattern program interpreter with Ross's intermediate
form. Instead of considering the rows of the
matrix in sequence, the minor and major evaluation strings are followed. When the rules for
following the evaluation strings call for evaluation of a row, the appropriate pattern program
is interpreted. Evans uses an algorithm very
similar to the pattern program one which we
have described.

code, and two operand fi~lds. The commands
are:
The program for translating the matrix into
machine code now becomes an interpreter
which executes (interpretively), for each row
of the matrix the appropriate pattern program.
The pattern programs will be stored in a
matrix, P (indexed by k), the first column ""is
the operation code, the second column is the
first operand, and the third column is the second operand. As before, we have a function
PAT (x) whose value is the index of the first

No consideration has been given to the type
(real, integer, etc.) of the identifiers involved.
In many computers there are different instructions for floating decimal (real) and integer
arithmetic. This is easily taken care of by
having, for example, two pattern programs for
'+', one to be interpreted when the operands
are real, and the other to be interpreted when
the operands are integer. Finally, it is clear
that the interpreter instead of generating machine instructions could actually execute them,
thus turning the entire translator itself into

3.

*

0

true

fal se

false

true

FSB

true

false

fal se

true

FMP

0

true

false

false

true

FAD

1

STO

A

XCA

2

4.

+

1

3

5.

:-

A

4

BOUNDED CONTEXT TRANSLATION

an interpreter which could execute (interpretively) programs written in the source language.
BIBLIOGRAPHY
1. CHEATHAM, T. E., JR., and K. SATTLEY:
Syntax Directed Compiling, Pt'oceedings of
the 1964 SJCC, Washington, D. C., April
19.
2. FLOYD, R. W.: Syntactic Analysis and
Operator Precedence, J. ACM, 10 (3):
316-333 (1963).
3. FLOYD, R. W.: Bounded Context Syntactic
Analysis, Comm. ACM, 7 (2): 62-65
(1964).
4; EVANS, A., JR.: An ALGOL 60 Compiler,
paper presented at the 18th Annual Meeting of the ACM, Denver, August 1963.
5. ARDEN, B. W., and R. M. GRAHAM: On
GAT and the Construction of Translators,
Comm. ACM, 2 (7): 24-26 (1959); correction, Comm. ACM, 2 (11): 10-11
(1959) .
6. ARDEN, B. W., B. A. GALLER, and R. M.
GRAHAM: The Internal Organization of the
MAD Translator, Comm. ACM, 4 (1) : 2831 (1961).
7. ARDEN, B. W., B. A. GALLER, and R. M.
GRAHAM: An Algorithm for Translating
Boolean Expressions, J. ACM, 9 (2) : 222239 (1962).
8. GRAHAM, R. M.: Translator Construction,
Notes of the Summer Conference on Automatic Programming, University of Michigan, June 1963.
9. EVANS, A., JR., A. J. PERLIS, and H. VAN
ZOEREN: The Use of Threaded Lists in
Constructing a Combined ALGOL and
Machine-Like Assembly Processor, Comm.
ACM,4 (1) : 36-41 (1961).
10. BAUER, F. L., and K. SAMELSON: Sequential
Formula Translation, Comm. ACM, 3 (2) :
76-83 (1960).
11. FLOYD, R. W.: A Descriptive Language for
Symbol Manipulation, J. ACM, 8 (4) : 579584 (1961).

29

12. Ross, D. T., and J. E. RODRIGUEZ: Theoretical Foundations for the ComputerAided Design System, P1'oceedings of the
1963 SJCC, Detroit, May 1963, pp. 305322.
13. NAUER, P., et al.: Report on the Algorithmic Language ALGOL 60, Comm.
ACM, 3 (5): 299-314 (1960).
APPENDIX A

Definition of the Language Used in the
Examples
 : :==A I B I C 1DIE I FIG I H
 : :==  I
( < expression> )
 : :==* I /
 : :==+ 1: :== I 

: :== I 
 
: :==:==
< expression>
APPENDIX B

The Machine Language Used in the Examples
There are two special registers, the A C and
the MQ. Instructions are single address. The
meaning of the instructions is expressed as a
short ALGOL program. The '?' in the context
'MQ:==?' means that the contents of the MQ is
indeterminate. When the name of a register
does not appear to the left of an ':==' in the description of an instruction, then the value of
that register is unchanged.
Instruction
Meaning
CLA X
AC:==X
FAD X
AC:==AC+X; MQ:==?
LDQ X
MQ:==X
FMP X
AC :==MQ*X; MQ :~ ?
FDP X
MQ :==AC/X; AC :==?
FSB X
AC:==AC-X; MQ:==?
STO X
X:==AC
STQ X
X:==MQ
CHS
AC:==-AC
XCA
TMP :==AC; AC :==MQ; MQ :== TMP

SYNTAX-DIRECTED COMPILING
T. E. Cheatham, Jr., and Kirk Sattley
Computer Associates, Inc.
Lakeside Office Park
Wakefield, Massachusetts
We are concerned hardly at all with the extremely important and often neglected problems
of the~envirj)nment in which a compiler or code
resultiJ1g;from a com'piler is to operate. Reference [3] sketches our position in this matter.

INTRODUCTION
This paper is primarily concerned with the
analysis of source statements in a programming
language, although some of the ideas and techniques may be applicable to the analysis of
source statements in a natural language. We
are particularly concerned with those techniques which might be classed as predictive;
the companion paper by Graham 7 is concerned
with other ("nonpredictive") techniques of
analysis. Very broadly the techniques we will
discuss operate as follows: Given a set of rules
(Syntax Specification) for forming allowable
constructs, eventually 1-esulting in a statement
(or sentence, word, program, etc.) of a language, we analyze a source statement in that
language by guessing, or predicting, how the
statement is constructed and either verifying
that this is the case or backing up to try again,
assuming some other method of construction.
We keep a "history" of Our attempts and when
we have determined the exact way in which the
statement is constructed we can use this "history" of its construction for further processing
of the components of the statement.

The phrase "syntax-directed" in the title
refers to the method by which the compiler is
given the syntactic specification of the language
it is to compile. That is, rather than having the
syntactic structure· of the language reflected in
the actual encoding of the compiler algorithm,
a "syntax-directed" compiler contains (or uses,
as parametric data) a relatively simple and
direct encoding of the syntactic structure of
the language, for example, as it might be expressed in Backus Normal Form.. By "simple
and direct encoding," we mean, for instance,
numerical codes for the distinct syntactic types
of the language, and direct pointers representing the relations of concatenation and alternative choice, plus perhaps some sorting.
This paper is not intended as a review or
critique of syntax-directed eom'piIers or compiler techniques nor have we presented a comprehensive bibliography on the subject. Rather,
our purpose is tutorial-to present in as
straightforward a manner as possible the essential ideas of syntax-directed compilers. Unfortunately, there is, at the present time, no
completely adequate review paper on the subject; Floyd13 does include a rather complete
bibliography.

We will be concerned, secondarily, with the
synthesis of machine coding, given an analysis
of a source statement. We do not, however, discuss in any detail the difficult (and, at this
point, not terribly well understood) problems
of synthesizing highly efficient coding~ Reference [1] contains a brief discussion of this
prohlem..

31

32

PROCEEDINGS-,SPRING JOINT COMPUTER CONFERENCE, 1964

Our presentation commences with a discussion of syntax and the syntactic specifications
of languages-programming languages in particular. We then discuss techniques for encoding the syntax into tables and develop a
simple algorithm, the ANALYZER, which can
perform a syntactic analysis of source material,
using this tabled syntax specification as data.
From this we proceed to a discussion of the
generation or synthesis of code from the results
of the analysis. Finally, we discuss several
problems and limitations. Certain problems of
syntactic specification and some modifications of the schemes we describe in the body of
the paper have been discussed in an appendix.

In order to discuss the structure of the language,., we give names to classes of strings in
the language-we call these names (or the
classes they denote) "Syntactic Types." Some
of the classes of interest consist of single characters of the source alphabet: these we call
"Terminal Types," and specifically "Terminal
Characters"; to talk about any particular one,
we will merely display the character. Most of
the classes, though, are more complicated in
structure and are defined in terms of other
classes; these we call "Defined Types," and to
designate one, we choose a mnemonic name for
the class and enclose it in the signs' <' and' >'.

SPECIFICATION OF SYNTAX

Rather than proceed immediately to a discussion of Backus Normal Form, we shall first
define a simple form of Synt~.x Specificationthe Basic Specification. This consists of a set
of "Simple Type Definitions" (meaning, not
that the Types are simple, but the Definitions
are). A Simple Type Definition consists of the
name of a Defined TY'pe, followed by the curious
sign ':::=' followed by a sequence of Syntactic
Types, Defined or Terminal. An example, taken
from the Syntax I-soon to be discussedwould be:

Several essentially equivalent formalisms for
the representation of syntax have been developed. These include such things as
Post Production Systems, developed by the
logician Emil Post during the 1940's as a tool
in the study of Symbolic Logic;
Phrase Structure Grammars, developed by
the linguist Noam Chomsky during the 1950's
as a tool in the study of natural languages; and
Backus Normal Form, developed by the programmer John Backus during the late 1950's
as a tool in the description of programming
languages.
We shall use here a formalism most similar
to.Backus's.
A syntactic specification of a language is a
concise and compact representation of the structure of that language, but it is merely thata description of structure-and does not by
itself constitute a set of rules either for producing .allowable strings in the language, or for
recognizing whether or not a 'Proffered string
is, in fact, an allowable string.
However, rules can be formulated to produce,
or recognize, strings according to the specification. In a "syntax-directed" compiler it is an
algorithm which performs the recognition of
allowable input strings, and it does this by
using (an en co dement of) the Syntax Specification as data. In this paper, 'we shall call such
an algorithm an (or the) "Analyzer."

Basic Syntax Specification

 : ::= := 
The Defined Type on the left of the ':::=' is
called The Defined Type of the Definition; and
the Definition is said to be a Definition of its
defined type. In general--even for the more
complicated forms of Type Definitions yet to
come-we shall call the right-hand side of the
Definition the "Definiens." Any sequence of
type designators appearing in a Definiens is
called a "Construction," and each type designator within the Construction is a "Component"
of the Construction. So, the above example is a
Definition of the Defined Type ;
its Definiens is a Construction with three components, which are, in the order of their appearance, the Defined Type , the
Terminal Charcater ':=' and the Defined Type
<.arith expr>.
A Simple Type Definition of this sort states
that, among the strings of the source language
belonging to the .Defined Type, are those which
are concatenations of substrings-as many

SYNTAX-DIRECTED COMPILING

substrings as there are components of its (Simple) Definiens-such that each substring (in
order of concatenation) belongs to the Syntactic Type named by the corresponding Component (in order of appearance in the Definiens).
Applied to our example: A source string belongs
to the class  (or, for short, "is
an ") if it can be broken into
three consecutive substrings, the first of which
is a , the second of which is the
single character '==', and the third of which is
an .
If we were interested in using Syntax Specifications as '''generative grammars"-that is, if
we were writing an algorithm to use a Syntax
Specification to produce sam·ples of strings of
the language, we would write something which,
applied to our example, would have the effect
of: "if you wish to produce an ,
then: first choose any "definition of 
and 'produce a string according to that definition, then, second write down the character '==',
then third produce an  according
to any definition of that type; then you have
produced an "
Thus, the use of a (Basic) Syntax Specification as a generative grammar is quite straightforward. The inverse problem-using the Syntax Specification a~ a "recognition grammar"is, like many inverse problems, rather more
involved. In our opinion, the fundamental idea
-perhaps "germinal" would be a better word
-which makes syntax-directed analysis by computer possible is that of goals: a Syntactic Type
is construed as a goal for the Analyzer to
achieve, and the Definiens of a Defined Type
is construed as a recipe for achieving the goal
of the Type it defines. * It is this use of goals
which leads to another description of analysis
techniques of this kind-"predictive analysis" :
setting up the recognition of a particular Syntactic Type as a goal amounts to predicting that
an instance of that type will be found. N eedless to say, this use of the term "goal" is not
to be confused with the "goal-seeking behavior"
of "artificial intelligence" programs or "self-

* To our knowledge, the first

person to formulate and
implement this conception was E. T. Irons, in his initial
design of the PSYCO compiler; his paper [4] describes
the essentials of his compiling technique.

33

organizing systems." However, when we come
to specifying the algorithm for selecting par~
ticular goals in a particular order, we reach
the point at which the several existing syntaxdirected techniques diverge. Our purpose in
this section on "Basic Syntax Specification" is
to lay a foundation common to the principal
different applications of the technique; hence,
if we try to "picture" the use of a Syntax
Specification as a recognition grammar, as we
pictured its use as a generation grammar in
the preceding paragraph, the most generally
valid statement we can make is :
We can say that we have recognized an occurrence of a given Syntactic Type (at a given
position in the source string) if one of the two
following conditions obtains:
1. The Syntactic Type is a Terminal Character, and the character at the given position in the source string is exactly that
Terminal Character;
2. The Syntactic TY'pe is a Defined Type, and
for some one of its (Simple) Definitions,
we have already recognized concatenated
occurrences of the Components of that
Definiens, in the stated order, the first
of which occurs at the .given position.
In t>rder for the set of Simple Type Definitions to constitute a useful Syntax Specification, it should satisfy some conditions.
(Cl) Any Defined Type which occurs as a
Component in any Definiens must also occur as
the Defined Type of some definition.
The desirability of this "completeness condition" is fairly obvious-it will be very difficult
to recognize a Defined Type if the Analyzer has
no Definition of that Type. Of course, it is possible that the Analyzer may never be asked to
find an instance of this Type, but then all the
Definitions which included it as a Component
would also be superfluous.
(C2) Every Defined Type must ultimately be
constructible entirely out of Terminal Characters.
This "connectedness condition" is designed to
prevent a cycle of definitions which it is impossible to break out of-that is, if a Defined
Type is defined only in terms of Defined Types,

34

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

each of which in turn is defined only in terms
of Defined Types, etc. Of course, it will be true
that there will be cycles within the act of definitions, and these cycles may be traversed arbitrarily many times; but there must exist some
point in each cycle where an alternative definition of one of the types exists. It is probably
sufficient to restate condition (C2) in the following fashion:
A Terminal Type will be said to be "grounded."
A Defined Type is grounded if it has at least
one Definition, all of whose Components are
grounded; then
(C2') Every Defined Type must be grounded.
(C3) There must exist exactly one Defined
Type which does not appear as a Component in
any Definiens (except possibly its own). This
Type is called the "Starting Type" of the Syntax Specification.
The Starting Type represents the "largest"
construction allowable under the Specification
--e.g., "sentence," or perhaps "paragraph," in
natural language applications, or usually "program" in compiler applications. If there is no
Starting Type, the Analyzer, quite literally, will
not known where to begin.
Let us note here in passing that there is a
property of Syntax 8pecifications which is of
great importance to theoreticians in this field,
and to people who are designing new languages
or trying to construct Specifications for existing complex languages, but which is irrelevant
to the problem of programming a syntax-directed Analyzer. This is the question of "structural ambiguity" -does the Syntax Specification permit a particular source-language string
to be correctly analyzed in two different fashions? A simple example, taken from natural
language (with apologies to Oettinger) is:
"Time flies incessantly." This is certainly an
English sentence-but is it a metaphorical declarative sentence, or a terse imperative? In
the case of an Analyzer algorithm on a computer, only one thing is done at a time-if the
Analyzer is asked to find an instance of an
Ambiguous Syntactic Type, it must try one of
the possible definitions first; if that definition
succeeds, the Analyzer is satisfied, and the other
definitions are not considered. This is not to

say that an Analyzer, one of whose functions
is to find all possible analyses, cannot be built;
this has been done by Oettingerl l for natural
language, and by Irons 5 , for use in compiling.

Some Transformations of the Basic
Specification
We shall now proceed to build up to the description of a particular simple Analyzer algorithm, and at this point, we must choose one
among several different techniques. The differences between the various techniques stem from
the following considerations:
-Given a Syntax Specification, there are
different ways of using it to determine the next
goal which the analyzer is to pursue. The two
major approaches are called the "top-down"
and the "bottom-up" techniques.
-There are different ways to use the output
of the Analyzer, e.g., interpretation, immediate
generation of output code, recording of the
analyzed structure for later generation, etc.
The particular type of Analyzer we have
chosen to describe here is, we believe, the easiest
to explain, and is suitable for any of the three
output-treatments mentioned above. It does not
correspond, so far as we know, to any actually
existing compiler system, although it bears a
surprisingly strong resemblance to the algorithm used in some of the compilers that Computer Associates, Inc., has recently produced.
(See Shapiro and Warshall)1.
The first step is to transform our Basic Syntax Specification into a Backus Normal Form.
The description of a Syntactic Type Definition
is now expanded so that the Definiens, instead
of simply a Construction (which, remember,
was a sequence of Components, which, in turn
were Syntactic Types) can now be a sequence
of Constructions, separated by the special sign
'I'. Any such sequence of Constructions, separated by 'I' and appearing in a Definiens is
called an "Alternation," and the individual Constructions in the sequence are called "Alternatives" of the Alternation. To transform a Basic
Syntax Specification into Backus Normal Form,
we must repeatedly apply the following transformation rule to the set of Definitions, until
it can no longer be applied:

SYNTAX-DIRECTED COMPILING

(Tl) If any Defined Type has more than one
Definition in the set, delete an such Definitions,
and add to the set a new Definition whose lefthand side is the Defined Type in question, and
whose Definiens is an Alternation of the original (Basic) Definientes.
As an example, the Basic Syntax Specification for the simple language we are using for
illustration in this paper would have contained
three definitions for  :


 ::== 
 ::== «arith expr»
After applying (Tl) to the Basic Specification,
these three Definitions would be replaced by the
single Definition


(  )

I



I

This Definition, of COurse, should be read "a
source string is a  if it is either a
 or an  or an  enclos~d in parentheses." This Backus
Normal Form is exactly the form of Syntax
Specification used in the defining documents
for ALGOL 60 [8], and Table 1 presents a
conlplete syntax for a simple arithmetic programming language in this form, which we
shall refer to as "Syntax 1."

The Action of the Analyzer
We can now sketch out the action of the
Analyzer: At the beginning of the process, it
takes the Starting Type of the Specification as
its first goal. Then at any point in the process
it follows these steps when it has a Defined
Type as its current goal:
The Analyzer consults the Definition of the
Defined Type (in Backus Normal Form, of
course, each Defined Type has a unique Definition) , and specifically, it considers the first
Alternative in that Definition. It then successively takes each Component of that Alternative
as a sub-goaL (Of course, it must re-enter
itself for each of these goals, and it must keep
track of where it was at each level of re-entry.)
If at any point it fails to find one of these subgoals, it abandons that Alternative, and considers the next Alternative in that Definition,

35

if there is one, and steps through the Components of that Alternative. If there is no next
Alternative, it has failed to realize its current
goal, and reports this fact "upstairs." If it
succeeds in finding the sub-goals corresponding
to each of the Components of any Alternative
in the Definition of its current goal, it has
found its goal, and reports that fact.
T-his rough sketch conveniently ignor-es a
number of sticky points which we now have to
consider. The first of these -points is that we
discussed the action of the Analyzer only when
its current goal was a Defined Type. What if
the goal is a Terminal Character?
When it· comes to writing a compiler in practice, the question of recognizing Terminal Char- .
acters brings us face to face with the lovely
problems of restricted character sets, inputoutput idiosyncracies of the particular computer, etc. Both in practice and in the remainder of this paper, we assume the presence of
another routine, called the "Recognizer," which
the Analyzer can call upon to deal with these
problems. So far, we have also glossed over the
problem of keeping track of where in the Input
String the Analyzer is looking. Obviously, when
the first Component of some Construction has
been recognized, starting at a certain point in
the Input String, then, when the Analyzer proceeds to look for the next Component, it must
move its Input-String pointer past the substring
which satisfied the first Component. Now, since
a Type which has been successfully recognized
consists, ultimately, of a sequence of Terminal
Characters, and the recognition of Terminal
Characters is the job of the Recognizer, we
shall also leave the moving of the Input-String
pointer to the Recognizer. The fundamental
action of the Recognizer is then as follows:
The Recognizer is called by the Analyzer,
and asked if a specified Terminal Character
occurs at a stated character position in the
Input String. The Recognizer then negotiates with the I/O system of the computer
(if necessary) and examines the characterposition in the input string. If the input
character at that position is not the Terminal
Character the Analyzer asked for, the Recognizer reports failure. However, if the input
character is the desired Terminal Character,

36

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

the Recognizer reports success to the Analyzer, and advances the Input-string pointer by
one character position.
H·aving the Recognizer at hand, it turns out
to be convenient in practice to give it some further responsibilities. Consider the definitions
of  and  in Syntax I.
These amount to saying that 'an  is
any sequence of digits, and a  is
any sequence of letters or digits as long as the
first one is a letter. If we relegate the recogni...;
tion of these fundamental types to the Recognizer, rather than the Analyzer, we obtain
several advantages.
-The Recognizer can be hand-tailored to perform these :particular recognitions very efficiently on the particular machine, and this
speeds up the analysis considerably.
-As far as the Analyzer is concerned, if the
Syntax Specification calls for an ,
for instance, any old integer will do. But when
we come to generating output code, we'll need
to know the particular integer which occurred
at that point. The Recognizer can perform the
conversion from external number representation to machine representation, and either return the numerical value, or enter the number
in a "Literal Table" and return its index value.
Similarly, when it recognizes , it
can look in a "Symbol Table" for previous occurrences of that particular variable, add it to
the table if necessary, and return a line number.
-In practical applications the question of
what constitutes a "blank" is often an involved
one. In some languages, a long comment may
function syntactically as a blank. When a compiler runs under the control of some operating
systems, certain segments of the Input string
(e.g., identification fields in cards) must be
treated as blanks, or ignored entirely. Since
the Recognizer constitutes the interface between the Analyzer and the outside world, it
can take care of these matters.
To allow for this extended Recognizer in our
Syntax Specification, We allow another sort of
Terminal Type (up to now, we recall, the only
Terminal Types have been Terminal Characters). We designate these new Terminal Types

with script capital letters, and call them "Terminal Classes." Thus, in Syntax I, we can delete the definitions of , ,
, and , and replace the Definientes of  and  by the
Terminal Classes QI and (1, respectively. This
·produces Syntax II, Table 1, which is the one
we shall refer to throughout the rest of this
paper.
But this technique could be carried further.
A compiler-builder might decide that he prefers
operator-precedence techniques for the analysis
of arithmetic expressions, while keeping the
flexibility of syntax-direction for analysis of the
larger constructions. His arithmetic-expression
scanner would then function as a Recognizer
for the previous Defined Type ','
and, for this simple language, the Syntactic
Specification would take the form of Syntax III,
Table 1.
To summarize: When the current goal is a
Defined Type, the. Analyzer calls upon itself
to find it, but when the goal is a Terminal Type,
it calls upon the Recognizer. When the Recognizer is called, it determines according to its
own internal rules, Whether the desired Terminal Type occurs in the Input string at the current pointer-position; if not, it reports failure;
if so, it advances the pointer past the substring
which constitutes the Terminal Type (single
character, or member of a Terminal Class), and
reports success.

Encoding the Syntax Specification
Weare now almost ready to proceed to the
encoding of the Syntax Specification for the use
of the Analyzer, except for one embarrassing
question:
Consider, as an example, the definition of
 in Syntax II :
: :==

I  * 

What if the Analyzer should find itself considering the second Alternative in this Definition? This would amount to the Analyzer
saying to itself "in order to find my current
goal, which is , I must set out to find
the first Component of this Alternative, which
is ." In order to find a term it must

SYNTAX-DIRECTED COMPILING

37

TABLE 1
Alternative Syntax Specifications

Syntax I:

< assignment>








Syntax II:

< assignment>






 1  ; 
 == 
 1  + 
 1  * 
 I  1 «arith expr»
 1   I  
 I  
AIBICIDIEIFIGIHIIIJIKILIMINIOIPI
QIRISITIUIVIWIXIYIZ

0111213141516171819
 I ·; 
 == < arith expr>
 I  + 
 I  * 
 I  I «arith expr»


 I 
 ::==  == 
, .. -' £

a
be able to find a term first. This is called the
"left recursion problem,", and it has led some
language designers to disallow Type Definitions
which include Alternatives which mention the
Defined Type of the Definition as their first
Com,ponent. To a human analyst, of course, the
intent of the Definition is plain ;he should first
look for a ; if he finds one, he has
indeed found a , but he should continue looking to see if he can find a '*' followed
by another ; if he can, he has found
a "longer" , and should continue looking for a: still longer one; as soon as he fails
to find a '*' following his latest ,:eterm>, he
can stop looking, confident that he has found
the longest  at that point in the string.
This recognition process can be embodied in the
encoding of the Syntax Specification, but it
does require detecting the presence of these



left-recursive alternatives, and giving them
some special treatment. Keeping this in mind,
we shall proceed to encode the Syntax Specification.
The encoding consists of two tables, the Syntax Type Table and the Syntax Structure Table.
The Syntax Type Table will contain an entry
for each Syntactic Type which occurs anywhere
in the Syntax Specification, whether it be a Defined Type or a Terminal Type. Each entry i
the Type Table consists of two items: a yes-no
item TERMINAL, and an integer item LOOKFOR. When line t in the Type Table corresponds to a Terminal Type, TERMINAL [t]
will be set to "yes," and LOOKFOR [t] will contain an arbitrary code number which the Recognizer will interpret as denoting the particular
Terminal Character or Terminal Class it should
try to recognize. When line t in the Type Table

38

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

TABLE 2
The Syntax Tables
(GOAL)
(Type)

< assignment>





Q/
(]

,

--

+
*

(
)

(Index)

TERMINAL

LOOKFOR

i
ii
iii
iv
v
vi
vii
viii
ix
x
xi
xii
xiii
xiv
xv

No
No
No
No
No
No
No
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes

1
4
7
10
13
18
19
101
102
1
2
3
4
5
6

2.1
Syntax Type Table
SOURCE
(Index)

TYPECODE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

ii
x
i
vi
xi
iii
iv
xii
iv
v
xiii
v
vi
vii
xiv
iii
xv
viii
ix

I
STRUCT

SUCCESSOR

ALTERNATE

Yes
No
Yes
No
No
Yes
Yes
No
Yes
Yes
No
Yes
Yes
Yes
No
No
Yes
Yes
Yes

2
3
OK
5
6
OK
8
9
8
11
12
11
OK
OK
16
17
OK
OK
OK

FAIL
OK
FAIL
FAIL
FAIL
FAIL
FAIL
OK
FAIL
FAIL
OK
FAIL
14
15
FAIL
FAIL
FAIL
FAIL
FAIL

Corresponds
to
Definition

1.1
1.2
1.2
3.1
3.2
4.1
4.2
5.1
5.2
5.3
6.1
7.1

SYNTAX-DIRECTED COMPILING

corresponds to a Defined Type, TERMINAL [t]
will be set to "No," and LOOKFOR [t] will contain some line-number in the Syntax Structure
Table, to be filled in presently~ We keep in mind
that we can now use small integers as, in effect,
names of Syntactic Types, by using them to
index the Syntax Type Table.
The Syntax Structure Table will contain a
line for each Component of each Alternative of
each Definiens in the Syntax Specification. Each
line of the Structure Table will consist of four
items:
TYPECODE, an integer item, will contain
line numbers referring to the Type Table;
STRUCT, a yes-no item;
SUCCESSOR and
ALTERNATE, integer items, will contain
line numbers referring to other lines of the
Structure Table,plus two special codes
denoted by "OK" and "FAIL."
The Syntax Structure Table is constructed according to the following rules:
Consider first a Defined Type which has no
left-recursive Alternative in its Definiens. Reserve a block of entries in the Structure Table.
Assign an entry in the Structure Table to each
Component in each Alternative in the Definiens.
In the Type Table line corresponding to this
Defined Type-say, t-set LOOKFOR [t] to the
Structure-Table line number assigned to the
first Component of the First Alternative of the
Definiens. In each Component-line s, set TYPECODE [s] to the Type Table line number of the
Syntactic Type which occurs as that Component in the Definiens. In each line corresponding to a Component which is not the last Component of an Alternative, set STRUCT to "No"
and SUCCESSOR to the line corres'ponding to
the next Component. In each line corresponding to a Component which is the last Component
of an Alternative, set STRUCT to "Yes" and
SUCCESSOR to "OK." In each line corresponding to a first Component of any Alternative except the last Alternative of the Definiens,
set ALTERN A TE to the line corresponding to
the first component of the next Alternative. Set
all other ALTERN ATE fields to ,"FAIL."
If the Defined Type contains a left-recursive
Alternative: (we shall here assume there is

39

only one left-recursive Alternative-See Appendix). Set the left-recursive Alternative
aside temporarily, and carry out the above
process for the other Alternatives. Then:
Assign a Structure-Table line to each Component of the recursive Alternative except the
recursive Component itself.
Set TYPECODE in each of these lines, as
above.
Set SUCCESSOR and STRUCT in each of
these lines, except for the last Component, as
above.
.
Call the first of these lines (the one corresponding to the Component which immediately
follows the recursive Component in the Definiens) the "handle."
Set ALTERNATE in each of these lines, except the handle, to "FAIL."
Set ALTERNATE in the handle to "OK."
Set SUCCESSOR in the line for the last
Component of this Alternative to the handle,
and set STRUCT in this line to "Yes."
Now, in the lines corresponding to last Components in all the other Alternatives in this
Definiens, SUCCESSOR will have been set to
"OK" by the nonrecursive treatment. Replace
each of these "OK"s by the line number of the
handle.
The Syntax Type Table and the Syntax Structure Table corresponding to Syntax II are
shown together as Table 2. In the hope of
~GOAL
- I (Stan:1. . Type)
,SOURCE - 0
'CIIAR- 1

~INAL [GOAL]? ~••~~;;;;;~Qiiii~iL)
~

~------~

PU'~'
SOURCE-~

Figure 1. Flow Chart for ANALYZE.

40

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

reducing the confusion involved in having entries in each table pointing to the other, w(
have indicated the indexing of the Syntax Type
Table with Roman numerals, and the indexing
of the Syntax Structure Table with Arabic
numerals, and we have added the names of the
syntactic types corresponding to the lines of
the Syntax Type Table.

The Analyzer Algorithm
The flow chart, Figure 1, illustrates an
Analyzer working from Syntax Tables of the
sort we have just constructed. The following
remarks will help to follow the flow chart.
-The global quantities GOAL, SOURCE, and
CHAR are used as follows:
GOAL is the line number in the Syntax
Type Table corresponding to the Syntactic Type currently being considered
(initially, the Starting Type).
SOURCE is the line number in the Syntax
Structure Table of the Component currently being considered (initially undefined, hence set to zero) .
CHAR is the (ordinal) number of the
character position in the Input String
next to be considered (initially set to
the beginning of the String, here 1).
-The operations of "Pushdown" and "Popup" are performed on these globals-this may
be done by any appropriate mechanism. For
definiteness, let us assume an index Y (initially
zero) accessible to these two operations, and
arrays GYOYO, SYOYO, and CYOYO. Then
(in quasi ALGOL notation),

+

Pushdown: Y :== Y 1
GYOYO[Y] :== GOAL;
SYOYO[Y] :== SOURCE·;
CYOYO[Y] :== CHAR;
Popup: GOAL :== GYOYO [Y] ;
SOURCE :== SYOYO[Y];
if CHAR is mentioned in the call
then CHAR :== CYOYO [Y]; Y
:==Y-l;

Plausibly, CHAR is popped up when an Alternative has failed, and the Analyzer must back
up to the beginning of that Construction and
try another Alternative at the same place; and
CHAR is not popped up-hence left as it has

been set by the successful recognitions-when
some Alternative has succeeded.
-Recognize is assumed as described earlier:
It returns a success/failure indicator which is

tested in the "Found?" box. For definiteness
again, we shall assume that, when it succeeds
in recognizing a Terminal Class, it places a
Symbol-Table or Literal-Table line number in
some global location, for the Generator to use.
-The following sections of this paper will
discuss possible uses to be made of the Analyzer's results. The routine which considers
these results is named the "Generator," and it
is represented in this flow chart by a subroutine
call box: "Generate." When Generate is called,
the valij.e of SOURCE uniquely indicates the
Syntactic Type which has been recognized and,
moreover, the particular Alternative in the Definition of that Syntactic Type which has just
succeeded. The column headed "Corresponds
to Definitions" ha.s been added to the Syntax
Structure Table to indicate this relationship.
The numbers in this column correspond to the
Alternatives in the "semantics" tables, Tables
4 and 5.
DOING SOMETHING USEFUL WITH THE
ANALYSIS
A syntactic analysis, such as that depicted
verbally in the preceding section or via the flow
chart in Figure 1, is an important part of the
problem which must be solved by a compiler,
but it is only a part. The goal of a compiler is,
after all, to produce the coding required to
carry out the procedure described in the programming language being compiled. This coding might be desired as actual machine instructions for some computer or it might be desired
as instructions appropriate for some interpreter
available on one or more machines or it might
be desired in some other· form. In any event,
some further processing is required once the
syntactic analysis is complete in order to "generate" and format the coding to be output.
Let us suppose that the syntactic analysis has
proceeded to the point where some syntactic
type has been recognized (in the flow chart,
Figure 1, we have passed through the "GENERATE" box). The contents of SOURCE tells us

SYNTAX-DIRECTED COMPILING

41

TABLE 3
"Interpretive Semantics" for Syntax II


1.1 

I 

1.2
2.1 

3.1 

: :==

: :==

: :==

{Execute the  then proceed}

 == 

{"Locate" the  (determine
its address for later assignment of
value); then evaluate the ; then assign its value ·to the
 }



{Evaluate the  ; the value of the
 is this value}



I  * 

4.2

5.1 

; 

I  + 

3.2

4.1 

{Execute the  then halt}



{Evaluate the  and then the
; the value of the (defined)  is the sum of
these two values}
{Evaluate the ; the value of
the  is this value}
{Evaluate the  and then the
 ; the value of the (defined)
 is the product of these two
values}
{The value of the  is the value
of the }

5.2

I 

{The value of the  is the value
of the }

5.3

I «arith expr»

{Evaluate the  ; the value
of the  is the value of the
 }

6.1 

7.1 

00-

 is the
value most recently assigned to the
variable QI}

o

{The value of the  is the
value of the integer 0 (according to
the conventional representation of integers) }

which syntactic type has been recognized as
well as which alternative construction of the
syntactic type was built. Thus, some action or
set of actions could be initiated at this ,point to
process this syntactic type in a variety of ways.
For example, Table 3 gives for each alternative construction of the syntactic types of Syn-

tax II a verbal description of the computations
to be performed upon recognition of that construction. Corresponding to this table, the analysis of the assignment statement
X == NU* (Y + 15)
could yield the following fragments of (slightly
edited) verbal description:

42

PROCEEDINGS-SPRING JOINT COMPUTER CONF'ERENCE, 1964

Line
6.1 

Construction
Q/

Source

x

6.1



5.1





NU

4.1





NU

6.1



5.1





Y

4.1





Y

3.1



·

Y

7.1



(]

15

5.1





15

4.1
3.1





< ari th expr>


15
Y

( 

4.1




* 

+ 15
+ 15)

NU* (Y

+ 15)

3.1





NU* (Y

+ 15)

2.1



 =
 X= NU* (Y

+ 15)

Description of Computation
The value* of the 
is the value most recently assigned to the variable X.
The value of the  is
the value most recently assigned to the variable NU.
The value of the  is
the value of NU.
The value of the  is the
value of NU.
The value of the  is
the value most recently assigned to the variable Y.
The value of the  is
the value of Y.
The value of the  is the
value of Y.
The value of the 
is the value of Y.
The value of the  is
15.
The value of the  is
15.
The value of the  is 15.
The value of the 
is Y
15.
The value of the ,
(Y + 15) is Y + 15.

+

The value of
NU* (Y 15) is
The value of the
NU*(Y +15) is

+

the ,
NU* (Y 15).

NU*(Y +15).

+

Assign the value of NU* (Y
15) to the variable X.

+

* Obviously, the current value of the variable X is not of interest here since the purpose of the assignment is to
assign a value to X.
Thus, with a certain amount of editing, the
recognition of X = NU* (Y
15) yields the
verbal description:

+

"Let NU and Y represent the values most
recently assigned to the vadables NU and
Y; then compute NU* (Y
15) and assign
the resulting value to the variable X."

+

Table 4 illustrates a very simple a'pproach to
the problem of machine code synthesis. With
each syntactic construction is associated a set
of actions. These actions are of two typesoutput and set. The interpretation of the actions is reasonably obvious. The bracketed
numerals under the components of a construc-

SYNTAX-DIRECTED COMPILING

43

TABLE 4
Machine Code Semantics for Syntax II-Direct Generation
1.1 

::==

1. Output END


[1]

I 

1.2

; <·program>
[2]
[3]

[1]

 == 

2.1 

[1]

[2]

1. Output CLA (addr

[3]

)

[3]

2. Output STO addr

[1]
3.1 

: :==

1. Set addr == addr



[ ]

[1]

I  + 

3.2

[1]

[2]

[1]

1. Output CLA (addr

)

[1]

[3]

2. Output ADD (addr

)

[3]
3. Output STO (addr

)

[ ]
4.1 

::==

1. Set addr == addr
[1]
[ ]


[1]

i  * 

4.2

[1]

[2]

)

1. uutput LV\:l \ aoar
•

'T'T""'Irt.J""'\.

,

"

[1]

[3]

2. Output MPY (addr

)

[3]
3. Output STQ (addr

)

[ ]
5.1 

: :==



1.

5.2

I 

[ ]

I «arith expr»
[1]

6.1 

.. - rv

[2]

[1]

1. Set addr == addr

[1]

5.3

Set addr == addr

[ ]

[1]

[3]

[1]

1. Set addr == addr
[ ]

[2]

1. Set addr == the variable name

[ ]
recognized at this point of the input
string.
7.1 

(J

1. Set addr == a symbolic name for the

[ ]
address in which will be kept, the
integer constant recognized at this
point in the input string.

44

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

instruction a temporary storage register is to
be assigned. In the example below we use the
notation tj for the jth such temporary. Again
consider the assignment

tion identify the components. The notation
addr
means the result address associated
[1]

with the component identified by [1] in the
syntax specification. A bracketed blank represents the syntactic type being defined and
addr
represents the result address of this

x=

[ ]
type; when the addr

+ 15).

a'ppears in a machine

If this assignment is analyzed and actions carried out as per Table 4, the following results:

Construct

Source

[ ]
Line
6.1 

NU*(Y

Result

Q!

X

addr [] = X

6.1



Q!

NU

addr [] = NU

5.1





NU

addr [] = NU

4.1





NU

addr

6.1



Y

addr [] = Y

5.1





Y

addr [] = Y

4.1





Y

addr [] = Y

3.1





Y

addr [] = Y

7.1



(j

15

addr [] = 15

5.2





15

addr [] = 15

4.1





15

addr [] = 15

3.1




+ 

Y

+ 15

[]

= NU

CLA Y
ADD=15
STO tl

5.3



«arith expr»

4.1



*.

+ 15)
NU* (Y + 15)

3.1





NU* (Y

2.1



 =
< arith expr>

X = NU*(Y

(Y

+ 15)
+ 15)

addr [] = tl
LDQ NU
MPY tl
STQ t2

addr [] = t2
CLA t2

STO X
Given this mechanism, which we shall refer
to in the sequel as the "Direct Generation
Mechanism," plus some mechanism for creating
and housekeeping local or internal labels and a

sufficiently sophisticated assembler (e.g., it can
allocate memory for constants and variables)
we have a rudimentary compiler.

SYNTAX-DIRECTED COMPILING

1.1 
1.2

45

TABLE 5
Machine Code Semantics for Syntax II-Deferred Generation
: :== 
1. Output END
[1]
I  ; 

[1]

[2]

[3]

2.1  ::== I  == 
[1]
[2]
[3]

1. Process [1]
2. Process [3]
3. Output CLA addr
[3]

4. Output STO addr
[1]

3.1 


[1]

3.2

I  + 
[1]

[2]

[3]

1. Process [1]
2. Set addr == addr
[ ]
[1]
1. Process [1]
2. Process [3]
3. Output CLA addr
[1]

4. Output ADD addr
[3]

5. Output STO addr

[ ]
4.1 


[1]

4.2

I  * 
[1]

[2]

[3]

1. Process [1]
2. Set addr == addr
[ ]
[1]
1. Process [1]
2. Process [3]
3. Output LDQ addr
[1]

4. Output MPY addr
[3]

5. Output STQ addr

[ ]
5.1 



1. Process [11
2. Set addr == addr
[ ]
[1]
1. Process [1]
2. Set addr == addr

[1]

5.2

I 
[1]

[ ]

5.3

I «arith expr»

[1]

6.1 

1. Process [2]
2. Set addr == addr
[ ]
[2]
1. Set addr == the variable name rec-

7.1 

ognized at this point of the input
string.
1. Set addr == a symbolic name for the

[1]

[2]

[3]

[ ]
(j

[ ]
address in which will be kept the
integer constant recognized at this
point in the input string.

46

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

There is an interesting variation in this
method of generating machine code. Let us
suppose that, for one reason or another, it is
desirable to complete the analysis for an entire
 and produce the tree representation of its syntax, and then to generate the
machine coding which is to correspond to the
tree so constructed. Table 5 illustrates this
approach. It is essentially Table 4 to which
some further actions have been appended. In
this table the action denoted by a bracketed
numeral preceded by the word "process'" is
interpreted: "do the actions for the component
indicat~d." Thus, again given the assignment:

®-~
I
[.]


(!)

[x]



0~"1~~


®I




I

@

if
[NU]

x

== NU*(Y

I

(9

if

+ 15)

(

e



)

"~-@T'-",,~"




@I

I

[+]

@.





an analysis of this assignment with respect to
Syntax II could be carried out resulting in the
tree of Figure 2. Given this tree, the actions
indicated in Table 5 could result in the following:

@I

@I



@!

j
[ 15]

V
[yj

Figure 2. Syntax Tree for the 
"X
NU* (Y + 15)."

=

Tree Node

Line of Table 5

Result

25

2.1

Process < variable>, node 2.

2

6.1

Set addr(2) == X; actions complete for node 2, return to node 25.

25
24
23

2.1
3.1
4.2
4.1
5.1
6.1

Process , node 24.

7

6
5

Process , node 23.
Process < term>, node 7.
Process , node 6.
Process , node 5.
Set addr(o) == NU; actions for node 5 complete; return to node

6.
6

4.1

Set addr(6) == NU; actions for node 6 complete; return to node

7.
7

4.1

Set addr(7) == NU; actions for node 7 complete; return to node

23.
23
22
20
14

4.1
5.3
3.2
3.1

Process , node 22.
Process , node 20.
Process , node 14.
Process , node 13.

SYNTAX-DIRECTED COMPILING

Tree Node
13

Line of Table 5
4.1

47

Result
Process , node 12.

12

5.1

Process , node II.

11

6.1

Set addr(1l) == Y; actions for node 11 complete; return to node
12.

12

5.1

Set addr(12) == Y; actions for node 12 complete; return to node
13.

13

4.1

Set addr(13) == Y; actions for node 13 complete; return to node
14.

14

3.1

Set addr(14) == Y; actions for node 14 complete; return to node
20.

20

3.2

Process , node 19.

19

4.1

Process , node 18.

18

5.2

Process , node 17.

17

7.1

Set addr(17) == ==15; actions complete for node 17, return to
node 18.

18

5.2

Set addr(18) == ==15; actions complete for node 18, return to
node 19.

19

4.1

Set addr(19) == ==15; actions for node 19 complete; return to
node 20.

.:::.V

O{\

on
0.':::'

Output CLA Y
Output ADD ==15
Output STO tl
Set addr(2o) == t 1 ; actions for node 20 complete; return to node
22.

22

5.3

Set addr (22) == t 1 ; actions for node 22 complete; return to node
23.

23

4.2

Output LDQ NU
Output MPY tl
Output STQ t2
Set addr f 23) == t 2; actions for node 23 complete; return to node
24.

24
25

Set addr (24) == t 2; actions for node 24 complete; return to node
25.
2.1

Output CLA t2
Output STO X
Set addr(2ii) == X; actions for node 25 complete; exit.

Note that we have changed notation slightly
and used the notation addrfiil' for example, to
indicate the (result) address which is associated with node 5.

The "code generation" mechanism implied
by the above description is as follows: At any
point in time some action of some node is to
be performed; the actions and their interpretations are:

48

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

Action
Process a node

Output code

Example
Process [1]

Interpretation
Remember which action of the current node is being
processed; perform the first action of the indicated
node.
Output CLA addr
Procure the result address from the node indicated
[1] (the node corresponding to addr
in the example)
[1]
and output the instruction. If the address indication
is blank (e.g., STO addr
) select the next available

[ ]
temporary register address; set that address as the
result address of the current node.
Set address

Set addr

[ ]
addr
[2]

End of actions

Set the result address of the current node as the result
address of the node indicated.
Return to the next action of the node which "called"
for this node to be processed.

Thus, the mechanism has a "control" element
which is, at any point in time, considering some
node. When a new node is to be processed, the
"control" remembers which action to proceed
with when "control" returns to the current
node and then initiates the first action of the
node to be ,processed. When all actions for a
node are processed, "control" returns to the
node which called for the current node and
takes up actions for that node where it left off.
Further, the mechanism has the ability to output code, associate result addresses with the
node being processed, and procure temporary
register addresses.
Again given this mechanism, which we shall
refer to in the sequel as the "Deferred Generation Mechanism," plus some mechanism for
creating and housekeeping local or internal
labels and a sufficiently sophisticated assembler,
we have a rudim'entary compiler.
There are, of course, other kinds of "actions"
one could associate with a node. For example,
it would be quite straightforward to associate
actions for producing a different tree structure
than the complete syntax tree ,as depicted in
Figure 2. This might then produce, from an
analysis of the assignment

x == NU* (Y + 15)
the simple tree (or "Polish prefix" representation) :

/\.
/\
NU

or (=(X,'(NU,+(Y,15»»

/+\
Y

15

It will be apparent that the Direct Generation
Mechanism does not require that the complete
syntactic tree actually be built as the analysis
proceeds. Rather, it is sufficient that there be
some means (for example, a push down store is
adequate) for "remembering" the result addresses which have yet to be "used." Further,
while this technique appears, on the face of it,
to be quite rapid and efficient (no tree need be
kept, shorter "driving tables"-compare Table
4 with Table 5) it is subject to some serious
limitations. In particular, since the coding for
a syntactic type is actually being output as
that type is recognized, there must (for most
languages) be some mechanism for "erasing"
a patch of code generated for a syntactic type
recognized while the analyzer was attempting
recognition of some larger construction when
it turns out that the syntactic type in question
does not enter into the construction of the
larger syntactic type as it is finally built.

SYNTAX-DIRECTED COMPILING

In the above example with the Deferred Code
Mechanism we used  as the syntactic type over which (i.e., over the tree representation of which) generation was to occur.
It is, of course, possible to generalize this to
allow any syntactic type to be "tagged" as big
enough to call the generation mechanism. Thus,
at one extreme a complete program would have
to be recognized before any generation was performed (a "two pass" compiler) and, at the
other extreme, each syntactic type would call
for generation ("one pass" compiler) thus
making the Deferred Generation Mechanism
essentially the same as the Direct Generation
Mechanism. It should be noted that, employing
the Deferred Generation Mechanism, once the
tree corresponding to some syntactic type has
been processed ("generated over") it can be
erased with the exception of its top-most or
root node which may have to remain to supply
a "result address" for the generation over some
larger construction.

It must be emphasized that both these
mechanisms are very rudimentary and for use
within a compiler would require some embellishment in order to be practical. Thus, for
example, it seems rather a shame to generate
a complete syntax tree for some (perhaps fragment of some) 'program and then make essentially no use of the contextual information contained implicitly in the tree structure. Indeed,
a rather simple addition to make some use of
this information would be the following: consider that we add conditional actions of the
following sort:

== addr

IF addr
[a]

IF addr

,SKIP n
[b]

=1= addr

[a]

,SKIP n
[b]

SKIP n
where in the first two the truth of the relation
causes the n actions following to be skipped and
the SKIP n action causes the n actions following to be skipped. If we further add "AC" and
"MQ" as special values for addr
,then for

[ ]
a single address computer (say, like the IBM7094), it would be possible to generate rather
more efficient coding by placing results temporarily in the accumulator (AC) or multiplier
quotient (MQ) registers and then checking for

49

the use of these locations for operands before
generating coding. Thus we might then associate with the construction 
::== 
 in Table 5 the
actions:

+

1.

2.
3.
4.

5.
6.

7.
8.
9.

Process [1]
Process [3]
IF addr
== AC, SKIP 4
[3]
IF addr
== AC, SKIP 1
[1]
Output CLA addr
[1]
Output ADD addr
[3]
SKIP 1
Output ADD addr
[1]
Set addr
== AC

[ ]

These would have the effect of preserving
results of additions in the accumulator and
remembe.ring that they were there in order to
avoid redundant store-load instructions. In
order to fully utilize such a facility, including
keeping track of the 1\1Q contents as well , some
further mechanism for indicating the AC or
MQ are empty or full and some mechanism for
storing their contents would be required. The
basic scheme is, however, reasonably clear from
the example. The MAD Translator has facilities
similar to these built into its code gener,ation
mechanism.
Even such a mechanism as this barely makes
use of the rather rich store of contextual information available. In order to do so, however, we would require some means for talking
about the nodes of the tree relative to any given
node of interest (such as a nodes "father,"
"father's father," "father's right-brother's
son's son," and so on). Further, it would probably be desirable to extend the "control" some
what and allow more general "tree walks" than
simply processing "sons" and returning to
"father." Also, if contextual information were
gathered, it would have to be "parked" somewhere and thus an addition of further information fields associated with each node would be
useful plus, perhaps, some "working variables"
. which various actions could reference and set.

50

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

It is clear that one could extend the whole generation mechanism to include control sequencing and actions which were programs in a
rather specialized programming language. The
paper by Warshall and Shapiro [1] contains a
brief sketch of one such extension which has
been successfully tried on several computers
and for several languages.

SOME PROBLEMS AND LIMITATIONS
The techniques and fragments of techniques
which we have discussed above are all, in one
way or another, relevant to the design and construction of compilers. Furthermore, these techniques, in the simplified form in which we have
presented them, are of sufficient general utility
that they should be in every "systems" programmer's bag of tricks. For example, the AN AL YZE algorithm-coupled with either the Direct or Deferred Generation Mechanism discussed in the preceding sections-can be applied
to a variety of programming tasks imbedding
simple algebraic facilities in an assembly program, handling the "translation" of free format
or formatted control cards, interpreting descriptions of formatted data, and so on. However, for the serious construction of compilers
these techniques represent only a few of the
techniques required and they are subject to
some limitations.
Some of the considerations which must enter
into any compiler design and which are affected
to one degree or another by the choice of
method of analysis and its linkage to the generation of code are the following:
--error analysis and recovery
-analysis of languages in which recognition order is not the same as generation order
-processing declarations
-generation of highly efficient coding
Let us consider these questions.

Error Analysis and Recovery
An error is detected, for example, in Syntax
II, when the analyzer cannot recognize a . Although the exact point in the input
string past which recognition fails will be
known, it is extremely difficult to determine

exactly why the error occurred and to, in a
general way, devise means for recovery.
Several schemes exist for dealing with this
problem, notably:
1) A scheme which permits specification of
"no back up" on certain constructs. For example, in Syntax II, no back up on recognition
of "==" or "(" could help isolate the reasons
for a failure.
2) A scheme due to E. T. Irons [5] which, in
effect, carries along all possible parses of an
input string.
3) Special "error" syntactic types which
could be defined in the syntax.
At the ,present time there is no completely
satisfactory scheme for dealing with syntactic
errors discovered in the course of predictive
analysis. If the programming language which
is being analyzed has sufficiently simple structure that it is a precedence grammar, the technique of bounded context analysis is probably
a better technique to utilize. A discussion of
precedence grammars is given in Reference
[6] ; the use of bounded context analysis is described in Reference [7].

Recognition Order Differs from Generation
Order
Some reasons why the order of generation
might be different from the order of recognition
are:
1) The detection of, and generation of coding
for, sub-expressions which are common to two
or more parts of the program is desired.
2) The detection of computations which are
invariant in some larger computation (for example within loops) is desired.
3) Languages other than the usual programming languages are being translated, for example, data description languages or the computational fragments associated with TABSOLlike descriptions are to be processed.
Reference [1] describes some techniques for
coping with these problems in a compiler which
uses predictive analysis.

SYNTAX-DIRECTED COMPILING

Handling Declaration8

Here the problem is that the "actions" are
not to generate coding (usually) but to change
the syntax-normally through type coding information inserted into a symbol table. Formally, however, a declaration of type is really
the appending of a syntax rule. Thus the
ALGOL 60 declaration

"real X, Y;"
means that the two new syntax rules
": :=X"
and
": :=Y"
must be appended to the syntax.
Other declarations may cause changes to the
full compiler-for example, debug mode declaration, and the like.

Generation of Highly Efficient Coding
This cannot be accomplished by generating
code directly as the analysis is performed since
common sub..expressions, invariant computations an.d the like couldn't be detected reasonably and special registers such as index
registers certainly couldn't be allocated on any
global basiS, which is necessary if any really
effective use is to be made of them.
Many of the manipulations required to collect
the information pertinent to optimizing code
are not particularly easily done (or, at least
efficiently done) with the source material in a
syntax tree form. Reference [1] describes a
method by which such optimizations are 'performed over a set of "macro-instructions"
which are "generated" by a technique similar
to that depicted by Table 5.
SUMMARY AND CONCLUSION

In this paper we have tried to explain the
workings of syntax-directed compiling techniques--or perhaps better, of those parts of a
compiler in which the actions to be performed
can reasonably be associated with the structure
of the input string. A satisfying understanding
of the operation of a syntax..directed analyzer
can only be attained by actually playing through
a few examples. We recommend this as a worth-

51

while experience to anyone who is interested,
and so we have given a sufficiently detailed
description of a particular example to permit
the reader to write statements of his own in
the simple language, and play them through the
Analyzer and anyone of several code-generation techniques.
There remains the question of evaluating syn·
tax directed compiler techniques in comparison
tb other approaches.
On the face of it, syntax directed analyzers
cannot be as efficient as operator"'precedence
techniques for the simple task of recognizing
input structures. This follows from the fact
that, no matter how cleverly the language designer, or specifier, arranges the elements of
his Syntax Specification, the Analyzer will
necessarily spend some percentage of its time
exploring blind alleys. Clever specifications can
make the blind alleys less frequent and shorter,
but even for the simplest of languages, there
will be some.
Thus, in any situation where the primary
consideration is. speed of the compiler itself,
a"""''''Q'V_r1~ ... o,..t-ori

t;JJ

~.&V"""-\A.&"'~"''-I'''U

....
::u·.'h".,;nnoo
"''''\,;''''.I.4.&. ... 'iU.~O

~~o

Q

.... ~

".,nt.loA"",,",

t-'ho.
"'.l.J.~

1'V\ncd.&. ...... '"'~w

suitable. But this, we argue, is true only if the
quality of the coding produced' is also of relatively little importance. In our experience with
attempts to generate highly efficient optimized
coding for several different machines, we find
that the time spent in analyzing is a small
fraction of the total--even using very sloppy
Syntax Specifications. The most important
question in compiling system design today, we
reiterate, is not the "understanding" of the
source language-that is a solved problem-but
rather the generation of really good objectlanguage coding.
One of the principal arguments in favor of
syntax-directed techniques is that it is very
easy to change the specification of the language,
or, indeed, to switch languages, merely by
changing the Syntax Tables----no modifications
of the algorithms are required. And this is in
fact true, with some restrictions. But now that
techniques exist for automatically producing
operator-precedence tables from a Syntax Specification [6], the syntax-directed compilers no
longer have a monopoly on this useful feature.

52

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

A further advantage of syntax-directed
analysis remains, up to the present, only potential. These techniques are evidently not of the
"bounded context" sort-a syntax directed
Analyzer can take into account as large a context as required to perform its recognition
(admittedly, at a definite cost in speed). Hence,
when the day comes that we need to perform
analysis of source languages of much less rigid
structure, syntax-directed techniques will be
more immediately applicable than the techniques which are designed to take advantage
of the restrictive properties of present programming languages.
In summary, syntax-directed techniques have
a definite place in today's computing world, and
promise to play an even more important role in
the future.
APPENDIX

Some Further Transformations of the Syntax
Specification and the Syntax Tables
In constructing the Syntax Tables, we described a complicated operation for avoiding
the problem of left-recursive Alternatives in a
Syntactic Type Definition. We can describe this
as a transform·ation within the Syntax Specification itself, and, at the same time, include
some features which improve the efficiency of
the encoding of the Syntax.
First, we extend the idea of "Component" to
include two new forms:
1) An Alternation (of one or more Constructions), enclosed in square brackets '[' and ']'.
These brackets are assumed to be different
from any of the Terminal Characters (if they
were not, we'd use some other signs).
2) An Alternation enclosed in braces '{' and
again assumed different from any of the
Terminal Characters.

'r,

Second, we apply a left-distributive law:
(T2) Whenever, within a single definition,
two (or more) Alternatives start with the same
Component (or sequence of Co;mponents), replace all of these Alternatives with a single one,
whose last Component is the bracketed Alterna-

tion of the non-common parts of the original
Alternatives, and whose first Component(s) is
(are) the one (s) common to the original Alternatives. It is also useful to introduce the
idea of a "null" Syntactic Type-effectively a
Terminal Type which is always recognized
whenever it is called for-denoted here by a
capital lambda. Then, for example:
: :==    I
  I    i 
would be transformed into:
: :==  [  
 I A] I 

I

(Obviously, if the Analyzer is going to consider
Alternatives in the order in which they are
written, a null Alternative shouJd always appear last in an Alternation.)
Having applied (T2) to any Definition, there
can be at most one left-recursive Alternative,
and if there is one, we can rewrite the definition
according to :
(T3) Put the left-recursive Alternative as
the last Alternative in the definition; if there is
more than one other Alternative, put square
brackets around the Alternation consisting of
the nonrecursive Alternatives; delete the sign
, , preceding the last Alternative, and delete the
first Component of that Alternative (which will
be the same as the Defined Type of that Definition) ; then enclose the remaining Components
(of this formerly last Alternative) in braces.
Thus the ultimate transform of a left-recursive definition has as Definiens a single Construction, the last Component of which is
"iterated" (enclosed in braces). As an example,
a Definition which was originally:
: :==  I   
  I  

I

would be transformed into:
 ::== [  I  ]
{  I }
The modifications to the rules for constructing
the Syntax Tables to represent Definitions in
this form is left as an exercise for the reader.

SYNTAX..,DIRECTED COMPILING

53

The Analyzer flow-charted in Figure 1 should
work on the resulting tables.

the difficulty. In the above example, this could
be done in several ways, one of which is:

Three of the Definitions in Syntax II 'would
be changed by application of (T2) and (T3):

 ::== 
 ::== [X I Y] {Z }

: :==
[ ;  I A]
 ::== 
{+ }
 : :==  {*  }
Now, an analogous pair of transformationsa right-distributive law, and the elimination of
right-recursive Constructions-could be applied, and this would render the Syntax Specification still more compact. The language used
by Brooker and Morris [10] for specifying
syntax is essentially one of this sort, although
the notation used is rather different.

More "Groundedness" 'Problems
The treatment we have described takes care
of left-recursive definitions, as long as the recursion occurs within the definition of a single
Syntactic Type. It will not handle the infiniteloop problem engendered by, as an example:
: :== Z I X
: :== Z I Y
and it is in general true that, for an Analysis
technique of the "top down" sort, as presented
here, a Syntax Specification with such leftrecursive loops will not be adequate. This leads
to the requirement of an additional condition
on Syntax Specifications: If we say that a
Construction is "firmly grounded" when its
first Component is either a Terminal Type or a
firmly grounded Defined Type, and a Defined
Type is firmly grounded when all of its non-Ieftrecursive D,efinientes (in the Basic Syntax
Specification) are firmly grounded, then:
(C4) Every Defined Type must be firmly
grounded.
In practice, this is not a serious restriction.
The simplest test for this condition is to try to
run the Analyzer-it stops requesting input and
goes into a loop. It is usually a simple matter to
rewrite the Syntax Specification to eliminate

A Modified Analyzer
The Analyzer algorithm of Figure 1 is designed to call the Generator upon recognition
of every instance of a Syntactic Type, even if
it is not the "longest" instance of that type
present at the given position of the Input string.
It turns out to be the case that, for all the
standard programming languages, w hen the
Analyzer needs to recognize a recursively defined Syntactic Type, it wants ~he longest string
which is a member of that Type-that is, it
should keep re-entering the iterated, Component
of the Definition. (in our latest transformed
form) until it meets a failure. The Syntax
Tables and Analyzer described in this paper
will find the "longest" instance of a type but
this Analyzer does report each partial recognition also.
Now, a slight change in the Analyzer algorithm allows it to avoid reporting partial recognitions to the Generator, and call it only when
it has completed recognition of the longest
instance of a Syntactic Type. For those who
might-be interested in exploring this point, the
changes to be made are:
1) Eliminate the boxes (GENERATE) and
(STRUCT [SOURCE])? from the flow chart.
2) Insert a(G ENERA TWbox between the boxes
!Popup GOAL, SOURCEl and(SOURCE==O?)
The entire Syntax Structure Table entry
STRUCT can also be eliminated.
In order to correctly record the recognitions,
the Generator must construct a slightly differ- '
ent tree (we are here assuming operation in,
the "deferred generation" mode), the form of
which is best illustrated by an example:
For the Input (sub-) string,
A+B+C+D
the Generator discussed in this appear will produce a (sub-) tree:

54

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964



1~rm>

 + 

/I~
+



.

D



I

C


B

A

If the modifications mentioned above are made
in the Analyzer, each of the terms in the input
string will cause the Analyzer to signal recognition of a , but only one recognition

of  will be reported, and that
after all four . The Generator will
then tree this recognition as follows:

~rithexP


A

B

To use a tree of this form for the generation of
output code, the Generator language must be
extended, for example, to refer to "siblings"
instead of just "sons" and "fathers" and also
to "count" sons (the number per node is not
fixed, but depends upon the actual input) or to
recognize the non-existence of a "sibling," etc.
Typically, the processing sequence for the above
tree is for a  node first to send control
to its first son, to evaluate the sub-tree, then
when control returns, to send control "horizontally" -to its siblings-for evaluation of the
other s; only the last  node
would send control back to the father. References [1] and especially, [2], discuss this in
more detail.

AMore Subtle Problem
The Analyzer algorithm given in this paper
has the following property: Assume that a
given Syntactic Type  has been recognized
at character-position c in the input string, and
the Analyzer fails to recognize any of the possible successors of  within the Definition of

C

D

its current goal. The Analyzer will report failure for this Alternative of the Definition. It is
possible to formulate a Syntax Specification in
such a way that this reported failure would pe
erroneous: if there were another, different, substring starting at c and which was also an 
(this other substring would correspond to an
Alternative occurring later in the Definition of
 than the Alternative which was first successfully recognized). It is certainly possible to
design an Analyzer which will keep track of the
information necessary to allow this kind of
"back-up" (see References [5] and [13]), but
for the present purposes it would have encumbered the description with a good deal of
additional mechanism - essentially, the Syntax
Structure Table would have another item, encoding the converse of the relation represented
"by SUCCESSOR, and push-down storage would
be required to keep track of the SOURCE lines
of the Types successfully recognized, instead of
just those which are currently being worked on.
Using the Analyzer and Generator described in
this appendix, it becomes much easier to ac-

SYNTAX-DIRECTED COMPILING

55

commodate this feature, since the required
additional information can easily be kept in the
tree while it is being built. Reference [2] discusses this question in detail and with examples.

A (Defined) Syntactic Type ex can start with
the Syntactic Type [3 either

"Top Down" vs. "Bottom Up"

2) if there exists a y which can start with [3,
and y occurs as the first Component of some
Definiens of ex. Irons' pa'per [4] gives an elegant technique for constructing this matrix.
Note that ex can start with a, if it is left-recursively defined, but not otherwise.

The Analyzer described in this paper is of
the sort known as "top down," the appellation
referring to the order in which the Analyzer
sets its goals. The present Analyzer will always
set as its next goal some Syntactic Type which
appears as a Component in the Definition of
its present goal - any time the Recognizer is
called to find a Terminal Type, the pushdown
storage of the Analyzer will contain a record
for each Syntactic Type in a chain reaching
down from the Starting Type to the Terminal
Type. The order in which a "bottom up" Analyzer sets its goals is much more difficult to
describe, but the actions of the two types can
be impressionistically sketched as follows:
The "top down" Analyzer sets a goal and
tries all ,possible ways of achieving that goal
before giving up and replacing the goal with an
altern a ti ve.
The "bottom up" Analyzer, having recognized a Syntactic Ty-pe, checks wh~ther it has
"gone astray" in trying to reach its goal or
whether that Type is indeed ,a possible first
Component of a first Component of . . . of the
goal. If the latter, it continues processing input
until it has built another Type of which the
previous one is a first Component, and goes back
to the checking. If it has gone astray, it backs
"down" and tries to see if it can construe the
input differently, to approach its goal along a
different chain of intermediate types.
E. T. Irons' original syntax-directed Analyzer design was of this type (Reference [4]).
It might be interesting to characterize an Analyzer similar to Irons' within the terminology
of this paper.
We start with the Basic Syntax Specification,
and first build a magical matrix which will
answer the question "Can ex start with [3?"
where a and [3 are Syntactic Types. The relation
"can start with" is defined recursively as follows:

1) if [3 appears as the first Component of
some Definiens of a, or

The next step is to transform the Basic Specification:

First, remove the Defined Type and the sign
': :=' from the left-hand end of the Definition,
and place '=::' followed by the Defined Type
at the right-hand end. (In effect, when a definition is considered from left to right, the Type
which it defines is not known until all the Components have been recognized.) Hereafter, the
Defined Type will be called the "Result" of the
Definition. For example, the Definition of
 becomes:
 =  = ::


Second, apply the left-distributive law to the
set of definitions, introducing Alternation signs
'I' as required. To illustrate, the following two
interesting lines would result, in the exam'ple
language of this paper:
 [*  =:: 
=:: ]
 [=  = ::
 I =::]
The effect of this transformation is to reduce
the set of definitions to one line for each Syntactic Type which occurs as a first Component
of one of the original Simple Definitions.
From the resulting set of "definitions" syntax
tables are constructed, analogous to the ones in
this paper. But the analogue of the Snytax
Type Table is now a directory of first Components, each entry of which points to the first of
a block of structure-table entries which encode
the remainder of the "definition," now including a mention of the Result of the original
Simple Definition (suitably flagged to avoid
interpreting it as just another successor).

56

PROCEEDINGS--:SPRING JOINT COMPUTER CONFERENCE, 1964

For use with a "bottom up" Analyzer of this
sort, the Terminal Types of the language (or
at least those which appear as first Components
in any Definition) must be unambiguously recognizable independently of context-that is, the
Recognizer may be told merely to "find something," and it will return with an indication of
the particular Terminal Type it recognized.
To start the analysis, the goal is set to the
Starting Type, and the Analyzer proceeds as
follows:

Step 1 Call the Recognizer; the Terminal
Type it reports is placed in Type In Hand.
Step 2 Can the goal start with the Type In
Hand? If not, go to Step 4. If so, proceed to
Step 3.
Step 3 Consult the Structure Table at the
point indicated in the Type Table for the Type"
In Hand. Push down the current goal and its
source and set up as new goal the Component
mentioned in this entry in the Structure Table.
(This structure-table entry is the "source of
this goal"). Go to Step 1.
Step 4- Is- the Type In Hand the same as the
goal? If not, go to Step 7. If so, proceed to
Step 5.
Step 5 (We have attained a goal) Consider
the source of this goal. Is the successor of that
entry in the Structure Table flagged as a ResuIt? If so, go to Step 6. If not, replace the
goal with the (Syntactic Type mentioned in
the) successor of the source, reset the source to
point to this successor, and go to Step 3.
Step 6 ( We have recognized all the Components of a Definition.) Place the name of the
Type mentioned in the Result entry into Type
In Hand, pop up the goal (and source), and go
to Step 2.
Step 7 (We have "gone astray.") Consider
the Structure Table entry for the source of the
current goal. Does it have an alternate? If not,
go to Step 8. If so, restore the input-string
pointer to the value it had when the current
goal was first set up, replace the current goal
with the alternate (adjust source), and go to
Step 1.

Step 8 Pop up the goal and source, and go
to Step 4.
For programming languages of the current
sort, there is no clear advantage in favor of
either the top down or bottom up analysis techniques, insofar as efficiency of the Analyzer is
concerned. For either technique, it is possible
to design a language and Syntax Specification
on which the technique will perform very
poor-Iy, while the other one will not be nearly
as bad. The choice between the techniques is
generally made on the basis of considerations
other than raw speed of the analysis, such as
the kind of o~tput desired from the analysis,
the possibility of error detection and correction,
or personal taste.

"B ootstrfIpping"
As a final comment, we merely point out the
fact that the language of the Syntax Specification is itself a rather straightforward, wellbehaved language, easily susceptible of being
described by a Syntax Specification. A version
of the compiler can be wri~ten which uses a
Specification of the Syntax-Specification-Language to "drive" it, and produces, instead of
output code in a machine language, a set of
Syntax Tables which encode the Syntax Specification it receives as input. This has, in fact,
been done (References [1], [2]).
BIBLIOGRAPHY
1. WARS HALL, S., and SHAPIRO, R. M., "A
Gene1'al PUTpose Table D'riven Compiler,"
to be published in the Proceedings, SJCC,
Spring 1964.
2. SHAPIRO, R. M., and ZAND, L., "A Description of the Input Language for the Compiler Generator System," CAD-63-1-SD,
Computer Associates, Inc., June 1963.
3. CHEATHAM, T. E., JR., and LEONARD, GENE
F., "Introduction to the CL-II Programming System," CA-63-7-SD, Computer
Associates, Inc., Nov. 1963.
4. IRONS, E. T., "A Syntax Directed Compiler
for ALGOL-60," Comm. ACM 4 (1961),
51-55.
5. IRONS, E. T., "An ErTor Correcting Parse
Algorithm," Comm. ACM 6 (1963, 669674.

SYNTAX-DIRECTED COMPILING

6. FLOYD, R. W., "Syntactic Analysis and
Operator Precedence," Jnl. ACM, vol. 10
(1963), p. 316.
7. GRAHAM, R. "Bounded Context Translation," to be published in the Proceedings,
SJCC, Spring 1964.
8. NAUR ET AL., "Report on the Algorithmic
Language ALGOL 60," Comm. ACM, vol.
3 (1960), p. 299.
9. BARNETT, M. P., "Continued Operator Notation for Symbol Manipulation and Array
Processing," Comm. ACM 6 (Aug. 1963),
p.467.
10. BROOKER, R. A., and MORRIS, D., "An As-

57

sembly Program for a Phrase Structure
Language," The Computer Journal, vol. 3
(1960), p. 168.
11. KUNO, S., and OETTINGER, A. G., "Syntactic Structure and Ambiguity of English."
AFIPS Conference Proceedings, vol. 24
(1963) .
12. IRONS, E. T., "PSYCO, The Princeton Syntax Compiler," Institute for Defense Analysis, Princeton, N.J.
1'-'u. FLOYD, R. W., "The Syntax of Programrning Languages-A Survey," to be published in the IEEE Transactions on Electronic Computers.

A GENERAL-PURPOSE TABLE-DRIVEN COMPILER
Stephen Warshall and Robert M. Shapiro
Computer Associates, Inc.
Lakeside Office Park
Wakefield, Massachusetts
3. An "in-sequence optimizer" (ISO) which
accumulates macros, recognizes and eliminates
the redundant computation of common subexpressions, moves invariant computations out of
loops, and assigns quantities to special registers.
4. A code selector which transforms macros
into syllables of machine code, keeping complete track of what is in special registers at
each stage of the computation.

INTRODUCTION
If a compiler is to generate efficient object
code, there are several different kinds of optimization which should take place. Each of these
optimization procedures has a preferred domain: that is, some algorithms prefer to operate pver the input string, others over the tree
which describes the syntax of the string, others
over the "macro-instructions" which are generated from the tree, and so forth. In an earlier
paper,! one of the present authors pointed out
the necessity for employing the tree form in
particular as a natural domain for optimizers
which consider syntactic context and suggested
that, just as Irons 2 and others had built general-purpose table-driven parsing algorithms,
one could also build a general-purpose tabledriven program for getting from trees to
macro-instructions. The final compiler design
presented here is the result of pursuing that
kind of thinking somewhat farther.

The first four phases are encoded as generalpurpose programs; the fifth has been handled
as a special-purpose job in each version of the
compiler, and will therefore not be covered in
the present discussion.

COMPILER ORGANIZATION

Phase I: Analyzer

The compiler is composed of five phases (not
"passes," if that means pulls of the input tape) :

The analyzer is of the "top-down" syntaxdirected variety, driven by tables which are in
effect an en co dement of the source language's
syntax as given by a description in the metalinguistics of the ALGOL 60 report3 (the socalled "Backus normal form"). There are several features of interest in this en co dement :
rules are shortened where possible by application of the distributive law (thus, "

5. An assembler which simply glues together
the code syllables in whatever form is required
by the system with which the compiler is to
live: symbolic, absolute, or relocatable, with or
without symbol tables, etc.

1. A syntactic analyzer which converts a
piece of input string into a tree-representation
of its syntax.
2. A generator, which transforms the tree
into a sequence of n-address macro-instructions,
investigating syntactic context to decide the
emission.

59

60

PROCEEDING~SPRING

JOINT COMPUTER CONFERENCE, 1964

 I  " would be coded as "
«B> I )"; it is possible to define types
by naming an arbitrary scanner which recognizes them, thus eliminating syntax-chasing
when forming ordinary identifiers, etc.; left
and right recursive rules are carried in a transform~d condition whose effect is to force recognition of the longest possible string which satisfies the rule. The analyzer tables contain some
information which is not syntactic, but rather
concerned with compiler control (how much
tree should be built before the generator is
called, for example) or with specifying additional information to be placed in the tree for
later use by the generator.
Phase II: Generator

The generator algorithm "walks" through the
tree from node to node, following directions
carried in its tables. As it walks, macro-instructions are emitted from time to time, also
as indicated in the tables. The encodement of
a set of tables (a so-called "generation strategy") is based upon the idea of a "relative tree
name." A relative tree name is, formally, a
function whose domain is the set of nodes in
the tree and whose range is its domain union
zero. At any given time, the generator is looking at (has walked to) some particular node
of the tree. Every relative tree name is then interpreted (evaluated) as a function of that
node as independent variable. A relative tree
name is a rule for getting from "here" to some
neighboring node of the tree. Thus, if we may
view the tree as a genealogical one, a relative
tree name might "mean" father or first son or
first son of second son, for example, of the node
the generator is currently considering.
A generation strategy is composed of a set
of rules each of which consists of a description
of some kind of node which is somehow of
interest together with a list of things to be
done when a node of that kind is in fact encountered. A kind of node is generally distinguished
by its own syntactic type and the types of some
of its neighbors. The things to be done include
walking to a neighboring node and emission of
macros whose variables are neighboring nodes.
In all cases, neighboring nodes are named in
the tables by relative tree names.

Phase III: In-Sequence Optimize?'

The ISO accepts macro-instructions emitted
by the generator. The processing of a macro
usually results in placing the macro in a table
and sending a "result" message back to the
generator. Macros also instigate various bookkeeping and control operations within the ISO.
The processing of a macro is controlled by a
table of macro descriptions. A macro mayor
may not be capable of being combined with
others into a common-subexpression; the arguments of a macro mayor may not be commutable, and so forth. The ISO will detect macros
whose arguments are literals and in effect execute those macros at compile time, creating
new literals. If a macro may be handled as
(part of) a common subexpression and is not
computable at compile time, the ISO will recognige a previous occurrence of the same macro
as equivalent if none of its arguments have
been changed in value either explicitly or implicitly by any of the messages that have been
received in the interval.
At some point the ISO receives a macroinstruction that signals an "end region" control operation. This causes the ISO to perform
a set of "global" optimizations over the region
of macros just completed. These global optimizations include the recognition of those computations which remain "invariant" within the
region and the reservation of "special registers" such as index registers to reduce the number of special register loads and stores within
the region.
Pha.~e

IV: Code Selector'

The code selector produces symbolic machine
code for a region of macros after the ISO has
collected these macros and performed its various optimizations. The code selector is driven
by a table of code selection strategy. The domain of a strategy is the region of macros and
a "track table" which represents the condition
of the registers of the target computer.
The code selector views the macros as nodes
of a tree structure; that is,. certain partial orderings exist which guarantee that the code
emitted preserve the computational meaning of
the macros, but within these constraints the

A GENERAL-PURPOSE TABLE-DRIVEN COMPILER

strategy can order the computationaccordlng
to its convenience, as a function of the availability of registers and results. The preferred
mode of operation is to postpone making decisions about what code to generate for a macro
until it is known how the. result of that· macro
will be used.
The code selector also makes use of certain
information gleaned from the macro-description tables in order to predict how the special
registers (index registers, etc.) will be used.
These predictions enable the code selector to use
such registers intelligently. This local optimization, combined with the global reservation
of special registers by the ISO, results in a
fairly effective use of these registers.
BOOTSTRAP TECHNIQUE
There are three major sets of tables to be
prepared if the compiler is to be particularized
to a specific source language and target machine. These are the syntax tables, the generation strategy tables, and the tables of macro
description and code selection. The bootstrap
technique is simply a method of automating
part of- the process of preparing these tables.
A group of three languages was developed.
corresponding to the three tables. These
languages are all describable in the Backus notation and thus capable of analysis by the ana-

61

lyzer. A set of syntax tables and generation
strategy tables for these languages was encoded
by hand and installed in the compiler, which
was then capable of translating from these special languages into macro-instructions. The
link from the generator to the ISO was broken
and replaced by a link to a special "Bootstrap
ISO" which converted these apparent macroinstructions into lines of tables, namely, the
three tables of interest. Thus the process of
table preparation was reduced to one of writing
down statements in a family of readable languages.
THE LANGUAGE BNF
The syntax of the source language is described in a language called BNF (to suggest
"Backus normal form," denoted B.n.f.). BNF
looks much like B.n.f. to within the limitations
of the available character set and a desire for
legibility. Thus syntactic type names are given
as identifiers (upper case alphanumerics), the
sign": :==" is replaced by "==", and the sign
"I" by "I" ; literal symbol strings are headed by
"$" and delimited by "I" or blank. Within a
symbol string "$" acts as a control character
and forces inclusion of the next character as
part of the string. Thus, as long as the symbol
strings do not include "$", "I", or blank, everything is quite readable; if they do, legibility
drops accordingly.

Examples:
B.n.f.
 :: ==  I   
 :: == GE I LE I UE I EQ
 :: == */1

BNF
AREX == TERMI AREX ADOP TERM
RELOP == $GE/$LE/$UE/$EQ
MULOP == $*/$$1

To each BNF type definition may also be appended tags which provide control information
associated with the type.
THE LANGUAGE GSL
A statement in the generation strategy language GSL begins with a predicate to be satisfied,
of the form:
IF  AND c\'1 (t 1) AND ... AND ~II (til)'
where the d)i are assertions whose truth is to be
tested and the ti are relative tree names. The ~i.
are assertions about the presence or absence
of a node, its syntactic type, the number of its
"sons" (components), and so on.

Following this predicate is a sequence of
commands to be associated with nodes of the
distinguished kind. A command is either a
directive to proceed to another node or an action
of some sort (emit output, for example).

62

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

Example:
IF AREX AND SON3 == 0 AND
FATHER*FATHER*RTSIB IS ADOP,
$LFTSIB $SON1 $OUTPUT
(PLUS,SON1,F ATHER *RTSIB).
The list of commands is in effect a small program to be attached to a node when its kind is
first determined. It is an odd program, in that
each node keeps its own program counter. The
generator may consider a node several times.
The first time, its kind is determined, its generation strategy "program" attached, and the
first command of the program executed. Upon
subsequent reconsiderations of -that particular
node, the first command not yet executed is in
fact· performed. There are appropriate procedures for handling ill-defined commands (if
a command directs walk to a non-existent node,
take the next command; if there are no more
commands, go to FATHER, and so on).
In the above example, upon first entry, the
generator will just move consideration to the
"left sibling" of the current node; at second
entry, to the first son; at third, a PLUS macro
will be emitted; afterward, any entry will cause
automatic transfer to' the father of this node.
Obviously, for a language of this sort-built
around the relative tree name idea-to work at
all, it is essential that the GSL programmer
know in precise detail what tree structure will
be output by the Analyzer. Thus the components of a type as given in the BNF and the
sons of a node are in perfect one-one correspondence. The single exception is that left
and right recursives come out as a "bush" of
components at the same level; thus,
AREX

== TERM/ AREX ADOP TERM

would produce, from "A+B+C", a bush of the
form

This exception is readily detectable by the
BNF /GSL programmer, and thus does not violate the general philosophy.
The language GSL includes a number of commands besides "OUTPUT." These are concerned with passing information from node to
node of the tree and with the emission of control messages to the ISO.
THE LANGUAGE MDL
The Macro Description Language provides a
means of completely defining the semantics of
the macro-instructions emitted by the generator. The definition contains the information
necessary for controlling the processing of a
macro by the ISO and the code selector, including a definition of the instruction repertoire and special registers of the "object" computer.
The most significant part of MDL is the sublanguage CSL (Code Selection Language). CSL
permits the writer of a strategy to describe decision rules for the selection of machine instructions in terms of the status of macros (and
their dependents: arguments, arguments of
arguments, etc.) and the status of computer
registers.
To illustrate a few of the properties of CSL
and the code selector, assume the compiler is
translating an algorithmic language with simple arithmetic assignment statements and has
analyzed and generated over the statement
A+-B*C+A
producing the following macros:
(I)
*, B, C
(2)
(3)

+,

(1), A

+-, A, (2)

Assume that the computer has an accumulator (ACC), an addressable memory (M) and
five single-address instructions:
CLA M
(M) ~ ACC
ADD M
(ACC) + (M) ~ ACC
MPY M
(ACC) * (M) ~ ACC
RAD M
(ACC) + (M) ACC, M
STO M
(ACC) ~ M
Following the principle that no code should
be generated for a macro until the intended use
of the result of the macro is known, the code
selector would begin execution of the selection

A GENERAL-PURPOSE TABLE-DRIVEN COMPILER

strategy for macro line (3), the strategy for a
"+-" macro.
For this example the strategy would recognize that the RAD instruction was applicable
and, after deciding on the execution of macro
line one and verifying that its result is in the
ACC, would emit an RAD A instruction.
The strategy for the "*,, on macro line one
would produce CLA B followed by MPY C.
Hence the code produced would be
CLA B
MPY C
RAD A

63

To give some idea of the appearance of a
code selection strategy we append a set of statements in CSL. Each line has been numbered to
facilitate referencing a set of explanatory
notes. Also refer to the descriptions of EXECUTE, OUTPUT, and ALLOCATE which appear immediately after the strategies.
In the notes, the following symbols are
used:

Q!
£
w

variable
expression
operation (either

"+" or "x")

FOR "+-"

"+"

1.

IS ARG2 =
MACRO
begin IS ARG 1 (ARG2) = ARG 1
begin C1 =ARG2(ARG2)
GO TO ALPHA
IS ARG2 (ARG2) = ARG1
begin C1 = ARG1 (ARG2)
ALPHA .. EXECUT*(C1)
ALLOCATE* (C1 TO ACC)
OUTPUT* «RAD) ARG1)

2.
3.
4.
5.
6.
7.
8.
9.

EXIT

10.
11.
12.
13.
14.

end

end end

EXECUT (ARG2)
ALLOCATE (ARG2 TO ACC)
OUTPUT «STO) ARG1)
EXIT

Notes for H+-"
1. Is the second argument (Le., the value being assigned to the first argument) the
result of a "+" macro?
2. If so, is the first argument of the " +"
macro identical to the variable receiving
the assignment; in other words do we have
the form Q! +- Q! + £?
3. If so, the local variable C1 is set to the
macro line number for £.
4. And transfer control to ALPHA (line 7).
5. Alternatively, is the second argument of
the
macro identical to the variable
receiving the assignment; in other words
do we have the case Q! +- £
?
6. If so, the local variable C1 is set to the
macro line number for £.
7. ALPHA.. Execute the code selection
strategy appropriate for the macro on the

8.

9.
10.
11.

rv

"+"

+

line specified by C1 (i.e., cause the evamation of £.
Execute the code selection strategy subroutine ALLOCATE to guarantee that the
result of macro line C1 (i.e., the value of
£) is in the accumulator.
Output to the assembler RAD FILM
UNTIL
RESET
C¢>ARSE
FINE
ST¢>RE
RETREV

77

n,goto
n

surf,where (where is NEXT,PREV, a number, or missing)
surf,where (where is NEXT,PREV, a number, or missing)

2. Instructions for drafting and typing

(The entire scanner
LINE
ARC
TRACE
TYPE

language of Appendix A may be considered to be in this category)
sc1,sc2,mode,ns, width,speed
sc1,center,d,mode,ns,width,speed,t1,q1,t2,q2 (t2,q2 optional)
symb1,length,sc,orient,mode,ns,width,speed
symb2,sc,size,Hspace, Vspace,mode,ns
n, (specification of curve to be drawn by TRACE)
n, (specification of text to be typed by TYPE)

symb1 ¢JCT
symb2 BCI

3. Instructions for instantaneous operations on rectangular areas

scTR,scBL,mode,ns
scTR,scBL, width, mode,ns
scTR,scBL,dir ,amount
scTR,scBL,dir,amount,n (n optional)
scTR,scBL,dir ,rep1,rep2
scTR,scBL,dir ,del,kp
scTR,scBL,mode,orient~sc3,sc4,n (n optional)
scTR,scBL
scTR,scBL,ns1,ns2,ns3,goto (goto optional)
scTR,scBL

PAINT
BORDER
SHIFT
R~TATE

EXPAND
SQUASH
cifjPY
CENTER
GR¢>W
SMfJq>TH

4. Instructions for dynamic operations on rectq,ngular areas
DIS¢>LV
scTR,scBL,sc3,pat
Z¢J~MIN
scTR,scBL,fctr
REDUCE
scTR,scBL,fctr
STRECH
scTR,scBL,dir,fctr
PRESS
scTR,scBL,dir,fctr
These settings must be made before the first
CAMERA call, but they may be changed at any
later point in the program.
The surface area to be output is determined
by the position of that scanner sc specified in
the last previous setting of the form
(e.g.
(or

AIM
AIM
AIM

sc
BB)
A)

The top right corner of the picture which is
output by a CAMERA call is the current position of that scanner specified by the AIM set-

ting. If the scanner moves, the camera tracks
the scanner.
The output mode (coarse or fine) is determined by which of the settings,
or

FINE
Cq)ARSE

occurred last. The setting FINE specifies that
henceforth and until encountering the next
COARSE, the area to be output is a rectangular
array of squares 252 wide and 184 high. The
setting C.pARSE specifies that henceforth and
until the next FINE, the area to be output is

78

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

an array 126 wide and 92 high. In this case,
the spots are displayed at twice the spacing for
FINE output in order to fill the complete movie
frame.
I t will normally be the case that the piC'ture
on film is to be composed of other charactron
characters than the digits 0 through 7. This
requires transliteration during output, specified
by the setting
(e.g.

FILTER n
FILTER 5)

(0 :::::; n

L

10)

where 11, is either 0, specifying no transliteration, or a number from 1 to 10 specifying one
of ten available transliteration tables. Each
table thus used may be set up or later changed
by a command
(e.g.

TABLE n,nO,nl,n2,n3,n4,n5,n6,n7
TABLE 5,60,15,14,72,13,16,54,53)

which causes table n to transliterate 0 into nO,
1 into n1, 2 into n2, etc. The characters which
may be used for output on the charactron are
any of the sixty-four octal characters 0 through
(77)8 except (12)/S, (52)8 and (56)s. The specific example above gives a recommended grey
scale, transliterating 0 into blank (60) s, 1 into
apostrophe (15) 8, 2 into quote (14), 3 to degree
sign (72)s, 4 to equal sign (13)s, 5 to delta
(16) s, 6 to asterisk (54) s, and 7 to dollar sign
(53) H which is the darkest typeable character
on the charactron.
In addition to film output, printed output
may be produced for monitoring purposes. The
setting
(e.g.

SAMPLE n
SAMPLE 24)

says that printed output is to be produced for
every nth frame of the final movie, except that
this output will be produced at most once in
anyone CAMERA call. Thus if the sampling
rate is 24 and the instruction, CAMERA 150,
is encountered, only one printed output is produced during this operation, labeled with the
beginning and ending frame numbers of the
corresponding sequence of identical frames in
the final movie. The part of .the frame which
is to appear in the printed output is predetermined by the bit pattern of the II-digit octal
number, n in the setting,

(e.g.

LINES
LINES

n

1400000003)

The first octal digit is 1 or 0, stating that lines
x == 91 and x == 90 of a C~ARSE picture should
or should not be 'Printed, each successive bit
states whether or not the next 3 lines should be
printed. In the example given, only the top 5
lines and the bottom 6 lines would be printed.
If the output mode is FINE, then only the odd
columns of the corresponding odd-numbered
rows are printed. If the above sample LINES
setting were used for fine-resolution output,
then odd-numbered positions of rows 183,181,
179,177,175,11,9,7,5,3 and 1 would be printed
(counting the bottom line as line zero) .
The actual production of film is enabled or
disabled by the instructions
or

FILM
N¢>FILM

each of which compiles into a single machine
instruction. Common practice is to begin every
program with this sequence of instructions, and
to test the program in this form, producing only
the printed output for monitoring purposes.
When the program has been checked out, a production run is performed in which a correction
card replaces the NcfiFILM instruction with a
N¢'P machine instruction.
The system contains a counter which counts
frames of the final movie. This counter may
be interrogated, and flow of control directed
by the branch
UNTIL
n,goto
UNTIL
2400,AGAIN)
(e.g.
which causes control to go to the indicated
goto if the current frame count is below the

specified number n. A special format for the
CAMERA call also uses the frame counter
(e.g.

CAMERA
CAMERA

UNTIL,n
UNTIL,2496 )

This call directs the camera routine to produce
one frame, as does a normal call, but in this case
the number in the frame line-specifying how
many times this frame is to be repeated in the
final movie-is made just large enough to bring
the frame count up to the specified n. The
frame counter may be reset by the program to
any n by the command

A COMPUTER TECHNIQUE FOR PRODUCING ANIMATED MOVIES

(e.g.

RESET
RESET

n

4800)

Operations and tests involving the frame
counter are intended primarily to facilitate
synchronization of the movie with a sound
track which is added later by traditional
methods.
In addition to putting out pictures on film,
contents of entire surfaces may be temporarily
stored on and retrieved from the disc file. There
are 440 available storage areas on the disc,
numbered 1 through 440, each capable of storing the entire contents of any surface except
surfaces VV or CC. Storing of surface surf
is accomplished by the instruction
STRE

(e.g.

surf,where (where is
n,NEXT,PREV, or
null)
AA,150)

ST~RE

and the picture is retrieved by the instruction
RETREV

(e.g.

RETREV

surf,where (where is
n,NEXT,PREV, or
null)
AA,PREV)

In either case, the storage area where may be
specified explicitly by a number, or implicitly
by three other possibilities: if where is missing
in the call, the last area used in a ST¢>RE or
RETREV command is used; NEXT implies the
next higher area than the last one used, and
PREY implies the next lower area than the
last one used. The surfaces VV or CC can be
effectively stored by storing the contents of
both AA and BB, since the latter occupy the
same internal 7090 storage space. For example,
contents of surfaces VV (or CC) may be stored
in areas 150 and 151 by the sequence
ST0RE
STf/JRE

AA,150
BB,NEXT

and they may then be retrieved by the sequence
RETREV
BB
RETREV
AA,PREV
One precaution must be taken after retrieval
of a picture: a scanner a now sitting on this

surface may not act as if it were on the corresponding new number until it is first "moved"
by some such scanner instruction as (a, T,a) or
(a,X,a) or (a,Y,a).

2. Instructions for Drafting and Typing
The instructions for drafting have the names
LINE, ARC, and TRACE; the one instruction
for typing is called TYPE. These are all dynamic operations in the sense that while each
is being executed it is interrupted periodically
to allow the camera routine to output pictures.
For the TYPE instruction, the interruption
occurs after every large character (made up of
a rectangular matrix of numbers) has been
typed, and the camera routine may be rendered
ineffective by a previous setting 'FRAMES 0'.
For the drafting operations, the interruption
occurs every time the line being drawn has advanced another n squares, where n .is specified
in the instruction as the "speed" at which the
line is to be drawn. In this case, the interruption is avoided, or it is rendered ineffective, by
a very high speed (e.g. 5000) or by a previous
setting 'FRAMES 0'.
An approximation to a straight line is drawn
from scanner scl to sc2 by the instruction
LINE
scl,sc2,mode,ns, width,
speed
LINE
A,B,WRITE,5,3,9)
(e.g.
The line "is drawn by using the number ns (or
the number that 11S is sitting on ifons is a scanner name) : if mode is WRITE, this number is
used to replace the numbers on affected squares,
whereas if mode is ¢R or AND, the new number is 0Red or ANDed, bit by bit, with the
previous number in each affected square. The
line is drawn by an imaginary stylus which
moves by stepping either horizontally or vertically to the adjacent square which lies closest
to the ideally straight line. On each square
thus traversed, an approximately circular dot
of diameter width is centered, and a picture is
produced after advancing each n squares along
the line, where n is the desired speed.
An arc is drawn in a manner similar to the
drawing of a line, by the instruction
optional
,---A--...,

(e.g.

ARC
ARC

79

scI ,sccent,d,mode,ns, width,speed, tl,q 1,t2,q2
A,B, ccw,yi R,6,5, 12, Y ,B,R,B)

80

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

where the arguments rrwde,ns,width, and speed
have the same meaning as for LINE. The arc
begins at the position of scanner sel, and proceeds with scanner seeent as its center, in direction d, which is C'V for clockwise or CCW for
counterclockwise. The arc is terminated when
the drawing stylus, which itself may be thought
of as a scanner, satisfies the joint condition,
expressed in scanner language,
(stylus,tl ,ql) (stylus,t2,q2)

instruction. If the terminating condition is
not satisfied within 1000 elementary steps, the
program stops. In the specific example above,
an arc of width 5 is initiated at scanner A and
is drawn about scannerB as center in a counterclockwise direction at speed of 12, by ~Ring
the number 6 onto affected squares. The arc
is terminated when the drawing stylus is at the
same height as scanner B and right of scanner B.

or when it satisfies simply the first condition if
the second condition is not given in the ARC

A curve of arbitrary shape may be traced by
an instruction of the form

eg

{~~RVE7

TRACE
TRACE

Symb,length,sc,orient,mode,ns, width,speed
CURVE7,19,A,ST,WRITE,2,1,10}

ifJdr

000011122233,455667000000

where mode,ns,width and speed have the same
meanings as for LINE. The argument length
is the length of the curve to be drawn, expressed in elementary steps from one square
to the next, se is the scanner at which the
curve is to start, and orient is one of the eight
possible reorientations of the basic curve (see
the Key in Table B.1). Symb is a F AP symbol
indicating the location at which a description
of the basic curve is given in terms of a
sequence of incremental steps. Each step is
here specified by one of eight octal digits which
stand for the eight possible directions for
these steps:
7

1

6

2
4

5

r
g

,
TEXT5

l

3

In the specific example above, if the original
surface contained only zeros, and if on output
zeros are transliterated to blanks and 2's to
dots than the result would be

position of
scanner A

•.

If the same curve (with the same description)
had been drawn in the YEMX orientation (reflected through the line y == - x) it would have
started with a straight section going left and
then would have spiralled counterclockwise.
The operation of "typing" in the movie language is done by affecting appropriate patterns
of squares. The general form of the typing
instruction is

TYPE
TYPE

symb,sc,size,Hspace, Vspace,mode,ns
TEXT5,B,5x7,1,3,WRITE,61

BCI
BCI
BCI
BCI

3,* (
BELL
3,*/ *TELEPH0NE
3, */ *LABORAT0RIES,
3,* /
*INC.
*

JI

A COMPUTER TECHNIQUE FOR PRODUCING ANIMATEH MOVIES

where symb is a F AP symbol identifying the
description of the text to be typed, sc is the
scanner specifying the position of the bottom
left hand corner of the first character to be
type, and size is one of the following sizes of
characters w·hich may be typed :
4x5
5x7
7xl0
8x11
10x14
15x21

(4 squares wide, 5 high)
(5 squares wide, 7 high)
(7 squares wide, 10 high)
(8 squares wide, 11 high)
(10 squares wide, 14 high)
(15 squares wide, 21 high)

The argument Hspace specifies the horizontal
spacing in squares between the characters of
a line, whereas V space specifies the number of

*

*(
*)

*L

*
**

squares of vertical spacing between successive
lines. The mode may be AND, ~R, or WRITE
as with the drafting operations, but the programmer must note that only those squares
corresponding to the body of the letter are
affected: background areas, such as the center
of a '0' or the entire area of a blank are unchanged regardless of the mode used. The argument ns is either the number io be used in
changing affected squares, or the name of
scanner sitting on the number to be used. The
description of text to be typed is written out
on F AP BCI cards. All of the 48 standard IBM
Hollerith characters may be typed. The following special sequences, all starting with '*', have
the indicated meanings for the typing routine:

stop typing
shift to upper case (affects typing of letters only)
shift to lower case (affects typing of letters only)
where L is any letter: Type this letter in upper case, then shift to lower
case
return carriage: Return to starting point of previous line, then go down
letter height plus vertical spacing
type the character ,*,

In the specific case of the example illustrated,
the resuit would appear approximateiy as
follows:
BELL
Telephone
Laboratories,
Inc.

81

t

37 squares
..

-----------------

dummy argument "scBL" means "either the
nanie of a scanner defining the Bottom Left
corner of the area or else '0', meaning x == 0,
y == 0 of ihe surface that scanner scT-R is on."
A rectangular area may be "painted"--every
square changed by using the same numberby the instruction

..77 squares.

(e.g.
Other examples of typing operations appear in
Appendix C.
Instructions for Instantaneous Operations
on Rectangular Areas

3.

The contents of rectangular areas may be
altered by any of a large number of instantaneous operations-operations which appear
to be performed instantaneously in the movie
because their respective subroutines contain
no CAMERA calls. The. formats and uses of
these instructions are described in the following
paragraphs. In all cases, the rectangular areas
to be changed are specified by the positions
of scanners. The dummy argument "scTR" in
a format statement stands for "scanner defining the Top Right corner of the area." The

PAINT
PAINT

scTR,scBL,mode,ns
ZZ,O,WRITE,O)

where mode, as before, is AND, q)R or WRITE,
indicating whether the change is to be accom- .
plished by ANDing, ~Ring, or replacement, respectively and ns is either the number to be
used or the name of a scanner sitting on the
number to be used. In the example above, the
entire surface ZZ is "cleared" to zeros.
A rectangular border of any thickness may
be produced just within the periphery of the
rectangular area by the instruction
Bq'>RDER scTR,scBL, width,mode,ns
(e.g. Bq,RDER A,B,9,¢lR,A)
where width is the thickness of the desired
border, mode and ns indicate the manner in
which numbers are to be changed and the number to be used, as in the case of PAINT.

82

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

The contents of a rectangular area may be
shifted up, right, down or left any number of
positions-up to the dimension of the area in
this direction-by the instruction
(e.g.

back" to be reintroduced is transliterated accoring to transliteration table n. This table must
have been previously established by a TABLE
instruction such as is used to specify transliteration during output, but only the three lowestorder bits of the new numbers can be used for
the R~TATE transliteration.

SHIFT scTR,scBL,dir,amt
SHIFT AA,O,UP,36)

where amt is the number of squares of shift
and dir is the direction of shift, UP,RIGHT,
D~WN, or LEFT. As a result of the shift
operation, material is lost at one edge of the
rectangular area and the "vacated" area is
filled by repeating the original row or column
just within the edge that contents of the area
were shifted away from.

The pattern of numbers within a rectangular
area may be "expanded" upward or downward
by du-plicating certain rows, or it may be expanded to the right or left by duplicating certain columns. The instruction
EXPAND scTR,scBL,dir,repl,rep2
(e.g. EXPAND F,G,RIGHT,2,3)

The material within a rectangular area may
be "rotated," as if around a cylinder, by the instruction
Rf>T A TE scTR,scBL,dir,amt,n (n optional)
(e.g.R~TATE C,D,LEFT,5)

causes the material to be expanded in the direction dir (UP, RIGHT, D~WN, or LEFT) by
starting at the edge row or edge column opposite the direction of expansion and repeating
the first row or column 1'epl times, the next
row or column rep2 times, the next repl times,
etc., until the entire rectangular area has been
refilled. The sample EXPAND instruction above
would change the pattern

The effect is the same as for SHIFT except that
the material which is lost at one edge is introduced at the opposite edge. Furthermore, if n
is given, the material which "goes around the

-----(position of scanner F

° 123
°

7

6

5

2

3

4

4

6

7

432

1

7

5

°

5

6

position of scanner

001

to

o

0 7 776

6

5

1

3

4

2

edge specified by the direction dir and alternately deleting del columns (rows) and keeping
kp columns (rows). The remaining columns
(rows) are closely packed and the vacated area
is filled by duplicating the original column
(row) just within the edge from which the motion has occurred. The sample instruction above
would change the pattern

SQUASH scTR,scBL,dir,del,kp
(e.g. SQUASH A,B,LEFT,1,2)
performs such an operation by starting at the

~----(position

23467

1

o

347

1

234

5

6

2

5

0

3

7

223

G)----~

The pattern of numbers in a rectangular area
may also be "squashed" toward one edge by depleting certain rows or columns and by repacking the remaining numbers. The instruction

6

1 122

to

1

of scanner A)
1 000

245

666

5

3

('position of scanner B )----~

7

0

3

3

A COMPUTER TECHNIQUE FOR PRODUCING ANIMATED MOVIES

A rectangular area may be filled or changed
by "copying" from another area. .This is accomplished by the powerful and versatile instruction

83

patterns may result if the two rectangular areas
involved are 'overlapping areas on the same surface, unless they are exactly the same area and
orient is ST. The above sample instruction involves a 90-degree rotation to the left (counterclockwise). Thus, if scanner D is located as
shown:

C~py

scTR,scBL,mode,orient,sc3,sc4,n
(n optional)
(e.g. Cq,py A,B,WRITE,90L,C,D)
Here, as before, scTR and scBL define the affected area, sc3 is a scanner on this same surface (it may in fact be either scTR or scBL)
and sc4 is a scanner on the surface from which
material is being copied. The precise area to be
copied is visualized as follows: the entire surface being copied from is reoriented according
to orient (see Key in Table B.1) and then supeimposed on the surface to be changed in such a
position that sc3 and sc4 coincide. It is that
area which now falls on the rectangle defined
by scTR and scBL which is used: this area is
first transliterated according to table n if n is
given, and then it is ANDed, cpRed or written
into the rectangle, accordingly as mode is AND
or (/)R or WRITE. Peculiar and unexpected

5 673 2 1 7

o 112-3-~

5

6

o

0 1 1 1 2 12 3

4

41 5 5

I

Si:ypoSitiOn of scanner D)

7 6\ 5 4 3~ 1
1

6~~_~4

4

6

0

73 0 2

4

the effect would be to change the rectangular
area
~position

of scanner C>--J

~ ~,position of scanner A
0

0 0

0

0

0 0

0 0

000

0 0

0

0

0

0

o 0 0 0

o

0

0 0 0 0

to

0

0

0

0 4 2

6

3

0

o 3 1 542 0
1 5 570

o

0

0

0

0

position of scanner B
Lines of typed text, such as lines of a movie
title, may be centered in a rectangular area by
the instruction
CENTER scTR,scBL
(e.g. CENTER A,O)
For this instruction to be effective, all squares
bordering on the edge of this area must contain
the same numbe, called the "backgound" number. The complete background consists of all
rows containing only the background number

and, for each horizontal stripe not thus included, it also contains the widest possible rectangle on the right and on the left which contain only background numbers. Remaining subareas thus delimited are called "lines of text."
The CENTER operation identifies all lines of
text, centers each such line horizontally, and
moves all lines together by a shift-up or shift.:
down to make top and bottom background
stripes equal. Thus it would change the area

84

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

(position of scanner A
1

1

1

1

1

1

l'

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1 r221-1-1211

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

to
1

1

IJ 1

----

1

1

1

Ll - -2 -1

--I

1

1 1 1 1 1 1 1 1
1 1 ri-2-11-1-21 1
I
I
1 1 Ll_~_l_~!_~ 1
1 1 1 1 1 1 1 1 1
-4 ~ l' 1 1
1 1 1 1 15
L_.....J

I

I 1 1 1
1 r 5 - 41 1
1

1

1
1
1
1
1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

0,0 of the surface scanner A is on
Two different local operations can be performed throughout a rectangular area. Both
consume a relatively large amount of computer
time (ca. 10 seconds for the surface AA);
therefore the area to which they are applied
should be judiciously limited. The first local
operation,
GR~W scTR,scBL,nsl,ns2,ns3,goto

(go to optional)
(e.g. GR~W XX,0,2,3,5,AGAIN3)
changes every number nsl which is next to an
ns2 into an ns3. The number ns2 must also be
within the area and it must in each instance be
immediately above, below, right of or left of the
number to be changed. The numbers nsi, ns2
and ns3 must be three different numbers, and
each may be either given explicitly or specified
as the name of the scanner sitting on the number to be used. If the instruction contains a
goto, then on completion of the operation control passes to the goto if at least one such number was changed. Two GR~W instructions are
commonly used in a.loop which causes the region defined by two numbers gradually to
"grow" into the region defined by a third by
alternately adding incremental layers first of
one of its numbers and then of the other. If the
loop contains a CAMERA call, the growth process is seen in the movie.
The other local operation, which has the
effect of removing sharp corners, is
SM~~TH scTR,scBL
(e.g. SM~~TH A,B)

The operation proceeds by identifying every
instance of the four patterns
r--

n

n
p

n

n

n

n n

p

n

n

n
n

p
n

p

nl n

n

n

where all four n's in a pattern must be the same
number. For each instance thus found, the p
is changed to an n.

4. Instructions for Dynamic Ope-rations on
Rectangular Areas
Dynamic operations on rectangular areas are
those for which a series of pictures are output,
according to current camera settings, while the
operation is proceeding. As in the case of instantaneous operations on rectangular areas,
the affected area must be designated by two
scanners (or by one scanner and '0', meaning
0,0 of that scanner's surface).
A rectangular area may have another area of
similar size and shape "dissolved" onto it while
a series of 36 pictures is being produced. The
instruction is
DIS~L V scTR,scBL,sc3,pat
(e.g. DISC/>LV XX,O,ZZ,F)

where scanner sc3 indicates the top right corner of the area of similar size and shape which
is to be dissolved onto the area specified by
scTR and scBL. The dissolve is accomplished
by dividing the area, which must be at least 6x6

A COMPUTER TECHNIQUE FOR ,PRODUCING ANIMATED MOVIES

85

squares in sizes, into 6x6 subareas-possibly
with oddly shaped rectangles at the left and
bottom. Between any two successive pictures
of the dissolve,an additional number of the old
picture is replaced by the corresponding number from the new picture in each 6x6 subarea.
The order in' which new numbers are thus introduced is specified by the parameter pat which
must be one of the following:

entire area, with each of these rows (columns)
repeated fetr times: The direction dir must be
UP, RIGHT, Dr>WN, or LEFT, and the factor
fet'r must be an integer from 2 to 6.

F fade: quasi-random order
8I spiral in (simultaneously in all 6x6 subareas)
8~ spiral out (simultaneously in all 6x6 subareas)
R wipe to right (simultaneously in all sixcolumn-wide sections)
L wipe to left (simultaneously in all sixcolumn-wide sections)
"A "zoom" effect may be approximated by
gradually magnifying horizontally and vertically, by an integral factor, the pattern of numbers within a rectangular area. This is accomplished by the instruction

which causes the contents of the area to be compressed against one side of the area-by deletion of rows or columns and repacking in the
direction dire The vacated area is filled with
repetitions of the row or column just within the
edge from which motion occurs. As before, dir
must be UP, RIGHT, D(>WN, or LEFT, and
fetr is the factor of compression, and integer
from 2 to 6.

Z~~MIN scRT,scBL,fctr
(e.g. ZifJ~MIN YY,0,3)
where fet'/' is the magnification factor, an integer from 2 to 6. DurinI!' the Z00MIN
onera1
...
tion, the approximate center of the pattern is
fixed and material is lost off all four edges.
- -1Lol'

-

"

An approximate inverse of Zf>0MIN is' accomplished by the instruction
REDUCE scTR,scBL,fctr
(e.g. REDUCE A,B,5)
where fetf' is the factor of reduction, again an
integer from 2 to 6. Reduction is accomplished
by repeated deletions of rows and columns and
by repacking toward the center those remaining. Vacated area around the periphery is
filled in by repetitions of rows and columns
originally just within the periphery of the area.
A unidirectional magnification is accomplished by the instruction
STRECH scTR,scBL,dir,fctr
(e.g. STRECH A,B,UP,2)
which holds one edge of the pattern fixed and
"stretches" the pattern-by duplicating rows
or columns-in the indicated direction until
(l/fact)th of the original pattern covers the

Finally, an approximate inverse of STRECH
is provided by the instruction
PRESS scTR,scBL,dir,fact
(e.g. PRESS ZZ,0,D(>WN,3)

APPENDIX C

An Example of Movie Language Coding
The actual program which produced Fig. 2a
is here given as an example of movie language
coding. It consists of five parts: definitions of
new macro-instructions, coding for composing
the picture, coding for outputting the picture,
dosed subroutines, and descriptions oi text to
be typed. Particular attention should be paid
to the first section, which illustrates how the
programmer devices his own macro-instructions on a still higher level, instructions which
are either more powerful or which are more
specifically suited to a particular task.
A new macro-instruction of wide application,
is used for drawing any line which
consists of a series of straight line segments,
such as the two braces,of Fig. 2a. BENTLN is
defined in terms of SEGMNT, which compiles
into a call for the subroutines SEG . . . that
actually draws one segment of the line. The
new macro-instruction, SURF, on the other
hand, was designed specifically for Figs. 2a and
2b. It permits convenient description of the
position and size of a surface in the drawing
and of labels indicating its name and its size in
squares.
The program is here listed, with explanatory
comments on the right. (For more complete
description of the MACR~ FAP compiler see
the Bell Telephone Laboratories, 7090 Programmer's Manual, July 15, 1963) :
BENTLN~

86

PROCEEDINGS-SPRING JOINT COMPUTER CONF'ERENCE, 1964

BENTLN

MACRP
THEN
IRP
SEGMNT
IRP
ENDM

*

SEGMNT

*

SURF

(DIR2 AND AMT2 F A DIRECTION (U,R,D,(>R L) AND AN
AM0UNT PLUS AN ~PTIONAL 2ND DIRECTI~N AND
AM0UNT. END ()F BENTLN DEF.

AIM
FINE
FILTER
TABLE
FRAMES

TP

A COMPUTER TECHNIQUE FOR PRODUCING ANIMATED MOVIES

~ PRf>DUCE fJN PRINTER ALL fJDD
C~LUMNS OF ALL 6DD LINES

SAMPLE 1
LINES
17777777777
CAMERA
TRA
FINISH
*
SEG . . .
~RSUR

TEXTAA
TEXTBB
TEXTCC
TEXTVV
252X18
252X36
504X18
TEXTOR
FIG2A

PR¢>DUCE PICTURE
BEGINNING OF CL¢>SED SUBR9lUTINES
) SUBRfliuTINE F~R DRA WING A
) STRAIGHT SEGMENT cjJF A LINE
~ DESCRIPTI~NS OF TEXTS
~
TO BE TYPED BEGIN HERE
(AND C¢>NTINUED T(j THE END. )

LINE
THEN
BCI
BCI
BCI
BCI
BCI
Bel
BCI
BCI
BCI
BCI
BCI
B.CI
BCI
BCI
BCI
BCI
BCI
BCI
Bel

1,BB*.
1,CC*.
1,VV*.
2,252*) X 184 *.
2,252*) X368*.
2,504*) X184*.
1,0* /R*.
8,* (FIG. *)2A. *NAMES AND SIZES OF SURFACES
8,*/LARGE E7;UGH T~ H¢LD C~MPLETE FINE8, */RESTAL 7090 STq)RAGE
8, */ AREA ARE INDICATED, INCLUDING THE USES

n~T
.D\...I~

0,· /

C,D,WRITE,7,1,5000
(C,T,D)QQ
2,* ( (jJR
2,*/SUR2,*/FACES
2,*/ctlF
2,*/FIG.
2,*/2*)B.*.
1,AA*.

o

'Pr 'Dy;t~T~lIr.T
n.£JU~'f'J.'"

:I< /n.y;t

'" A '" A TlIr.T 'tIT A VCI ClHrl,.UTlIr.T TlIr.T

. .no . .no

~J.'"

Yf.no

~

0

0

'P n

.I.... ~J."'I

"'y;tT~
. r ~U.

""D.·

o n ...

87

SIMULATION OF BIOLOGICAL CELLS BY SYSTEMS
COMPOSED OF STRING-PROCESSING FINITE AUTOMATA*
Walte'l' R. Stahl,t Robert W. Coffin,'! and Ha1Tlj E. Goheen§

INTRODUCTION

simultaneous solution of hundreds or thousands
of differential equations, many of whose coefficients probably cannot be measured experimentally (see Pardee 82) , poses a difficult problem.
Actual cells may contain thousands of different
genes and hundreds of thousands of synthetic
units. Major questions of solvability and stability of such systems must be faced in an attempt
to model a complete cell.

In the last few years enormous progress has
been made in clarifying the operational mechanisms of living cells. It has been established
beyond reasonable doubt that all aspects of cell
activity are controlled by sequences of elementary genetic units. A comma-free triplet coding
in the four-letter alphabet of DNA is transcribed on RNA and causes the formation of
sequences of amino acids, which make up polypeptides and proteins. Various theories of
transcription control for such systems are now
under study. Recently, synthetic nucleic acid
(RNA) chains have been fed into the cell
machinery, thus demonstrating that protein
synthesis can be controlled artificially. Numerous finer details of the problem could be mentioned (see Crick,9 Nirenberg,31 Rich,39 Waddington,57 and Anfinsen 1) but shall not be considered in this report.

The present report describes a fundamentally
different approach to the problem of simulating a cell, some aspects of which were reported
earlier in Stahl and Goheen. 45 Since genes and
proteins are representable as linear chains or
strings, it is proposed that molecular mechanisms of cells be simulated by string-processing
finite automata. In this model strings representing DNA, RNA, proteins and general bio,;
chemicals are subjected to controlled copying,
synthesis into longer strings and breakdown into shorter ones, with use of what may be called
"algorithmic enzymes." A major property of
these logical operators is that they are combinable into large systems with complex properties.

There arises the question of what type of
mathematical modelling method is best suited
for simulation of molecular genetics. In the
past numerical models, based on chemical kinetics expressed in terms of simultaneous differential equations, have usually been applied.
Impressive results were obtained by Chance et
al., 7 Garfinkel,13 Hommes and Zilliken 18 and
others. However, it has also become clear that

* This

The materials below deal in turn with a new
computer simulation system for studying finite
automata, the properties of algorithmic enzymes, experimental studies with systems of the
latter and lastly with some questions of solv-

report was prepared under the support of Grant GM-11178 of the National Institutes of Health.

t Scientist, Oregon Regional Primate Research Center, Beaverton, Oregon, and Associate Professor, Department

of Mathematics, Oregon State University, Corvallis, Oregon.
t Chief Programmer, Department of Biomathematics, Oregon Regional Primate Research Center, Beaverton,
Oregon.
§ Professor, Department of Mathematics, Oregon State University, Corvallis, Oregon.

89

90

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

ability for model cells defined entirely by automation-like enzyme operators.
THE AUTOMATON SIMULATION SYSTEM
The quintuplet command code proposed by
Turing is used in the programming system and
well described in Turing,50 Davis lo and elsewhere. Turing's device was designed for proofs
of computability and in principle requires an
infinite tape and infinite number of recursive
steps for such demonstrations. This circumstance does not prevent one from using the
quintuplet code for general purpose simulation
of automata. The late John von Neumann 55 .56
pointed out that the Turing Machine represents
a means of programming or simulating any
algorithm, as well as for computability demonstrations. McNaughton 26 has emphasized that
the Turing Machine should be considered as the
most general of automata.
A compiler based on the Turing quintuplet
notation <,but not really modelling the Turing
Machine) has been designed and is described in
Coffin, Goheen and Stah1. 8 Simulation of a considerable number of different automata on the
system, including ones for pattern recognition,
has revealed that a computer program for
modelling of automata is a useful research tool,
which may find practical applications when it
is desired to use a· "variable programmed automaton." Results substantiating this conclusion are reported in Stahl, Coffin and Goheen 44
and Stahl, Waters and Coffin.46 A special compiler, constituting an "automaton simulation
program," was written for a SDS-920 computer and has processing rates of up to 10,000
quintuplet commands per second. Rates of over
one million automation commands a :second
should be possible with presently .known technology. A number of special provisions have
.been included for automatic sequencing of different circumscribed algorithms or automata
presented as lists of quintuplets, debugging,
selective printout of string during simulation
runs, and so forth.
A Turing compiler should not be evaluated on
the basis of the inefficient operation of 'most
Turing Machines described in the literature to
date. The authors are using individual Turing
Programs (algorithms) exceeding 1700 quintuplets in size and a complete syst~m (namely,

the algorithmic cell) , which includes over
43,000 quintuplets. Interesting results have
been obtained for the problem of recognition of
hand-printed letters (A-Z) and shall be reported elsewhere (Stahl, Waters and Coffin 46 ).
Naturally, automaton simulation has a special
'range of application, as do research compilers
such as LISP, IPL-V, or COM IT.
The Turing Machine is a device which operates on individual symbols presented on a single
long tape, along which a reading head moves
left or right, one cell square at a time. A capability is provided for erasing and writing individual symbols and for recording the "state"
of the Turing Machine, which defines uniquely.
its response to a particular viewed symbol.
Only one type of program command is used
and consists of a quintuplet (or matrix table
with output triplets of symbols), which usually
appears as follows: symbol, scanned, state of
machine, new state, motion (right-R, left-L
and stay in place-P) and symbol to replace
existing symbol before motion is carried out.
A quintuplet such as 12 A :15RB is read "if in
state 12 and A is viewed, then replace A by B,
go to state 15 and move right one square." A
final logical halt of the automaton takes place
on such an entry as 26* :26P*, which is read "if
asterisk is seen in state 26, remain in place,
stay in state 26 and do not alter asterisk."
In principle, the Turing Machine must have
available an infinite tape and amount of time,
but precisely the same notation can be used with
finite automata and this has been done by such
authors as McNaughton,26 Myhill,30 Trakhtenbrot49 and others. The quintuplet command
structure need not in itself connote the extended
and often inefficient "shuffling" operation of
the cl~ssical Turing Machine.
ALGORITHMIC ENZYMES
The concept of a Turing quintuplet code may
be illustrated with a simple but biologically provocative example in which.a ;finite antomatoD
simulates ,a ;l~ic enzyme iflla't breaks ·down
"strings. ',Tatile I is a 'quintuplet program for
an "automaton enzyme"wnich lyses strings in
the alphabet (AGCT), representing the four
nucleic acid bases adenine, guanine, cytosine
and thymine. A typical input tape into the

SIMULATION OF BIOLOGICAL CELLS

automaton using this code might be

••• cp cp:=A-C-G-C-C-T-T-A-G-C-A:=4> 4> ...
(1)

in which "4>"-empty cells, ":="-start of
string, "-"-bond between letters.
Table I
TURING PROGRAM FOR A SIMPLE
LYTIC ENZYME

cp :lR4>

2 T:2RT

1 := :2R:=

2 /:2R/

2 := :2P:=

3 := :3P:=

2 A:2RA

3 -:2R/

2 C:2RC

3 /:2R/

1

2 G:3RG
2 -:2RFollowing a single left to right pass the string
in (1) will be converted into
:=A-C-G/C-C-T-T-A-G/C-A:=

(2)

in which every bond immediately to the right of
a G, regardless of what synlbol is next to it on
the left or right, is converted into an "open
bond" (/).
Operation commences at the left end of the
string .. The empty symbols (cp) are passed over
by entry 1 cp :lR4>. When the left end-marker
(:=) is seen control passes to state 2. In state
2 all symbols except G (namely, A,C,T and -)
are simply skipped over, as in 2 ~ :2R-. If G is
seen, by entry 2 G :3RG, control passes to state
3, which next encounters a "bond" and converts it to an "open bond" using entry 3 - :2R/.
Provisions are also made for skipping over any
existing open bonds, as in entry 2 / :2R/. Stopping occurs in state 2 or 3, on an entry such as
3 := :3P!::::.
Table II is a sample of coding for a string
synthesizing finite automaton, which was described in Stahl and Goheen 45 and is the prototype for the algorithmic enzymes noted in this
paper. The cited work also includes automata

91

for copying and complementary copying of
strings (as in DNA transcription), and for more
complex types of lysis.
In general, the construction of quintuplet
programs for automata is straightforward. It
is noteworthy that they are truly interchangeable because of the very standard format. It is
clear, however, that string-processing enzymes
might also be represented by other types of
automata, such as Wang's58 modified Turing
Machine and that it would be entirely feasible
to design special compilers that accept a "statesymbol" table.
While the lytic enzyme of Table I was given
principally as an example, it is interesting to
note that reconstruction of a parent protein
string following the action of several lytic enzymes is an important problem today for nucleic
acid and protein analysis. Rice and Bock38 have
pointed out that application of three specific
lytic enzymes, which split "next to" only three
of the four specific bases in DNA, does not allow
a unique reconstruction of the parent chain.
This is an excellent example of algorithmic Ullsolvability arising in a biological context, and
moreover even in very classical form, namely,
solution of a ~'word problem" by algorithmic
methods.

It must be emphasized that the lytic enzyme
of Table I in no way models the physiochemical
properties of any real enzyme that might perform the indicated lysis, and only simulates the
string-processing aspects of the enzyme action.
This type of model is somewhat comparable to
the McCulloch-Pitts 25 imitation of neurons by
the threshold Boolean "logical neuron," in that
both model systems are rather gross from the
biological viewpoint, but involve a consistent
mathematical methodology. The McCullochPitts neuron can be combined into large systems, such as perceptrons, and much the same
step has been taken with algorithmic enzymes,
The main problem in biological modelling is
probably that of finding well-defined mathematical methods which can be applied with
profit to the biological system.

92

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

Table II
TURING PROGRAM FOR CONDITIONAL STRING SYNTHESIS
1= :2R==
1cf>:lRcf>
1a :11Lx
2=:2P=
2* :2R*
2 :2R
2a :2Ra
2b:2Rb
2c :2Rc
2e :3Le
3=:4R=
3* :3L*
3 :3L
3a :3La
3b:3Lb
3c :3Lc
4 :SR
4a :SRa
4b:5Rb
4c :SRc
4e:SRe
5* :4R*
5a:SRa
5b:6Rb
5c :SRc

6=:7L=
6* :7L8
6a:SRa
6b:SRb
6c :SRc
7=:9R=
7* :7L*
7 :7L
7a :7La
7b:7Lb
7c :7Lc
7e:7Le
S=:SP=
S* :4R*
S :SR
Sa :SRa
Sb:SRb
Sc :SRc
9 :12R
9a :10Ra
9b:12Rb
9c :12Rc
ge :12Re
10= :lL=
10* :lL*
lOa :12Ra
lOb :12Rb

10c :12Rc
11=:13R=
11 * :llL*
II :114
11a :11La
lIb :llLb
11c :llLc
lIe :llLe
12= :12P=
12* :9R*
1q :12R
12a :12Ra
12b:12Rb
12c :12Rc
13 :17R
13a :14Ra
13b:17Rb
13c :17Rc
13e :17Re
13x:17Rx
14= :ISL=
14* :13R*
14a :17Ra
14b:17Rb
14c :15Rc

The concept of studying cells algorithmically
was probably implied in von Neumann's55 work
on self-reproduction of structures composed of
finite automata. This model has been extensively analyzed and extended by Burks 4 and
Moore. 2!1 The growth and stability of automaton-like arrays is considered in Lofgren,22
Ulam,54 Eden,ll Blum:l and others. Rashevsky:l7

15=:16L=
15* :16L*
15a:17Ra
15b:17Rb
15c:17Rc

16=:20R=
16 :19L*
16a :16L
16c :164
17= :lSL=
17*:13R*
17 :17R
17a :17Ra
17b :17Rb
17c :17Rc
lS=:lSP=
lS* :lSL*
184> :lSL4>
lSa :lSLa
lSb :lSLb
lSc :ISLc
ISe :ISLe
lSx :ISLa
19=:20R=
19* :19L*
19 :194
19a :19La
19b :19Lb

19c :19Lc
1ge:19Le
19x:19Lx
20* :20R*
20 :20Rcf>
20a:20Ra
20b:20Rb
20c:20Rc
20e:21r
20x :20R
21=:22R*
21 * :21R*
21 :21R
21a:21Ra
21b:21Rb
21c :21Rc
21e:21Re
21x :21R
224>:23Ra
23 :24Rc
244>:25Ra
25:26L=
26=:2R=
26* :26L
264> :26L4>
26a:26La
26b:26Lb
26c :26Lc
26e:26Le

suggested the application of the Markov "Normal Algorithm" (A. A. Markov 24 ) to the genetic
codes, but did not define any complete cell
model. Pattee:l5 proposed that a simple automaton could produce long biological chains of
a repetitive kind. Induction and repression
mechanisms in cells are analyzed by Jacob and
Monod. 20 Sugita 47 and Rosen 40 explore the

SIMULATION OF BIOLOGICAL CELLS

Boolean logical representation of cells. Turing
himself wrote a paperS1 entitled "The Chemical
Basis of Morphogenesis," but used differential
equations rather than algorithm theory in this
study. Soviet workers such as Frank 12 and
Pasynskiy34 discuss some general aspects of
cellular control theory. Lyapunov23 proposes
the systematic study of interacting automata
subjected to executive~ hierarchies of control
.and Medvedev 27 deals with errors in genetic
coding.
An "algorithmic cell" is defined in this report
as a system of string-processing finite automata,
representing enzymes, together with the cell
contents, identified as strings. Smaller biochemicals which are not as obviously strings as
DN A or proteins may be coded as strings. This
is done routinely in or Santa Monica, California: System Development Corporation,
SP-817, June 5, 1962. To appear in Dell
Hymes, editor, Uses of Computers in Anthropology. The Hague, Netherlands:
Mouton and Company, in press.
. "A Computer Model of Elementary Social Behavior," in Edward Feigenbaum and Julian Feldman, editors, Computers and Thought. New York:McGrawHill, 1963. Also reprinted in Behavioral
Science, October, 1963; 8, No.4, pp. 3-54362.
HOMANS, GEORGE C. Social Behavior: Its
ElementaTY Forms. New York: Harcourt,
Brace & World, 1961, pp. 7, 53, 54, 55, 75.
LIKERT, RENSIS. New Patterns of Management, New York: McGraw-Hill,1961.
NEWELL, ALLEN (Ed.). Information Processing Language-V Manual, Englewood
Cliffs, New Jersey: Prentice-Hall, 1961.

REAL-TIME COMPUTER STUDIES
OF BARGAINING BEHAVIOR:
THE EFFECTS OF THREAT UPON BARGAINING*
Robert J. Meeker, Gerald H. Shure, and William H. Moore, Jr.
System Development Corporation
Santa Monica, California
Description of the Project
Our research is designed to study bargaining
and negotiation behavior, particularly the dynamic interaction process that takes place in
mixed-motive (non-zero sum) bargaining situations. This study utilizes the computer for
real-time experimental control and assessment
of subjects at critical points during bargaining
situations. The project goal was to develop a
general computer-based experimental vehicle
which would provide unique opportunities to
study bargaining and negotiation behavior and
relate it to social-psychological factors (e.g.,
threat, trust, cooperation, status, power), personality variables, and game-strategic characteristics and tactical moves.

INTRODUCTION
Most behavioral scientists are well aware of
computer technology as a means of reducing
and otherwise analyzing empirically derived
data. A small number have also discovered, and
enthusiastically endorsed, the computer's potential for simulation of analytic models. But little
has been made of yet another application of
computer technology in the behavioral sciences,
namely, the use of computers for data acquisition.
To anyone familiar with the development of
real-time data processing, the prospect of a
computer-administered experiment suggests a
general increase in efficiency and flexibility over
the manual mode of experimentation. One tends
to think immediately of greater speed, greater
accuracy, and, in some instances, greater economy for a research program; but we are emphasizing the fact that certain types of behavioral
studies can be greatly broadened and enhanced
by exploiting the computer's efficiency and
ability to gather the desired data. In this paper
we shall develop the thesis that computeradministered experimentation permits us to
gather an important type of behavioral data
which are now practically unobtainable; as evidence we shall cite our computer-based empirical research on bargaining and negotiation behavior.

General Problem Background
Bargaining and negotiation behavior is a
striking example of an area of study which can
be broadened by having access to data that have
heretofore been elusive. Investigations in this
area have typically been confined to data on the
overt behavior of the bargainers (i.e., the bids,
moves, outcomes, rates of response, and so on) ;
yet investigators, theoreticians, and bargainers
themselves recognize that overt behavior is directly related to subjective attitudes, intentions,
expectations, and perceptions. Clearly, in the
temporal sequence of bargaining exchanges,

* This research was supported by the Advanced Research Projects Agency. under contract SD-97.
115

116

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

participants shift their evaluation of outcomes,
alter their goals, and attempt to induce their
opponents to alter theirs. By these criteria, a
complete analysis of bargaining requires not
only data on the overt pattern and sequence
of verbal exchanges, moves and countermoves,
but also a parallel assessment of the participants' changing intentions, expectations, and
perceptions of relative status and opponent behavior.
Consequently, we must ask the bargainer
what he is doing, or thinks he is doing, what he
plans to do, and why. The importance of these
kinds of "subjective" data is, regrettably,
matched by. the difficulties of collecting and
interpreting them. To obtain useful answers
from a subject, questions must be pertinent to
what has been going on, unambiguously stated,
and not be unduly suggestive. Unfortunately,
it is not yet economically feasible to put each
experimental subject on a psychoanalyst's
couch. But even if it were feasible, the highly
personalized interrogation creates additional
problems of its own-those of comparability of
questions and answers and the effect of the
presence of the interrogator on the responses
made by the subject. Small wonder that psychologists have developed strong objections ,to
methods for obtaining subjective data during
the ongoing experiment. These objections, economic and methodological, ha ve virtually excluded such data even from studies for which
they are most pertinent.
Another important aspect of bargaining and
negotiation is its dynamic nature. Two freeacting agents may effect an endless variety of
interresponse patterns. Such dynamic interaction phenomena are important for the understanding of behavior in a variety of socialcognitive situations; yet the traditional methods
for recording and analysis of social interaction
data are extremely costly and place exorbitant.
time demands on highly trained professional
personnel.
In our studies, the computer is used to overcome these difficulties by mediating and monitoring the communications between experimental subjects. Since all subject interactions are
conducted via the computer, it is easier to
oversee, record, analyze, and even control the

interaction process. Additionally, the computer
capa.city for rapid recording and analysis is
used for constant monitoring of subject behavior; and this, in turn, becomes the basis for
selective inter...rogation, by the computer, of subjects on their individual intentions, perceptions,
motives, and expectations. Thus, the computer
serves the unique function of a standardized interviewer which carefully, but unobtrusively,
monitors all participating subjects, detects all
situations about which further information is
desired, and then selectively asks questions
which are relevant to what has just happened
to the subject. The impersonal atmosphere
eliminates in some measure the problems associated with the presence of the examiner and
would appear to encourage freer responses.

Definition of the Bargaining Situation
and the Possible Effects of Threat
Three essential characteristics of a bargaining situation may be identified: (1) For both
parties there are a number of possible agreements and each party would be better off, or no
worse off, in reaching an agreement than in
failing to do so. In game theory terms this
means that bargaining is involved with variable-sum games, not constant-sum games. That
is, the sum of payoffs is not fixed-more for one
player does not necessarily mean less for the
other. (2) For each party there is a range (at
least two) of such potential agreements. (3)
Each party has preferences or interests with
regard to the possible agreements that are generally opposite to those held by the other party;
at the very least both players cannot be maximally satisfied at the same time.
Bargaining is thus a situation in which the
participants have mixed motives towards one
another. It is neither purely coordinative or
cooperative, nor purely competitive. That is,
the ability of one participant to gain his ends
is dependent to an important degree on the
choice of decisions that the other participant
will make.
The bargaining processing itself may be
either explicit or tacit. Typically, when we
think of bargaining, we think of the explicit
mode of direct verbal exchange--the dialogue
of bids, counterbids, concessions and compromise until an agreement is reached. On the

REAL-TIME COMPUTER STUDIES OF BARGAINING BEHAVIOR:

other hand, one can bargain in situations where
there is little or no opportunity (or no desire)
for direct verbal exchange. When drivers might
meet at an intersection, or competitors engage
in a price war, their dialogue may be limited to
the actions that they take. Our experimental
situation focuses on this tacit form of bargaining.
Bargaining situations may also involve
threats-a means of directly signalling and/or
imposing loss or damage on the other bargainer.
Such means might entail mutual loss as in a
strike or an extortion attempt. Speculation on
the effects t)f threat on bargaining runs in two
directions. One position tends to underscore the
deleterious effects of threat. The threat spiraling theory predicts a pattern of escalation
which leads to disrupting hostility, claiming
that perceived threats (whether intended as
such or not) will beget counterthreats. In this
framework, the mere possession of a threat is
sufficient to initiate the escalation process.
In contrast, one finds among other writers an
almost sanguine acceptance of coercive and
threatening techniques as bargaining tools. In
this view, since every bargaining situation involves some minimal aspects of threat-at the
very least a bargainer can refuse to reach any
agreement-threats present themselves as natural and necessary means of bargaining; means,
which can and will be used to effectively define
and convey importance of an outcome, degree
of resolve, or various other facets of the bargaining relationship.
One finds then what appears to be, on the
surface at least, inconsistent expectations regarding the employment of threat. To the advocate of its use in bargaining situations, coercion
is specifically designed to influence the "rational
decisions" of the other party by controlling his
expectations of outcomes which will follow from
his actions. Contrasted to this, we find descriptions of threat-evoked behavior which is anything but rational and which leads to consequences desired by none. Since neither party
to this argument has clearly specified the conditions which bound the range of his generalizations, the extent of the disagreement is not
apparent. Since both views cannot simultaneously hold for the same situation, it becomes

117

important to determine empirically the bargaining conditions under which threat will have
either of these effects.

Laboratory Studies on the EfJects of Threat
In our investigations we have focused on the
effects of threat on interpersonal bargaining.
In this regard we were particularly interested
in the widely cited findings of a series of experiments by Deutsch and Krauss. 2 , 3
In their experiments a bargaining game was
played under three conditions: (1) In the bilateral threat condition, both players could take
an action which directly imposed an obstacle to
the other's making money. (2) In a unilateral
threat condition, only one of the players had the
means of imposing the obstacle. (3) In a third
condition, neither individual had a direct threat
capability.
The following results were obtained: 'Where
neither subject possessed a threat capability,
the profits increased over trials and were positive for both players. Where one of the players
possessed the threat capability, the profits were
negative in the early trials, but improved and
became positive for both players. In the bilateral threat condition, there was no improvement over trials and earnings remained negative throughout-that is, both players lost
money instead of making money.
From the "results of their bargaining game,
Deutsch and Krauss derive a three-step process
occurring in -threat-counterthreat spiraling:
(1) If there is a conflict of interests, and threats
are available, they are likely to be used. (2)
The threatened person, if he feels superior or
equal in status to the threatener, will feel hostile and will use counterthreat or show increased
resistance to yielding. (3) As a result, further
intensification of the competitive interest of the
bargainers occurs and reduces the likelihood of
their arriving at a cooperative agreement.
We should note that this hypothesis depends
on references to subjective attitudes, expectations, intentions and perceptions. Reviewing
their experiment, we speculated about other
hypotheses-equally dependent on intentions
and perceptions-which might also account for
these results. Our reservations would not have
been satisfied by a simple straightforward repli-

118

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

cation of their experiments, for even supposing
an exact replication of results down to the level
of moves and counter-moves, we should still
want to know whether the attendant pattern of
intentions and perceptions support their hypotheses regarding the perception of threat and
the escalation of hostility. Indeed, this is precisely the sort of question for which we can
acquire direct data through the use of computer-administered experimentation.
To illustrate how these capabilities can be
implemented and, used, we turn to a consideration of our experimental vehicle and the details
of our investigations on the effects of threats in
bargaining behavior.

General Experimental Gaming Vehicle
Experiments were carried out in the Systems
Simulation Research Laboratory of the System
Development Corporation. The equipment configuration included the Philco 2000 computer,
computer-tied 8-by-11-inch television consoles,
and associated switch insertion response consoles. Computer programs pair as many as 24
subjects who then play against each other. Subjects can be considered "on line" with the computer. They send messages (moves, bids,
threats, offers) to their paired opponent via
switch insertions which are displayed on the
receiver's TV console. Computer programs present the game situations to the subjects, assist
in umpiring of legal moves, provide displays of
game-relevant information, record all moves,
messages and times of response, and probe the
subject's bases for his actions.
Procedures of Experimentation
Our experimental situation incorporated the
formal features of the Deutsch and Krauss experiment, although the simulated situation was
different. In our Communication Gam3 , subjects were told that they were going to perform
as operators in a communication system. In
each trial, the subject's task was to transmit
messages from a set of one six-letter and two
four-letter words. Each subjEct was informed
that he was assigned to a communication channel which would also be used by one other
subject. This channel, common to a pair of
subjects, had a total storage capacity of six
units. The six-unit channel storage limitation
prevented concurrent transmission of messages

Figure 1. Communications Game.

by both subjects. Figure 1 illustrates the game
moves and relationship between the bargainers.
An individual subject could earn 25 cents for
transmitting a six-unit message, ten cents for
each four-unit message, or nothing if he failed
to transmit any complete message. Transmission rules resricted an individual operator to
earning a maximum of 25 cents and a pair of
subjects to joint earnings of 35 cents per work
period.
Work periods were made up of 15 "jointaction" turns during which both subjects would
take their actions. In each turn, a subject chose
from one of three action alternatives: inserting
a letter unit into channel storage, withdrawing
a letter unit from channel storage, or passing
(taking no action). A letter unit could be inserted successfully only if there were sufficient
space in storage (i.e., the six-unit storage capacity could not be exceeded). If attempted
insertion (s), together with the units previously
in storage, exceeded the channel capacity of six
units, then an "overload" resulted, and this indication was displayed as the reason that ,the
attempted insertion (s) had not entered channel storage. In effect, subjects had to work out
an arrangement for sharing the channel.
In the "threat" conditions, both subjects were
provided with an additional "block" action
which prevented the other operator's attempted
insertions from entering channel storage. The
effect of the block action was enduring (it did
not require reihstatement to remain in effect).
Both subjects could independently take block
actions on any turn and maintain them for as
long as they wished, or remove their own blocks,
but each subject could initiate the block only
once in any given work period.
Subjects received instructions in groups ranging in size from 18 to 24 members, were as-

119

REAL-TIME COMPUTER STUDIES OF BARGAINING BEHAVIOR:

signed to individual cubicles, and did not know
with whom they had been paired. Each subject
had a switch insertion box for taking actions
and a television receiver for the display of channel status and the results of their attempted
insertions. Subjects had no other means of
direct communication with one another.
All subjects were explicitly told to make as
much money as possible regardless of how much
the other operator made. After each trial ithey
were informed what they each had transmitted.
There was real money at stake in all but one
condition.
The computer program permitted each pair
to proceed at its own rate of response. Following each work period, individualized computerdesignated questions were displayed to the subjects to which they responded by means of their
switch insertion boxes. The questions presented
were contingent upon moves taken and the resuIts of the immediately preceding work period,
and focused upon perceived significance of these
events.
Seven experimental conditions were studied.
Six of these were variations of the "threat"
condition involving bilateral availability of the
block. In all of the threat conditions, the action,
if maintained, had the direct effect of preventing the other bargainer from making any
money. The seventh was a "no threat" condition in which neither operator possessed a block
action with which to control the other operator's behavior. Since the block conditions did
not differ significantly from one another, they
have been combined for the present discussion
and compared with the results obtained for the
"no threat" condition.

110

r-~I::-:-04--------------'

100

TOTAL N • 194 SULECTS

90
80

NUMllER
Of SUlJECTS

70
60

EMPLOYING

ILOCIC

so

ACTION

«l

30
20

20

10
O~~~~~L-~~~~~_-LL-~

3-5

6-8

9-15

16-20

NEVEl

FlIST TIIAL USED

Figure 2. Trial of First Block Action.

median trial of initial use is the first trial. (See
Figure 2.)
Will the threat evoke counterthreat? If one
subject employs the block, does it evoke reciprocation? Again the answer would appear to be
clearly affirmative. Of the 95 pairs where the
block was employed, only 11 subjects never employed the block in return. Furthermore, the
median latency of counter response is short,
with two-thirds of the subjects responding on
the same or immediately following trial. (See
Figure 3.)
Continuing to look exclusively at those experimental conditions in which the block action
is available, we compared the bargaining outcome for those pairs where both members use
the threat with those in which one or both voluntarily restrain from using it for the full 20
trials (see Figure 4). A significantly lower
mean joint payoff was earned by those pairs
who use the threat bilaterally than by those
pairs where one or both subjects avoid the use
of threat.
These findings were consistent with expectations derived from the threat-counterthreat es-

Results and Discussion
Having mirrored the salient features of the
Deutsch and Krauss game, we may determine
whether any of tbe. steps described by Deutsch
and Krauss .are Jound inowr data. Let us look
rfinst :atl: the 's'ixCfIDditions where threat action
{(tbe block) was available.
If threat is available, will it be used? The
answer is a resounding "yes." Ninety-three per
cent of the 194 subjects use it on one or more
occasions during the 20 trials. Furthermore,
there is little hesitation in employing it. The

Zr-~~~-----------~

30

TOTAL N •

9S PAIlS

2S
NUMIIER Of

MJECTS

20

COUNTEI..QCICING

15
II
10).

Figure 3. Distribution of Trial Latency of
Counter-Blocking.

120

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

PAIR
BLOCK USAGE

MEAN JOINT
PAYOFF

N

$5.47

BILATERAL
UNILATERAL
AND NEITHER

$6.73

Mcliff

$1.26

BLOCK USE
FIRST 5 TRIALS

COOPERATIVE AGREEMENT
AFTER 5 TRIALS

NEVER

HIGH

18

12

LOW

5

15

114
13

N"'.50

Figure 4. Block Use Related to Joint Payoff for
Six Block Conditions.

calation pattern. On the other hand, other findings are clearly at variance with the threatcounterthreat spiraling hypothesis.
1. A comparison of the block and no-block
conditions showed the reverse of the predicted
threat spiraling. The pairs who had the block
action available had a significantly higher joint
payoff than did those without it. (See Figure 5.) This result is a direct reversal of the
Deutsch and Krauss findings.

2. Again focusing only on the block conditions and those pairs who had not yet reached
a cooperative agreement in the first five trials
-that is, those pairs who were having some
difficulty with each other-we compared those
pairs who made mQre use of the block action
during these first five trials with those who
made less. In a complete reversal from expectations, we found that significantly more of the
pairs who made extensive early use of block
action subsequently reached a cooperative
agreement. (See Figure 6. ) Nor was there
evidence that greater restraint, expressed in
delaying the counterthreat response, tended to
dampen the escalation of hostility or produce
more favorable outcomes over those where less
restraint was shown in taking a counterthreat
action. We found no significant relationship

NO BLOCK
MEAN
JOINT
PAYOFF

N

6 BLOCK CONDITIONS

$4.88

$5.60

18

108

Figure 5. Mean Joint Payoff for No Block and
Block Experimental Conditions.

x2 ", 5.92
(p< .02)

Figure 6. Frequency of Block Use (First Five Trials)
Related to Subsequent Cooperative Agreement.

between counterthreat response latency, measured in number of trials, and joint outcome for
each pair. It thus appears that greater restraint
in early use or delay in counterthreat response
does not dampen the escalation of hostility.
These results indicated that there is no simple relationship between the use of threats (as
measured by blocking) and escalation of hostility (as assessed by difficulty in achieving a
cooperative agreement).
Up to this point our data show the following:
Subjects who have the block do better than
those who do not; yet, those who have the block
but do not use it do better than those who use it.
This puzzlement is compounded by considering
the additional fact just noted. Those who use
the block more initially and with less restraint
do significantly better than those who use it
less or use it more cautiously.
At this point our methodology of computer
probes may permit us to do something which·
was not possible in previous studies. Since the
computer has inquired of each subject into his
intention and perceptions associated with each
use of the block, we may turn to this information instead of engaging in further speculations
about the meaning of our results.
3. Generally speaking, how were the blocks
intended and perceived? The first striking finding is the frequency with which first blocks are
used with a cooperative intent-specifically as
a signal for coordinative purposes. Approxi.;
mately 70 per cent of all users included a cooperative reason among the three most important reasons for their initial block usage. In
contrast, only 20 per cent failed to register any

121

REAL-TIME COMPUTER STUDIES OF BARGAINING BEHAVIOR:

coopera,tive intent, indicating that their use of
the block was exclusively intended to threaten
or express some reactive hostility.
That these self-ratings did not merely reflect
a tendency to characterize one's own intentions
in positive terms is indicated by the fact that
users with initially cooperative intent do significantly and markedly better in terms of subsequent cooperative agreement than do those
who indicate no cooperative intent in the use of
the block. (See Figure 7.) Thus, despite the
fact that subjects were explicitly given an "individualistic" orientation and sizable sums of real
money were at stake, a strongly cooperative
orientation was carried into the game by most
subjects. These findings suggest that many of
the subjects, at least to some degree, substitute
cooperative incentives in place of the individualistic ones which the experimenter attempted
to induce with instructions and monetary rewards.
Knowing the cooperative use our subjects
.made of the block action, it is now less surprising that a comparison of the "block" and "no
block" conditions showed the reverse of the
Deutsch and Krauss results. It is clear, then,
that the block action need not always have negative meaning, and it would appear that it can
be an actual aid to bargainers if they have the
disposition to use it to achieve an optimal coordinate agreement (even, as in the present
case, where pre-game ratings showed that our
subjects predominantJy viewed the block action
as a hostile act).
4. Since so many of our subjects achieved an
early and apparently easy cooperative agreement-they were willing to share the payoff

RATED INTENTION
OF BLOCK

COOPERATION
INDICATED

COOPERATION
NOT INDICATED

without conflictual confrontation and needed
only to coordinate, not to bargain-we next considered just those pairs of bargainers who do
not show outward evidence of mutual cooperation (more specifically, those who had not
reached a cooperative agreement by the fifth
trial) to see what effects threat might have in
this fuller bargaining context. These cases
should be more interesting and germane for the
Deutsch and Krauss hypotheses, for, as a class,
tliese are the bargainers who show evidence of
initial interference-whether it be for reason
of incoordination or simply conflict of interest
in doing so. Among these pairs, one would suppose that those who subsequently reached a cooperative agreement would exhibit an initially
lower level of hostility than those who never
achieved agreement.
We have already seen that if the frequency
of block usage is employed as an objective index
of hostility, the findings run counter to this expectation; but since we now know that hostility
cannot always be ascribed to block usage, let us
look directly at the subjective indices of hostility for the same groups. We "find at this level
also there is no evidence for the hypothesis.
Pairs which subsequently achieved a cooperative relationship show a higher instance of reported hostile intentions and perceptions over
the first five trials than those who failed to
achieve such a relationship. (See Figure 8.)
While not statistically significant, the trend is
clearly counter to the spiraling hypothesis.
Finally, let's consider one further possibility.
From the threat-counterthreat hypothesis, one
should expect escalation in subjective hostility
among those pairs who subsequently failed to

MEDIAN TRIAL OF
COOPERATIVE AGREEMENT

N

FREQUENCY OF
HOSTILE RATINGS
IN FIRST 5 TRIALS

2.7

69

19.5

24

COOPERATIVE AGREEMENT
ACHIEVED AFTER
FIRST 5 TRIALS

NEVER
ACHIEVED

HIGH

16

12

LOW

7

15

N=SO
x2 <

Figure 7. Intention of First Block Use (Within Pair)
Related to Median Trial on Which a Cooperative Agr!ement Was Achieved.

.10

Figure 8. Early Subjective Hostility Related to
Subsequent Cooperative Agreement.

122

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

reach a cooperative agreement and evidence of
de-escalation among those who achieved agreement. In fact, increase or decrease in subjective
ratings of hostility, both perceived and intended,
over the first five trials show no consistent relationship to success or failure in achieving a
cooperative agreement (see Figure 9).
All of our findings-the predominantly cooperative intent and perception of block use;
the fact that availability of threat is associated with better outcome; the fact that,
for pairs that do poorly, neither objective nor
subjective indices provide evidence for the
escalation of hostility in the early phases of
bargaining-all of these would suggest stringent qualifications for the underlying mechanisms of the threat-counterthreat hypothesis
if it were to be maintained. 1.f our results run
counter to the spiraling hypothesis, what explanation can we offer to accoullt for the varying degrees of difficulty which our subjects had
in reaching a bargaining agreement?
It is obvious that pairs of cooperatively oriented bargainers can achieve a jointly acceptable agreement which is profitable to bOoth. It is
also the case that competitive pairs (in which
both members want to earn more than half of
the available payoff) tend to do very poorly.

What happens, however, to those dyads where
one member is well-intentioned and conciliatory
while the other is out to get as much as he can?
A naive extrapolation of the threat spiraling
hypothesis would suggest that these pairs should
do better than the competitive pairs. We have
collected pre-game statements of plans by sub-

FREQUENCY OF
HOSTILE RATINGS
DURING FIRST FIVE TRIALS

INCREASING
(TRIALS 4 + 5 >TRIALS 1 + 2)
DECREASING
(TRIALS 4 + 5 $ TRIALS 1 + 2)

jects which provide a basis for such. a comparison. We compared competitive dyads with
mixed dyads (where a subject planning to share
the maximum joint payoff 50/50 is paired with
one planning to earn more than one-half the
maximum joint payoff). While the competitive
pairs were slower to adopt a coordinating strategy, all pairs but one succeeded in doing so
within the 20 trials. In contrast, 34 per cent of
the mixed pairs failed to do so. Indeed, they
have the poorest outcomes of all pair combinations based on pre-game plans. Similar findings
w~re obtained for pair comparison based on
personality classification. It is not the dyads
which are composed of two players with dominating strategies that have most difficulty;
rather, it is those dyads where one member is
well-intentioned and conciliatory and the other
is dominating or belligerent. (See Figure 10.)
As a tentative explanation of these finding'S,
we propose that the well-intentioned and conciliatory member is initially reluctant to "force"
cooperation-to employ his block as threatsand is ambivalent and oscillating when he does
so. The subject who delays in responding to a
threat with a counterthreat displays to the aggressive member a weak intention to resist and
encourages him to persist in his original demands. These then become increasingly unacceptable to the conciliatory member. Two additional findings support this interpretation.
Let's look at the situation of the cooperatively
inclined bargainer who initially fails to report
seeing any cooperative intent in the other bargainer's use of the block. Should he counterblock immediately or try to nurture coopera-

COOPERATIVE AGREEMENT
ACHIEVED AFTER
FIRST 5 TRIALS

NEVER
ACHIEVED

15

13

PAIR COMPOSITION FOR
INTERPERSONAL
CONCILIATORY
FACTOR

MEAN

N

.52

42

MIXED PAIR

1.86

42

BOTH BELLIGERENT

1.02

42

BOTH CONCILIATORY
8

14

Figure 9. Early Increase and Decrease in Level of
Subjective Hostility Related to Subsequent Cooperative
Agreement.

Figure 10. Mean Number of Joint Zero Profit Trials
(Measured over Last Ten Trials for Seven Experimental Conditions).

REAL-TIME COMPUTER STUDIES OF BARGAINING BEHAVIOR:

tion otherwise? Our data show his chances to
achieve a cooperative agreement are significantly better if he responds more immediately
(within two trials) with a counterblock than if
he delays longer in doing so. Twenty-two out
of 37 "immediate" counterblockers concur on a
cooperative agreement, whereas only one out
of seven "delayers" do so.
Finally, our explanation may help to reconcile our otherwise puzzling finding-that
greater block usage in the earlier trials is associated with greater likelihood of agreement. On
further analysis we find .that, on the average,
those who never reached agreement used the
block less than once every other trial during this
period. Thus they employed their block only in
a sporadic or intermittent fashion.
In summary, while bargainers who resist .the
use of threats show the most favorable joint
outcomes, these results appear to be related
primarily to the pairing of subjects with pregame cooperative dispositions. Rather than
spiraling hostilities, a posture of firmness and
determination expressed in a consistent and
rapid response to threat with counterthreat may
contain a belligerent player. Lack of resolution,
as expressed in delay and oscillations in employment of counterthreat to an aggressor, may sig=
nificantly increase the likelihood of escalation
of conflict.
In follow-on studies we plan to investigate
the conditions under which the exchange of
threat and counterthreat actions lead to conflict
escalation and/or to a dampening or reversal
of the conflict; to identify "points of no return"
if these are present; to assess the effect of massive retaliatory capability on the use of smaller
threat actions; to determine under what conditions such a capability would exert a stabilizing
or destabilizing influence on negotiations.

123

In pursuing these goals, we also plan to exploit further the unique advantages afforded by
our computer approach. Weare planning improvements in two major directions: first, to
improve techniques for eliciting subjective data
through computer probes so as to minimize their
interrupting features and increase the value
of the information elicited; second, Ito gain experimental control through computer simulation of one of the players in each pair. This will
permit direct investigation of effects of individual styles of play (ruthless competitor, strategic cooperator, irresolute cooperator, moral
pacifist, etc.) ; this, in turn, will provide greater
control of intermediate critical stages of the
game, thus reducing the obscuring effects of
unique patterns of play and improving ability
to evaluate and compare results for different
bargaining pairs.
More important even than the specific findings in this study is the demonstration of the
potential usefulness of the computer as a tool
for gathering critical data in studies of social
interaction. As a result, data become available
which have been virtually unobtainable on a
scale necessary for scientific investigation.

REFERENCES
1. DEUTSCH, M. Trust, trustworthiness and
the F scale. J. abnorm. soc. Psychol., 1960,
61 (1), 138-140.

2. DEUTSCH, M., and KRAUSS, R. M. The effects of threat upon interpersonal bargaining. J. abnorm. soc. Psychol., 1960, 61 (2),
181-189.
3. DEUTSCH, M., and KRAUSS, R. M. Studies
of interpersonal bargaining. J. conflict
Resolut., 1962, 6, 52-76.

REAL TIME QUICK-LOOK ANALYSIS
FOR THE OGO SATELLITES
R. J. Coyle and J. K. Stewart
Datatrol Corporation
Silver Spring, Maryland
Introduction

mand from the computer. The selective analysis
of those experiments transmitting data is initiated by an input request from the Control and
Display Console and selective spacecraft status
analysis is handled in the same way. It is therefore a requirement of the computer program
that it be flexible enough to handle these many
and various requests instantaneously. Since the
bit rate of 64 KC means a new telemetrY frame
of data will arrive every 18 ms., th~ -c~~~~i~r
programs must be able to make maximum use
of the capabilities of the computer.

The National Aeronautics and Space Administration has designed a series of general purpose orbiting satellites which have the family
name of Orbiting Geophysical Observatory
(OGO). Each of these satellites is capable of
carrying up to 50 scientific experiment devices,
which transmit data to ground stations via a
common telemetry channel. There are two
tracking stations, at Rosman, North Carolina,
and Fairbanks, Alaska, which will receive this
telemetry, transmitting it to Central Control at
Goddard Space Flight Center in Greenbelt,
Maryland, at a data rate of up to 64 KC.

The SDS 920 computer was chosen by NASA
to handle the quick-look analysis and control
for OGO. The 920 is a small-scale computer
with a 24-bit word and an 8 us. cycle time. It
has one index register and uses single-address
fixed-point arithmetic logic. It is capable of
handling many kinds of input/output, to include: magnetic tape, paper tape, punched
cards, on-line typewriter, and high speed
printer. The OGO 920 has 8 K of memory and
32 channels of interrupts for input/output use.
The OGO installation is illustrated in Figure. 1.

General Description of the
Programming System
The requirement of the programming system
for OGO was to provide quick-look analysis and
control of the status of the spacecraft and selective experiments on board the satellite. (The
tracking and orbit determination of OGO is not
a function of this program.) All telemetry is
recorded for further extensive analysis in nonreal time on other equipment. There are several
special purpose consoles attached to the computer to accept telemetry, and provide a means
of communication to and from the spacecraft.
These are appropriately called: PCM Telemetry
input equipment, Control and Display Console,
and Command Console. It is through the integration of these consoles with the computer program that experiments on board the satellite
may be selected to start, or terminate, by a com-

Functions of the Real Time
Monitor Control System
The programming system for OGO can be
thought of in two distinct parts: the Real Time
Monitor Control, and Experiment Processors.
All routines necessary to connect the computer
with the external environment are integrated
into the Real Time Monitor Control system. It
125

126

PROCEEUING8-SPRING JOINT COMPUTER CONFERENCE, 1964

utilizing a priority table of processors. It saves
the status of the machine whenever an interrupt
occurs, and facilitates a proper return from an
interrupt by restoring the condition of the machine at the point of interrupt. The heart of
this scheme is the Monitor Schedule Routine
whose function is to examine sequentially the
entries in the priority table in order to determine the next routine of highest priority to be
processed.

Figure 1. OGO Central Control Installation.

must service all interrupts, provide for the receipt of all input including telemetry and manual input requests from the consoles, direct and
send out all output to the appropriate receiving
device, keep track of time, and determine the
sequence in which all functions and processing
is conducted. The Monitor Control does not
process any of the data itself, but rather acts
as a general purpose framework in which selective routines perform the processing. These
selective routines are called Experiment Processors and are independent routines opera.ting
under control of the Monitor. These routines
process telemetry input data, returning to
Monitor formatted output for driving digital
displays on the special purpose consoles, for
printing, and for typing, as well as other information to the Monitor.
The first distinct part of the programming
system for OGO, the Monitor Control, is itself
divided into three sections: the Schedule
Program, Monitor Processors, and Interrupt
Processors. The following is a definition of the
functions and characteristics of these various
sections.

Monitor Schedule Program
The Monitor Schedule Program consists of
routines which collectively coordinate, supervise, and schedule all processors in the system,

The priority table of processors consists of a
group of words, or module, which identify and
describe each processor with a reference in the
table. Due to the difference of functions of the
various processors, the modular approach allows
for flexibility in assigning priority during the
debugging stage of the system. By chaining
these modules together, say by the first word of
each module referencing the first word of the
next module, the modules may be of various
length (Fig. 2).
In order for the Schedule Routine to carry
out its function of determining ,the next processor of highest priority with something to do,
it must know the status of each processor in the
PRIORITY TABlE
MODUlE A

INDICATORS

I

B

FIRST WORD

MODUlE B

INDICATORS

I

C

FIRST WORD

MODULE C

INDICATORS

r

D

FIRST WORD

MODULE D

INDICATORS

I

E

FItSTWORD

-

-- -

-~

Figure 2. Make Up of First Word of the Modules.

REAL TIME QUICK-LOOK ANALYSIS FOR THE AGO SATELLITES

priority table at any given instant of time. This
is accomplished through the use of indicator
bits in the module, say the left portion of the
first word of each module (Fig. 2). The various states that a processor may be in are the
following:
'in process' -This processor was interrupted while it was processing, and entry should be made
at the point of interrupt.
'ready'
-this processor now has something to do; entry should be
made at the beginning.
'suppressed' -this processor should not be
processed at this time.
'terminated' -this processor has now completed its processing.
'not in core'-this module is available for the
addition of a new processor.
These indicator bits, then, inform the Schedule Routine whether or not the referenced processor is now available for processing. Since the
priority table entries must be examined from
the top each time return is made to the Schedule Routine, a rapid method of examining the
indicator bUs of each module was needed. To
clarify the method that was devised, it is necessary to diverge for a moment and describe two
uses of an instruction in the SDS 920 repertoire,
which may be used to load the index regis,ter.
EAX
A
X Reg. == A

A

A
B

Immediate Addressing,
where the address field of
the instruction itself is
placed in the index register.
EAX*
A Direct Addressing, where
PZE
1 the contents of location A,
X Reg. == 1 referenced in the address
field of the instruction, is
placed in the index register.
EAX*
PZE*
PZE
X Reg.

A Indirect Addressing, where,
B if the contents of location
2 A is in turn indirectly ad== 2 dressed, the address field of
A will again be used as tlie
location from which .to load
the index register.

The SDS 920 computer has the capability of
unlimited indirect addressing; that is, it is possible to continue the above indirect addressing

127

of an instruction for many steps, until a location is encountered that is not itself indirectly
addressed. It is convenient then to choose the
indicator bits of the modules discreetly to take
adv;antage of this feature of the machine as
well as the fact that the modules are chained
together. If all states of a processor which indicate that it not now available for processing
contain the indirect addressing bit as one of the
indicator bits, .then only those routines with
something to do at the current time would be
picked up for examination. For instance, the
processor states of 'suppression,' 'termination,'
and 'not in core' all -result in there being nothing to do at this time on this particular processor.
In Figure 3, the consequences of giving an
"EAX * A" would be that modules A, B, and C
would be skipped and the first word of module
D would be placed in the index register. For
module A is 'suppressed,' module B is 'not in
core' and module C is 'terminated," indicating
that no processing should be done on these
processors at this time. The contents of the
index register actually contains the location of
PRIORITY TASLE
MODULE It.

I

'5'

--

B

'SUPPRESSED'

MODULE B

1

'N'

C

'NOT IN CORE'

MODULE C

1

'1'

D

'TERMINATED'

MODULE D

1

'R'

-I---

.-

~

E

-

Figure 3. Example of the Use of the Indicators.

128

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

the next module, due to the chaining criteria,
but this presents no particular problem if reference is always made to the words of the
module in reverse; that is, -1,2 or -6,2 etc.
Since it costs only one machine cycle ,to skip
each successive module whose indirect addressing bit is set, the result is a most efficient search
of the priority table. The alternative would be
to pick up the contents of the indicators of each
module and then through various logical compare instructions determine whether any of
these situations are the case. It is apparent that
the scheme using the indirect addressing feature of the computer facilitates spending the
minimum time examining the entries of the
rather lengthy priority table of processors.
};n addition ,to the indicator and chain word,
each module also contains t}le first word location of the processor which it references, as well
as a block of locations in which the condition of
the machine is saved when this processor is
interrupted. If the referenced processor has
input/ output functions, the module will additionally contain the location of the I/O data
which is stacked in a table for subsequent transfer or editing. If the processor is an Experiment Processor, it will also contain ,the location
of flag words in the processor by which communication is made with the Monitor. That is,
w.ords by which each Experiment Processor can
signal Monitor of its various output requirements, and whether it has completed processing,
etc. (Fig. 4).
The many processors of the Real Time Control System may be in various states during the
course of real time operations so that it is impossible for one processor to communicate directly with another. This is especially true of
I/O data and channel select requests. Therefore, two subroutines were devised in the Monitor Schedule Program to handle the passing of
data from one processor to another. One subroutine handles the stacking of data onto the
recei"',ing processor's stacking buffer, while the
other handles the unstacking of the next data
to be processed. The barrel, or wraparound,
method was chosen to facilitate the stacking
and unstacking from these buffers. That is, a
'first in-first out' list type of scheme. To avoid
moving the data around in core memory, since

PRIORITY TAIIlE
MODU.EA
ORDINARY
PROCESSOR
MODUlE

SAVE LOCATIONS

===F======T===~­

MODUlE I

STACKING BUffER LOC.S

110
PRO(ESSOR

FRST WD. LOC. OF PROC.

MODULE

MODUlEC

LOC. OF FLAG WORDS
EXPERIMENT
PROCESSOR
MODUlE

FRST WO. LOC. OF PROC.

MODULE 0

Figure 4. Composition of the Modules.

this is necessarily inefficient, the items which
are stacked and un stacked in the buffers are the
locations of the I/O data or channel select
requests.
Each I/O processor's module, then, contains
the top and bottom locations of the stacking
buffer for that processor. It can be seen that
these buffers may be variable in length from one
processor to the next since each processor's
buffer is uniquely defined in its module. The
module also contains the location of the first
item to be un stacked as well as the next free
location into which to· stack. These locations
may vary anywhere within the prescribed stacking buffers area, hence the name 'barrel method'
(Fig. 5).
When an item is unstacked, the 'first' location reference in the module is replaced by the
'first + l' location reference so that the next
item is now referenced for unstacking. Similarly, when an item is stacked in a buffer at the
'next' location, the 'next' location reference is
then updated to the 'next + l' loca,tion as the
next free location in which to stack. The top
and bottom locations, delineating the total

REAL TIME QUICK-LOOK ANALYSIS FOR THE AGO SATELLITES

BOTTOM
TOP-'fIRST + l' LOC.
_ FIrST LOC. fROM
WHICH TO UNSTACK

ACK-I

NEXT LOC IN

WHICH TO ST

'NEXT

+1'-\\

J

\

-"

\.

"

I
L

I
/

Figure 5. 'Barrel-Like' Composition of Stacking Buffers.

buffer area, can be thought of as being only one
unit .apart, for the subroutines always treat the
bottom location + 1 as if it were the top location. The circular action has now been effected.

Monitor Proces.'wrs
The Monitor Processors handle the input/
output requirements of the Real Time Monitor
Control, as well as a few other minor functions.
The SDS 920 has two buffered channels for
input and output data transfer and 32 real time
channels, all of which have interrupt capabilities. One of the buffered channels is used exclusively for the telemetry input, the other
handles all other I/O functions, except those
from the special purpose consoles, time interrupts, etc. Due to the difference in the rates of
speed of the devices attached to this I/O channel, it was decided to have a series of processors,
each one associated wi,th only one I/O device,
rather than a single large I/O processor geared
to the buffered channel. Each of these processors, like all other processors, is under control
of the Monitor Schedule Program. Its priority
order is determined by the position of its
module in the priority table and is in direct
relationship with the speed of the I/O device
to which it refers. For example, the priority of
a processor handling the on-line printing is
higher than the one handling the output messages to the typewriter.
Since only one channel select request can be
executed by a buffered channel at a time, all
of the Moni,tor I/O Processors hand off their
I/O select requests to a single processor, rather
than randomly selecting the channel themselves.
The function of this processor is to select the
channel with whatever request is next in line,
regardless of the kind of I/O device indicated.

129

This processor is guaranteed that the channel is
ready to receive the select request, for as each
request is serviced, this processor 'suppresses'
itself. Th~t is, it sets the indicator bits in its
own module so that it will not be considered for
processing again until it is 'unsuppressed.'
When the interrupt from the completion of the
data transfer on that channel occurs, the interrupt processor servicing this interrupt will
'unsuppress' the channel selecting processor so
that it may now continue with the next I/O
request, since the channel is free to be reselected. This channel selecting processor has
the highest priority of all the other Monitor
Processors, thus allowing for the maximum use
of the channel at all times.
There are other Moni,tor Processors which
handle the input/output to and from the special
purpose Control and Display Console and the
Command Console. These processors are controlled and executed in a straightforward manner since each function is handled by a unique
interrupt through the 32 real time channels.
There are eight such processors connected with
these consoles. One additional Monitor Processor handles time in the system. It maintains
a gross time figure in minutes, and prints out
a GMT time message periodically. It is especially used to flag certain processors dependent
on some interval of time that it is time to commence processing. This procedure is called
'readying' a processor.

Interrupt Processors
The third category of the Monitor Control
deals with processors which handle interrupts.
Each Interrupt Processor is coordinated with a
separate and unique interrupt channel. The 32
channels of interrupts have a priority system
of their own in that lower level channels may
be interrupted by any higher level channel.
This means that the corresponding Interrupt
Processors also may be interrupted during the
course of their processing if an interrupt of a
higher priority comes in. Therefore, the Interrupt Processors are naturally coordinated with
the demands of the interrupt to be processed as
well as with ,the priority level of the channel
selected to handle that interrupt. For instance,
it was decided that the telemetry interrupt
would be on the channel with the highest priority, since a new word of telemetry comes into

130

PROCE:EDINGS-oSPRING JOINT COMPUTER CONFERENCE, 1964

the computer every 280 us. The o.ne second
time interrupts were given the second highest
priority, and so on.
Since all processo.rs, whether Monitor Processors, Interrupt Processors, or Experiment
Processors, return control upon completion to
the Monitor Schedule Routine, it was necessary
to vary this requirement somewhat in the case
of Interrupt Processors. Fo.r if an Interrupt
Processor is itself interrupted, then return
should be made to the point of interrupt. For
interrupts are a demand to ackno.wledge some
I/O data transfer and must be processed before
the normal processing continues. This allows
for smo.o.th and coordinated interaction between the different parts of the Real Time Monitor Control system. The technique of drawing
a hypothetical line in memory was used to
allow an Interrupt Processor to. decide quickly
whether it had interrupted out of another In-·
terrupt Processor, for all Interrupt Processors
are placed above this 'line.' If this is the case,
return is made to the interrupted Interrupt
Processor and not to the Schedule Routine. It
logically follows that when all Interrupt Processors have finished, the one which caused the
first interrupt in time will be the last to finish
and will return control to the Schedule Routine.
One of the advantages of this scheme is that it
is not necessary for the Interrupt Processors
to run in a 'disabled' mode. That is, where the
computer is prevented from receiving another
interrupt by executing a special instruction. In
fact, the 'disable' instruction is given rarely in
this real time system, and when it is u~ed, the
duration of the disabled mode is very short.
For, since a new telemetry word comes into the
computer every 280 us., it must not be disabled
for a period of time equal to or greater than
that.

Experiment Processors
The second distinct part of the programming
system for OGO consists of all those selectable,
independent routines called, collectively, Experiment Processors. The function of these
Experiment Processors is to perform analysis
on the telemetry input data, both of the experiments on board the satelUte and the status of
the spacecraft itself. These processors operate
under control of the Monitor Control programs,
returning, upon completion of processing each

telemetry frame of data, to the Monitor Schedule Routine. Since there are many more Experiment Processors than would fit into core
memory along with the permanent Monitor
Control, it is the funotion of the Monitor to be
able to add and delete selective Experiment
Processors without disturbing the real time
processing. A Monitor Processor, called the
Real Time Load Processor, performs this function. It is this real time load capability of the
Monitor Control which affords the flexibility of
operation required of the system. The Monitor
Control can thus provide for maximum use of
memory capacity as well as maximum use of
processing time.

Requirements of Experiment Processors
All Experiment Processors place three general requirements on the Monitor. They must
be able to obtain all data needed from the Monitor, including such parameters as time and
orbital position of the satellite, as well as specific data points from the telemetry frame. They
must also be able to return the results of their
processing back to the Monitor in the form of
messages to be output on the on-line printer.
Finally, they must be able to communicate with
the Monitor that they have completed their
processing or to request that special functions
be accomplished, such as sending co.mmands to
the special purpose consoles. It is the function
of the Real Time Load Processor ,to provide
the capability of bringing such an Experiment
Processor into memory when requested by depressing the appropriate button on the Control
and Display Console, and to make all necessary
connections and links between ,the processor
and Monitor.
Goding Rules
A problem arose in the fact that these Experiment Processors were to be written by many
different programmers. This would appear to
involve a considerable amount of supervision of
the coding used to protect the system from
'blow ups,' but actually it was possible to handle this checking automatically by writing a
service program called the Static Checker. As
its name implies, the Static Checker checks ,the
symbolic coding of an Experiment Processor to
determine whether the programmer has complied with the various coding rules laid down
for the system.

REAL TIME QUICK-LOOK ANALYSIS FOR THE AGO SATELLITES

131

The rules to. be fDllDwed by a prDgrammer
when writing an Experiment PrDcessDr are Df
two. types: real time restrictiDns, which are
necessary to. prDtect the MDnitDr CDntrDI; and
relDcatable binary restrictions (since .the prDCeSSDr will be used in this fDrm), which fDllDW
frDm the nature Df relDcatiDn itself. The rules
are:
Real
1.
2.
3.

Figure 6. Example of Static Checker Diagnostics.

Time RestrictiDns
No. I/O instructiDns
No. breakpDint switch tes,ts
No. halts

this purpDse, and this is, in fact, the scheme
cDmmDnly u'sed Dn the 920.

RelDcatable Binary RestrictiDns
1. No. addresses Df type: -SymbDlic, Symbolic
SymbDlic, Dr use Df * Dr /
2. No. references to. absDlute memDry IDcatiDns
3. No. negative cDnstants Dr masks

+

The real time restrictiDns are quite straightfDrward, since all I/O is handled by the MDnitDr; breakpoint switches (sense switches) are
reserved-fDr MDnitDr use, and halts are strictly
anathema in real time wDrk.

The first set of relocatable binary restrictions
are the familiar Dnes inherent in relDcatiDn and
the second restriction, forbidding absolute addresses, is also. fairly standard in this kind Df
wDrk. The third restrictiDn, hDwever, is SDmewhat unusual and arises frDm the unique manner in which relDcatiDn is handled in the SDS
920. A brief IDDk at the makeup Df an SDS 920
instruction wDrd will serve to. illustrate this.
A 24-bit instructiDn wDrd in the 920 is
brDken dDwn as fDllDWS :

o

o

1 2

A
8 9 10

23 Bits

The fields are, frDm right to. left, a 14-bit
address field, Dne bit fDr indirect addressing, a
7-bit DperatiDn field, Dne bit fDr indexing, and
finally, the left-mDst bit which is not interpreted when the instructiDn is executed. That
is, the instructions 0 35 01000 and 4 35 01000
are interpreted by .the cDmputer as being identical. Since the address field is the only Dne that
need be relocated in any instructiDn, the leftmDst, Dr sign bit Df the wDrd may be used for

FDr data wDrds, hDwever, the full 24 bits are
used and it is fDr this reaSDn that Experiment
PrDcessDrs needing negative constants Dr masks
with a left-mDst Dne must generate them. This
is the Dnly real CD ding restrictiDn placed Dn the
prDgrammer and in practice is nDt seriDus,
since the 920 has the capability Df forming bDth
l's and 2's complements with single instructions.
The Static Checker accepts a symbolic deck
and produces a listing cDntaining errDr diagnDstics, if any (Fig. 6).

Form,atting
It was apparent that the mDst straightfDrward way to nlaintain the Experinlent Processors fDr use with the real time system was in
ithe fDrm of a library Dn magnetic tape. In line
with this, two. fundamental decisions were made
concerning the physical makeup Df these prDCeSSDrs, both related to. the efficient use Df the
cDmputer's memDry at execution ,time: they
were to be in relocatable binary (as previously
mentiDned) and they were to. be brDken up into
unifDrm-Iength blDcks. Since it was cDnsidered
unreasonable to. require prDgrammers to. cDde
,their Experiment PrDcessors in this latter manner, it was necessary to. devise a methDd to. take
the prDgrammer's proceSSDr, coded in a single
sequence, and convert it to. the desired fDrm
automatically.
In additiDn to checking the Experiment
ProcessDr, this cDnversion to unifDrm-Iength
blDcks is also. prDvided by the Static Checker
during the same run. This was easily facilitated, since the Experiment PrDcessor is input
to the' Static Checker in symbolic fDrm and the
necessary additional instructions and pseudD-

132

P.ROCEEDINGS-SPRING JOINT COMPUT~R CONFERENCE, 1964
TIME
TM
OR81T

800l
800l
800l
ORG

o

Communication Cells

ENTRY-

ORG

l

r - - - - - - I

I

ORG

2L

BRU

EXIT

BSS

N

~~-------=~

I

I
I
I

L ----EXIT

8RU

EXIT

Figure 7. Conversion to Uniform-Length Blocks by Static Checker.

operations may be inserted in that form (Fig.
7).

It will be noted that a few extra things have
been inserted as well. For instance, the Experiment Processor obtains telemetry and other
data from the Monitor by referencing cells
which are absolutely located in the Monitor.
Therefore, these locations are defined by BOOL
pseudo-operations inserted by the Static
Checker; the programmer need only refer to
them symbolically. The Prelink and Postlink,
which are bookkeeping linkages to the Monitor,
are also inserted at this time.

The breaking up of the consecutive sequence
into uniform-length blocks is effected by inserting an ORG (origin definition) pseudoDEC
OCT
BCI
BSS

operation at fixed intervals. The actual connection between one block and ,the next is handled by a 'dynamic link,' the BRU (unconditional branch) instruction which is inserted at
the end of each block. The advantage to be
gained by this approach is that the blocks of a
processor need not be contiguous in memory,
and in practice this is usually the case. ORG's
are used to define the start of each block in
order to ensure that the result of assembling the
symbolic output of the Static Checker is a series
of paper tape records of uniform length, simplifying the maintenance of the library of Experiment Processors on magnetic tape.
The problem of pseudo-operations which define more than one memory location, such as:

1,2,3
Places decimal 1-3 in 3 successive locations
4,5,6,7,10
Places oCital 4-10 in 5 successive locations
4,ALPHA FIELD Places BCD characters in 4 successive locations
20
Reserves 20 successive locations.

133

REAL TIME QUICK-LOOK ANALYSIS FOR THE AGO SATELLITES

is handled by a special diagnostic in the Static
Checker which flags any such pseudo-operation
which causes the 'straddling' of two blocks as a
coding error. The programmer must then rearrange his processor so that the locations defined will fit :into one block.

Other Service Programs
The Static Checker has a companion program,
the Dynamic Checker, which works with an
Experiment Processor in Machine Language:
the result of assembling the output of the Static
Checker. The Dynamic Checker is essentially a
simulator which provides the opportunity to
debug an Experiment Processor under conditions as similar as possible to those of the real
.time Monitor. The Experiment Processor is
embedded in the Dynamic Checker and is 'fed'
telemetry frames via the same cO!llmunication
cells used in the real time case. The outP\lt of
the processor is printed for subsequent analysis
by the programmer.
The Dynamic Checker uses for input a magnetic .tape containing simulated telemetry
frames. Its modus operandi is to read a frame,
branch to the Experiment Processor, and check
to processor's communication cells for commands and/or output, repeating this cycle until
the tape end-of-file is reached. The input tape
is generated by another service program, the
Tape Builder, which contains a pseudo-random
number generator and which, essentially, generates a magnetic tape of simulated telemetry
frames containing nothing but white noise. This
is to check the Experiment Processors for one
of their basic requirements: that they be
capable of accepting any data and still not
'blow up.' The Tape Builder, however, has the
provision of accepting programmer-coded subroutines which allows the data generated by
these subroutines to be inserted in specified
words in the telemetry frames. In this manner,
the programmer may insert realistic data in the
words of the telemetry frame which are analyzed by his Experiment Processor and thus
may use the Dynamic Checker as a diagnostic
tool.
Like the Static Checker, the Dynamic Checker
has a second function in addition to a debugging
one. This is the function of timing the Experiment Processor. One of the two interval timers

available on the SDS 920 is used for this purpose; the result being that, at the end of the
run, the Dynamic Checker prints out the worstcase (longest) execution time in machine cycles
for the Experiment Processor being tested. As
will be seen later, the two parameters: number
of blocks (given by the Static Checker) and
worst-case execution time (given by the Dynamic Checker) are the ones which will determine whether this particular processor may be
loaded and executed at any particular time when
the real time system is running.
In addition to the above service programs,
there is, of course, a Tape Librarian program
whose task is to maintain the library tape of
Experiment Processors; adding, deleting, or
replacing processors as appropriate. In addition, the Tape Librarian includes a computed
checksum with each block written on the library tape. These service programs taken together provide a means of carrying an Experiment Processor from the coding stage through
inclusion on the library tape in a fairly automatic manner (Fig. 8).

Loading Experiment Processors in Real Time
The Monitor has two" restraints which determine whether an Experiment Processor may be

D

SYmboIic
Experiment ProcessorSingle s.q-,c.

a"
DCDo
~

c>

"-nbIed
Experiment Proc.
Paper Tape

g--@l-.. ,...

D-@
~

1
DYNAMIC
CHECKER

I---

Blowup

SMnu~

DataTape

I Execution Time I
TAPE
LIBRARIAN

Figure 8. Flow of Experiment Processor from
Coding to Library Tape.

134

PROCEE!DING'S-SPRING JOINT COMPUTER CONFERENCE, 1964

added at any given time: whether there is
room in memory and whether there is enough
time to execute it. The portion of memory available for use by Experiment Processors, is called
free storage and is allocated in blocks of the
same size as the subdivisions of these processors.
The amount of time available for Experiment
Processor execution is called slack time and is
the number of machine cycles presently not
being used in the 18 ms. interval between successive frames of telemetry. A parameter table
is maintained for use by the Real Time Load
Processor containing one word for each processor on the library tape. Each parameter
word contains two fields which specify the
amount of memory (in blocks) and amount of
time (in machine cycles) required by that particular Experiment Processor. When a request
is entered into the computer to add a particular
Experiment Processor, this request is handed
off to the Real Time Load Processor which may
easily check whether there is enough free storage and slack time to accommodate this Experiment Processor. If not, the request is placed in
a special stack called the Request Stack. If the
processor can be added, however, the Load
Processor positions the library tape, reads the
Experiment Processor into memory, relocates
it, and connects it to the Monitor. Actually, the
Load Processor makes requests to the Monitor
for every tape operation given and it is the
interrupt that occurs after each record is
skipped or read which causes the Load Processor to be entered again. (This includes backspacing and rereading in case of a checksum
error.)
If the request given to the Load Processor
is to delete an Experiment Processor, either because this request has been made from the console or because the processor has signalled the
Monitor that it has finished its run, then the
Load Processor locates this processor, disengages it from the Monitor, returns the processor's blocks to free storage, and adds the
processor's execution time to the slack time
count. The Load Processor then checks its Request Stack to see if there are any requests to
add processors which now may be accommodated.
The above description is considerably abbreviated and does not cover some of the special

considerations of the Load Processor as actually
written, such as error checking, backspacing,
and rereading due to checksum error, etc. Also,
although it is convenient ,to speak of 'picking
up' blocks of free storage and 'returning' them
to free storage, nothing is moved around in
memory the change is actually one of allocations.
The basic pieces of informa tion the Load
Processor works with are four in number (Fig.
9) . P ARAM is a parameter table giving the
storage and time requirement for every Experiment Processor on the library tape. The block
count is in the operation field and the execution
time is in the address field. Thus, as illustrated,
Experiment Processor 34 requires 3 blocks of
storage and has a worst-case execution time of
700 x cycles.
Figure 9 also shows SLACK, which is a cell
containing the available slack time in cycles,
1300 x here. FREE is a cell which refers to Free
Storage, the fourth element. It can be seen that
an elementary list processing technique has
been employed here. The address of the first
fREE STORAGE
SlACK

1300

1000

"

I

1200

fREE

1000

1200

3

J

1400-

PARAM
+1

120
1000
600

1400

2

I

1600

1600

1

I

2000

2000

0

I

0

+2

33
34

2
3

I
I

240
700

35

Figure 9. Elements Used by the
Monitor Load Processor.

-

135

REAL TIME QUICK-LOOK ANALYSIS FOR THE AGO SATELLITES

word in each block in free storage contains the
starting location of the next so that they are
chained together with the address of FREE
giving the starting location of the end block in
the chain. Furthermore, from bottom to top
in the chain, the operation field of the first word
in each block contains a serial count, starting
at zero. This count is also carried over to the
operation field of FREE and thus this cell not
only provides a link to all of the blocks in free
storage but also contains the number of blocks
in the chain. The linking of blocks shown is
somewhat idealized. In actual practice, these
links become quite 'scrambled.'

FREE STORAGE
SLACK

1300

~~

~~

700

PARAM '·34

PARAM

34

l(007F~

3

I

700

,f--l000-

/"/'~-:I

)0

2.

- - -400 __

---

FREE
==~

3
I 2000
.. _--.-- -----_

\
\

1.\
\

600

0

I

2000

2

I

0_

I
I

:

t-l

1000

~/

f

1200

~-----I

Figure lOb. 'Removing' Blocks from Free StorageSecond Step.

FREE STORAGE
SLACK

1300

2.

l/

I

1200

1600

PARAM ,- 34

----=---I~7:..::;OO=___.J

LI

""..

FREE

~

1

200

FREE STORAGE
1300

SlACK

V~

m

START

Under this scheme, the process of testing
whether a requested Experiment Processor may
be added is handled quite easily, simply by using
its parameter word from the table P ARAM :
the address field of the parameter word (execution time) must be less than or equal to the
address field of SLACK, and the operation field
of the parameter word (block count) must be
less than or equal to the operation field of
FREE.

!OJ%;

000

l~

FREE

... - -

-

.....

-2~>\
-=,_:.::_:,\~\___ • \

,;['
L-"'::"-->-!--_

- --\:~\

~ 2.

\
\

I
\

1. \

1600

0

I
1. \

\

I
I

)
START

~-------.~-"

:
2000

2

I

1200

STAR T

+1

1000
1400

I

I
I

2000 ,

1200

;--

+2

L-----z.

Figure lOa. 'Removing' Blocks from Free StorageFirst Step.

Figure lOco 'Removing' Blocks from Free StorageThird Step.

136

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

FREE STORAGI'

400

SLACK

;- - -- -- ~'-_.--.,;3",-5-=003;.0..:.75--11

_Iobe_

Moskovt

,----:~00200~·..,,+-~ 7 high _ _ bm

----S-dt..i..1obIo

PARAM

+ 34

700

FREE

1200

-: [=::lr=-----,,~r:Et ~:L-----;~~~~----------------------l~=.=35==~001~75~1 ,
QUOO

START

+1

1000
1400

+2

2000

I-~

Add

Figure 11. Example of Relocation.

be seen that BITS consists of the unrelocated
starting location of each block. Figure 11 shows
how this relocation is carried out on a sample
instruction.

Figure 10d. 'Removing' Blocks from Free StorageFinal Condition.

Adding an Experiment Processor
In order to add an Experiment Processor,
blocks must be 'removed' from free storage so
that the processor may be read into them (Fig.
10). The 'removal' of a block is a two-step
process, in which the address of FREE is
stacked in a table called START and the contents of the location given by that address (the
starting location of the block) is then stored in
FREE. FREE now refers to the next block in
the chain, and this process may be continued as
often as necessary. This is, of course, the familiar 'popping up' of list processing and here
it is done three times since Processor 34's parameter word calls for three blocks. The final
step is to subtract the execution time in the
processor's parameter word from SLACK, setting it to the unused time now available.
The table START is used for two things.
First it is used to specify the blocks of memory
into which the Experiment Processor is to be
read. ST ART is also used for relocation with a
companion table BITS which is generated to
contain successive multiples of the block length,
starting at O. Since the Experiment Processors
are assembled with a base origin of zero, it can

The method of relocation allows an instruction in any block to reference a location in any
other block occupied by that processor. The
dynamic link between blocks could then be
effected by the final BRU *+1 in each block,
simply by flagging these instructions for relocation. In practice, however, the Tape Librarian
program replaces these terminal branches with
computed checksums when an Experiment
Processor is added to the ,tape library. The
Load Processor uses these checksums to determine whether the Experiment Processor has
been loaded properly, with the usual re-reads in
case of failure. When the processor has been
successfully read in, the relocation sequence in
addition replaces the checksums wi,th the original branches, connecting each block to its successor and the last block to the Monitor.

It might be pointed out that there is no fixed
requirement that the blocks have a length 200/i
nor, in fact, need their length be a power of
two, although this simplifies the relocation
scheme. This figure was chosen as a convenient
length and may be changed if experience with
the system warrants it.

Deleting an Experiment Processor
Figure 12 shows how the blocks of the Experiment Processor added in the example above
are 'returned' to free storage. The starting location of the processor is obtained from the

137

REAL TIME QUICK-LOOK ANALYSIS FOR THE AGO SATELLITES
FREE STORAGE

FREE STORAGE

"" ,,'[::Z<{;'~'J;,,\,

'200

1200

I

1600

3

I

1000

°

I

\l.

DU'."",J>~:J:::~:J \'~
/ 3.

r----_O_-L1_o=-----l

(Plus 1)

\

\

\\

2000

I

2

2000

-BRU
1600

1000

" '\',',~,;,/'/ -

EXP. PROC. 34
2ND BlOCK

(Plus 1)

SlACK

;\

~600
\,

\\ 2000='~'=*=·====~=

EXP. PROC. 34
3RD BlOCK

EXP. PROC. 34
3RD BlOCK

\""'"
BRU

(MONITOR)
""'"

BRU

(

_!~~~!

)

................. ~------- ...... '

Figure 12a. 'Returning' Blocks to Free StorageFirst Step.

Figure 12c. 'Returning' Blocks to Free StorageThird Step.
FREE STORAGE

FREE STORAGE
SlACk

1000

2

I

1200

SlACK

1300

1000

1200

1

I

1600

FREE

2000

1200

1200

2

I

:

1600

I
DUMMY

BRU

(Plus 1)

1600

:

o

I

I

I

1~

3

I

1000

l600

°

I

°

2000

0

EXP. PlOC. 34
3RD BlOCK
L-BR_U_ _(~M-=--~~

Figure 12b. 'Returning' Blocks to Free StorageSecond Step.

Figure 12d. 'Returning' Blocks to Free StorageFinal Condition.

module in the priority table to which it was
assigned and placed in a working cell, called
DUMMY here. Since the terminal branch at
the end of every block provides a link to the
next block, this 'pushing down' process can be
carried out in a four-step process analogous to
the one in which blocks were 'removed' from
free storage. The block count is updated in the

process so that at completion FREE again contains the correct block count when the number
of blocks given by the processor's parameter
word are 'returned' to free storage. Finally, the
processor's execution time is added ,to SLACK
to set it to the unused free time now available.
As shown by these examples, program blocks
are never actually moved in memory; they are

138

PROCEEDINGS---.SPRING JOINT COMPUTER CONFERENCE, 1964

simply read into the first available blocks and,
since the blocks are dynamically chained with
branch instructions, these blocks need not be
contiguous in memory. A processor is deleted
essentially by disconnecting it from the Monitor and allowing the storage it occupies to be
reused. Since the Tape Librarian program converts all block reservations in an Experiment
Processor to the corresponding number of zero
words when the processor is added to the library tape, these memory. blocks need never be
cleared.

Conclusion
We feel this project is of interest since it
represents an unusual situation in data processing. This is due to the fact that, while there was

a requirement to selectively process different
data points on demand, there was not a need to
process all of the data available. Given the
selection of the specific computer, however, this
project attempted to optimize its use by providing the capability of doing the maximum useful work that memory space and processing
time will allow. In this paper we have pointed
out techniques to minimize the execution time
of a powerful Real Time Monitor and to allocate reusable storage in a flexible and efficient
manner. While using the computer to sample
and monitor data is not a typical data processing application, it is hoped that this paper has
indicated the efficiencies which we feel are inherent in the real time approach.

AN ETHOS FOR THE AGE OF CYBERCULTURE*
Alice Mary Hilton
President
A. M. Hilton Associates
New York, N. Y.
PART ONE-NEED FOR A NEW ETHOS

olescence-Iong before the world is prepared for
the scientific-social-technological-economic-cultural revolution that has been unleashed. Those
in the center of any revolution are always the
least disturbed. The hub of a wheel is fairly
stable, the eye of a hurricance is calm, and
those who create the concepts and forge the
tools of complex social revolutions are neither
alarmed by the enormous power of their brainchildren, nor are they surprised.

I. Introduction

"Acceptability," said John Kenneth Galbraith, "is the hallmark of the conventional
wisdom."!
Since, however, the pronouncement of the
conventional wisdom is the prerogative of those
in eminent public, academic, business or labor
positions, I am not privileged to bore you with
a recital of the conventional wisdom, andeven if I 'could do so-----to entertain you by expounding it at a properly sophisticated level.
I must, therefore, look to that arch enemy of
the conventional wisdom-the march of events.

N ever has a powerful and complete revolution developed more quickly than this cybercultural revolution that is affecting the lives of
millions of human beings who have never even
heard the new words to describe powerful new
concepts. In fact, things have been happening
so fast that even those who know a great deal
about one of the phenomena have not had time
to learn enough about the others-or about the
world they are changing.

If ever a period in the history of man demanded radical-I am using 'radical,' derived
from radix, root, in its original sense, namely~
going to the roots-fundamental wisdom, it is
surely this revolutionary period of transition to
a new era-the age of cyberculture-the new
era that is formed by a science, cybernetics,
born barely a quarter of a century ago, and a
technology that, for all its precocious development, has barely left the cradle.

First among the new p~enomena is nuclear
science. Introduced to a stunned world in its
least attractive manifestation, nuclear science
holds untold mysteries, unimaginable terror,
and vast promises. Einstein said, when the
atom was split everything changed except our
thinking. Far too many people still think of
thermo-nuclear bombs as super-slingshots
Others realize that nuclear science might provide the vast reservoir of physical energy we
need to produce abundance for all mankind. We

Most of us in this room were probably proud
midwives assisting in the delivery of the computing machine only a decade or so ago.
Since then, the world has. changed radically.
Three powerful new phenomena have precociously reached their vigorous, boisterous ad-

* Cyberculture is composed of "cybernetics," the science of control, and "culture," the way of life of a society.

139

140

PROCEEDINGS-SPRING JOfNT COMPUTER CONFERENCE, 1964

have great hopes for atoms for peace and must
search for a way to use atoms for people.
The second of the powerful new phenomena
is not clearly focused yet, although a demonstration of the destructive potential of nuclear
science has shocked the entire world to see, at
least as a vague vision, the new concept: peace
as a positive phenomenon, a valuable and workable instrument to settle human conflicts. That
is quite different from man's past experience
for since the beginning of history mankind has
known as an alternative to war only the complement of war, an interlude between wars, occasionally even a reasonably prolonged absence
of war. Even when there was no fighting, war
has been regarded as the normal and accepted
means to settle conflicts. Contrary to popular
opinion, it is not a foregone conclusion that
peace will bring about the millenium. There is
no reason to believe that conflicts will disappear. And to use peace, rather than war, as an
instrument to settle conflicts will require more
ingenuity and intelligence and skill than to
devise means to win wars. Difficult though it
may be to live with, peace is the essential condition, if human civilization is to survive at all.
The least known and most far-reaching new
phenomenon is the science of cybernetics and
the revolutionary technology based upon its discoveries. Automatic systems and computing
machines, even in their infancy, have an impact
upon our world that could not have been
imagined two decades ago; and they have the
clearly foreseeable potential to produce not only
unprecedented abundance for human beings,
but relieve man forever of drudgery and toil.
Yet, even experts still look at the computing
machine as a super-abacus.
Any effort to deduce how observable phenomena are likely to develop and affect the environment involves some arbitrary assumptions
that must be defined and granted. The major
assumption in my hypothesis is so fundamental
that, should it prove to be unreasonable, nothing
on earth is likely to be proved or disproved
again. I assume that the cold war will not be
escalated into the nuclear fission of the earth,
but that, on the contrary, it will continue to
defrost. I further assume that all of us in the
field of data processing and automation will

continue to do our jobs with as much ingenuity
and enthusiasm as we have in the past and to
develop our precocious brainchildren, as we
have every reason to expect from our auspicious start.
As we know, there is a great deal of confusion
in the public mind about the words "automatic"
and "automation," and about the effects of these
rarely recognized phenomena. Economic pundits have made solemn pronouncements about
the future impact of "automation" and based
their predictions firmly upon a past experience
with mechanization and its impact upon employment and the Gross National Product. A
few months ago, Secretary of Labor Wirtz estimated that automatic systems have reached the
intellectual level of human high-school graduates. 2
Monumental fallacies are incorporated into
such statements because the basic premises used
by economic pundits and by the Secretary of
Labor are incorrect; they confuse automation
with sophisticated mechanization and use these
basically incomparable phenomena interchangeably. If they could realize that the most sophisticated and efficient mechanical system-no
:matter how many electrical components are incorporated-is an open system that cannot
operate unless the control loop is closed by a
human being who must become part of the
system, whereas an automatic system is a closed
system in which the human component has been
supplanted by a computing machine, they would
understand that the conventional methods to
inoculate the economy against periodic epidemics of unemployment and slackness are no
longer relevant.
Before the Congress has been able to accept
the Conventional Wisdom of one generation
ago, everything changed. Everything but our
thinking! And I must quote again John Kenneth Galbraith, who wrote that "the shortcomings of economics are not original error, but
uncorrected obsolescence." We rightly cherish
our intellectual heritage, but we must not allow
it to calcify. The economic-political and social
wisdom humanity may have acquired so painfully in the past must be tempered with new
insights and forever re-evaluated with an open
mind, just as the scientific and technical herit-

AN ETHOS FOR THE AGE OF CYBERCULTURE

age of the past is constantly re-examined and
re-vitalized by new discoveries and inventions.

II. Agriculture and Cyberculture
The present cybercultural revolution is comparable in magnitude only to the agricultural
revolution, the ferment out of which all civilization arose. The agricultural revolution
changed the earth from a jungle into a garden
where food gatherers became food producerswho plant and harvest, who create a surplus
over their needs and thus build civilizations.
With the agricultural revolution man first began to emerge into humanity. He learned to
control his environment, to adapt it to his
needs, and to arrange his life into social patterns. The agricultural revolution that began
to free man for his specifically human task
changed the very nature of man.
Every society in the age of agriculture goes
through recurring cycles of scarcity and surplus, of leisure and drudgery. For centuries
this has been the human situation: part drudgery, part creative endeavor; part scarcity, part
waste. The cybercultural revolution can create
a world where machine systems produce undreamed-of abundance, and where human beings live human lives and are free to pursue as
yet undefined human tasks.
Man in the Stone Age knew his task was to
find food for himself and his young and to protect them from the dangers of a hostile world.
He carved images on the walls of his cave, and
sometimes there must have been a genius who
observed the world closely, who somehow sa-\v
a pattern in remote incidents. He might have
noticed that small plants grow into trees; that
seeds spread by the wind or dropped by birds
into the earth come forth again as plants, and
that roots multiply and that some plants grew
on the same spot again and again. He gathered
the seeds and put them into the earth himself
and watched over them and saw them bear fruit.
And the age of agriculture could be born.
Man learned to till the earth to produce
bountifully, to tame animals to help him pull
the plow, to use the power of water and the
wind to multiply the strength of his own muscles. In the course of many centuries man has
developed complex tools which extend the per-

141

ceptiveness of his senses and the skill of his
hands, and devised powerful machines to extend
the strength of his muscles. But man alone can
direct and guide his aids. He must still labor
for his bread.
The cybercultural revolution is brought about
by the invention of devices that supplement the
labor of man's mind. In the age of cyberculture the plows pull themselves, and the planting and harvesting is controlled by tireiessly
efficient electronic slaves.

III. What are .ffuman Tasks?
Man must learn to find new tasks to fill his
days. If he no longer needs to pull the plow
and clear the fields and forge the iron, how
will he tire his muscles to earn his rest? How
will he use his mind to earn his peace? How
will he stand upon the earth he has not tilled
in the sweat of his face, and feel that he is
its master? What will he do with his life, if
he no longer has to labor to earn his right to
live? 3
For centuries, and in every land, men have
told stories about all-powerful, completely
obedient slaves who would supply riches and
ease. The brooms conjured up by the sorcerer's
apprentice, the genie in the lamp, the monkey's
paw-these are the stories of man's desire for
a perfect slave and also of his fear. For man
was always aware of his own inadequacy and
he was not sure that he could control so perfect a servant with wisdom and with honor.
We can expect that in the age of cyberculture
enormous populations will live in leisure. A
few will "work." But no-one will labor in
drudgery and sweat. This will be technologically feasible in a few decades. Invention can
be speeded with the motivation for perfection.
During World War II, the invention of radar
was accelerated-in the opinion of eminent scientists-by many decades. But cultural lag
may delay to bring cyberculture to its maturity
for centuries. Reluctance to change obsolete
ways of thinking, conflicts of interests, the
shortsightedness of those who fear what they
cannot fully understand can delay the future
and use the best fruits of man's mind for his
destruction rather than his joy.

142

PROGEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

IV. The Problems of Transition
The problems of transition from an agricultural-industrial to a cybercultural society are
momentous. This is only the beginning. Unemployment, serious though it is, is not disastrously widespread yet. But soon it will
be, if we refuse to face the fact that unemployment cannot be arrseted, even with the most
phenomenal economic growth rate in the world,
for the acceleration of automation will always
exceed the acceleration of the growth rate.
Unemployment must be changed to leisure. If
we can learn to live with and use our electronic
and mechanical slaves, rather than abuse our
human bodies and our human minds, we can
solve all the other problems that plague us
now: the fear of unemployment, the envy the
poor nations have for the rich nations and the
fear the latter have of the former, the suspicious competition among the powerful. We
negotiate about disarmament, but watching the
unemployment figures rise, we quickly vote
more money to be spent on producing lethal
weapons. And as the unemployment monster
rises, those who are gobbled up most easilythe unskilled-become afraid and rise in hatred
and despair. Unskilled Negroes think it is the
color of their skin that keeps them unemployed and white men fear that they will have
to share the labor that is not fit for human
beings and that none need to do in the age
of cyberculture. Unions are losing members
and try to stretch diminishing jobs by dividing them among more men, instead of enlisting
as members those whose work can be done by
machines and teaching them how to live human
lives.
The slower the transition from an agricultural-industrial society to a cybercultural society, the greater is the suffering that must be
endured, and the smaller the chances that-if
humanity survives into the next century-the
emerging age of cyberculture will be a good age
for human beings. Slow transition does not
cushion difficulties any more than pulling a
tooth a little bit at a time softens the pain.
The difficulties are not caused by the new age,
but only by the transition itself-so that the
problem can be solved only as transition is
accomplished. The best transition is a fast
transition. If we could have the wisdom to
introduce as much automation as quickly as it

is technologically feasible, we could create the
age of cyberculture in two decades. Slow transition would bring such intense and widespread
suffering that it may break into nuclear warand end all civilization.
V. Morality and Ethos
To create the age of cyberculture requires
something far more difficult than scientific discoveries and technical inventions. We must reexamine our moral values and our ethical concepts and the deeply ingrained notions to which
we give lip service. And we must understand
the difference between the moral values of mankind and the ethos of a society. The sanctity
of human life, the worth and dignity of the
individual are moral values that are absolute;
these always have been true and always will
be true, as long as there are human beings.
But the ethos of a society is transient and it
must alter with the needs of the society.
What we call our Protestant Ethic, although
it is much older and spread far wider than
protestantism, is the ethos of any society that
knows scarcity and danger. It is a good ethos
where virgin forests must be cleared, and wagon
trains sent across a continent. It is a good
ethos as long as men must wrest their meager
fare from the earth with courage and fortitude and perseverance. In such a society, it is
right that man should labor to plow the fields
so that he might eat the fruits of the earth
and bask in the sunshine of the heavens and
dream under the shade of the trees. "Thou
shalt eat thy bread in the sweat of thy face"
is a good and reasonable precept in the age of
agriculture.
Already the ethos of scarcity is becoming an
unjust burden. All too often thrift is no longer
a god, but the graven image of past days to
which we give lip service. To save one's earnings and thriftily mend last year's coat, and
use last year's car, and warm up last night's
supper no longer is admired. But-the ethos
that commands man to eat his bread in the sweat
of his face still governs our personal lives and
our. national policies. Although for millions
of human beings there is no place where they
can put sweat on their faces, we still believe
that there can never be another ethos for the
future than the obsolete ethos of the past. And

AN ETHOS FOR THE AGE OF CYBERCULTURE

every year we are condemning more than two
million human beings to the swelling ranks of
the unwanted. We suspect them of incompetence and laziness, or we pity them. We
should re-examine the ethos that condemns
millions who are simply the first contingent of
citizens living under cybercultural conditions,
without any preparation for the new age.

When human intelligence has invented plows
that pull themselves, it is more virtuous to
know how to play and to learn how to live
for the joy of living than to bemoan the end
of human toil.
As sons and daughters of puritans we do
not know how to play and we look with terror
at the "threat" of unemployment and idleness,
because we can't conceive a promise of leisure.
What we call play, recreation and entertainment, is not play, but its very antithesis. Play
is something one does spontaneously, joyfully.
We rarely do anything just for the joy of doing;
but we do a great deal "in order to" gain something else. Instead of enjoying a holiday, we
take a vacation-the very word signifies that
it is merely a void between the activities we
consider real. The "vacation" is something we
use "in order to" have more strength for our
labors. Recreation is something we pursue "in
order to" re-create our energy. Entertainment
is "in order to" forget our cares. We eat "in
order to" replenish our energy. Our children
are trained for the joyless ethos of scarcity and
given candy "in order to" do something adults
consider virtuous. Only the very young are
fortunate enough to be ignorant of this grim
purpose and suck their lollypops in blissful
ignorance and joy. But even the youngest toddlers are not permitted to play for very long.
Before they leave the cradle, they are but required to manipulate educational toys "in order
to" learn control of their muscles or "in order
to" learn to read. By the time they graduate
from kindergarten we have infected our children and impressed them with our grim ethos.
The joy of playing for the joy of playing is
frowned upon. The joy of learning for the sake
of learning has been destroyed by admonitions
to learn "in order to" please mother, or to get
good grades, or to get into Harvard or MIT
twelve years hence. And by the time they arrive
in Cambridge, they have not even the faintest

143

memory of joy and play, and they grimly labor
for their "credits," "in order to" graduate to
obsolescent jobs.
VI. Ethos for the Age of Cyberculture
The proper ethos for the age of cyberculture
is one that would serve humanity well to build
a good society. We know so very little about
living human lives in leisure and abundance,
in dignity and self-respect, in privacy and the
assurance of the fundamental human right to
be unique as an individual. We confuse leisure
with idleness, and abundance with waste. We
view with suspicion the attempt of a human
being to preserve his privacy and suspect it to
be an attempt to hide evil. And we almost
take for granted that an anomalism or eccentricity is necessarily inferior to conformity.
Nothing could be further from the truth!
Idleness, like drudgery, is passive boredom suffered under duress, and waste is the misuse
of anything-whether it is a scarce commodity
or something plentiful. Leisure is the joyful
activity of using our human potentials to the
fullest, and abundance is intelligent economy,
namely, the full use of natural· resources for
the good of hUman beings. Privacy is the fundamental right of civilized human beings and
a necessity if one is to live harmoniously with
one's fellow man. The uniqueness of individuals has made all human civilization possible;
for the conformist cannot go forwards and only
in the individualist's dreams and the dissenter's vision today can the reality of tomorrow
be conceived. 3
To learn to live in leisure and abundance is
the task of this generation. Even if we wanted
to, we would not have the power to choose between the past and the futur~. The cybercultural revolution cannot be reversed. But we
can choose the future. We decide what kind of
world we want to leave for our children; what
we do now determines whether they shall exist
in idleness or have a chance to live in leisure.
VII. Early Signs
Once we have grasped the fact that our present unemployment is only a beginning and that
there can never again be a time when the labor
of human beings will be required to produce
what society wants, we can turn our human

144

~ROCEEDINGS---.gPRING JOINT COMPUTER CONFERENCE, 1964

intelligence to the problem of transitionnamely, to prepare ourselves for the age of
cyberculture by turning unemployment into
leisure, by solving the transitional problems of
scarcity, and by doing everything human
ingenuity can devise to perfect our electronic
slaves and complete all processes of automation.

gains since the mid-1950's."6 Reuther concludes that "under the stimulus of automation
and other revolutionary technologies, there can
be no doubt that the historical tendency for
productivity to move forward at an accelerating pace will continue into the foreseeable
future."7

We must rid ourselves of the erroneous
idea that unemployment is still a negative period of waiting for a change to the positive
state of being "gainfully" employed again. In
this country, millions of human beings are in
a negative state now. Many of them have been
in this state for many months, years even, and
many know that they will never be in any
other state again. All the projections for the
future-even the most alarming-consider only
our past experiences. Only very recently have
a few economists given their attention to the
phenomenon of acceleration. "For too long they
misled themselves and the public by projecting
productivity into the future on the basis of the
long-term average rate of past productivity
gains. In so doing, they ignored the fact that
their averages were a combination of relatively
low rates in the distant past with significantly
higher rates in more recent years."4

To the acceleration of technological advance
we must add-or (more realistically) mUltiply
-the acceleration in the rate of birth. The
"war babies" and "post-war babies" will be
flooding into the labor market-between 25 and
40 million of them in one decade. No rate of
economic growth, no method of spreading jobs
by decreasing the work week or extending vacations can absorb the enormous by accelerated
flood of unemployment. Any dam or deflection
that worked in the past-forced consumption,
exploring underdeveloped continents or outer
space, for example-cannot be used to counteract the potential power-for good or ill-of the
increasing number and perfection of automatic
systems that can produce 1,000 cars or 10,000
or 100,000 cars without human intervention
and with-at most-a few human monitors to
watch dials and stand by for rare emergencies.

Computing machines and automation are
barely in their infancy, and already our world
has changed beyond all recognition and comparison. If we consider that all change is slow
until it has overcome initial inertia, we can
expect, before the end of this century, an increase in productivity that will dwarf the most
alarming projections for unemployment. Solomon Fabricant, director of research of the
National Bureau of Economic Research, warns
that " . . . the long-term pace of advances in
output per manhour has speeded up. It was 22
per cent per decade during the quarter-century
preceding World War I. It has averaged 29
per cent since. During the most recent period
-after \Vorld War II-national product per
manhour has been rising at an even greater
rate, 35 to 40 per cent per decade."5 And
to this should be added what is cautiously noted
in the President's Manpower Report: "Although the statistical data on this subject are
too limited to warrant definitive conclusions,
it is probable that underutilization of plant,
equipment, and manpower resources has had
significant effect in retarding productivity

If we allow human beings to remain unemployed because machines can do the drudgery
of repetitive tasks, we are dooming untold millions to useless lives without hope and purpose.
Even if we devise the means to feed them and
supply them with the output of machines, they
will not long remain in idleness and scarcity,
while the products of machines rot in warehouses. s
VIII. Lessons of History
Instead of dooming the vast majority of mankind to idleness and unemployment and the indignity of the dole, we must prepare now for
leisure and abundance. There are some lessons
we can learn from history. In the Golden Age
of Greece we can study a society of leisure and
abundance based upon wealth that was not
created by the labor of any of the members of
the society, but by slaves.
We piously deplore the evils of obsolete
slavery and believe it right and proper to condemn millions to starvation, or, at best, the indignity of the dole. Let us look at Greek society
honestly and examine how an unsurpassed

AN ETHOS FOR THE AGE OF CYBERCULTURE

civilization was created amidst the wealth and
leisure which, twenty-five centuries later, might
well have been produced by electronic and mechanical, instead of human, slaves.
The Greeks differentiated clearly between the
private life of a human being his life in his
household which produced the necessitiesoika, the Greek word for "home," is the rootword of economics-and his life as a citizen,
which Aristotle called bios politikos. The "good
life" was the life as a citizen, was "good"
because man, freed from labor by having
mastered in his household the necessities of
life, could pursue human tasks. "At the root of
Greek political consciousness we find an unequalled clarity and articulateness in drawing
this distinction. No activity that served only
the purpose of making a living, of sustaining
only the life process, was permitted to enter the
political realm, and this at the grave risk of
abandoning trade and manufacture to the industriousness of slaves and foreigners writes
Hannah Arendt."9
However we may deplore the private, or
household, life of the Athenian-in this century
of electronic slaves we can so easily afford to
condemn human slavery-we can only admire
the unequalled height of civilization his public
life produced. In his public life every Athenian
strove to excel, i.e., to distinguish himself from
all others, to be a unique human being, an individual unlike any other that ever lived or ever
will live. The Athenian lived a human life, in
play and work, but never in drudgery and
labor. "Who could achieve well if he labors?"
asked Pindar. 10
Several hundred years later and several
hundred miles to the west of Athens another
society existed whose citizens were freed from
the necessity of labor in order to sustain life.
But whereas freedom from want and the necessity to labor emancipated the Athenian into a
human being who achieved excellence, Roman
citizens became an idle mob under equivalent
conditions of affluence. The decline and fall of
the Roman Empire, wrote Edward Gibbon, is
"the greatest, perhaps, and most awful scene in
the history of mankind. The various causes and
progressive effects are connected with many of
the events most interesting in human annals:
the artful policy of the Caesars, who long main-

145

tained the name and image of a free republic;
the disorders of military despotism ... "11
The essential difference between Greece and
Rome is the difference in their points of view,
in their ethical concepts. The Greeks strove for
individual execellence; they wanted to create
beauty and contemplate the mysteries of the
universe. Abstraction and generalization were
their inestimable contributions to science. The
practical they dismissed as not worthy of discussion ·and recording./ Archimedes, whose
practical inventions covered an astouding
variety of applications, never thought them
worthy of description. He wrote only about
abstract mathematics; we learned from his
Roman enemies that he invented marvelous
machinery.
The death of Archimedes, by the hand of a
Roman soldier; as the great mathematician
stood contemplating a diagram he had drawn in
the sand, is symbolic of the end of an era. The
Romans were great organizers, "but," said
Whitehead, "they were cursed by the sterility
which waits upon practicality. They were not
dreamers enough to arrive at new points of
view."12 No Roman ever lost his life because
he was contemplating abstract mathematics!
Rome, her unemployed citizens idly seeking
panem et circenses, destroyed herself. The
moral disintegration of Rome had begun long
before Christ was born. Her conquests brought
Rome only material luxury and human proverty. Roman citizens received their dole and
idled away their humanity in ever more brutal
titillation. "It was because Rome was already
dying that Christianity grew so rapidly. Men
lost faith in the state, not be~ause Christianity
held them aloof, but because the state defended
wealth against poverty, fought to capture
slaves ... they turned from Caesar preaching
war to Christ preaching peace, from incredible
brutality to unprecedented charity, from a life
without hope and dignity to a faith that consoled their poverty and honored their humanity. . . . The political causes of decay were
rooted in one fact-that increasing despotism
destroyed the citizen's civic sense and dried up
statesmanship at it source. Powerless to express his political will except by violence, the
Ronlan lost interest in government and became

146

PROGEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

absorbed in his business, his amusements, his
legion, or his individual salvation."13

the other to a Rome more dreadful than the
most ghastly Roman nightmare.

We might ask why despotism increased in
Rome, why the Athenian sought his excellence
in art and philosophy and science, and the
Roman in the material luxuries that were all he
gained from his conquests. We might ask why
Christianity so very quickly forgot that Christ
taught human beings to live for the Glory of
God, which means to live'for the joy of living,
of being human and why the ethos of scarcity
perverted "living for the Glory of God" into
laboring "in order to" assure the glory of the
church. We might ask why the Athenian,
though conquered and enslaved, mastered even
his enslavement and his conquerors. We might
ask whether the Golden Age of Athens could
have endured if the Athenian had found a way
out of his dilemma: his need for leisure and his
rejection of human slavery.

Greece or Rome-that is the choice we have,
the choice we must make now, the choice we
should have made yesterday and for which tomorrow will be too late.

Returning to our own century of transition,
we can rejoice that we have what humanity
never knew before-slaves to free us from the
necessity of laboring "in order to" sustain life
that are not human, so that we need not be
ashamed to enjoy what they produce. For the
first time in human history, man can be free.
Machine. systems can provide him with leisure
and abundance, and rescue him from the degradation of being either a slave or a master of
another human being.
But machine systems can do only what man
wants. If human beings cannot learn to distinguish between human tasks and toil fit only
for machines, if we persist in competing with
the machine for the repetitive, dreary, stultifying, de-humanizing jobs for which only machines are suited, then humanity wlil become
enslaved by the machine more cruelly than
it has ever been enslaved by any despot of the
past. For the machine provides us with slave
labor; and, therefore, human beings who compete with the machine are, thereby, accepting
the conditions of slave labor. Human beings
who learn to use the machine wisely, on the
other hand, will be freed by the machine to
achieve excellence.
Weare at the cross-roads: one way leads to
the Athens the Athenians could only dream of;

PART TWO-METHODS OF TRANSITION
I. Educating the Young

A practical and relatively painless method to
accomplish the transition into the Age of
Cyberculture must begin with the education
of the young. We are well aware of the fact
that unemployed youth has already become a
social problem, and we know that what we so
inadequately call "juvenile delinquency" is not
restricted to the underprivileged. The violence
of youth and the crimes committed by children
show, of course, the general moral decline.
Even more serious than isolated outbreaks of
violence, even more desperate than gangs of
destructive hoodlums, is the widespread indifference and be'wilderment among the youngwhether they stay in schools that provide nothing but bland custodial care or whether they
are drop-outs.
The real problem of the young is that there
seems to be no place for them in the world.
They know society looks with dread upon the
vast numbers that are pouring out of schools,
and they know that it is wrong for them to be
met with fear and loathing. They are the future
of mankind, and they have a right to be welcomed with joy.
What would happen if the 25 to 40 million
young people who will pour out of our inadequate school system in the next decade were not
to flood an already overflowing labor market,
but enter instead into a period of basic education for the Age of Cyberculture?
It would be infinitely harder-perhaps impossible-to change very profoundly the prejudices of those who have learned to labor and
who have labored for too long. If their labor
is taken over by machines, we can only make
their emancipation which came too late for most
to enjoy in leisure, as pleasant and comfortable
as society can afford. And we can try to make
their idleness not too shameful a thing.

AN ETHOS FOR THE AGE OF CYBERCULTURE

147

But for the young we must do far more
than train them to become another obsolete
generation of laborers, for there can be no
honest labor for them and no dignity in toil.
Any human being who seeks to labor in competition with the machine is doomed to slavery
and to the conditions of slavery. There is no
human ditchdigger who can live on a scale low
enough to let him compete with the steamshovel,
and there is no human bookkeeper, or mathematician, who can compete with a computing
machine.

methods of the past, when "marginal workers"
were considered a poor investment. Many oldtime union men say "they bring not back in
dues what it costs to organize them," and are
thereby guilty not only of greater callousness
than that for which they blame management,
but of irresponsible short-sightedness. Unions
who do this sort of cost accounting while they
invest their estimated union wealth of $1.5 billion in blue-chip securities and profitable real
estate, are doomed to die of their own corruption and decay.

There is no human printer who can compete with a tape-fed printing press. And there
is no human metal·cutter who can compete with
computing-machine controlled machine tools.
The keyword is "compete." We can no longer
afford to measure the value of a human being
in the market place. 14

Labor and management must learn to invest
in human beings. If labor unions would "organize" youngsters who graduate (or drop out) of
an antiquated school system, their membership
rolls would swell (and without any crippling
diminishment of their coffers) and their vigor
would be restored. They would once again have
a vital role to play in the society. They would
once again breathe the fresh air of the future
instead of suffocating in bank vaults clipping
their coupons.

In 1955, when the A.F.L. and the C.I.O. consummated their marriage of convenience, President Meany promised that the newly-weds
would become parents of an expanding family;
they would "organize the unorganized." But
with the sole exception of Hoffa's teamsterswho are, at best, considered naughty stepchildren-the family has not proliferated. The
auto workers have lost 300,000 members since
1953-and this in spite of the fact that the industry has achieved a glittering production record in 1963. The steel workers have diminished
by 250,000. There are half a million fewer
mine workers, and· 760,000 fewer railroad
workers. I5
In spite of all the efforts made by labor
unions to spread the work and to delay the dismissal of workers, it takes considerably fewer
of us to produce considerably more. Whether
we regard feather-bedding an evil or a necessity-it does not prevent the spread of unemployment. At best it delays the inevitable disaster for a few; at worst it retards important
improvements.
The ranks of labor are diminished by the
fired, but even more significantly they are
starved at the source by the vast numbers of
"the unhired." Among the ever increasing
number of the unhired, labor unions must find
new blood and new strength, and a new lease
on life. Labor must forget the organization

Organized Labor should offer to educate
every boy and girl who wants an education for
the Age of Cyberculture. It is to be hoped that
colleges will, in time, adjust their curricula to
the needs of the future. With a few exceptions
our institutions of "higher" learning are custodial, rather than educational, and perpetuate
training their unfortunate students for obsolescence. Education must not be equated to
training for obsolescent jobs. Since our present
feeble attempts at "re-education" are not educational at all and do nothing at all to prepare
human being to live in leinsure and abundance,
they could not, and do not, have the slightest
effect upon our present unemployment problem. Such "re-training" efforts are like aspirin;
it can disguise a headache for a while, but it
cannot cure cancer, or even a headache.
We throw a feather into the Grand Canyon
and we are surprised that there is no echo! The
education that must be provided to get an echo
from the age of cyberculture must make it possible for human beings to learn how to live
human lives and to create an ethical system
that will permit human beings to do whatever
they do gladly and for the sake of the thing
itself; and not reluctantly and only "in order
to" make a living.

148

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

A good curriculum might well start with
questions about Greek civilization and Roman
decay. Whatever the specific subject, its aim
must be to open the eyes of our twentieth-century blind children to the eternal miracle of
life.
One labor leader, enlightened about the vital
need to educate human beings, says: "America
will be a much better place when everybody
works four hours a day and attends some kind
of classes four hours." He made a start-small,
but of tremendous significance. His local has
financed scholarships for children of members.
More important, it is seeking out latent talent
among its members (in the hope of developing
the union's future leaders) for the "Futurian
Society." The best-educated among the members conduct courses for other members. And
at the local's Long Island estate, seminars are
held in such "impractical" sulUects as literature
and art and philosophy. 16
Since the education of several millions of
youngsters involves far more than a one-week
seminar, much more is required than a Long
Island estate and the funds a local can afford.
Unions are not that rich. But humanity is.
Such a vast education program must be financed
by government subsidy, in part. This can be
justified-even to the satisfaction of the victims of the Puritan Ethos-as a perfectly reasonable investment which, partially at least,
pays for itself out of savings in unemployment
compensation, relief, and the costs of custodial
care' for those who would surely commit crimes
if they cannot find a positive purpose in life.
Another source of financing should be supplied by the very machines who have replaced
human laborers. At least one manufacturer of
automatic machines is a poineer in this approach. He "taxes" every machine he sells by
putting away a certain sum which contributes
to the support of a foundation to make various
studies of several facets of the problems created
by the very existence of automatic machines.
"If machines perform our labor, then machines
will also have to pay our taxes."17 This may
be a socially acceptable way of saying that the
abundance produced by machines must be available to human beings, lest it rots away and
destroys humanity with its fetid decay.

Union funds, special taxes paid by manufacturers, a contribution made by the entire
population in the form of government funds
are three sources to finance the preparation of
youth for the Age of Cyberculture. Of course,
it would be foolish to prepare millions of young
people for a world which, simultaneously, we
try to postpone. When we no longer need to
be concerned about new floods in the labor
market, there is no longer any reason to attempt any delays in complete automation. We
are then free to encourage technological inventiveness and to complete the process as quickly
as possible, not only in the industrialized nations but-under the sponsorship and tutelage
of the United Nations-of the underdeveloped
countries.
Such an acceleration of automation would insure full employment for the existing labor
force, not only in feather-bedding and busywork, but by the full occupation of highly
trained personnel. I t is the only method of
achieving full employment and full occupation.
We have neither one nor the other now.
How many scientists and engineers are still
employed, but under-occupied? How many pass
their days in idleness at their well-designed
desks and in their well-equipped laboratories?
How many repeat endlessly insignificant experiments, and waste all their ingenuity in
inventing more innocuous re-search (not
research) projects ?18
II. Experiment in Attrition

It is highly probable that, without the influx
of youngsters into the existing labor force,
normal aging and retirement-a process called
by modern economists and labor experts "attrition"-will diminish the labor force over the
next two decades at approximately the same
rate as machines replace human drudgery. In
the pioneering agreement, the "Long-Range
Sharing Plan," the union and the Kaiser Steel
Company pointed the way for a company and
its employers to share the fruits of automation.
Whatever can be saved by greater productivity and efficiently is divided: one third to the
workers, two thirds to the company (which
must share its two-third's portion with the
government) .

AN ETHOS FOR THE AGE OF CYBERCULTURE

Any laborer whose job is eliminated by a machine continues to draw his pay for one year.
During this time he is placed into a labor pool
which acts as a reserve to fill in for absentees. 19
It is too early to draw general conclusions
from the Kaiser experiment, but the officials of
the steel workers' union are reasonably pleased
and the company considers the pool an asset.
This plan does not provide a complete answer
to the problems of automation, and it does not
stop the process of replacing human drudgery
with machine slaves. It does provide a cushion
for a few individuals.

149

This is not true of poverty everywhere on
earth as yet. There is still real poverty in this
world, and there are still poor nations, although
even the poorest nation in the age of cyberculture is not intrinsically and forever doomed to
poverty or the charity of others. That is why
we call the poor nations quite appropriately
underdeveloped nations. The most enlightened
domestic policy we might pursue cannot solve
world-wide problems, and the most intelligent
and ingenious' international agreements cannot forever eliminate the danger of nuclear war.
We must do much more. We must not have underdeveloped nations. The age of cyberculture
must be universal.

III. Hope For the Future
If one steel plant can create a labor pool, if
one manufacturer can tax his machines and
use the money to encourage study, if one union
local can provide a place for learning and
reflection for its members with such remarkable results, we have good reason to be hopeful
for a bright future.
If we set ourselves as a long-range goal a
good cybercultural society, we can solve the intermediate problems and devise appropriate
measures to overcome the immediate difficulties that are attributable to the phase of transition rather than the advances in technology.
The immediate consequences of diverting the
young and unskilled from the labor pool and
into a constructive program of education for
the age of cyberculture would be dramatic. It
would, first of all and for all times, wipe out
the demoralizing condition of hopeless unem~
ployment.
We know that in this rich country there is
considerable and stubborn poverty. Why does
it exist when granaries are bursting with
surplus food, when farmers are paid for consenting to let their fields lie fallow, and when
stores are filled with every sort of consumer
product so that customers must be enticed to
want what they do not need? We know that
poverty, in this country, is poverty in spite
of abundance-poverty caused by inadequate
means of distribution, by the ethos, not the real
existence, of scarcity, i.e., by unemployment.
To wipe out unemployment and the ethos of
scarcity is to wipe out poverty.

IV. World-Wide Cyberculture
If we eliminate unemployment in this country immediately and proceed to create automation at the fastest possible rate, we shall almost
simultaneously free an enormous number of
highly trained and skilled people-the employed
but under-occupied-who could, under the sponsorship of the United Nations, assist and advise
the underdeveloped nations to build modern
automated industries.
At the present time, most of the newly
formed nations of Africa seem to be diligently
creating nineteenth-century conditions of the
worst sort. It is not surprising, since most of
their leaders were educated in Europe or the
United States two or three decades ago so that
they were imbued with the ideas of nineteenthcentury Europe and America.
They dream or leading their countrymen out
of the jungle, and they are bringing them
straight to the horror of nineteenth-century
city slums. It is preposterous to lead human
beings out of insect-infested green jungles and
turn them into obsolescent masses of unskilled
and unwanted laborers in rat-infested city
jungles.
Surely among all the remarkable intellects
that have asserted themselves in the new nations of the world there must be some who can
understand not only John Locke and Voltaire
and Marx, but also Russell's mathematics and
logic and philosophy, and Wiener's cybernetics.
Surely there must be some among them with
the imagination not to imitate nineteenth-cen-

150

PROCE-E-DINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

tury American-European industrialism,. but to
create twenty-first-century cyberculture. Such
a person, if he also has power in his country
and influence among his people, can conserve
the most admirable values of his native culture
and create, at the same time, good living conditions for his people. He could bring to his
country the best our European-American civilization has to offer without dooming them also
to the worst.
If the ethos of the. society that sees virtue in
laboring "in order to" gain something-bread
or status, or self-respect-changes to an ethos
of abundance, it will be virtuous for human
beings to live human lives in leisure and abundance. And no-one can be sure what undreamed-of heights humanity can reach when
human talent is no longer wasted in the basic
struggle to survive.
I t is surely the only sensible and practical
choice to prefer leisure and abundance to idleness and waste. The choice must be madeand it must be made now. We cannot ignore
the powerful new phenomena human intelligence has created. We cannot abdicate our
responsibility to choose how they shall be used.
For in our very abdication of choice, we would
choose the worst alternative: to drift blindly
toward disaster.
If we want to conserve our traditional values
-the right of the individual to life, liberty, and
the pursuit of happiness-we must choose wisely and act boldly.
Our history was made by human beings with
bold vision and good sense, with deep moral
convictions and human compassion for human
frailty, with respect for the dignity of human
beings and love for mankind, with the imagination to dream and the courage to act. Such men
and women cross oceans, transform continents,
and build the City of Man!
That is our heritage.
Appendix
A Program for Transition-Immediately Attainable Goal
Keeping long-range goals clearly in mind, we
must make many choices and decisions about

measures to relieve the problems caused by
transition. Cybernation affects the unskilled
earlier than the skilled, it makes certain skills
obsolete sooner than others. This causes untenable conditions of abject poverty and a
sense of personal failure in the midst of great
affluence and achievement. It takes time to
erase the prejudices and superstitions accumulated for centuries.
The following suggestions to make the transition period as constructive as possible and to
prevent suffering is a goal that is attainable.
None of the measures proposed will have an adverse effect upon the long-range goal of creating a cybercultural society where human beings
can live human lives. And, to some extent, all
measures will contribute to achieving a cybercultural society as soon as possible and in a
humane manner that is of benefit to the individual.
1. Government Action
1. An agency for cyberculture should be set

up. The agency must have sufficient funds
and power to study the over-all ramifications of new phenomena, to study specific
recommendations made outside the agency,
to initiate large-scale exp'eriments, and to
carry out programs the agency wishes to
adopt without undue delays imposed by the
Congress or other governmental and nongovernmental bodies. The Agency should
have representative of all branches of government, of organized labor, of industrial
management, of academic life, and-most
important-of the unorganized consumers.
Representatives of the unorganized consumers, i.e., the vast majority of citizens,
should be knowledgeable people who are
completely distinterested, but intensely
committed to the goal of a good cybercultural society with the courage to try
the untried and the reverence for permanent values that must be conserved. A test
laboratory should be set up immediately
(Long Island would be most suitable).
2. Public works,' there is an almost inexhaustible need for an extensive program of
public works, such as road building, construction of dams, irrigation, conversion of

AN ETHOS FOR THE AGE OF CYBERCULTURE

sea water, construction of hospitals,
schools, parks, recreation and holiday
facilities, beautification of cities, slum
clearance, low-cost (but comfortable and
beautiful) housing (about one million units
per year is perfectly attainable), a reasonable power system to provide abundant and
low-cost power for industry and homes in
the most remote sections of the country. In
addition to an extensive public-works program, subsidies to individuals should be
provided, on a generous scale and in generous amounts, to artists, writers and other
intellectuals, and to artisans and craftsmen. This will encourage the most valuable members of a society and make it possible for them to devote all their energies
to their human tasks; creating a great
civilization with a blossoming of art,
science, and philosophy, as well as a great
revival handcrafts. Pride in artistic and
intellectual achievement and pride in fine
craftsmanship would benefit not only the
individuals subsidized but the community
at large.

3. Constitutional guarantee of Living Certificate. An means of distributing funds to
those who cannot find jobs should be coordinated. This would make it possible for
the most severely (financially) handicapped to move from congested and expensive areas. Most of all, it would help to
restore a sense of dignity and worth to the
unemployed and make it possible for them
to learn the use of leisure.

4. Generous

Re-location Allowances. Financial assistance for relocation would
make it possible for families to move to an
area where (1) jobs might be available,
(2) educational facilities might be accessible, and (3) climatic and housing conditions might be advantageous. Although
reasonable precautions to prevent undue
abuse may be required allowances should
not be restricted to job opportunities.

5. Large-scale education program to assist
the chronically (often for generations)
under-educated, to develop the potential of
the gifted by enabling and motivating them
to continue their schooling for as long as
they can benefit thereby. Education facil-

151

ities should be extended and made practical
for adults up to any age when there can be
a reasonable expectation of achievement.
(Achievement to be defined in terms of a
personal sense of dignity rather than material success).

7. Rehabilitation of neglected and deteriorating areas: urban and remote on a generous
scale and with the conscious intent to restore natural beauty and create andI or restore urban beauty.
8. Transportation: construction of rapidtransit systems, both urban and interurban, with particular regard for the comfort and convenience of passengers and the
beauty of the community.
9. Study of the best use of the licensing powe1'
of government, and exercise of the best use
of such power, to carry out the transition
to a cybercultural society as rapidly as possible.

10. Use of the taxation power of government to
expedite and ease the transition from
human labor to automatic machine systems,
apportioning costs of the transition period
fairly, motivating industry to cybernate
and finance the generous ~pplication of
the principle of constitutional Living Certificates.
11. In the process of conversion from a defense-oriented to a peace-time economy, all

obsolete military installations and materiel should be transferred to the community for the best civilian use. Transfer should
be guided; trained personnel (from the
military) could participate in the conversion to civilian use.

12. A large-scale education and public relations

program to explain the cybercultural revolution should be devised and carried out
with the cooperation of non-governmental
organizations.

II. Organized Labor
1. The labor movement should play a significant role in the transition period by recognizing that their responsibility extends
to the unemployed, as well as to the (as
yet) employed.

152

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

2. Organizing the unorganized including
young people leaving school and unable to
find employment.
3. Vast educational programs to prepare
union members (and others) for leisure.
Such programs should be non-utilitarian
and designed primarily to stimulate people
to think through the familiar patterns of
the past and distinguish between obsolete
conventions and permanent values. A
realistic program designed to make "free"
time a time of leisure and accomplishment
rather than idleness would include education for hobbies and, simultaneously, foster
an awareness that the ethos of scarcity is
not necessarily virtuous.
4. Investing the vast welfare and pension
funds of unions in enterprises of social
value and thus exerting enormous influence
upon the shape of our economy and our
value system.
5. Cooperating in all programs to expedite
the transition, to a cybercultural society
and simultaneously entending the sphere
of influence of organized labor to those
whose laboring has been taken over by
machine systems.
III. Individ'Ual Action
1. In every kind of community, professional.

special-interest or other types of organizations, the individual can spread his insights
about the cybercultural revolution. Discussion with friends, with large groups can
serve to alert others to the fact that
changes are taking place, that changes
are not necessarily to be feared, and that
we do have choices to make to determine
the kind of world that is to evolve from
the changes. For although we can not elminate the fact of change, we can determine
the direction into which change propels
us.
2. The thoughtful individual must seek as
much information as possible, sift information carefully, and articulate what he has
learned.
3. The education of the population in a free
society is the concern and responsibility of

all citizens. Education can spread by individual and group action.
4. Interest and concern for the action of government, industry, and labor, is the duty

of the individual. No government program
is too complex, no corporation too rich, nor
labor union too powerful for most careful
scrutiny by the individual. No injustice is
too minute, no human suffering too remote,
no person's fate too unimportant to affect
profoundly the structure of the society.
If the most insignificant right of the least
important among us is endangered ever
so slightly every right of everyone of us
is in danger. Only the individual can guard
the rights of the individual. And the individual can and must demand that all a~­
tion be carried out for" the benefit of individuals in the society. It is still true that
a nation has the government and institutions it deserves.
5. Individuals, singly or through their organizations, must demand generous educational facilities and sources of information.
The media of" public information should
be re-organized to serve the public interest.
Freedom from commercials on the air and
from page after page of advertisting obscuring information in printed material
should and can be demanded by individuals
(which does not exclude the use of government licensing power to protect the interest of the individual.)
6. Individuals should make conscious efforts
to examine their own values, discard their
prejudices, and accept new ideas. "The
unexamined life is not worth living," said
Socrates. This clearly makes it the responsibility of every citizen to examine his
own life and to assist others (though not
force it upon them, because that would be
ineffective) to examine their lives.
CITED REFERENCES AND
BIBLIOGRAPHY
1. JOHN KENNETH GALBRAITH, The Affluent

Society, Houghton Mifflin Company, Boston (1958).

AN ETHOS FOR THE AGE OF CYBERCULTURE

2. Secretary of Labor, W. W. WIRTZ, Address
to the National Convention of the A.F.L.C.I.O., New York (1963).
3. ALICE MARY HILTON, The Age of Cyberculture, A Series, The World Publishing
Company, New York (1963).
4. WALTER REUTHER, Statement for
Senate Subcommittee on Employment
Manpower (May 22, 1963).
5. SOLOMON FABRICANT, Director of
search, National Bureau of Economic
search, Annual Report (1959).
6. President's Manpower Report (1962).

the
and
ReRe-

7. WALTER REUTHER, Statement for the Senate Subcommittee on Employment and
Manpower (May 22, 1963).
8. ALICE MARY HILTON, "Computing Machines: Curse or Blessing," The Age of
Cyberculture, Syndicated Se:r:ies, North
American Newspaper Alliance (August 11,
1963) .
9. HANNAH ARENDT, The Human Condition,
University of Chicago Press, Chicago
(1958) .
10. PINDAR, Carmina Olympica, xi. 4.

153

11. EDWARD GIBBON, The Decline and Fall of
the Roman Empire, vol. I - III.
12. ALFRED NORTH WHITEHEAD, The Aims of
Education.
13. WILL DURANT, Caesar and Chmt; The
Story of Civilization, vol. 3, Simon and
Schuster, New York (1944).
14. ALICE MARY HILTON, Logic, Computing
Machines, and Automation, Meridian
Books, New York (1964).
15. ALICE MARY HILTON, "Cybercultural Revolution," The Minority of One (October
1963) .
16. HARRY VAN ARSI)ALE, JR., Report to the
American Foundation on Automation and
Employment, New York (1963).
17. JOHN S. SNYDER, Report to the American
Foundation on Automation and Employment, New York (1963).
18. ALICE MARY HILTON, "Automation Without Tears," Electro-Technology (August
1960) .
19. DAVID COLE, Report of the Kaiser Steel
Agreement of March 7, 1963, Washington
(1963) .

INFORMATION PROCESSING AND SOME IMPLICATIONS
FOR MORE EFFECTIVE MANPOWER PROGRAMS
Herbert E. Sfriner
The W. E. Upjohn Institute for EmploY1nent Research
Washington, D. C.
This brief paper will focus on the tremendous
potential which now exists for the development
of a more rational and effective technique for
dealing with problems of manpower utilization.
This topic should call for a far more detailed
and sophisticc;tted treatment than it is about to
receive from me. For this, I must apologize,
both to this audience and my own conscience.
I feel, however, that the opportunity should be
taken to outline to this particular audience the
sort of information processing system which I
fee] must be developed if we are to have a more
effective means for dealing with the growing
manpower problem in the U.S.
In discussing the implications of information
processing for manpower problems, what I am
really concerned with are the two major problems, unemploym.ent and underemployment. At
the present time, our nation would appear to
have an embarrassment of riches in both of
these areas. At the rate we are going, I'm somewhat pessimistic about our becoming less
wealthy with respect to these two surpluses.
Aside from the fact that ~nsufficient levels of
demand for goods and services necessary to increase the demand for labor would appear to be
on the horizon, there is an increasingly difficult
problem of an inadequate amount of information to guide both potential employers and employees in the match-making process we call
the "labor market." Before indicating the deficiencies of our labor market and what the implications of information processing may be,

let me briefly describe what the economist sees
as the functions of the market.
One of the major assumptions of economic
theory is that of the "market place" and its
function of establishing contact between the
forces of supply and demand. In the market
place those with a product or service to sell meet
those who may be interested in the purchase of
the product or service, and in the bargaining
process establish the "market price" and consummate the economic transaction. In this way,
the needs of the consumer and the products of
the suppliers lead to the pricing and production
decision policies which ensure that the economy
is functioning in an optimal manner-at least
with respect to supplying what the market indicates is needed.
Obviously, I have not yet included a factor of
rnajor importance regarding the function of the
market~that of communication. In the case of
many products and services, we are all aware of
the consummate and skillful use of the various
news media in apprising us of their qualities.
There is not only very little of a lag between the
entrance of new products into the market and
the public information through television, newspapers and magazines of these new items-but
many of us are very frequently informed months
ahead of the imminent introduction into the
market of the new, completely revolutionary
"widget" without which no home, car, person,
or society can be complete. Indeed, we are
155

156

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

even made aware of those types of items which
are available for the person "who has everything."
But in one all-important sector of our economic life, the paucity of information and the
turtle-like movement in the direction of the development of a communication system to connect the forces of supply and demand represents
what is tantamount to an unpardonable sin. I
refer to our labor market and the theoretical
mechanism for matching available and projected job needs with the unemployed or those
whom we can foresee as being unemployed.
As you undoubtedly know, the unemployment
situation in the United States has been one of
increasing concern since the mid-1950's. In the
past 10 years, we have not been at a level of unemployment which even the most conservative
economists can view with equanimity. Though
the present rate of 5.6 per cent is far above the
3 per cent we usually view as the maximum desirable level, there are many economists who
feel that the real rate of unemployment is much
higher. The bulk of this is concentrated among
the young, the old, and the minorities-chiefly
the negroes. There is currently raging an argument between economists as to the reasons for
this rate of unemployment, which, in an unprecedented manner, continues to hang on like
a summer cold during the sunny seasons of
apparent prosperity. Some claim this results
from structural changes in our economy which
throw large numbers of people into the category
of the unemployable, while the other group contends that the real culprit is too Iowa level of
economic growth. For our purposes today,
which is the culprit, or whether it is both, as I
believe, has relatively little significance. In
either situation, there is an increasingly major
role which computers must begin to play if we
are to move in a direction of an optimal utilization of manpower. Several factors would lend
a sense of the imperative to the application of
a more scientific system for the acquisition,
storage, retrieval and dissemination of labor
market information.
Increasing rates of technological change produce a shorter lead time between the potential
of the innovation and the innovation itself and
its possible resulting labor displacement. Con-

sequently, the amount of time in which society
can anticipate retraining needs and methods
for increasing worker mobility is shortened severely. With an ever-increasing labor force, the
numbers are far from inconsequential. I might
also add that along with the obvious economic
facet of the unemployment problem, given the
age and minority group characteristics of this
unemployment population, the stimulus for
dealing with this problem in a more logical manner would seem to increase rapidly.
How can computers be of importance in dealing with this situation? To begin with, computers and the development of a labor market
communication system will not create jobs, at
least not in the numbers necessary to put a
serious dent in the unemployment population.
But a communication system can begin to provide a much more effective means of establishing linkages between those possessing specific
skills and those possessing the jobs for which
these skills are needed. Those of us who have
been involved in labor market analysis are more
and more aware of jobs for which there are no
takers because the takers are una ware of the
job openings. Logically, one asks, what about
the use of such agents of communication as the
newspapers, private employment agencies and
the United States Employment Service. In examining these major possibilities, several "necessaries" for an optimal solution should be kept
in mind. To begin with, the description of the
available job and the matching skill must be
fairly detailed; second, there must be a form~l­
ized network which brings together the partIes
most interested logically in each other's potential; third, there must be the maximum coverage by industry and geographical area, of all
job and skill-matching potential; and fourth,
there must be a minimal delay in sending the
message to the logical parties, both on the supply, or employee, side and the demand, or employer side.
Now what is the situation with respect to
newspapers private employment agencies, and
the U .S. E~ployment Service? If we begin with
newspapers, I think we immediately see that on
the employer's side, there is a real opportunity
for advertising in ample description. With regard to the unemployed individual, however, it
is difficult to envision a situation where the

INFORMATION PROCESSING AND SOME IMPLICATIONS

individuals who have been laid off, many of
whom are in the unskilled or semi-skilled categories, will be in a position to advertise. This is
so, firstly, because of the financial problem.
With very limited financial means it is impossible for an unemployed individual to be able to
advertise in sufficient length so that an adequate
background description can be given. Aside
from this, many of the items and characteristics
which we have mentioned above could not possibly be contained in the advertisement which
an unemployed individual might conceivably
place in a newspaper. Secondly, the newspaper
is hardly a formalized network which can bring
together the parties most interested logically in
the potential of each other; that is, the potential
employer and the unemployed individual who
may have the characteristics being sought by
the employer. It is a very informal source of
information with no compulsory or systematic
feature about it. As a matter of fact, in a study
done in 1962 by Eva Mueller and Jay Schmiedeskamp, supported by funds from the Upjohn
Institute, it was found that only between 5 and
10 per cent of the unemployed who were able
to locate new jobs had been able to locate the
jobs as a result of their use of newspaper advertisements. The newspaper very s"eriously
lacks the potential :of a network which can be
institutionalized and which can, continuously
and. in an exhaustive manner bring together all
of the sources of information which we need for
the network system we must begin to envision.
Since it is also completely voluntary, there is no
real opportunity for an extensive coverage
either by industry or by geographical area.
If we look at the private employment agencies, we immediately see that there is the major
hurdle for many of the unemployed of a substantial fee or part of their salary which
would be deducted upon placement. Private employment agencies also lack the tremendous
scope of coverage in terms of industry and geographical areas which we have set forth as one
of the major criteria for a successful system.
One of the objectives which the system we are
beginning to formulate should have is that
of being capable of directing the unemployed to
positions available outside of the immediate
areas in which they reside. Another problem
of the private employment agency is that very

157

frequently they tend to choose those sorts of
individuals whose skills represent a higher
probability of placement rather than a lower
probability of placement. The very practical
reason for this has to do with the high cost of
continuing to attempt to place individuals
whose skills are such that they represent a
higher cost rather than a lower cost problem
with respect to placement. The job placement
success of employment agencies can be commented upon quickly by alluding to the MuellerSchiedeskamp study, where it was found that
only between 7 and 14 per cent of those unemployed who finally found work found the job
as a result of the use of an employment agency,
public or private.
Finally, let us look at the United States Employment Service. The job description information and the matching skill information developed by the U.S.E.S. mayor may not be fairly
detailed, depending on the efficiency or the employment service officer or interviewing personnel in the individual state agencies which
make up the U.S. Employment Service. Like
private employment agencies, between the
states we have an erratic-behavior pattern with
respect to the adequacy of the job description
information. However, the U.S. Employment
Service does have the skeleton of a formalized
network which can bring together parties most
interested in each other's potential. This is so
because it is organized with a central focus
coming from the Federal Government with employment services located in and controlled by
the individual states. This is a very important
potential with respect to our envisioned communication system. By virtue of this distribution of officers, there is the potential coverage
of each of the industries and geographical areas
in the United States. However, the U.S. Employment Service, like the other sources of information, lacks in the ability to have a minimal
delay in sending messages to the logical parties
both on the supply--or employee-side and on
the demand-or employer-side. Of great importance, however, is the fact that within the
present unemployment placement services of
the U.S. Employment Services, there is the seed
from which can grow a major automated computer operations system which is calculated to
provide the basis for matching information on

158

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

available jobs with available individuals for
these jobs. Under the original Wagner-Peyser
Act, which authorized the establishment of the
U.S. Employment Service, there was authorized a system of j ob-clearances between the
states, and during World War II this activity
was of tremendous importance in achieving a
greater degree of mobility of the labor force
and moving scarce skills to defense industries.
This activity has continued as part of the employment service and has been recently improved. Its most effective recent operation has
to do with the professional office network. This
particUlar plan deals with making potential
jobs available to professional people and potential workers available for the consideration of
employers needing their services on a nationwide basis. This program was begun in March
of 1956 after a number of pilot projects and
experiments in 8 states and the District of
Columbia and Puerto Rico. At the outset, the
plan was to provide for a flow of unfilled orders
and unmatched applications for the local office
to a central "key city" office in each one of the
individual states concerned with attempting a
state-wide effort to find openings or recruit
applicants. Beyond that there was an exchange
of still unmatched orders and applications
among the various key cities which were defined. This was expanded so that by 1963 there
were 121 professional network offi'ces located
in key parts of all sections of the United States.
This precedence could perform an important
function in that it begins to indicate a prototype on the basis of which a larger automated
massive acquisition, storage, retrieval and dissemina tion system could be developed. As I
would envision the system toward which we
hope to move, every individual unemployed in
the United States who registers either for a
job at the U.S. Employment Service or at a
private employment service, or for unemployment insurance would have information filed on
the nature of his particular skill, educational
background, work experience, age, and other
social and economic characteristics of importance for job location. Such information would
be coded in terms of a number, such as the
Social Security number, so that in the event
that such an individual was able to obtain a
job for which he was qualified, that individual's

availability for a job would be dropped from
the storage system. In addition, all graduates
of high schools, whether or not they were seeking jobs, would also be listed in the same manner on the assumption that they might possess
skills for which jobs would be available in the
United States.
On the emp'loyer side, all job vacancies would
have to be reported to the U.S. Employment
Service indicating the expected duration of the
vacancy, the nature of the skills indicated as
necessary to fill the vacancy, and other social
an economic characteristics of the individual
for whom the vacancy might be a possible
source of work. In addition, all expected vacancies within a 12-month period would haye
to be listed by employers, thus providing an
early-warning system of expected unemplo
ment in a specific industry and community.
This information would be gathered at each of
the local U.S.E.S. offices in each of the states.
Each state would then have a central collection
agency which would then put all of this information, coded properly for identification purposes, on tapes from which the information
would be brought together in a central skilljob-locator system. This locator system would
quickly match jobs available--no matter where
the job may be found in terms of geographical
area and industry-with the skills which have
been posted for each of the individuals seeking
work. The matches which fall out of comparisons of skills and job openings would then provide a means for communication without delay
to the concerned individuals. Communication
would take place simultaneously, as a matter of
fact, in order to permit both the employer and
the prospective employee to make contact with
each other. Depending on the scarcity of the
skill and the proximity of the employer to the
employee, there might be indicated the provision of mobility funds, either from industry
or from the government. But in any case, at
least there will have b€en achieved a matching
of a job opening and the individual who is seeking that particular sort of job, or for which his
skills provide him with a basis for doing the
job. This second point is important because
more and more we have begun to recognize the
need for transfer from one particular occupational skill to another. In some cases, the skill

INFORMATION PROCESSING AND SOME IMPLICATIONS

is such that we can move quite easily between
industries; hence it's important that the information which is stored is of such a fundamental
or generic nature that the language of the job
description itself does not fall into folkways
or traditional terms which might limit placement on the basis of a restrictive job description "cliche" rather than on the basis of skill
descriptors which may qualify an individual
for a number of jobs with completely different
titles.
What I have discussed thus far would be an
ambitious program to get under way immediately on a national level. However, a great deal
can be done at the local level. By local level, I
would begin within the confines of a major
metropolitan area rather than on a larger regional basis. By starting at the local level,
there are several assets. To begin with, the
local U.S. employment services does, to some
degree, although a limited one, know the local
labor market. It does avail itself of a certain
limited number of information inputs from employers with regard to contemplated changes in
the labor force. It also, to some degree, makes
use of what information is available on the
nature of forthcoming graduates from vocational education programs and the nature of the
skills which they may possess. Building on this
rather primitive basis, we can begin to design
at the local level a more formalized system of
information acquisition, storage, retrieval and
dissemination with respect to labor market
structure and needs, both on the ~upply and
demand sides. An additional asset, if we start
at the local level, results from the fact that
co-operation between employment services of
the individual states varies rather widely and
in most instances we find that the individual
U.S. employment services within a state act on
an autonomous basis. In some instances there
is a bonus which results from the fact that some
school systems have already begun to develop
formal and standardized procedures for storing
information on graduates. This is done with
the objective of following up on graduates after
their departure from the school system in order
to determine what the nature of their work in
the job world was after leaving school and the
degree to which the training, especially vocational, affected their success in finding work as

159

well as the nature of th~ work which they found.
These information systems can be taken over
and utilized for some of the initial information
inputs which will be necessary on graduates as
well as non-graduates coming from the school
system and entering into the labor force.
In addition to the use of computer systems
for providing a means of communication between the demand and supply sides of the labor
market, there is also a fascinating opportunity
to utilize the computers as a current analytical
tool for determining the relationships between
various economic, social, and educational characteristics of the employees or unemployed labor
force in the population and the degree to which
these characteristics affect mobility, job-seeking patterns, ease of placement, labor turnover,
and other factors which are of prime consideration in the development of manpower policies.
At the present time, we know very little concerning these sorts of factors and the degree
to which there are correlations between these
factors and other behavioral characteristics and
placement possibilities of the unemployed as
well as the employed in the labor force. By
use of computers, we may also be in a far better
position to determine the degree to which individuals \vith a broad array of skills may be
underemployed in our economy. Once having
established the basis for gathering information
and communicating th}s information on individuals seeking jobs as well as employers seeking
skilled individuals for jobs which are available;
there is the potential for continuing to gather
information \vhich can be coded on the basis of
Social Security numbers with regard to types
of skill, hours of work, units of output or productivity, and other such economic and social
characteristics while the individual is actually
employed. This information can be collected,
collated and analyzed on a current basis and,
with such information being available, there is
the possibility of our being able to move away
from the rather limited sample which we now
use to measure unemployment in the United
States. Further, it presents us with the intriguing possibility of being able to put a tracer
on individuals who have been displaced for various reasons from an industry, the degree to
which they find new employment, the nature of
the new employment which they find and the

160

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

levels of wages which these individuals are able
to obtain in these new forms of employment.
This is particularly intriguing because, at the
present time, the major argument raging between economists concerning whether or not
unemployment is due to structural factors, including technological unemployment, or too low
a level of aggregate demand has been subjected
to no truly rigorous research treatment. Each
side of the argument obtains major support
from deduction, logic, Jl.nd scanty data rather
than from large-scale analytical research procedures involving survey techniques and directly relevant primary data. Before closing,
I would like to suggest one additional fascinating potential application of computer technology to a difficult manpower problem--;that of
designing more effective training systems.
Among these systems I would include both vovational training at the high school level and
adult re-training at the post high school level.
If we regard this sort of training as a schedul-

ing of a mix of sequential, overlapping and
concurrent phases, where the optimal situation
is one where we can fO-recast time "bottlenecks"
and choose options which shorten or eliminate
these bottlenecks, we are really considering the
application of PER T and critical path method
techniques for training and curricula design
problems. The scheduling of education, very
much like the scheduling of a Polaris project,
calls for the same awareness of the trade-off
potential between time and money and the development of PER T network or critical paths
which permit the design of a system more concerned with producing an end product in less
time rather than being concerned with a marginal savings of funds. This is not only of significance with respect to scientists and engineers but also with regard to potential juvenile
delinquents and heads of families who, without
work or meaningful job roles, represent serious
personal and social costs with which we are
already becoming familiar.

THE COMPUTER REVOLUTION AND THE SPIRIT OF MAN
Robert H. Davis
System Development Corporation
Falls Church, Virginia
these people but on the' psychological problems
they face.

Many of us are gradually becoming aware of
the fact that an enormous number of Americans
live in abject poverty. While estimates of their
number vary, it is certain that millions of people
in this country live in chronic need, perhaps as
many as one out of every four of five citizens. 4
Children, the sick, and the aged constitute a
large part of this number; but also included
among them are approximately four million unemployed Americans on whom millions of additional citizens once depended for their support.
Many of these people are victims of automation
and the computer revolution. John Snyder,
President of U.S. I'ndustries, has estimated that
automation is a major factor in displacing
40,000 workers per week. The Department of
Labor, which is more conservative, estimates
the rate of displacement through automation at
4,000 per week.

Underlying many of the psychological problems which the unemployed face in trying to
adjust to their condition is the fact that the
prevailing value system in this society places
great stress on the virtue of work. Although
many observers have commented on this, one of
the best known was Max Weber who called it
the Protestant ethic. 9 The central notion in
the Protestant ethic is the idea that labor is
noble whereas idleness is immoraL The fact
that Weber, a German, chose an American,
Benjamin Franklin, as the exemplar of the
Protestant ethic emphasizes the degree to which
this country is uniquely identified with it.
The aphorisms of Franklin are rich in their
reference to the moral value of a man's labor.
Franklin, at one point in his career, set out to
distill the essence of moral perfection into 13
virtues, one of which was industry.3 "Lose
no time," he advises. "Be always employed in
something useful; cut off all unnecessary action."

But poverty is not the only threat to those
who have been displaced by automation. Even
if the unemp]oyed are provided an adequate
standard of living, millions will still be threatened by psychological problems which have their
roots in two conditions of the contemporary
American scene. First, most unemployed people
hold values based on the Protestant e,thicvalues which are ill-suited to a world in which
there is not enough work to go around. And
second, there is the machine itself, particularly
the computer, which is presented to the worker
as being faster, more accurate, more reliable,
and in short, better than he is. In this essay I
would like to focus not on the physical plight of

In Poor Richard's Almanac, Franklin makes
these additional observations on work and idleness:
"At the working man's house hunger looks
.
in, but dares not enter."
"Plough deep, while sluggards sleep, and
you shall have corn to sell and keep."
"Trouble springs from idleness."
161

162

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

No twentieth century American is entirely
free of his cultural ties to Benjamin Franklin
or the Protestant ethic. Despite occasional jokes
to the contrary, most of us feel uneasy when we
are away from the daily working routine too
long. Indeed, as our jobs become more abstract
and it becomes more difficult to point to concrete
products resulting from our most intensive
labors, many of us are plagued with doubts.
Are we in fact needed? Are we paying our
way? Or are we perpetrating a gigantic hoax
on a world too confused to recognize what it
does, in fact, need?
Our uneasiness is rooted in the fact that ,work
is the principal avenue by which Protestant man
fulfills his potential as a unique and creative
human being. Although our daily life is filled
with numerous activities, work and sleep consume the largest part of our days; and in no
other sphere is the potential for self-realization
so great as work. To question my work is to
threaten my value as an individual; to deprive
me of work is to take from me the opportunity
to give meaning to my life-the opportunity to
achieve and to be recognized by my fellow
human beings. The important point to note here
is this: a man's labor does more than supply
the necessities of life; in this culture, it also
feeds hidden and only dimly understood psychic
needs as well. Though a man may have more
money than he requires to satisfy his own needs
and those of his family, he still feels impelled
to work. Work is an autonomous activity: it is
good in and of itself, having a value surpassing
the immediate ends it serves. "God gives all
things to industry," says Poor Richard. To not
work, on the other hand, is bad. "Be ashamed
to catch yourself idle," as Poor Dick says.
Though it may be otherwise on some far off
Pacific Island, in this culture the average man
who does not work feels guilty and useless, and
this, unfortunately, is true even though he is
unable to work through no fault of his ownbecause he is too sick or too old or too young or
too poorly trained.
While the unemployment statistics do not tell
the whole story, they suggest that there is a
great deal of psychological, as well as physical,
misery in this country.ll The plight of such
"special" manpower groups as the young, the

old, and the minorities is particularly tragic.
Unemployment rates for teenagers are three
times the national average and have risen
almost 70 % in the past five years. Older
workers-those over 45 years old-are similarly
disadvantaged, finding it difficult to find a new
job once they lose their existing one. They account for a disproportionate percentage of the
long-term unemployed, and many older workers
":retire" prematurely to avoid the psychological
stress of hunting for non-existent jobs.
Minority groups are hardest hit. Unemployment rates for non-whites are in almost all cases
twice the rate for whites-regardless of educational level, age, sex or skill. This means that
non-white unemployment rates for teenagers
amount to about one potential worker out of
three; and in some areas, only one youth out of
two has found a job.
One could go on citing such statistics as these
endlessly, but that is really unnecessary. These
data point up the central fact that millions of
people are caught in a fearful conflict. They are
unable to find jobs in a culture where the prevailing ethic is "work or be damned."
These statistics appear to have had very little
impact on the drive to replace' men with machines. Indeed, the moral imperatives which
guide the computer revolution seem to take for
granted that man will somehow bungle through
if the machine is properly tended. Writing in
Harper's in 1951,6 two Canadian physicists,
E. W. Leaver and J. J. Brown, suggest that
widespread automation will bring an era of
peace and creative human development. Their
basic principles, which will presumably bring
about this new era of peace and prosperity, are
notable for their emphasis on the machine,
rather than on man himself, as the source of
human salvation.
1. Machines should replace men wherever

2.
3.
4.
5.

possible.
Men should not be used for routine operations if machines can do the work.
Automaticity of machines should be encouraged.
Automaticity of men should be discouraged.
Men must be ancillary to machines.

THE COMPUTER REVOLUTION AND THE SPIRIT OF MAN

To a generation which has grappled with suCh
earth-shaking problems as the control of nuclear
weapons, the belief that machines should replace
men or that men should be ancillary to machines
may seem trivial. But in point of fact, it may
be as revolutionary a change in the beliefs of
man about himself as the shift which occurred
with the widespread acceptance of the heliocentric rather than geocentric view of the universe.
Before the general acceptance of the heliocentric view of the solar system~ most people saw
a special significance in the fact that the sun
and stars apparently circled the earth; it seemed
to imply that man, who was obviously first on
earth, must therefore enjoy a special relationship to the entire universe. But even then, men
could still look around them and find in their
own handiwork something special, something
which set them apart from other living things.
Veblen, in fact, considered a sense of workmanship chief among the instinctive dispositions of
man. 7 The new doubts which the machine
has cast on the capabilities of man are sufficient
to shake his faith in himself to the very roots.
In the past, as machines extended human
capabilities, they freed men from much of the
drudgery that characterizes more primitive societies. Even today in many underdeveloped
societies, virtually every member must devote
all of his waking hours to the finding and preparation of food. There is not enough excess
capacity in these societies to free more than a
few individuals for other kinds of activities.
Under such conditions, machines make good
economic sense. While the rationale behind the
quest for newer and better machines is still
largely economic, we seldom ask what we are
"freeingH men from and what we are "freeing"
them for.
Underlying the relatively high value which
we place on the machine is the notion that men
really aren't very efficient mechanisms. Machines can do many things better than men, and
some would assert that machines can do most
things better than men. We are told that they
are faster; that they are more accurate; that
they are more dependable; and there are those
who believe that computers rather than men
should really make many decisions.

163

It would be well to note that it makes very
little difference, for the purpose of this discussion, whether the machine is or is not superior
to man. In many ways the issue is academic.
What really matters is the extent to which the
average person is convinced that the machine
will replace . him because it is better- than he is.
With the enormous prestige of science standing
behind us, I submit that we have unwittingly
convinced the average man (who may not in
any case hold himself in very high esteem) that
he is in fact not really worth very much. This,
I fear, is a most serious mistake, first because
of the impact it will ultimately have on our culture, and second, because it is not true!

Clearly the proposition that men should be
replaced by ma~hines because they are better
than he is inconsistent with the Protestant ethic.
If a man must work to feel worthy and needed
and we persist in eliminating him, then the
result must inevitably be a profound and possibly disastrous change in the fabric of our culture. While no one can predict precisely the
social consequences of this state of affairs, most
social scientists to whom I have talked are not
optimistic.
To the sociologist, the disparity between the
prevailing Protestant ethic and the realities of
modern life as experienced by many unemployed
people leads to an alienation between the individual and his reference group. Emile Durkheim 2. in his comprehensive study of suicide
used the term "anomie" to describe the condition in which an individual is constantly forced
to compromise his established values when they
conflict with the existing reality-a condition
which inevitably results in a feeling of separation and rootlessness.
From the viewpoint of the psychologist, most
problems are rooted in conflict and frustration.
When the society places inconsistent demands
on the individual, insisting, for example, that
he both work and accept the fact that jobs are
not available, he struggles to resolve the inconsistency. In the absence of more effective response alternatives, the individual can be
expected to invoke certain well established psychological mechanisms in order to adjust to
continuing conflict and frustration. Aggression,
regression, fixation, and in the face of prolonged

164

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

frustration, apathy, withdrawal and resignation, are mechanisms used to some extent by
normal individuals. But when tension persists
despite all efforts to remove it, and the individual resorts to inappropriate psychological mechanisms as a "way of life," the consequences
are potentially very serious for his mental
health.
The clash between the Protestant ethic and
automation threatens to place literally tens of
millions of Americans into what is essentially
an irresolvable conflict situation. In the absence
of socially acceptable alternatives, the most
likely result of this is the relatively permanent
adoption of one or more inappropriate psychological mechanisms. This is basically an unhealthy state of affairs.
Many advocates of the machine-over-man position declare that we wilJ automatically adopt
healthy alternatives-that we are entering a
new era where the workman will turn to culture
and the arts, thereby resolving the conflict in a
socially acceptable and useful way. This seems
unlikely.
According to statistics published by the Department of Labor, 11 the following educational levels can be expected to prevail in the
1960's:
For youths, if current trends continue, approximately 30 per cent of those entering the
labor market (7V~ million young people) will
not complete high school. Approximately 21/2
million of these will not even enter high school.
For non-white workers, the situation is even
worse. As of March 1962, one out of every three
non-white workers had not completed an elementary education, and only one in five had
completed high school.
These educationally deprived groups, who will
be the hard-core unemployed of tomorrow, do
not appear to be particularly promising candidates to lead America in a new cultural renaissance-nor do the masses of older employed
Americans who suddenly find themselves displaced by machines.
In Oklahoma City, in 1960, an intensive effort
was made to help displaced workers after the
closing of the Armour plant. One hundred and

seventy people were tested, but only 60 showed
promise for retraining. As a matter of fact, out
of a total of 431 workers invited to be interviewed, only 143 men and 27 women completed
both tests and interviews. 10
In another recently published study,13 the
Labor Department compared the characteristics of all unemployed workers with those of
30,650 trainees enrolled in Federally financed
retraining programs. Older workers are poorly
represented in such programs. Only 5.7 per cent
of trainees are over 45 years of age, and yet, 28
per cent of the unemployed fall into this age
group. From the report, it is not clear why these
people are so poorly represented, but one suspects that they are simply not prepared to build
new lives for themselves through retraining.
Whenever they are called upon to change their
ways dramatically, older people must overcome
a lifetime of learning and powerful habits built
up through years of conditioning. The report
notes that many older people are undereducated
and unskilled and have little to offer the economy. It is reasonable to suppose that many of
these people are undereducated because even in
youth they were not highly motivated to learn,
and that many of them simply have no wish to
learn now. On the other hand, prodded by the
Protestant ethic, they do have the desire to play
a useful role in this society. It seems completely
naive to believe, as some apparently do, that
this need can be satisfied by social activities
which demand a radical reorientation of their
existing modes of behavior.
The new society will provide the potential
for additional leisure, but a large proportion
of the population is unfortunately ill-prepared
for leisure. They are ill-prepared, first, because
leisure is antithetical to the Protestant ethic,
and second, because the enjoyment of leisure
requires preparation for it. Relaxation may
come naturally to us as children. But the ability
withers under the regimentation of a civilized
society, as evidenced by the emotional and
psychological preparation required by most men
who have worked all their lives and who are
suddenly faced with the full-time leisure of
retirement.
Will the unemployed voluntarily turn to education in search of a solution to their conflicts?

THE COMPUTER REVOLUTION AND THE SPIRIT OF MAN

While I am not~ a ware of any research directed
at answering this specific question, a recent
study 12 by the National Opinion Research
Center provides some interesting information
about the kinds of people currently participating in adult education programs. Although one
out of five adults follows some plan for leisuretime education, the "typical" participant is
apparently not one of the "other Americans."
Indeed, the "typical" participant is described
by the authors as a man or woman who has completed high school, has an above-average income,
a full-time white collar job, and is a white married Protestant living in a city or suburb.
What very few people seem to fully understand is this: large numbers of unemployed
people lack the most elementary academic skills,
.such as the ability to read well. In view of the
fact that millions are insufficiently trained to
find work, or even warrant retraining, and that
many more are past ,their prime, fixed in their
ways, and poorly adapted to change of any kind,
it seems unlikely that they will turn to cultural
interests.
Nor do these remarks apply solely to the
laborer. It would be foolish to believe that the
computer revolution will stop with the man in
the denim shirt. On the contrary, white-collar
automation is at least as great a threat as bluecollar automation. Today, white-collar workers
being replaced are those who are engaged in
basically routine tasks, but if the past is any
guide to the future, the "clip level" will gradually rise to encompass literally millions of additional white-collar workers. In the crudest
terms, computers are installed because they
make economic sense, and they make the most
economic sense where they eliminate high-cost
manpower. Managers aren't installing computers for the fun of it; they are installing them
because they save money, largely by doing tasks
which would otherwise be performed by
humans. To review each of the areas in which
this is true would be both tedious and unnecessary. Airlines, banks, brokerage houses, manufacturing firms-virtually all sectors of the
American economy-are discovering the simple
fact that computers cut labor costs.
Whether white-collar workers will turn, en
masse, to the classics, art, music, or even do-i,t-

165

yourself projects, is not easy to foresee. But
even if millions do turn to cultural pursuits, it
is safe to predict that millions will not. What
of them? Like their friends in denim shirts,
they too are products of a Protestant ethic.
To summarize, millions of unemployed Americans, and millions more who may soon be displaced by automation, are psychologically
threatened from two directions at once. First,
there is the thre~t created by the fact that they
hold a value system-the Protestant ethicwhich is contradictory and ill-suited to the
world in which they find themselves. And second, there is the threat presented by the machine itself-the computer-which makes the
individual feel insignificant and inferior by
comparison. *
What are we to do about the psychological
problems I have described?
I have shown that the continuing process of
automation challenges one of the most fundamental factors in the psychological makeup of
the American individual. While we are probably unwilling and even unable to stop automation, it is within our power to change the nature

*Although I am convinced that what matters here
is not whether machines are really superior to men but
what people believe to be true, I cannot leave this topic
without making Qne or two comments. Many authorities
appear to feel that machines will some day simulate all
of the important properties of human intelligence. As
a psychologist, I am frankly a skeptic.
In a recent article published in Datamation,l Paul
Armer deplores the fact that we keep redefining intelligence so that it is always just out of the reach of the
machine. The fact of the matter is "intelligence" and
"thinking" have always been concepts just out of the
reach of scientific psychology, as well. We don't really
know how to define them in an entirely satisfactory
way. Indeed, that is the problem. I'm sure that if these
terms are ever defined in a way which encompasses the
full richness of the phenomenon to which they generally
refer, then it will be possible to simulate them.
But, to be satisfactory, the definition will have to
include some extremely frustrating aspects of human
behavior. For example, any really adequate definition
of thinking will have to recognize the fact that perceptions are selective and shaped by past experience; that
the mind wanders down strange and wonderful unprogrammed paths; and that the most creative thoughts
are sometimes elicited by the most illogical and bizarre
associations. In short, the very features of man which
make him slow and unreliable may be his most valuable
properties.

166

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

of automation by making it more sensitive to
human variables. To the extent that our analyses of the benefits of automation ignore human
costs, they are incomplete. There are costs associated with retraining, with the support of the
unemployed, with social dislocation, and with
the psychological misery of the displaced
worker. In general, when the benefits of automation are calculated, these costs are ignored.
Taxation may spread such costs over a broad
base, but they are still enormous--and they will
continue to grow as automation expands. It is
important that compu.ter scientists become
sensitive to these human and social costs so that
systems analyses include all of the relevant
variables.
Second, although the task will take decades,
we must begin to change the Protestant ethic.
Changing the Protestant ethic will involve a
dramatic reorientation of our society. Most
important, we will have to learn to live with
the fact that the day is not far off when computers and improved machines will make it impossible for ever-increasing numbers of Americans to fulfill their potential through work.
Many of our children can expect to spend a
large part of their lives in leisure. To this end,
public education should modify its curricula to
prepare our children and grandchildren not only
for work but for the more profi,table use of free
time as well. Unlike many who see in every
subject which is not blessed by Admiral Rickover a direct threat to the American way of life,
I believe we should begin to emphasize in our
schools the constructive use of leisure by encouraging our young people to participate in
the full range of life's activi,ties, including art,
music, drama and similar fields which today are
seen by many to be frills. Also, the society
should recognize and reward excellence in these
fringe areas as much as it does in more traditional fields. While I do not believe we should
turn our backs on science, we should not allow
it to consume us either.
Third, we must re-examine the economic base
of our society. Up to the present time, we have
forced man to work if he wished to receive an
income. If we can no longer provide work in .the
traditional sense for everybody, we must reconsider how the unemployed are to be provided
with resources and what volume of resources

they should receive. Already, some writers have
suggested that every individual will have to be
given an absolute right to an income adequate
to live his life in dignity.s
Fourth, there is the requirement that we educate every citizen to the limit of his abilities.
To the extent that people are needed at all in
the emerging, new society, they must be educated. Most of those who are not educated will
be cast ruthlessly aside. Furthermore, education is a profitable way to consume ,time which
might otherwise be spent in antisocial or socially maladaptive ways. Therefore, the right
to an education is an essential guarantee-not
only for the protection of the individual but for
the protection of society as well.
Finally, we need more information about the
problems of the unemployed. We are in need
of better psychological data about the displaced
worker, his attitudes toward society, the way
he spends his time, and his fears for the future.
We must try to determine the extent to which
the conflicts I have postulated lead to an alienation of the individual from society and how we
can prevent this from happening. We need to
know more about how to prepare people to accept change, particularly older workers. We
must refine our tools for predicting future
trends so as to properly prepare our young people for the world they will someday face.
Carl Jung 5 once remarked that in science
"the individual man and, indeed, all individual
events whatsoever suffer a leveling down and a
process of blurring distorts the picture of reality
into a conceptual average." In the scientist's
search for lawfulness, he abstracts a way complexity and reduces the individual to a statistic.
So it is with all of the statistics which I have
cited. The individual is lost. But if we look beyond the abstraction to men, as living, breathing individuals, there is much to be concerned
about in this affluent society of ours.
REFERENCES
1. ARMER, PAUL. "Attitudes Toward Intelligent Machines," Datamation. March 1963,
pp.34-38.
2. DURKHEIM, E. Suicide A study in Sociology. Glencoe, Illinois: The Free Press,
1951.

THE COMPUTER REVOLUTION AND THE SPIRIT, OF MAN
3. FRANKLIN, BENJAMIN. The Autobiography
of Benjamin Pranklin. New York: Books,

Inc., n.d.
4. HARRINGTON, MICHAEL. The Other America. New York: W. W. Norton & Company,
1962.
5. JUNG, C. G. The Undiscovered Self. New
York: The New American Library of
World Literature, Inc., 1961.
6. LEAVER, E. W., and BROWN, J. J. "Electronics and Hurllan Beings," Harper's
Magazine. August 1951, pp. 88-93.
7. LERNER, MAX (Ed.). The Portable Vebelen.
New York: The Viking Press, 1958.
8. THEOBALD, ROBERT. Free Men and Free
Markets. New York: Clarkson Potter,
1963.

167

9. WEBER, MAX. The Protestant Ethic and
the Spirit of Capitalism. New York:
Charles Scribner's Sons, 1958.
10. "Automation: Report of the Armour Committee." Bureau of National Affairs, No.
419~ June 23, 1961, 16 :621.
11. "Nation's Manpower Revolution." Hearings before the Subcommittee on Employment and Manpower of the Committee on
Labor and Public Welfare, United States
Senate, Eighty-Eighth Congress, First Session, Part 4. Washington: U.S. Government Printing Office, 1963.

12. The New York Times. May 20,1963, p. 31.
13. The New York Times. December 1, 1963,
pp.l & 48.

NEW DIFFERENCE EQUATION TECHNIQUE
FOR SOLVING NONLINEAR DIFFERENTIAL EQUATIONS
James M. Hurt
Associate Engineer
IBM Corporation
Data Processing Division
Kingston, New York
INTRODUCTION

Until the present technique was developed,
a general purpose digital computer was unable
to achieve a real-time solution for the more
complex design simulations. The primary obstacle to the digital approach was the excessive
COTI1puting time required ior simuiating the
vehicle's control system and rotational motion
equations by avaHable numerical techniques.
The roll, yaw and pitch channels of the aircraft
used as an example are represented by fifteen
linear and nonlinear differential equations in
addition to algebraic equations. The highest
input frequency is approximately three cycles
per second; the maximum transient response
frequency is 60 cycles per second. The solution
time for these equations on the IBM 7090 by
Runge-Kutta integration is 3.0 seconds for each
second of flight time. When solved by the new
technique, the same equations require only 0.17
seconds of computation time for each second
of flight time. This solution-time reduction, in
addition to a reduction in the computation time
for the vehicle dynamics equations, permii3
a digital computer to perform the simulation in
real time.

This paper will discuss a new mathematical
technique for the solution of nonlinear differential equations. The types of equations and nonlinearities presented are those associated with
feedback control systems. Originally developed
as a method for simulating control systems, the
technique was verified during a recent study
of complex aircraft design simulations. It is
now being used in a man-in-the-Ioop Gemini
spacecraft simulation.
Since these design simulations include man
as a component part, it is imperative that they
be performed in real time. For many years,
the analog computer with its parallel computing ability has been used for the real-time design simulation of aircraft. In more recent
years, the analog computer has assumed the
same role for missiles and space vehicles. Presently, aircraft systems have become more complex, space vehicle missions require more hours
of simulation time to complete a maneuver, and
high-performance missiles require more logical
decisions in their phases of flight. Because of
these conditions, it has become more difficult
to expand, use and maintain the large analog
systems which are required to perform realtime simulation.

This paper will describe the theory of the
new technique as applied to the flight simulation problem. Autopilot and power controls
equations, and vehicle dynamics equations will
be used as examples.
169

170

PROGE,EDINGS---oSPRING JOINT COMPUTER CONFERENCE, 1964

p

Figure 1. Transfer Function Diagram for Aircraft Roll Channel.

PROBLEM DEFINITION

SOLUTION METHOD

Figure 1 illustrates the Laplace transfer
function diagram of an aircraft roll channel. *
The yaw and pitch channels are of similar form
and will not be discussed. This transfer function diagram represents the mathematics of
the vehicle's roll rate as a function of autopilot
( = 65.2of

+K

ll

rq + K 12r + 19dr

-

12.2p
(28)

Limiting Gain

Laplace and
z Transform, T = •05

z Transform
T

= •2

1.000

-1.0 * j 2.00

-1.0* j 2.000

.922

-1.0*jl.90

-1.0 * j 1.899

.848

-1.0* j 1.80

-1.0 * j 1.797

.778

-1.0 * j 1.70

-1.0 * j 1. 696

.712

-1.0 * j 1.60

-1.0* j 1.595

.650

-1.0 * i 1.50

-1.0 * j 1.493

.592

-1.0 * j 1.40

-1.0* j 1.393

.538

-1.!l * j 1.30

-1. 0 * j 1. 292

.488

-1.0 * j 1.20

-1.0*J 1.191

.442

-1.(H j 1.10

-1.0* j 1.091

The flight region was chosen near the high
performance end. This choice was made so
that the coefficients in equation (28) would be
near these maximum values. This enables the
analysis of the root locus for the overall feedback system to be made at maximum loop gain.
Fora lesser performance region, the coefficients
would be reduced. This would cause a reduction
in loop gain and a shift of the operating point
of the root locus. As previously shown, a good
match between the actual system root loci and

Figure 10. Root Locus Comparison.

ROLL CHANNEL EXAMPLE
This example will explain the important
features of the z transformation of the roll
channel of Figure 1. Figure 1 is expressed in
Laplace notation, except for the roll acceleration (p) equation. Before the z transform is
computed, this equation is placed in Laplace
notation. The equation for p contains timevarying coefficients and crosscoupling terms
from the yaw and pitch channels. These crosscoupling terms have been expressed as a function of time only; however, they are mutually

Figure 11. Transfer Function Diagram for Aircraft
Roll Rate.

NEW DIFFERENCE EQUATION TECHNIQUE FOR SOLVING NONLINEAR EQUATIONS

177

Figure 12. Roll Channel Z Transform Transfer Function (Roots and Steady-State Gain Unadjusted).

the z transform root loci is possible for lower
loop gains.
Figure 11 is the transfer function diagram
of equation (28). The diagram shows the crosscoupling terms as inputs.
The transfer function of Figure 11 is used
in place of the portion from af to p in Figure
1. Once this substitution has been made, the
roll channel transfer function is transformed
into z notation. This transformation of the
forward loop proceeds one inner feedback loop
transfer function at a time. The procedure for
transforming e.ach inner loop is the same as
discussed previously and will not be repeated.
A solution- rate of 20 solutions per second was
chosen. This rate gives satisfactory results and
permits a real-time solution. Figure 12 is the
resulting z transformation.
After performing the z transformation of
the individual loops of the system, there still
remains one final loop gain adjustment. This
adjustment is necessary to match the roots and
gain of the z transform system to the Laplace
system. The adj ustment in loop gain is determined by comparing the root locus of the z
transform with the root locus of the Laplace
transfer function. A root locus program II was
II The Control System Analysis Program computes
root loci for linear, continuous or sampled data systems
in open-loop form. The input data may be in either
S or z transform notation, or any combination of these,
and may contain transportation lags. Options include
z transform computation pole-zero loci, and gain loci for
a specified gain.
The method of computing the root locus is described
in the paper "Numerical Methods for the Synthesis of
Linear Control Systems" by Maurice E. Fowler. The
paper was published in the 1963 Volume 1 of Automatica, pp. 207-225.

used which computes points on the root locus
for various values of gain (K) which the program inserts in the loop. The gain adjustment
for the z transform system is determined by
finding the roots of the Laplace system for
K == 1, and then comparing the gain of the
z system at the same point in the S plane.
Figure 13 is a plot of the two -root loci in the
S plane.

Desired

Z Trans.fonn .
Operating POint.

II

1.24~r

G:tdTU:t::i~~: i16,;it-.~t\\11
Factor = .905

#
JI -

.8874

Legend:
- - - Z Transfonn
--laplace

- .V

1.419

.979

laplace Operating
Point
Gain Factor = 1.
Root = 19.917 +
j16.21

jl6

I
.591

.635

jl2

.369-

.390

i 8

.232

.242

i 4

-24

-16

-8

o

Figure 13. S-flane Root Locus Plot with Gain Factor
(K) as a Parameter.

Since the computer did not calculate roots for
K == 1, a linear interpolation was used to determine the K == 1 point. The resulting root is
S == -19.917 + jI6.210. The adjacent z root

178

PROCEEDINGS--SPRING JOINT COMPUTER CONFERENCE, 1964

Figure 14. Roll Channel Z Transform Transfer Function (Roots and Steady-State Gain Adjusted).

locus does not have the same real part due to
the characteristic lead introduced by the
method; however, a close match may be obtained by using the imaginary part of the root.
For ImS == 16.210 on the z locus, the gain is
determined by linear interpolation to be K ==
0.905. Since this gain should have been unity,
the z root locus was matched to the Laplace by
reducing the z loop gain by a factor of .905.
Figure 14 is the final z transform of the roll
channel. The loop gain adjustment was made
in the forward and feedback loops. This was
done to adjust the steady-state gain of C/>C to p,
and also to obtain the correct system roots.
Figure 15 shows in chart form, the Laplace
and adjusted z transform root loci. Values of
gain less than unity may be thought of as a
reduction in loop gain due to limiting in the forward loop. The values of gain shown in the
chart are not the actual loop gains, but are
multiplicative gain factors inserted in the loop.
z Transform
T; .05

Laplace

R

Root

Root

S;Re ± jIm

S;Re ± jIm

I

Limiting Gain

R

I

m

K

-19.917

16.50

1.029

-20.323

16.52

-19.917

16.00

• 979

-20.308

15.98

-19.933

15.50

.931

-20.308

15.46

-19.948

15.00

.884

-20.292

14.91

-19.948

14.50

.839

-20.292

14.38

-19.964

14.00

.795

-20.277

13.84

-19.964

13.50

.753

-20.277

13.32

-19.980

13.00

.712

-20.261

12.79

-19.980

12.50

.673

-20.261

12.27

-19.995

12.00

.635

-20.245

11.76

e

e

Figure 15. Root Locus Comparison.

m

If, for example, the actual loop gain was 10,
then for K == .90, the system would be behaving as one with a loop gain of 9.
One last point worth mentioning is that the
root loci of Figure 13 are only a portion of the
loci of the Laplace and Z transform systems.
Actually, the z transform roots repeat themselves up and down the imaginary axis at multiples of 27r/T. It is only necessary to match the
primary roots of the z transform. The other
multiple roots will automatically be matched
when the primary roots are matched to the
Laplace roots.
CONCLUSION
The difference equation technique described
in this paper has been successfully applied to
aircraft and spacecraft simulations. In these
simulations, the difference equations were used
primarily to describe the mathematical behavior of both linear and nonlinear control systems. A reduction in the computing time for
simulating these control systems was achieved.
This reduction ranged from a factor of 15 to 20.
The results of this technique may be made
to agree almost exactly with those obtained
from standard Runge-Kutta integration techniques merely by increasing the solution rate .
However, increasing the rate will increase the
computation time which may make the realtime criterion difficult to achieve. The aircraft simulation was solved at a rate of 20
solutions per second. The maximum instantaneous deviation from Runge-Kutta solved at
2,000 solutions per second for the output of the
roll, yaw, and pitch channels was about 0.5%.
The steady-state values agree almost exactly.
The stability of the simulation is known be-

NEW DIFFERENCE EQUATION TECHNIQUE FOR SOLVING NONLINEAR EQUATIONS

179

fore the simulation is actually performed. This
preliminary knowledge is gained, of course,
from the root locus plot.

ACKNOWLEDGEMENT

The difference equation technique may be
applied to a wide range of control problems.
Other possible applications for the technique

The difference equation techniques described
in this paper were originally developed by
Maurice E. Fowler of IBM.

outside the aerospace field are hydrofoil boats,
submarines, and industrial control applications.

APPE.NDIX-BASIC z TRANSFORMS
t Domain

S Domain

z Domain

ANY

f{t)

F(S)

F(z)

STEP

u(t)

S

RAMP

t

1
S3

Tz
(z - 1)2

PARABOLA

t2

2
S3

T2(z2 + z)
(z - 1)3

N arne of Function

EXPONENTIAL

e_at

SINE

sin bt

COSINE

cos bt

DAMPED SINE

e-at sin bt

DAMPED COSINE

e-llt cos bt

I

I

1

z
z -

1
S + a

z
z -

+

b2

Z2_(COS bT)z
z2-2(cos bT)z + 1

S
S2 +b2
(S

+

(S

+

S

e-a'r

(sin bT)z
z2-2(cos bT)z+l

b

82

1

b2

e-aT(sin bT)z
z2-2e- 'l'(cos bT)z + e'--211'1'

+a
a)2 + b2

z2_ell 'l' (cos bT) z
z2-2e-IIT (cos bT) z + e'-2nT

b
a)2

+

II

I

BIBLIOGRAPHY
1. FOWLER, M. E., Numerical Methods for the
Synthesis of Linear Control Systems, IBM
TR 24.001.
2. JURY, E. 1., Sampled-Data Control Systems, John Wiley & Sons, Inc., pp. 1-63.
3. LEONDES, C. T., Computer Control Systems
Technology, McGraw-Hill, pp. 307-362.

4. RAGAZZINI, J. R. & FRANKLIN, G. F., Sampled-Data Control Systems, McGraw-Hill,
pp.I-116.

5. TRUXAL, JOHN G., Automatic Feedback
Control System Synthesis, McGraw-Hill,
pp. 501-557.

DISCONTINUOUS SYSTEM VARIABLES IN THE
OPTIMUM CONTROL OF SECOND ORDER OSCILLATORY
SYSTEMS WITH ZEROS*
Lt. Cmdr. William B. Nevius, U.S.N.
Norfolk Test and Evaluation Detachment
Norfolk, Virginia
and
Harold Titus
Assoc. Professor of Electrical Engineering
U. S. Naval Postgraduate School
Monterey, California
I. INTRODUCTION

tions in the system adjoint to the one being
controlled. Generally these initial conditions
are difficult to find.

When controlling the performance of a system, it is often desirable to choose the control
that will minimize errors in the system and do
it in the shortest possible time. A practical
matter that must be considered in the optimization in relation to rapid action is the fact that
control is of a bounded nature. In a great many
important cases, the constraint on the magnitude of the control effort precludes the use of
classical variational techniques to design the
controller.

It is usually helpful to consider the control
problem using state space techniques. The coordinates of the space for an n til order system
here are a displacement error and its n-1 time
derivatives. The space may be divided into two
regions each of which is characterized by the
control optimal for the trajectories in that region. Optimum switching between the two conditions of the bang-bang control occur on the
hypersurface dividing the space. The switching
criteria can then be stated as a function of the
state space variables.

In 1956 Pontryagin hypothesized his "maximum principle" which has since been proven a
necessary condition for the optimization of
linear systems in relation to rapid action. 1
In solving the minimum time problem for linear
systems with bounded control, the principle
leads to a "bang-bang" form of control law.
This implies that the control effort is always
being applie.d at its maximum value. There remains, however, the task of finding the optimum time to s\vitch the control. Pontryagin's
method leads to a rule for switching the controller which is a function of the initial condi-

* Supported

Of considerable value in finding the switching
surface is the system adjoint to the system. The
adjoint can be thought of as the system running
in reverse time. By plotting trajectories from
the origin of the error state space "backwards"
in time, with the control satisfying the respective adjoint variables, a surface is generated
which may be related to the optimal switching
surface in the system state space.
A problem of interest occurs when the system is of such a nature that when control is ap-

in part by the Office of Naval Research.

181

182

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

plieo, a discontinuity appears in one or more
of the system states. This may happen when
the control is of a bang-bang form and the forward transmission path of the system contains
zeros. It could also show up if the control is of
such a form that it approximates an impulse
to the system. When there are discontinuities
in the state space due to switching it is generally no longer possible to write the switching
criteria as a function of the state space variables ..
One alternative might be to switch the control as a function of time. This may be done
effectively when the number of switchings to
reach the origin of the error state space is no
more than n-1 in an nth order system. Such a
restriction limits one mainly to considering
only those systems with real, distinct eigenvalues. Large disturbances in lightly damped
(oscillatory) systems may require more than
n-1 switchings to zero the error states. The
most important consideration when controlling
as a function of time is the means of implementing the switching logic. To accomplish time
dependent control, it is virtually mandatory
that a digital computer be inserted in the controlloop.
Another approach to the problem is to find a
system that reacts identically to the system
with zeros except at the points of discontinuity.
Control of this parallel system can be stated in
terms of the state space variables. This logic
can then be used to switch the original plant.
This paper will be an investigation into the
latter method. The prob1em is as follows:
Given a second order oscillatory system
with one zero, find the optimum control for
zeroing the errors in the system in minimum
time and for zeroing the errors with minimum fuel.
The method of Pontryagin is used to solve the
problem. The brief description of the method
presented here is based on the work of Rozonoer.l
II. PONTRYAGIN'S
PLE

MAXIMUM

PRINCI-

Given the system state variables described
by n first order differential equations
Xi = fi (x,u,t)
i== I, ...... , n
(1)
where x is a column vector in phase space and

is a column control vector consisting of r
control elements.

U

The control u(t) mu~t belong to a closed subset U of admissible controls and must be piecewise continuous. The trajectory x(t) in the
phase space is uniquely determined by (1) when
control u(t) and the initial conditions

(2)

are given.
The control u(t) of a system may be considered optimum under a variety of criteria. A
large class of optimization problems may be
solved by presenting the criteria in such a way
that the solution is attained by· minimizing a
linear function of the final value of the state
space variables. A control must be selected
from U that will transfer the system (1) from
XO to some fixed closed set G of the phase space
such. that
n+1
S ==

L

cjxi(T)

(3)

I
is a minimum. The constants Cj and the Xn +1
coordinate are chosen such that minimizing
(3) optimizes the system.

In a great many cases optimization of only
one of the coordinates of the system is desired.
For example, in order to optimize the magnitude of
T

f

F (x (t) ,u (t»

dt

(4)

°
for T and x(T) either fixed or free in a system
(1) for u(t)t:U, a new variable is introduced:
X n +l

==

f~(x(t),U(t) )dt

(5)

== 0
and another differential equation
XOu+l

== F(x(t),u(t»
is added to (1). The problem of optimizing the
integral leads to optimizing x n +l(T) at t== T.
Xll+l

DISCONTINUOUS SYSTEM VARIABLES IN THE OPTIMUM CONTROL OF SECOND ORDER

Minimizing Xn + 1 (T) in the system ( 1 ) with
Xn+l (t) adjoined is accomplished by putting the
problem in functional form (3) and applying
the maximum principle to gain the solution.
That is
n+l
S ==

L CiXi (T) == Xn dT)

(6)

+

1
is the functional to be minimized. Here
it may be seen that Cl == C2 == ••. , Cn == 0 and
Cn + 1 == 1.

A new dependent variable p (t) is now formed
such that
n+1
Pi(t) ==-

L

== 1, ..... , n+1

L

(8)

p,.f" (x,u,t)

1
is introduced from which equations (1) and
(7) may now be written

==

riH

riH _

_

.

Pi == - a--- .i == 1, ..... ,n+l (9)
Pi
Xi
The control u*(t) is said to satisfy the maximum condition if H(x*(t),p*(t),u*(t» reaches
an absolute maximum at each time t
;(IOL t .L T) 'where x* (t) and p* (t) are the
values of the variables at time t with u*(t) € U
controlling. For linear systems of the type discussed in this paper, the necessary and sufficient
condition for minimizing
n+l
Xi

~a~~

S

==

L cixj(T)

1
optimally with admissible control is that the
control satisfy the maximum condition.
To use the maximum principle, H is formed
and maximized with respect to u (t). This produces a
u* (t)

through the endpoint of the trajectory and
directed toward that portion of G where
n+l

== cp(x,p)

1

(7)

n+1

(10)

which may be used with Equations (9) and the
boundary conditions to find u * (x) . If the end

0

I

L

The function

==

L ai(Xi -Xi} ==

aXi

i

H

point of x(t) is not fixed, it becomes necessary
to obtain boundary conditions on p(t) in order
to arrive at a 'solution. The conditions p(T)
may be found using a function F(x) ==-~ 0 which
describes G and Xl (T) E G, the end point of an
optimum trajectory. The form of p(T) will be
stated without detailed explanation; however,
it may be noticed that at time t == T, p(T) is
orthogonal to a hyperplane
n+l

at. (x,u,t)

p"

183

n+l
C;Xj -":: : :.

I

C:X-, (T).

1

The coefficients ai may be expressed as a linear
combination of the Ci and b i (Xl (T», the latter
being coefficients of a hyperplane through
Xl (T) bracketting G. Thus
Pi (T) == - ACi - p.b i (Xl (T»
(11)
where A and p. are non-negative numbers one of
which may be set equal to unity as it is only
the ratio that is important.
Generally, three situations arise as to final
boundary conditions.
(i)

If Xi (T) are specified for i == 1,2, ..... ,
m then these become the boundary conditions for (9).

(ii)

If XiI (T) are internal points of G for
i (l L i L n+ 1) then b i (Xl (T» == 0
and Pi (T) == - Ci
o

(iii) If Xi,l(T) are boundary points of G for

some i(1 L i L n+l) then F(x(T»
and the Pi, (T) are as in (11).

== 0

When F is differentiable, the bracketting
hyperplane through Xl has coefficients
(12)
If finding the optimum control for minimum
transit time another condition must be fulfilled
since T is not fixed beforehand. This condition
is that H(T) == O.

184

PROGEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

III. DEVELOPMENT OF SYSTEM EQUATIONS
The equation of a second order system with
zeros may be written

C + 2,o)c

+ (J)2C == a1u + a.u

(13)
where c is the output variable of the system
and u is the output of a controller.
This paper is concerned with control of similar systems that are purely oscillatory in nature,
i.e., E~ == O. To facilitate ease of computation in
the analysis, Equation (13) is scaled to

N ow the problem of zeroing the error states
reduces to that of zeroing the error initial conditions in the system.
Finally with the introduction of state space
variables

(19)
the system equations can be written in vector
matrix notation

(14)

which when written in terms of the Laplace
transform of the output variable becomes

IV. THE MINIMUM TIME PROBLEM
The problem is stated as follows:

C(s) == (als st ~y(S)

(15)

This system is represented in block diagram
form in Fig. 1.

Given the system (20) and a control force of
bounded magnitude lui L. 1, find the optimum
control u * (t) to transfer the state variables
from some initial point in the phase space to
the origin of the phase space in minimum time

T.
That is, given
e (0) == en

e(T) == 0

Figure 1. Block Diagram of Control System.

Inl
The response of the system to a step input is
investigated more readily by means of the error
variable
(16)
e==r-c
If the input r is fed forward as in Fig. 2, the
Laplace transform of the error, given

(21)

1

L.

and the system (20), find u* (t) such that
T

S ==

f

a dt

(22)

is a minimum where a is a positive constant.
Introduce
T

en+1 == e, == S ==
Figure 2. Controlled System with Input Fed Forward.

c (0) == CO
c (0) == CO
(17)

(ro - CO)s -

dt

(23)

°

=

[-n ~]

e

+

r~

u

+ u1

(24)

Because of (21), the functional

becomes

E (s) ==

a

The system equations then become

e

R (s) == ru/s

f

+ a]r,,) S2 + 1

(CO

(als

+ 1) U (s)
(18)

3

S ==

L

clel (T) == c:{ea (T)

(25)

185

DISCONTINUOUS SYSTEM VARIABLES IN THE OPTIMUM CONTROL OF SECOND ORDER

and since we wish to minimize this, c:{ == 1 is
chosen. ea (T) is not limited, hence the boundary
condition becomes

=-

p:1(T)

C:1 == - I

(26)

By (8), the hamiltonian becomes
H == pte:! -p:!et +p:!(atu + u) +

P:1a

(27)

Since
-aH

Pa==~=O

it is evident that Pa is a constant and therefore
Pa == Pa(T) == 1 and now H is
H == PIG:! - P2eI + P2(alu + u) - a (28)
which is maximized in u if
atu + u == N[sgn P2]

(29)

+

where N == max Ial u
u I for each fixed
t(O L. t L. T). The control u* (t) which satisfies these conditions is a "bang-bang" type control where u == 1 at all times and u at the moment of switching is unbounded.
Since ea has served its purpose in the optimization process, we may now return to the second order system and solve for the "impulse"
variables. By (9),

r

OIl
P==L-10JP

(30)

where .6.e:! is the discontinuity in e:! at the time
of switching t".
One would now like to find a switching curve
L(e) which divides the phase plane el vs. e:! in

such a manner that control u* == +1 is optimum
in the space to one side of the curve and u * ==
-1 elsewhere. Control would be switched when
the trajectoty e* (t) crosses the curve. The discontinuity .6.e:! precludes this possibility. For
example, examine the trajectory e* (t) for some
initial conditions that dictate u* == -1 for optimum control. At the point where this trajectory crosses L ( e) the optimum becomes u * ==
+1. The control switches and .6.e:! == +2al
occurs which places the states back in the space
where u* == -1 was optimum. Here the control switches again, .6.e:!, == -2a, occurs and
chatter motion begins. The fact that e:! is multiple valued at the instant of switching makes
a simple realization of L (e) impossible.
For periods between switchings where u == 0,
the system is well behaved with the solution
for the kth interval

100\

\<.J<.JI

where S == 1 . sgn p:! and K,  T has two conditions imposed
upon it, i.e.,

or

y=[-~ ~JY +

[:'J8

(41)

where 8 is a unit step function with sign to be
determined. The system (41) is identical to
that of (20) except for the action at time of
switching. It should be noted, however, that
care must be taken in assigning final values to
the system described by (41) if the two plants
are to be controlled in parallel. The final value
theorem and (39) gives
lim Y2(t)
t~oo

==

lim sYt(s)
s~O

==

lim s( E2 (s) s~O

a~(») == -al()

(42)

From this it is observed that zeroing the final
states in (20) is analagous to zeroing Yl (T)
and attaining a final value
Yt (T)
in the system (41).

== -at()

(43)

ut(T) -

(47)

()(T)

The solution to (47) is
Y2(T) exp ( - t + T) t L T
al
al
(48)
It is assumed then that uAt) is available at
time t == T so that the boundary conditions on
the system are as stated in (46).
u!!(t)

== -

4.3 Switching functions
The method of finding a function L(y) with
which to describe the switching criteria for the
optimum trajectory proceeds as follows. As in
the discontinuous case, it is desired that
T

S

==

f

adt

(49)

o

* The conditions are stated in terms of the y variable
for convenience in order that notational problems arising from multiple value of e!!(O) be avoided.

187

DISCONTINUOUS SYSTEM VARIABLES IN THE OPTIMUM CONTROL OF SECOND ORDER

Ya

possiIIIt IIIII!II of p(T)
--aritt:IIi!Ig cerve

forlms-a

Figure 4. Concurrent Action of p (t) and y (t)
for y~(T) = -a l •

and
---rs=-I
-rs=+1
•
direction of
positive time
Figure 3. y 1

VS.

p~(T)

Y2 Phase Plane with Trajectories
for 0 = ± 1.

be minimized, therefore, another variable Ya ==
S == c~Y~(T) is adjoined to the system and
once again Cl == C2 == O. The hamiltonian becomes
H == P1Y2 + p]a]o -

P2Yl + P20 -

a (50)

This is maximized in 8 when
0==1 . sgn (alPI + P2)

(51)

With this control, trajectories are circular
about (0, -alo) with radius determined by yO.
(See Fig. 3.)
Previous agruments have determined that
the conditions on the system are
Y,,(O)

i == 1,2,3

Yi
0
al

Yi,(T)

IY2 (T) I L':::::
H(T) == 0
-1
P3(T)

(52)

The function
1

F ==2(Y~ -

ad

L.

0

=-'\C2-fLb:!(y:!(T»

=-fLY:!

(54)

where fL>O with modulus such that F (T) = O.
In the phase plane of p] vs. P:! it is sufficient to
note that for trajectories terminating at YI (T)
= -at, pAT) 2:: 0 and for trajectories ending
at Yl (T) = a" p:!(T) L. O. This information
in addition to the control (51) completely define L(y) for trajectories ending on the extremes of the line segment yAT) I L. al'
Fig. 4 depicts representative action for optimum trajectories terminating at Y2(T) == -R},
ydT) = O. Trajectories ending at Y2(T) ==
+a}, Yl (T) = 0 are mirror images. The optimum switching curves are generated by picking
arbitrary values of p (T) from the admissible
set for the corresponding boundary values of
y(t) and working backwards in time plotting
the switching points determined from p ( -t)
on the y] vs. Y2 phase plane.
For trajectories ending in the interior of the
line segment where I Y2(T) I < a}, b 2 (Yl (T»
= 0 and, therefore, P2(T) == O. This completes
the information necessary to describe L(y).
Fig. 5 shows a representative trajectory arrived
at by translating switching criteria from the
p plane to the y plane. Fig. 6 portrays the curve
with all dimensions.
V. THE MINIMUM FUEL PROBLEM

may be used to describe G. From this
(53)

The minimum fuel problem is solved by minimizing the integral

188

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

5.1 Initial conditions
Taking the time derivative of H
dH
dt = (alPl

du

dlul

+ Pz)Tt- dt

(59)

P2

Y2

3o,

8=-1

"\ \
-

-

-

Figure 5.

\
I

switching curve

PI vs. P:! and Yl vs. Y:! Phase Planes with
Complete Switching Curves.

/

-3

-I

T

J

=

f (lui) + lalul)dt

(55)
8=+1

o

in the system (20) where T is not specified. It
appears simpler, however, to once again make
use of the transformed variable y(t). By minimizing

T

J

=

- - - construction lines
- - - switching ClFve

Figure 6. Optimum Switching Curve (minimum time).

f iu dt

(56)

o

h"Z

in the transformed system (41), the desired
result can be obtained provided
i) the switchings in the time interval 0

t

L

L

./

~~"'»,

T are kept to a minimum.

ii) adjustment is made at time t = T when
fuel is consumed zeroing the error states
e(t) with the exponential control u2(T).
After adj oining (56) to the system (41), the
hamiltonian becomes:
H

= PIY:!- P:!YI + u(alPI + p:!)

=I

. sgn (alPl

u* = 0

+ P:!)

0,

--------:+"--.p.!.!.!.-----~y... ,
-I

-lui (57)

Since T is not specified H(T) = O. With u(t)
constrained as before, the control that maximizes H with respect to p(t) is:
u*

+
8=+1

+ p:!1 > I
lalPl + p:!1 < I

'm~","",

switching curv.
traj.ctories

lalPl

(58)

Figure 7. Optimum Trajectories of e(t) and y(t)
(minimum time).

189

DISCONTINUOUS SYSTEM VARIABLES IN THE OPTIMUM CONTROL OF SECOND ORDER

'I' e,

-I

-I
tr -+1

.. _ .,...switching curve

- - - switclling curve
--trajectories

_ _ trajectories

Figure 8. Optimum Trajectories of e (t) and y (t)
(minimum time)

it can be seen that

~~ =

0 if

~~ =

O. It may

also be argued that the change in the hamiltonian with time is zero if

-il.&diu I
ap
I I +p:! du - dU

(60)

Since u (t) is switching between u = 0 and u =
± 1 and vice versa, this means that the
hamiltonian remains constant if the control is
switched at alPI + P:! = 1 . sgn (dU). (See Fig.
10.)
By choosing control u * (t) the hamiltonian
remains at its maximum value, i.e., identically
zero from time t = 0+ after initial control has
been applied until time t = T. This control
minimizes the integral (56) but does not necessarily minimize total fuel when fuel consumed
at switchings is added. In order to minimize
switchings, it appears necessary to choose the
degenerate case, i.e., u = 0 until such time as
alPI + P:! = 1 . sgn (d u) where dU is the
change in u (t) when turning the control on.
Notice that this choice guarantees that R(t)
= 0 f01" all t, 0 L t LT. With this in mind, the

Figure 9. Optimum Trajectories of e(t) and y(t)
(minimum time).

problem remains to minimize fuel in the nondegenerate case. For this purpose it will be considered that time t = 0 is that time when
alPI + P:! = I . sgn (dU)

(61)

and initial control is applied.
At t = 0 it may be verified from (61) and because R(O) = 0 that
(62)

-+---4:---+-......;.It;---t-I~PI

~w- _

switching
curve

Figure 10. Switching Criteria in

PI

VS.

P:! Phase Plane.

190

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

,

This condition implies that if u (T) == 0 then
pt(T) == 0 and if u(T) == + 1 then p(T) ~ 0
and P2(T) == +1. Fig. 11 portrays the locus of
admissible points p(T) and the switching
curves generated by these criteria in the Yt vs.
y!! phase plane are as in Fig. lla.

u=+1

~~_{L
+-~_+-""":"~I--_';Pt

'-admissible
points peT)

Figure 11. Admissible Points p(T) for y!!(T) = -at.

5.2 Final boundary conditions
In order to investigate final value boundary
conditions, the optimum trajectories terminating such that Yt (T - At) > 0 are considered.
Trajectories in the rest of the space are mirror
images. As in the minimum time problem, an
optimum trajectory terminating at yAT) ==
-a), Yl (T) == 0 is investigated first. The determination that P!!(T) ~ 0 as argued in (54) is
still valid. This condition on pAT) along with
the fact that H(T) == 0 precludes the possibility
of a trajectory terminating as above with u (T)
== -1. The following cases, however, do apply.
Consider
H (T) == - alPI (T) + u (T) [alPI (T)
+p:! (T)] - iu (T) == 0
\

\

\

\

(63)

, 1+="

\

\
I

I

:

I

+

ID

I

\

\

1-="

\

,,
"

/

---

/

I

I

y:~ (T)

(64)

f

luidt

(65)

5.3 Generating the switching CU1've segments
It is now helpful to look at the hamiltonian

0="

Figure lla. Switching Criteria for y:!(T)
(minimum fuel).

y:! (T) +

By prior arguments p:!(T) == -c:!. == +1 and
Pa(T) == Pa(t) == -Ca ==-1.

","

,'" ""

CiYi (T) == -

o

I

I

\

L

Ya(t) ==

,

I

S==

t

I
I

I

If the final control is u(T) == -1 (u(T) ==
+1 is not possible for trajectories terminating
on this side of the line segment) then e:!.(T) ==
y:!(T) -a) and, therefore, ly:!.(T) -at I must be
minimized. In both of the above cases, it may
be seen that y:!.(T) must be maximized on the
line segment in order that fuel consumed by u:!.
(T) to zero the error states be minimized.
Therefore, the functional to be minimized is
3

where

I

1-

Optimum trajectories terminating on the line
segment Yt (T) == 0, I y!!(T) I < at must be investigated in a fashion similar to that used with
the minimum time problem. Since a final
boundary point y!!(T) is not fixed, we may substitute a final condition on P2(T) to reach a
solution. At this point it becomes necessary to
decide on the final value functional to be minimized. It is first noted that if the final control
to the line segment is u(T) == 0, then -al < Y2
(T) < O. (It must be remembered that investigation is of trajectories such that Yt (T-At)
> 0). If u(T) == 0 then also yAT) == eAT) and
in order to minimize the fuel consumed by u:!
(T) to zero e2 after time T then I e:!(T) 1==1 y:!.
(T) I must be minimized.

= -a)

under each of the above conditions, i.e., u (T)
== 0 and u (T) == -1. In the first case
u(T)
0
H(T)
H(t) ==0
ydT)
0
(66)
p:!(T)
+ 1
-a) < yAT) < 0

191

DISCONTINUOUS SYSTEM VARIABLES IN THE OPTIMUM CONTROL OF SECOND ORDER

and
Y2

== 0

H (T) PI (T) y:! (T)

which implies that PI (T) == o. Fig. 12 shows
the switching generated by this condition.

,,u=O)(

/

',/

I
I I

,

/

,. ,"'"
~

,

,.

/u=O / '
I
+

, ,
I
I

I I

I

"

-

+

u=+I~/
I
I I
I ,

\

\

\

,,

\

al lU=-I,
I
,
"

Yj

-I

-°1

: I

+

I
Figure 13a. Switching Criteria where u (T)

Figure 12.

Swit~h 'ng

Criteria for u (T)
(minimum fuel).

5.4 The co'mplete switching curve

=0

Next is considered the case where
u(T)

·-1

H(T) Yt (T) p:!(T)

H(t)
0

==

0

(67)

+1

and
H (T) :::: P1 (T) y~ (T) - 1 [alP1 (T)
1] -1 :::: 0

= -1.

Because T was never iSpecified and because
the fuel consumed at switching was handled as
a side condition, a co~posite of all the calculated switching CUlwes iindicates areas in the
phase plane where ,Ql"itenia ;for optimum control
appear contradiCllQljV.. .lLn tllhese areas, analysis
by graphica!lmeans or actual computation will
clear .up the £!ituation. Fig.. 14 depicts the com.J>OSlWe 6fthe first two criteria analyzed.

+

from which
Pt (T)

2

== (T) -a)
== -1 and P2(T) ==
y~

Since u(T)
(58) are met only when
pt(T)

(68)

+

+11 conditions

°1
YI

-2

 O. In Fig. 13 these trajectories and switching curves are plotted.

iI

,,
"
II

=1

~

+

Figure 14. Region of Conflicting Optimum Criteria.

admissible

points pm

In Fig. 14, region A is an area where there
is a question concerning whether it is optimum
to switch for i yAT) I == at or ly:!(T) I < al' By
graphical analysis, it may be seen that it is
optimum to switch so that I yAT) I == at.

A similar contradiction between trajectories
switching for 0 < yAT) < at and -at < yAT)
< 0 may also be resolved graphically. * The final
Figure 13. Admissible p(T) where u(T) = -1.

* Appendix I presents computational analysis of the
rEsolving process.

192 DISCONTINUOUS SYSTEM VARIABLES IN THE OPTIMUM CONTROL OF SECOND ORDER
result consisting of switching criteria to zero
the errors in the system (20) with minimum
fuel is given by Fig. 15.

The problem of controlling a plant with zeros
is analagous to controlling a plant without zeros
using an impulse-step type controller. Results
obtained in this paper can be adapted to formulate the logic of this type control.
The realization of the true optimum switching logic in a practical system may in many
cases not be worth the effort. Quasi-optimum
control using simple switching functions that
are for the most part linear is a subject for
further investigation. Setting time for the system is relatively insensitive to limited variations from the optimum when trajectories are
out beyond the first cusp of the switching curve.
APPENDIX I
In the past, the electrical engineer, has usually turned to the analog computer for problem
solving and his reference of familiarity is
strongest there. To test the drift of the ampli-

Figure 15. Switching Criteria for Minimum Fuel,
a 1 = 1.0.

VI CONCLUSIONS
The methods used in this paper to arrive at
a solution may be used to good advantage in
the investigation of any nth order system with
no more than n-l zeros. The maximum
principle provides a powerful tool in optimization, particularly for linear systems. Often the
method of Pontryagin will indicate areas of
interest to investigate when searching for an
optimum control even if the unique solution is
not readily forthcoming.

6=0.628

r= 6.lf

~(T)

F:gure 16. Block

D~agram

of the Controlled Plant.

Figure A-1. Trajectories showing the effects of different integration step sizes (L~) on the Runge-"Kutta
method. Period of unforced system being integrated
was T
6.2836.

=

DISCONTINUOUS SYSTEM VARIABLES IN THE OPTIMUM CONTROL OF SECOND ORDER
fiers, a common method was to plug in a simple
oscillatory system

[-~ ~J

y =

y

and to study the decay of the circular trajectory
in the phase plane (y vs. y).
This same procedure was used here to study
the different integration schemes used and to
determine the proper integration step size. The
forcing function (u = ± 1) was introduced to
give breaks in slopes and also discontinuities in
the steady state limit cycle described by
y =

[_~ ~ ]

[~J

y -

sgn (Yt -

y"l

193

This graphical means of analyzing gave considerable insight in evaluating the integration
schemes. The following figures give a brief resume of these studies.
The 4th order Runge-Kutta method was found
to be the most foolproof when dealing with discontinuities in the state variables. In the continuous variables the Adams Bashforth predictor-corrector 4 with a Taylor expansion or
Runge-Kutta starter were found efficient and
useful.
The system was also tested with the plant on
the analog computer and the control with its
nonlinear switching function being generated
on an on-line digital computer.
BIBLIOGRAPHY
1. ROZONOER, L. 1., "L. S. Pontryagin's Maximum Principle in the Theory of Optimum
Systems-Part I," A vtomatika i Telemekhanika, Vol. 20, pp. 1288-1302, October
1959.

! l:!-0.126
i

r.,oo

ROZONOER, L. 1., "L. S. Pontryagin's Maximum Principie in Optimai System Theory
-Part II," Avtomatika i Telemekhanika,
Vol. 20, pp. 1405-1421, November 1959.
2. FLUGGE-LoTZ, 1., and TITUS, H. A., "Optimum and Quasi-optimum control of third
and fourth-order systems," Division of
Engineering Mechanics, Stanford University Technical Report No. 134, pp. 8-12,
October 1962.

j 1l=0.628

. .,.= .300

3. FLUGGE-LoTZ, 1., and ISHIKAWA, T., "Investigation of Third Order Contactor Control Systems with Zeros in Their Transfer
Functions," NASA TN D-719, January
1961.

A=I.26

Figure A-2. Trajectories showing the effects of different integration step sizes (6.) on the Runge-Kutta
method. Period of unforced system being integrated
was T
6.2836.

=

4 . HAMMING, R. W., "Numerical Methods for
Scientists and Engineers," McGraw-Hill
Book Company, Inc., New York, 1962.

TWO NEW DIRECT MINIMUM 'SEARCH PROCEDURES
FOR FUNCTIONS OF SEVERAL VARIABLES
B1'uno F. W. Witte Design Specialist
and
Willia'm R. Holst Senior Research Enginee1'
General Dynamics/Astronautics
San Diego 12, California
(1) LINEAR SEARCH METHOD FOR
n VARIABLES

space <1>, i.e. that coordinate which is
plotted in the same direction as is the
function value.
F - The function to be minimized.
n - Number of independent variables in

(1.1) Summary Of The Method

The method can somewhat vaguely be classified as a modified "steepest descent." It is, of
course, an iterative procedure. Each cycie, to
be iterated on, consists essentially of two parts:
in Part I a "best" line is found, in Part II an
attempt is made to minimize the given function
along this line. Thus, each cycle resembles the
corresponding cycle in the method of steepest
descent. The method of steepest descent differs
from our method in the manner in which in
Part I the "best" line is found. Steepest descent,
in fact, implies that this line (let us call it the
"baseline" from now on) be defined by the
starting point for the cycle and the gradient of
the function at this starting point, where the
starting point, in turn, is the minimum point
of the preceding cycle. Well known modifications of the steepest descent are concerned with,
for example, baselines restricted to a subspace
normal to the preceding baseline, or with different ways of minimizing along a given baseline,
or perhaps with the question as to how feasible
it is to seek a minimum at all along a given
baseline during each cycle before switching to
the next baseline.

~-~(v
v \
••: .1: \ ~ 1 • • • ~n'

Designates the hyper-surface defined
in  by F.
cI> - Designates the space spanned by the n
independent variables x] . . . Xn , the
abscissas, and by y, the ordinate.
cp - The space spanned by the n independent variables Xl ... xu'
Xi - The abscissas, i.e. the independent
variables, i = 1 ... n.
x - The point with coordinates Xb i.e. x =
(Xl'"

Xn).

The starting point in cp for minimizing
F along b k in cycle Ck. Also the minimum point found by minimizing F
along b k- 1 in cycle Ck -1. X1 . . . xf.),
k = 0,1,2, ....
Ck - Designates the k-th cycle of the iterative procedure leading to the minimum
of F. k = 0, 1, 2, 3, ....
Fk - An abbreviation for F (Xk).
Sk - The starting point in cI> corresponding
to Xk, i.e. Sk = (Xk, Fk), k = 0, 1, 2, ....
Tk - The n-dimensional hyper-plane tangent
on Sin Sk.
Xk -

(1.2) Symbol Explanations

y-

.

S-

The ordinate of arbitrary points in the

195

196

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964

bk grad -

The baseline chosen in cycle Ck.
An n-vector in the space cp pointing in
the direction of steepest acscent of any
subspace of 4> or manifold of 4> with
dimension 1, 2, ... , or n. The magnitude of this vector is equal to the slope
of steepest ascent. For linear subspaces
this vector is independent of x. For the .
subspace S this vector is the familiar
gradient of F.
A - An operator designating the intersection of the' two subspaces between
which it stands.
pi _ A subspace of 4> with dimension n - i
defined by pi = TO ~ Tl ~ ... ~ Ti.
Qi _ A straight line in 4> defined by Qi =
Ti-n+l A Ti-n+:.! A ... A Ti, (i>n-l).
pi _ The intersection pi A cpo
qi _ The point Qi A cpo
Li - The point on Qi with y = 1.
i-The projection of Li on cpo
Ek - The equation of a hyper-plane parallel
to Tk through the origin of 4>.
Aj - Lagrangian undetermined multipliers.
1]k The running coordi~k _ ~k = (~t ... ~~) (
nates of an arbi) trary point on Tk.
a~ - Defined by a~ = -aF /aXh evaluated at
Xk.
s - The distance from x k to a point on b k.

t

G-

G' -

s is positive in the downward direction.
The function F considered as a function of only s, i.e. G (s) = F (xds), .. ,
xn(s».
The derivative dG/ds.

(1.3) The Baseline Choice
The method used to choose the next baseline
can best be visualized as follows: The function
y = F (Xl ... xn) defines an n-dimensional
hyper-surface, S, embedded in the (n
1) space, 4>, spanned by the n-spaced, cp, of the
independent variables Xl ... Xn and the dependent variable y. Let XO = (xf ... x~) be the starting point of the first cycle, Co, of our search
procedure, and let Fn = F (xo) and xn define the
corresponding starting point So = (xu, Fo) on

+

the hyper-surface. * Let To designate the hyperplane tangent in So on S (whenever necessary
we will assume that such tangent hyperplanes
exist). The baseline, b o, for the first cycle, Co,
is then chosen to be the line through x" and with
direction defined by the gradient of To, grad To.
Naturally, we have for this cycle grad To =
grad F (xo). We will now assume for the moment that we know how to proceed with part II,
and that at the end of part II we obtain an approximation Xl = (xt ... xA) for the minimum
of S along boo Xl is also the starting point of
cycle CI. (In general, Xi designates the starting
point and Si+ I the minimum point of cycle Ci;
Si = (Xi, Fi) is the point on the hyper-surface
corresponding to Xi, and Ti is the hyperplane
tangent in Si on S; finally b is the baseline for
cycle Ci). The next baseline b I is then chosen
to be the line through SI and with direction defined by grad (To A TI), where TO A Tl is the
intersection of T' and TI, i.e. an (n -1) -dimensional linear subspace of 4>. Assuming again
that we know how to find X2, the minimum point
along b l , b 2 is found as the line through X2 in a
direction given by grad (Tn A TI AT:.!).
In general, for i < n-l, b i is determined so
that it becomes the baseline through Xi with a
direction given by grad (To A Tl A ... A Ti).
The argument of the gradient, pi = To A Tl A
T:.! A ... A Ti, is a linear subspace of 4>, and has
dimension n-i. For i=n-l, pi would then be
a straight line; for i = n, it would be only one
point, for i>n, pi is an empty set; for i>n,
therefore, grad pi is not defined. For 0 L.
i < n-l, grad pi is defined, of course, as the
direction in cp along which pi ascends most
rapidly. Since all pi are linear, grad pi is independent of x.
For i~n-l, b i is determined so that it becomes the baseline through Xi with a direction
given by grad Q\ where Qi = Ti-n+l ATi-n+2 A
... A Ti. Thus, all Qi are straight lines in 4>, and
their gradients are parallel to their normal projecti(ins on cpo

*An attempt is made in the above and subsequent
notation to designate by lower-case letters all points,
or point sets, or subspaces, which are completely embedded in the n-space of the independent variables
Xl ••• xn' and to use capital letters if they are not compJetely contained in this n-space.

TWO NEW DIRECT MINIMUM SEARCH PROCEDURES FOR FUNCTIONS OF VARIABLES

In general, for all i, the above defined gradients are determined as follows:
Let pi and qi be defined by pi == pi A 

(for n-l:::::'i). Then all qi are single points. Next consider the point V (i>n-l) with ordinate y==l on one of the lines Qi, and its projection on . The directed line from qi to Ii is parallel to grad Qi, and : grad Qi : == 1/ ! qi_/i I. The n coordinates of == (f ~ ••• f ID are found by solving simultaneously the n linear equations, Ek, corresponding to the n Tk in the expression for Qi and setting y == 1. Setting y == 1 is arbitrary, and insures only that y =1= o. The n coordinates of qi == (ql . .. qi.) are found by solving the same system with y == o. Next consider some arbitrary point V (OLi < n-l) with ordinate y == 1 on one of the linear subspaces pi of dimension n - i, and its projection fi on . Let qi (for OLi < n-l) be the point on pi closest to !i. The directed line from qi to f i is then, again, parallel to grad pi, and also I grad pi I == 1/ I qi Since V can be chosen arbitrarily from all the points on pi with y == 1, we set It == 0 (for k == i + 2, ... , n), and find the first i + 1 coordinates of t == f~ ... lii+ h N+2 ... NJ by solving simultaneously the i + 1 linear equations, Ek, corresponding to the i + 1 Tk in the expression for pi, again also setting y == 1. The n coordinates of qi == (q; ... qD are determined by requiring that the square of the distance from Ii to qi be a minimum, i.e. d:! == (I; _ q~) 2 + (tJ - q~):! + ... + (ll~ - qD2 == min. Furthermore we note that the q~ must satisfy the constraint that qi is to be on pi, which is the same as saying that the q~ must also satisfy the i + 1 linear equations, Ek (k == 0 ... i), corresponding to the i + 1 Tk in the expression for Pi, but now setting y == o. The Lagrangian method of undetermined multipliers leads us then to the unconstrained minimization of the function g (q: ... q)il' Au ... Ai) == d:! J\.Eo AiEi. Equating to zero the partial derivatives of g with respect to the n q~ and the i 1 Aj, we obtain again a system of linear algebraic equations, here of order n i 1. Note that this way of finding qi applies only to the initial cycles of the search for which i < n - 1 ; hence the largest linear system to be solved here will have order n + (n-2) + 1 == 2n-1. r r r . j + .. + + + + + 197 The linear equations Ek (OLk) correspond to our hyperplanes Tk which are tangent to the hyper-surface S at the locations Xk. The analytic expression for one of the Ek can readily be obtained from a Taylor expansion of F about Xk: F (x) == F (Xk) (X_Xk) . grad F (Xk) higher-order terms. If we replace F(x) by 'Y}k and x == (Xl ... x n ) by ~k == a~ ~~), delete the higher-order terms, collect all constant terms, and rewrite this expansion in terms of the individual running coordinates on the tangent plane, we obtain with grad F(Xk) == -(a~ ... a~): a~ ~r+ a~ ~~ a~ ~~ 7Jk == b k. This can be simplified considerably for computational purposes by always setting bk == O. This is permissible because we are only interested in the slopes of the Tk, or in the slopes of subspaces common to several Tk. The Ek are then ,~­ plicitly: Ek == a~ ~~ a~ ~~ 7Jk== 0, and they describe hyperplanes which are parallel to the tangent planes, and contain the origin of the space G (Sill) < G (s,,). The procedure is described below in several steps. STEP (1) 81 is equated to SJ, and G == G (SI) is evaluated. This defines the point Pi == (S1, GJ for i == 1, and with Gi == G (sJ. 198 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 Question: Is G1 :::::".. Go ? If yes, a parabola is passed through Po with the given slope Go, and through Pl. This is done in the following Step (2). If no, we go directly to Step (3) to check whether PI is above or below the line through Po with slope G-o. STEP (2) The minimum location S2 is found for the parabola through Po and PI with slope Go at Po. S2 will satisfy: Isol < IS21 L. IS11/2. G2 == G (S2) is evaluated. Question: Is G2 < Go ? If yes, we have solved our problem, i.e. we have obtained a bracketed 'approximation to the minimum, with Su == so, Sm == S2, Sb == Sl. However, our experience showed that the ex· penditure of one more function evaluation often allowed a considerable improvement of the value for Sm. This is particularly desirable toward the end of our search for the minimum of F (Xl ... xn). The improvement of Sm is obtained by cubic interpolation, 'and is described in Step (4). Before going there, however, the indices 1 and 2 are interchanged on the quantities Ph Gh Sl and P 2, G2, S2 so as to number the points Po, Ph P 2 in the order of increasing lsi-values. If no, we substitute P 2 for Ph and repeat Step (2) until either G2 < Go, or IS21 < 18 11/ 100. In the latter case we replace Si by -8h Go by the slope of the line (Po, P 2), and return to Step (1). This starts a search for tbe minimum of G in the range of'negative s-values (assuming that Go was inaccurate). In case our search should then again lead us back to the vicinity of the same s-value, s == so, we set Sm == So with brackets s" == -Is] 1/100 and Sb == 1"811/100. In this case our starting point and our approximation to the minimum are one and the same point. That situation will always happen at the final minimum of F (Xl ... Xu), but may also happen occasionally sooner. The termination procedure, described further below, then is triggered. STEP (3) Question: Is PI above the line through Po with slope Go ? If yes, the minimum location S2 is found for the parabola through Po and PI with slope Go at Po. It satisfies IS21 > IS11/2. If IS21 < !s11, the indices 1 and 2 are interchanged. If no, the minimum locatIon S2 is found for the cubic with clope Go at Po and with its point of inflection at Pl. It satisfies IS21 > 21st!. Question: Is G1 < G2 == G (S2) ? If yes, we found a bracketed approximation to Smiu, and proceed with Step (4). If no, we re-define Go to be the slope of the parabola through Po, Ph P 2 at point Ph then subtract 1 from all index values occurring in Pi == (Si, Gi ) (i == 0, 1, 2), and return to Step (3). STEP (4) A cubic is passed through Po with slope Go, and through PI and P 2. ~ll is the location of the minimum of this cubic. Note that the existence of brackets for Sill guarantees the existence of the minimum. STEP (5) We test next the three lowest values of G, found so far, whether they agree with each other within a given tolerance. If yes we set Sm equal to that si-value for which G (Si) is smallest. (Sm usually is, but need not be, that sj-value.) If no, a parabola is passed through the lowest three points, and the minimum value of this parabola is compared with the two lowest available values of G. If these three values agree with each other within the given tolerance we have found Sm; if they do not agree, we evaluate G for that s-value for which the parabola had its minmium, and go to Step (6) . STEP (6) We test the two lowest values of G with the minimum value of the last parabola. If these three values agree with each other within the given tolerance we have found Sm; if they do not agree, a parabola is passed through the lowest three points of G and we compare the minimum values of the last two parabolas with the lowest value of G. If these three values agree with each other within the given tolerance, we have found Sill; if they do not agree, we evaluate G for that TWO NEW DIRECT MINIMUM SEARCH PROCEDURES FOR FUNCTIONS OF VARIABLES 199 s-value for which the last parabola had its minimum, and repeat Step (6). (1.5) Detection of the Minimum The iterated execution of the procedures for Parts I and II of each cycle may be discontinued whenever one of the following conditions is detected: Condition A: The partial derivatives of F == (x~ ... xft) satisfy laF /ax~1 LEfor all i == ... n, and for a given small value of E, say E - 10-6 • As explained at the end of section (1.3, these partial derivatives are evaluated to obtain the coefficients a k in the equations Ek. CondiUon B: The starting point and the approximation to the minimum point on the baseline are one and the same point. How this can happen was explained in Step (2) of section (1.4). Condition C: The matrix of the linear equations Ek, discussed in section (1.3), is very illconditioned or singular. This may occasionally happen before either Condition (A) or Condition (B) is satisfied. Condition D: The numerical values of the coordinates of the minimum location and/or the minimum of the function have stabilized to a given number of significant figures. Whenever one, or perhaps two of the above conditions are satisfied, there is an excellent chance that the minimum has been found. One may then do one of two things: (i) terminate the execution of the program, or (ii) begin a somewhate more extensive testing procedure in the course of which the vicinity of the suspected minimum location is explored, and it is thereby made even more likely that the solution has been found. This is what was programmed at G.D'; Astronautics. Preference was given to method (ii) because it also provides an answer to the question how sensitive the function is to small deviations from the minimum location. The knowledge of this sensitivity is usually desired together with the minimum location itself. (2) CIRCULAR ARC SEARCH METHOD FOR 2 VARIABLES (2.1) Summary of the Method The iterative circular search is preceded by a starting procedure, which finds five points near the spine of the valley of the function to be minimized. Thereafter, each iteration begins with an attempt to approximate by ap.ortion of a circle the course of the projection of the valley onto the space of the independent variables. The first circle is fit to three of the five valley points found. All succeeding circles are fit to four or more valley points. As the iteration progresses toward the minimum these circles approach the osculating circle at the minimum location. During each iteration the determination of a circular arc approximation to the spine of the valley is followed by an attempt to predict a point on this arc which is closer to the desired minimum than any other point obtained so far. Again during each iteration, the prediction of such a point is followed by a steepest descent from this point into the valley, which amounts to a minor, yet important correction. The correction is important since it insures that deviations between the courses of the circular arcs and the portions of the spine of the valley approximated by the arcs will not accumulate as the iteration progresses. The new valley point then replaces the highest of the four lowest valley points found before, and this predictor-corrector type method is repeated in the next iteration. Empirical results show that the sequence of valley points obtained converges quite rapidly to the desired minimum. In the following sections we emphasize again the geometric aspects of the more important steps summarized above, rather than to give the algebraic details. This is done since some of the details are still subject to experimentation and analysis. (2.2) The Starting Procedure We assume that a first guess is available as a starting location Xl. We find its valley point VI. A valley point Vi will always mean the location of the minimum of the given function F along a line through Xi in the direction of -grad F (Xi). We find the distance d 1 == Ivl - xli and a unit vector e l in the direction of the projection of -grad F (VI) on a line normal to -grad F (Xl). We then find four more valley points Vi (i == 2 ... 5) by taking a step d i == (3/4)i-2 d l in the direction of ei'-l from Vi - 1 to Xi, and then by minimizing from Xi to Vi. The directional minimizations are done by using the 200 PROCEEDINGS---, where Vi and i were explained above, and Fi = F (Vi). It is helpful to visualize now a cylinder in 4> parallel to the y-axis and intersecting cJ> along the circle of the preceding section. This cylinder and the above plane E;,! intersect in an ellipse. The location u of the point on this ellipse with the smallest y-value is our predicted point. The distance of the point u from the spine of the valley decreases rapidly as the iteration p~ogresses, and appears to become insignificantly small long before the minimum is reached. Nevertheless, it is unknown at the present time how damaging the cumulative effect woud be. \Ve are employing, therefore, during all iterations a straight steepest descent correction which leads from u to the next valley point. The correction is done in the same way as was explained for the five starting points in (2.2), i.e. by using the method described in (1.4). The initial step taken in minimizing from the low point on the circle to the valley is set equal to one-half the length of the gradient vector at the low point divided by the coefficient of the second-degree term of the parabola approximating the shape of the function along the previous line of minimization. We expect that further studies of this particular correction will lead to considerable sa vings in the number of function evaluations. For example, it appears that the correction usually need be made only in a radial direction rather than the negative gradient direction, while the latter is needed only occasionally. Moreover, it is doubtful whether any such correction is needed at all in each iteration. (2.5) The Switch to Pa.rabolas The above predictor-corrector step is taken at least four times. If thereafter the function value of the lowest valley point is within t/:! 7< of the function value of the second-lowest valley point, the method of predicting a new point u on the circle is modified somewhat. Instead of finding the above described plane E;,!, we find the "best-fitting" line L to the same four points Vi defining our circular arc and in the same· plane with this circular arc. The lowest three Vi are then projected on L to give the three points Wi on L. These and the Fi -values associated with the Vi define three points Wi = (Wi, Fi) in the plane through L and parallel to the y-axis. The location Will on L of the minimum of the parabola through the three points Wi is then projected back onto our circular arc to give our predicted point u. The steepest descent correction is gain applied to u, and produces the next valley point. (2.6) The Tail Correction After successive approximations to the minimum value of the function have stabilized to five figures, the search terminates with a simple tail correction, which consists in minimizing the function along the line through the two lowest valley points, and which usually adds several significant figures to the answers. It is interesting to observe the behavior of the radii of the circular arcs after the iteration has begun to converge. As was said before in Section (2.1) the circles approach the osculating circle of the spine of the valley at the minimum location. However, once the sequence of valley points has converged to the minimum, all subsequent points fall very close to each other; they then no longer define the course of the valley nor do they define its osculating circle. Instead, the radii of the "best-fitting" circles suddenly shrink by several orders or magnitude to dimensions comparable to the inaccuracies in the coordinates of the minimum location. When this shrinkage occurs the search should be terminated. Usually, however, this does not happen before the search had already been terminated with the above described tail correction. (2.7) An Extension to n Variables: The Spherical Shells Method The good results obtained with the two- 201 TWO NEW DIRECT MINIMUM SEARCH PROCEDURES FOR FUNCTIONS OF VARIABLES dimensional Circular Arcs Method suggest its extension to n independent variables as follows: (-1) ST ART. A starting point Xi is given in n space as a first approximation. Find its valley point VI, the distance d l == !Vl - xli, the n - 1 space El normal to grad F (Xl), and the direction e 1 in EI as the projection of -grad F (VI) on E I. Find n + 3 more initial valley points Vi (i ==2 ... n + 4) by taking steps d i == (n + 1) (n + 2» i~2dl from Vi- 1 in the direction e i- l to Xi, and then by minimizing F in the direction of -grad F(Xi) from Xi to vi, for all values of i == 2 ... n + 4. I ( - 2) FLA TS. Fit an m fiat (Le. a linear m space) to the lowest m + 2 valley points in n space, such that its dimension m is as small as feasible. (The feasibility could be judged by observing successive standard deviations CT IlI of the points from the m fiats for the sequence of decreasing m - values: m == n, n - 1, ... , 1. A sudden large increase of CTk - lover CTk would indicate that m == k is feasible while m == k-I is not feasible.) Skip to ( - 4) if m == 1. ( - 3) SPHE RE S. Fit the surface of an mdimensional sphere to the projections of the lowest m + 2 valley points on the above m fiat. (3.1) (3.2) (3.3) (3.4) (3.5) (3.6) Some shell of this sphere will approximate the course of the (hyper - ) valley. Pin-point next an optimum surface point on this shell to which to go next, find its valley point, and return to (-2). ( - 4) PARABOLAS. Find the parabola through the projections of the lowest three valley points on the plane spanned by the function axis and the regression line found in (-2). Go to the minimum of this parabola,find its valley point, and return to ( - 2) unless the minimum value of the function has begun to stabilize. ( - 5) T A I L. Minimize the function along a line through the lowest two valley points "in n space. Find the valley point corresponding to this directional minimum. Repeat ( - 5) till the function minimum has stabilized to the desired number of figures. The above described Spherical Shells Method will be programmed at General DynamicsAstronautics in the near future, and results will be published when available. (3) EXAMPLES AND COMPARISONS The following functions of x and y were minimized. (r == (X2 + y2) % and () == tan- 1 (y Ix).) (1- X)2 + (I-x):.! + 100(1X)2 + (I-x):.! + O.I( 2-x):.! + + y:.! (x - IO)-l IOO(y-x:.!):.! ROSIE (y - x:.!):.! SHALOW == (y - x:.!):.! STRAIT 100 (y - x:{):.! CUBE DOUBLE 100 (r - 1)2 (r - 2)2 HEART ---: 1000 ( 1 + cos () - r II O):.! All were programmed in double-precision for an J .B.l\1. 7094 computer. Results are listed in the following tables, and the results for ROSIE are discussed in detail and compared with other methods. (3.1) ROSIE Minimum (F == 0) at (1, 1), with a steep valley along y == x:.!, and a side valley along the negative y-axis. Table (3.IA) summarizes the end results of various investigators. Table (3.IB) summarizes the rapidity of convergence of some of these methods. Table (3.1e) shows the rate of convergence of the circular arcs method for various starting points. Table (3.ID) gives minimization details for the circular arcs method. Table (3.1A) End results of various methods of minimizing the function ROSIE when starting from the point (x, y) == (-1.2, 1) k == number of valley points found. N == number of function evaluations Note: The value of the function given by ref. (5) in the table is not consistent with the values given for x and y. The correct value of F equals 1 ( - 6) for (x, y) == (1.0001, 1.0001). Discussion: Parentheses in column N indicate that the number of function evaluations was not published in the indicated papers, but instead 202 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 was estimated by us to correspond to each individual method, assuming an average number of 8 function evaluations for minimizing the function in a given direction. The method of row 5, ref. (7), requires the programming of the analytic expression of the gradient of F; none of the other methods do. The numbers in parentheses in the (min F) column give exponents of the powers-of-ten factors. It is obvious that the method of ref. (10) is the least efficient, while the circular arcs method is the most efficient for the function ROSIE. Table (3.1A) N 146 200 33 (264) 85 (765) 18 (144) 12 103 k 17 minF 6(-8) 2(-5) 8(-9) 6(-5) 1(- 8) 3(- 9) y 0.999938 0.991 1.0001 1.002077 x 0.999957 0.995 1.0001 1.000653 ? ? 1.000008 1.000010 Method "Lin. Search", this paper, 1953 Rosenbrock, ref. (4), 1960 Powell, ref. (5), 1962 Baer,ref. (10),1962 Flethcer,ref. (7),1963 "Cir. Arcs", this paper, 1964 Table (3.1B) References: (E) Ref. (5) k 0 3 6 9 12 15 18 21 24 27 30 33 2.4+1 3.6 0 2.9 0 2.2 0 1.4 0 8.3-1 4.3-1 1.8-1 5.2-2 4 -3 5 -5 8 -9 (G) "Circ. Arcs H Ref. (7) 2.4+1 3.7 0 1.6 0 7.5-1 2.0-1 1.2-2 1 -8 Table (3.1B) Rate of minimization of function ROSIE for four different methods, all starting from ( - 1.2, 1). All function values are in the powers-of-ten notation, e.g. 2.4 + 1 = 24 or 3.4 - 9 = 0.0000000034. k "Linear Search" = number of valley points found The table clearly shows the better rate of con- 2.4+1 3.5 0 1.9 0 8.3-1 3.4-1 1.1-1 6.0-8 2.4+1 3.5 0 7.3-2 8.9-3 3.4-9 k 0 3 6 9 12 15 18 21 24 27 30 33 vergence of the circular arcs method for the function ROSIE. Table (3.1C) Rate of minimization of function ROSIE with the circular arcs method for five different starting points (x, y). Bottom row gives the total number, N, of function evaluations. The location of the minimum is at x = 1 and y = 1. TWO NEW DIRECT MINIMUM SEARCH PROCEDURES FOR FUNCTIONS OF VARIABLES 203 Table (3.1e) x y 5.621 -3.635 -1.200 1.000 -0.221 0.639 -2.547 1.489 -2.000 -2.000 x y k 0 2.4+1 1.2+5 3.6+1 2.5+3 3.6+3 k 0 1 2 3 4 5 4.1 3.8 3.5 3.3 3.2 9.8+2 2.6+1 1.5 0 2.4+2 1.1-4 2.0 0 8.9-1 5.5-1 2.7-1 1.4-1 5.4 0 3.2 0 1.4 0 8.6-1 2.2-1 2.2+2 2.6 0 1.4 0 2.1-2 5.2-2 1 2 3 4 5 5.8-2 3.5-2 1.2-2 2.6-3 4.1-4 1.2-5 2.6-7 6.6-10 1.9-1 1.8-1 7.4-2 1.9-2 5.1-3 2.7-3 6.4-5 3.4-6 4.3-8 2.1-11 1.7-3 1.6-3 1.4-4 7.5-6 6.1-8 3.7-11 - - 6 7 8 9 10 11 12 13 14 15 16 93 118 101 N 0 0 0 0 0 6 7 8 9 10 11 12 13 14 15 16 7.3-2 3.3-3 8.4-3 8.9-3 7.0-7 4.4-6 3.4-9 - 7.5-1 4.7-1 5.3+2 4.7-1 4.9-1 3.2-2 4.2-3 2.6-5 1.3-7 5.3-10 8.9-14 N 103 195 - - - - Table (3.1D) k N F 0 1 24.2 1 2 3 4 5 9 17 25 33 41 4.1 3.8 3.5 3.3 3.2 6 7 8 9 I;9 69 75 82 10 11 12 t x Tl n. grad I I total correction -1.2000 1.0000 1-2 1-2 1-2 1-2 1-2 -1.0298 -0.9464 -0.8800 -0.8266 -0.7852 1.0694 0.9043 0.7829 0.6924 0.6256 7-2 3-3 8-3 9-3 1-2 1-2 4-3 4-3 1.2705 0.9427 1.0918 1.0940 1.6151 0.8885 1.1923 1.1972 4.1 1.2 1.3 1.4 5-0 3-1 5-2 3-2 2-0 8-1 3-1 3-1 89 95 7-7 4--.:6 3-3 3-6 1.0008 1.0021 1.0017 1.0042 7.1 5.8 4-4 6-6 1-1 3-3 103 3-9 7-7 1.000008 1.000010 Table (3.1D) Details of minimization progress with function ROSIE using circular arcs method and starting at (-1.2, 1). = number of valley point N = number of function evaluations k y 2-1 2-2 2-2 1-2 2-2 2-3 = function value: for k = 0 ... 5 in decimal notation, for k = 6 ... 12 in powers-of-ten notation, e.g. "7 - 2" = 0.07. t = accuracy achieved by F (k), = tolerance to be satisfied by F (k + 1). F 204 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 is a circle through points 3, 4, and 5; its predicted low point was at x == 6.4 and y == 12.2. It was corrected to give the indicated valley point (k == 6). The next valley point (k == 7) was obtained from a circle fitted to points 3, 4, 5, 6. Likewise (k == 8) was obtained from 4, 5, 6, 7; and (k == 9) from 5, 6, 7, 8. Valley point (k == 10) was obtained from a circle which was no longer fitted to any of the five starting points, but instead only to the much more accurate points 6, 7, 8, 9; hence, we had a sudden speed-up in the convergence from point 9 to point 10, as evidenced also by the sudden decrease in the ratio of the grad correction to the total correction. Also, the radius R began to approximate more accurately the radius of the osculating circle (R == 5.59) of the valley y == X2 at the minimum point (1, 1). Also, the program had automatically switched at this time from the regression plane to the regression line when predicting point 10 on the circular arc (sec. 2.5). The last valley point (k == 12) was the result of applying the tail correction (2.6); note the sizeable increase in accuracy. The t-values are calculated from (F (k) F (m» / (F (m) C), where F (m) is the lowest available valley point prior to F (k), and where C is a suitably chosen constant (here C == 1,23456) to avoid the possibility of the divisor tending to zero. These t-values are then used as a tolerance when making the next gradient correction to find F (k + 1). This automatically tightens the tolerance as the minimum is approached. + x, y== coordinates of starting points and all valley points. R== radius of circle fitted to lowest three or four valley points. grad correction = distance from predicted point on circular arc to gradient corrected point in valley. total correction == distance from previous lowest valley point to new valley point. The first five valley points (k == 1 ... 5) were found by the starting procedure described in (2.2). The first circle (with radius R == 4.1) (3.2) SHALOW Minimum (F == 0) at (1, 1) with valleys along y == X2 and x == 1. SHALOW is similar to the function ROSIE, but has a shallow valley compared with the steep valley of ROSIE. Table (3.2) x -2.000 1.184 0.803 0.211 0.820 x y -2.000 0.574 -0.251 3.505 4.690 y k 0 4.5+1 7.2-1 8.4-1 1.3+1 1.6+1 k 0 1 2 3 4 5 3.0 0 2.2-1 5.9-2 9.0-2 1.6-2 2.1-2 3.6-6 4.3-3 1.1-3 6.1-4 3.3-1 1.1-] 4.7-2 1.3-2 3.0-3 1.1-1 2.7-1 4.6-2 5.6-2 1.6-2 9.5-1 4.0-1 1.0-1 2.1-3 3.3-2 1 2 3 4 5 6 7 8 9 10 11 4.9-4 4.6-4 3.3-4 4.5-6 7.1-6 5.4-7 7.7-6 8.1-6 5.2-8 2.7-10 4.7-13 9.9-5 1.1-4 9.9-6 6.0-8 1.1-10 2.8-16 2.8-4 1.9-4 1.7-4 2.5-8 1.2-7 8.4-13 3.4-4 4.4-4 2.4-5 5.8-5 6.7-9 1.1-10 6 7 8 9 10 11 86 94 96 N N 93 92 TWO NEW DIRECT MINIMUM SEARCH PROCEDURES FOR FUNCTIONS OF VARIABLES 205 Table (3.2) Rate of minimization of function SHALOW with the circular arcs method for five different starting points (x, y). Bottom row gives the total number N, of function evaluations. (3.3) STRAIT Minimum (F = 0) at (1, 1) with a steep valley along x = 1. Table (3.3 x 2.000 2.000 2.019 1.992 1.986 x y -2.000 -2.322 -1.505 -3.222 5.227 y k 0 k 0 1.4+2 1.4+2 1.3+2 1.5+2 9.9+1 1 2 3 4 5 8.4 0 3.4 0 1.3 0 3.0-1 1.7-2 1.0+1 4.6 0 2.1 0 7.3-1 1.9-1 5.8 0 1.8 0 3.9-1 1.6-3 1.6-1 1.7+1 9.0 0 5.4 0 2.9 0 1.7 0 1.7+1 1.0+1 7.3 0 4.8 0 3.5 0 1 2 3 6 7 8 9 10 11 12 13 5.5-8 3.4-5 9.6-9 3.9-5 0.0 0 6.2-6 4.6-3 3.6-6 1.8-8 2.7-14 6.4-15 9.0---.:11 8.9-9 1.6-3 1.9-1 2.2-4 1.9-5 1.6-12 0.0 0 3.7-2 3.8-1 1.2-2 5.1-5 2.7-5 5.7-8 2;5-11 0.0 0 6 7 8 9 10 11 N 78 83 58 83 95 4 5 12 13 N Table (3.3) Rate of minimization of function STRAIT with the circular arcs method for five different starting points (x, y). Bottom row gives the total number, N, of function evaluations. 206 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 (304) CUBE Minimum (F = 0) at (1, 1) with a steep valley along y = x 3 • Table (3.4) x 1.200 1.391 1.243 0.284 -1.200 :x y -2.000 -2.606 -1.974 -3.082 -1.000 y 1.4+3 2.8+3 1.5+3 9.6+2 5.8+1 k 0 1 2 3 4 5 4.6 0 4.8-1 5.2 0 1.8-1 1.3-3 1.7+2 1.8 0 2.4-3 3.5-1 4.8-3 8.2+1 1.2 0 1.2-1 7.2-1 2.3-2 2.1 0 5.4 0 1.0+1 1.7-1 3.8-1 4.1 3.8 3.6 3.4 3.3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1.9-2 2.4-2 6.3-4 1.2-6 6.7-7 7.5-10 1.3-5 1.6-5 8.5-6 2.5-9 8.8-11 - - 4.5-2 3.7-2 2.5-2 1.7-2 2.0-3 5.5-4 5.9-5 1.8-6 3.6-8 5.6-11 1.5+2 3.4 0 6.7-4 4.9-3 1.9-3 6.2-5 2.6-6 1.9-8 4.2-11 - 1.5-1 6.0-2 7.4-2 1.0-1 7.9-2 1.6-2 6.4-3 2.4-3 2.5-4 2.3-5 8.5-7 7.2-9 4.7-12 - 6 7 8 9 10 11 12 13 14 15 16 17 18 N 99 113 135 162 N k 0 - - - 98 - - - - - 0 0 0 0 0 Table (3.4) Rate of minimization of function CUBE with the circular arcs method for five different starting points (x, y). Bottom row gives the total number, N, of function evaluations. TWO NEW DIRECT MINIMUM SEARCH PROCEDURES FOR FUNCTIONS OF VARIABLES 207 (3.5) DOUBLE One minimum (F == 0.099899899) at (x == 1.001005; y == 0), another minimum (F == 0) at (x 2; y == 0) ; with one steep valley along r == 1,and another steep valley along r == 2; saddle points around (-2,0) and (-1,0). == Table (3.5) x -4.000 -3.709 -3.935 -5.392 -7.633 x Y 0.000 -0.957 0.042 -1.708 -3.785 Y k k o 3.6+3 2.7+3 3.2+3 2.9+4 2.4+5 o 1 1.6 0 7.3-1 5.1-1 1.8-1 7.5-1 1.5 0 6.5-1 1.1 0 1.5-1 4.4-1 1.6 0 7.3-1 7.3-1 1.8-1 6.2-1 1.5 0 5.8-1 7.2-1 2.2-5 7.9-2 1.4 1.7 2.5 1.0 2.4 1 2.4-1 1.6-1 1.5-1 1.2-1 1.3-1 1.0-1 1.0-1 1.0-1 1.0-1 2.2-1 4.4-4 1.0 0 1.1 0 1.4-1 1.1-1 1.2-8 5.7-6 2.3-6 1.2-8 2 3 4 5 6 7 8 9 10 11 12 13 14 15 N 1.3-1 1.1-1 1.0-1 1.0-1 1.0-1 1.0-1 1.0-1 115 113 o <) "1 "'.0-.1. 1.8-1 1.1-1 1.0-1 1.0-1 1.0-1 1.0-1 1.0-1 1.0-1 2.9-5 1.8-6 1.5-6 1.2-6 118 106 0 0 0 0 0 -14 2 3 4 5 6 7 8 9 10 11 12 13 14 15 139 N Table (3 ..5) Rate of minimization of function DOUBLE with the circular arcs method for five different starting points (x, y). Bottom row gives the total number, N, of function evaluations. 208 PROCEEDINGS---.,SPRING JOINT COMPUTER CONFERENCE, 1964 (3.6) HEART Four minima (all with F == 0) at left (0,0), at right (20,0), at top (10, +12.72), and at bottom (10, -12.72). Three valleys: along the x-axis, along x == 10, and along the cardioid r == 10 (1 + cos 0). Table (3.6) x y -1.000 0.000 -9.870 >-2.159 -11.43 -7.344 -6.255 -21.13 -7.539 -27.04 x y k 0 1.0+3 7.3+5 1.1+7 3.1 +7 6.9 +7 0 1 2 3 4 5 9.5+1 9.9+2 4.8+2 1.6+1 8.3-2 8.8+2 5.2+2 3.1+2 1.9+2 1.1+2 4.1+2 7.6+2 4.2+2 1.2+2 5.8-2 5.3 1.0 1.9 3.9 2.5 8.6 1.4 6.2 7.4 3.6 +2 +3 +1 +2 +0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1.8-2 1.4-4 1.3--3 9.1-4 3.1-4 1.7-4 7.7-5 4.8-4 9.7-5 7.3-5 7.1-5 (top) 149 1.4+1 2.2 0 2.3+1 8.7 0 6.2 0 2.1 0 5.6-3 8.3-6 1.7-7 1.7-7 (left) 3.4 0 1.8-3 2.2--3 3.7-5 3.5-9 6.7-7 8.2-12 (bottom) 3.0 +1 4.5 +0 2.4-8 1.2 -2 3.3 -10 6.9 -4 5.7 -11 (right) 3.6 +0 1.8 -1 4.3 -6 2.7 -3 4.1 -3 4.1 -4 3.3 -5 6.8 -6 2.0 -6 (bottom) 6 7 8 9 10 11 12 13 14 15 16 127 119 N +1 +3 +1 +2 +2 - - - - - - - 121 150 N Table (3.6) Rate of minimization of function HEART with the circular arcs method for five different starting points (x, y). Bottom row gives the total number, N, of function evaluations. CONCLUSION We feel that the foregoing results conclusively show the gain in efficiency obtainable for a direct minimum search procedure when an attempt is made to approximate by suitable curves the valleys of the function to be minimized. The circular arcs method which strives to do so can only be a beginning. Various steps and details of its procedure can and will doubtlessly be improved in the future; most interesting should be the results of its generalization to n variables. It is possible that the gain in efficiency is larger when the circular arcs method is applied to functions with steep-sided valleys than when it is applied to functions with more clearly defined minimum points and less clearly defined valleys. On the other hand, when penalty terms are added to an objective function, in order to also observe inequality constraints, functions with steep-sided valleys will automatically be generated; thus, the methed may become useful in the field of non-linear programming. The authors wish to acknowledge the constant support and encouragement they received from Dr. Wm. J. Schart, Chief of Mathematical Analysis at General Dynamics/ Astronautics, and Mr. Carl E. Diesen, Manager of Scientific Programming and Analysis at General Dynamics/Astronautics. We also wish to thank Mrs. Marilee Culver for the efficient and neat typing of the manuscript. TWO NEW DIRECT MINIMUM SEARCH PROCEDURES FOR FUNCTIONS OF VARIABLES LITERATURE REFERENCES 1. BROWN, R. R.-"A Generalized Computer Procedure for the Design of Optimum Systems." Presented at the Winter General Meeting of the American Institute of Electrical Engineers, New York, N.Y., Feb. 2-7, 1958. 2. JOHNSON, S. M.-"Best Exploration for Maximum is Fibonaccian." RAND Corporation, Santa Monica, Calif., Report No. P-856 (1959). 3. G;ELFAND, I. M., and TSETLIN, M. L.-"The Principle of Non-local Search in Automatic Optimization Systems." Soviet PhysicsDoklady, Vol. 6, No.3, Sept. 1961, pp. 192194. 4. ROSENBROCK, H. H.-"An Automatic Method for Finding the Greatest or Least Value of a Function." Computer Journal, October 1960, Vol. 3, pp. 175-184. 5. POWELL, M. J. D.-"An Iterative Method for Finding Stationary Values of a Function of Several Variables." Computer J ournal, July 1962, Vol. 5, No.2, pp. 147-151. 209 6. FORSYTHE, G. E., and MOTZKIN, T. S."Acceleration of the Optimum Gradient Method, Preliminary Report" (Abstract). Bull. Amer. Math, Soc., Vol. 57, 1951, pp. 304-305. 7. FLETCHER, R., and POWELL, M. J. D.-"A Rapidly Convergent Descent Method for Minimization." Computer Journal, JUly 1963, Vol. 6, No.2, pp. 163-168. 8. DAVIDSON, W. C.-"Variable Metric Method for Minimization/' A. E. C. Research and Development Report, ANL-5990 (Rev.). 9. SHAH, B. V., BUEHLER, R. J., and KEMPTHORNE, O.-"The Method of Parallel Tangents (Partan) for Finding an Optimum." Office of Naval Research, Report NR-042207 (No.2). 10. BAER, R. M.-"Note on an Extremum Locating Algorithm." Computer Journal, Oct. 1962, Vol. 5, No.3, p. 193. 11. KROLAK, P., and COOPER, L.-"An Extension of Fibonaccian Search to Several Variables." Communications of the A.C.M., Oct. 1963, Vol. 6, No. 10, pp. 639-641. ON THE EVALUATION OF THE COST-EFFECTIVENESS OF COMMAND AND CONTROL SYSTEMS N. P. Edwards Weapons Systems Evalwtion Group Washington, D. C. INTRODUCTION One of these also states " ... C&C system is a communications system ... "1 Under the' aegis of C&C, Electronic News reports that Mitre has developed ". . . a new approach, whereby computers will be provided with a broad, flexible program which contains nothing regarding the using commanders' specific problems. The program-which will be a 'learning program' based on artificial intelligence-will enable the COffi_ •• L __ L_ 1 ____ 1.. ________ ! ______ L1.. _ ____ _ _ _ 1. some time now I have been previleged to be associated with a project which has been taking a critical, and hopefully, constructive look at the workings of the National Military Command system. Working in the Pentagon one regularly hears the expression "Cost-effectiveness." Sooner or later someone had to combine cO!!lmand 'and control with cost-effectiveness. This paper then addresses the cost-effectiveness of military command and control systems. ~ pUL~I- LV I~CiJ.-l1 uy ~Av~.n~uc~ (:LO:S Ll1~ ~_ O:SyO:SLt::1U CVIU- mander feeds his specific problems into it."2 3. From this small sample of the current literature, it ean be seen that the expression "military command and control systems." has a wide range of meaning to different users, and covers a broad scope of systems and activities. If a meaningful attempt is to he made to discuss cost-effectiveness of command and control systems, it is essential to find out what we mean by command and control. So let us begin by defining the individual terms and attempting to break the problem of cost-effectiveness into manageable segments for examination. 2. Command and control is a broad and very active field as can be seen from the many articles in military and trade publications and in the ,popular press. For instance, the Armed Forces Management magazine devoted its July 1963 issue to command and control. ! would like to review some of the titles of the various articles: -"NMCS: The Command Backup to Counterforce" -"Total Command Control Through Computers?" -"Taylor's Flexible Response Strategy Shifts C&C Perspective" -"Electronic C&C Will Aid Army Commander, Not Replace Him" -"We Have More Than 800 C&C Systems" -"Resource Management: A New Slant on C&C" -"Real Time C&C Aids USAF, NASA" 4. "Command and control" as defined in the Dictionary of the United States Military Terms for Joint Usage (JCS Pub. 1) is "An arrangement of personnel, facilities and the means for information acquisition, processing and dissemination employed by a commander in planning, directing and controlling operations." Note that the word "system" is not used. 5. A "command and control system" as the term is normally used, includes many different 211 212 ~ROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 functions. In order to begin to seperate these so that they can be handled individually, let us differentiate between the comm'and function and the control function. We will first define and describe the characteristics of control systems: These are a class of systems sometimes included in the general definition of command and control, but which we propose to exclude from the subsequent discussion, except for use as a basis for analyzing the command subsystems we are really interested in. CONTROL SYSTEMS 6. As normally used in the technical sense, 'a control system regulates the action or activity of a person or device in order to perform a prescribed function. The key point here is that the mission to be accomplished is understood exactly and the means of accomplishing this end are also well understood. A control mechanism operates in accordance with precisely defined laws. It senses the performance of the controlled device and corrects deviations from the desired course in accordance with mathematical formulae. Control systems frequently have people in the control loop. An aircraft controller is an example of a human link in a control system. While the controller does not operate in a completely predictable mode, the majority of his actions are predictable in any except an emergency situation. In a weapons control system, of which SAGE is probably the largest single example, the majority of the functions can be described mathematically. Those functions which cannot be described mathematically are referred to human judgment. However, the ultimate goal is to eliminate the requirement for human judgment from the control system once the command to execute has been issued. Some systems, such as missile weapons systems' and antimissile systems, operate at such a high speed that it is necessary to eliminate the human operators from the control system loop. A distinguishing characteristic of control systems (as defined in common technical usage) is "feedback." This is true regardless of whether the system controls things or people. "Feedback" is the process by which a control system constantly senses what is occurring and adjusts the system to achieve the desired result. An aircraft controller directing the landing ap- proach of an ai.rplane uses feedback. He continually follows the actions of the plane and gives correcting instructions in case the plane is not following the desired course. 7. The diagram in Figure 1 is an oversimplification but it is intended to illustrate the dependence on sensors and feedback, and the prescribed nature of the action. COMMAND GO-STOP ANALYSIS CONTROL FEEDBACK SENSOR ACTION CONTROL SUBSYSTEM Figure 1. COST AND EFFECTIVENESS OF CONTROL SYSTEMS 8. Various control systems which are completely (or fo.r the most part) mechanized, have been in production for many years. Such systems include aircraft autopilots, instrument landing systems, missile guidance systems, tank and naval gun stabilizing and aiming systems, and many industrial process control systems. In the case of an industrial control system, such as a system controlling the operation of an oil refinery, cost and effectiveness trade-offs have been very carefully examined and are well understood. This is possible because the processes, procedures and desired end products are well defined. This is also the case in many small military control systems. Although the value of increments of improvement in the performance of a military control system may be difficult or impossible to measure, the value of an improvement in the performance of a public utility generating plant can be measured with great precision. An increase in operating efficiency of 0.1 % may represent a significant increase in the profit margin. ON THE EVALUATION OF THE COST-EFFECTIVENESS OF COMMAND 9. There are three factors which predominate in their effect upon the accuracy of a costeffectiveness estimate for a new control system. These factors are: value of performance, how well the function to be performed has been defined and the performance level desired. a. Value of Performance. Can a value be assigned to an incremental improvement in the performance of the system? In many instances it is possible to identify :a significant im·provement in performance and assign a value to it. Two performance factors of interest in the control subsystem of a weapon system are: (1) Reliability-If the reliability of the weapons control system can be improved, this improvement can be reflected in the overall reliability of the weapon. If the control is the least reliable subsystem, then the improvement will probably be quite significant. If the control subsystem is already the most reliable part of the system, then the improved reliability may have little effect on the weapon's ·performance. However, it might still be well worthwhile because of a reduced neid maintenance problem. The total system cost and increased efficiency must be taken into account. (2) AccuracY-An improvement in the accuracy of the control system may significantly reduce the number of weapons required if the target location is known to a higher accuracy than the accuracy of the weapon. Suppose the target location is known "exactly." If the accu.racy of delivery of the weapon is such that the target will always be within the radius of destruction, only one weapon (shell, iron bomb, or other) is required. If the error in aim and delivery is greater than the kill radius, we have a more expensive and probably less efficient situation (see Figure 2). The number of weapons required goes up logarithmically as the .probable dispersion gets significantly larger than the radius of destruction of the weapon. 213 IMPACT POINTS WEAPON EFFECT RADIUS AIM POINT TARGET CIRCLE OF ERROR PROBABILITY Figure 2. Formulae and nomographs exist for calculating the weapons required for a desired probability of destruction of the target. 3 If you cannot assign a meaningful value to incremental improvements in the system, a costeffectiveness projection cannot be made. However, analysis can still be used, and it still may be possible to make a relatively accurate comparison of the projected cost of different apmake a proper (or best possible) decision using the facts nlade available by careful analysis. b. Definition of Function. Are the functions to be performed by the control system defined and will they remain constant during the design, test, and production of the system? If so, one of the necessary conditions for an accurate cost projection has been met; If not, it is certain that the initial cost estimates will be significantly in error. The more poorly defined are the functions to be finally performed, the greater the probable error in the cost estimate. It would appear that it should be relatively easy to determine the functions required.of a control system. However, if the device to be controlled is being developed concurrently, and by a different engineering group or company, as is frequently the case, it is probable that control requirements will occur which were not anticipated. It is impossible to describe this risk numerically in the abstract, as each case will be different. c. Performance Levels. Is the system's performance specified? Will this performance re- 214 P-ROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 main essentially constant during the design, test, and production of the systems? If so, another necessary condition for a good cost estimate has been met. If not, the estimate has a high probability of being wrong. Is the performance required comfortably within the present state of art? If so, a major condition necessary to permit an accurate cost estimate has been met. If not, R&D is required and the estimate may be in error by factors of tens or hundreds. 10. Even where a new hardware/software system is of a kind which has been designed and produced repeatedly, accurate cost-effectiveness measurements or predictions cannot be made unless the value of what is to be accomplished is known, how it will be accomplished, and whether it C'an be done without R&D. This discussion has been included to illustrate the minimum conditions which must be met before reasonable cost-effectiveness projections can be made of any system or equipment. COST-EFFECTIVENESS OF "COMMAND AND CONTROL" SYSTEMS 11. For this discussion, three parts of the "command and control" function will be considered. These are more accurately called "Command and Support Systems." Figure 3 is a very simplified version of a very complex and personal activity, It is complex because it is an activity of sophisticated people in a complicated and changing environment, reacting to ambiguous situations which are inaccurately and incom,pletely reported. It is personal because each CO....ANDER COMMAND SUBSYSTEM Figure 3. commander has his own particular likes, dislikes, prejudices and means of operating. The commander will augment any formal "subsystem" we may build in any way he sees fit. The augmentation may be temporary or permanent (for the tenure of the commander) but it is not part of the subsystem discussed here. Realizing that we are discussing command support subsystems, let us consider each of the three selected which are: a. Data-Gathering Subsystem. A subsystem which gathers information necessary to support a command decision. b. Analysis Subsystem. A subsystem which provides or supports the analysis of the information. (The command function is not considered a subsystem.) c. Transmission Subsystem. A subsystem for the ,promulgation of the decision to the appropriate subordinates. 12. The function of command, i.e., evaluation of the information and the comm'and decision, is not addressed. This simplified diagram would emphasize the facts that: a. Commanders use many inputs, including feedback. b. The commander knows and relies on the intelligence and experience of the person responsible for executing the order. 13. Webster's New World Dictionary uses the phrase "Command . . . when it refers to giving orders, implies the formal exercise of absolute authority ... order sometimes suggesting an arbitrary exercise of authority ... " This is a clear recognition of the fact that it is not possible to describe rigorously the transfer function involved in the command 'process. This is true not only in general; it is difficult to think of a single specific command situation in which a series of logical conditions can be defined which describe the specific performance required of the commander. However, it is possihle to describe a few selected situations in which the correct performance can be readily predicted and completely defined. A doctrinal response is such a case. However, it is easier to describe one of the infinite number of situations in which the correct performance ON THE EVALUATION OF THE COST-EFFECTIVENESS OF COMMAND 215 cannot be completely defined in advance. Also, it will probably not be possible to determine if the decision was correct for days, or even months or years. can be made concerning timeliness, accuracy or reliability of the system. These are functions of the specific situation. Consider these major performance factors: 14. Since the com'mand -process itself cannot be described precisely, or for that matter with any degree of precision whatever, it is meaningless to talk about cost-effectivenesspredictions for the command function. Specific arbitrary situations can be defined (as is done in a war game), decisions postulated and the predicted results evaluated. This is useful to contribute to the learning process of commanders. It may also be useful to assist in evaluating a commander's thinking in the absence of a real war (certainly one would not want to leave the fate of a real military decision exclusively in the hands of a computer war game). While industry has for some years used a husiness game as a means of training and evaluating executive management, they do not leave real business decisions in the hands of this business game. a. Timeliness. How much is it worth to have the data a day, hour, five minutes, or ten seconds sooner? This is completely dependent upon the nature of the system, the nature of the situation, and the nature of the data. Given a specific data requirement, it is probably possible for an experienced military commander to put an arbitrary (approximate) value on the timeliness of the data. It is the commander's responsibility to make this decision since he is the one person who is held responsible for the consequences of his decisions. DATA-GATHERING SUBSYSTEM 15. Any cOfiifiiander (or business executive) needs information on which to base his decision. Military data-gathering systems have existed since before man first picked up a club. General Custer had a data-gathering system which provided him with adequate information to have prevented the massacre. His scouts told him that the Sioux were as numerous as blades of grass on the -prairie. It was in the data evaluation that Custer's command system was at fault. 16. Since some data-gathering systems are well understood, it should be possible to establish a cost-effectiveness comparison ,between various systems designed to achieve a specific performance. However, remember that this comparison is subject to all the conditions which limit the accuracy of cost-effectiveness estimates described above for control systems. It should also he possible to predict (with varying accuracy) the cost and performance of a given data-gathering system. However, it is certainly not always possible to accurately assess the value of increments of performance of a datagathering system. No generalized observations b. Accuracy. How much is accuracy worth in a data-collection system? This again is dependent upon all the factors listed above and also on the accuracy of the raw data and the quantity of the data. Given a specific requirement for data, arbitrary and approximate values can be assigned by the commander. It is not possible to do this in the abstract. (The accuracy of the system could be defined as the percentage of the data entered into the system \vhich arrives UDchanged at the output of the data-collection system.) c. Reliability. This could be d~fined as the percentage of the time that the system is performing in its normal manner. What effect will a temporary or permanent failure ha ve ? Here again, the finai answers are dependent on the specific system and can be assessed by experienced judgment only. 17. To reiterate, it is possible to compare the relative cost and performance of various datacollection systems designed to do a specific job. If the perform'ance is equal, or assumed to be equal, the relative cost can be compared. The problem is, proposed systems are, likely to be only approximately equal and then only where a system has been designed in response to a rigid set of specifications such as may be th~ case when contractors respond to a request for proposal. Even here a data-collection system is usually rather complex and the variations of system performance implicit in the proposals 216 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 are very likely to be of significance to the military commander. 18. Certain types of command situations permit a relatively accurate and profitable assessment of the value of timeliness, accuracy and reliability. Consider the case of a moving target with a known top speed. Knowledge of its exact present location is limited by the speed, accuracy and reliability of the reporting system. If we don't know of any restraints on its direction of travel, we must assume the target has a certain probability of being within a circle whose radius is determined by its speed and the age and quality of our knowledge of its last position. If we assume, for simplicity, that we have an accurate, reliable delivery system and a certain radius of kill, we can calculate the number of weapons which must be applied to the target area to give a desired probability of destroying the target. A method giving minimum overlap of destructive areas is the inscribed hexagon model. 4 The target area is covered by hexagons inscribed into radius of damage circles. If the radius of the target and the radius of desired damage are equal, one wea:pon is required. If the radius of the target is 5 times the radius of destruction, 37 weapons are required. (See Figure 4.) The number of weapons goes up as a function greater than, but asymptotic to, the square of the linear uncertainty as to the location of the target. This uncertainty includes, when you are estimating the number of weapons to stock: a. Reporting accuracy. b. (Speed of target) x (Probable reporting time loss). c. A safety factor to allow for the fact that the information you have may be older than you think (reliability of the reporting system). This analysis still will not give you the total cost of being effective, because it does not include such things as the 'probability of being able to deliver more than one weapon, time loss if weapons are delivered sequentially, or the reaction of the target if you miss the first time and get it excited, etc., etc. This simple example is virtually a control problem, but illustrates the point. 19. Assignment of absolute values to the total aspects of the performance of these systems requires the highest knowledge of the situation, the military strategy, policy and innumerable other factors relating to the national welfare. Hence, it is necessary that judgment be exercised in making the decision as to which system is selected. This judgment can never be made with full possession of all pertinent facts. It will always be subject to human error and can always be challenged. The military commander is held responsible for the consequences of this decision and, therefore, must have final responsiblity for making the decision. This does not belittle the contributions that can be made by proper application of analytical techniques. Careful analyses and cost projections of competitive systems can highlight areas of uncertainty as well as 'provide evaluations of known facts, and should greatly enhance the probability of the commander making the correct decision. ANALYSIS LAST TARGET REPORT POSITION Figure 4. 20. While the function of analysis has occurred in the commander's mind, with the aid of his staff, since the beginning of military action, it is possible to describe precisely only very limited aspects of the total field of information analysis for military command. In spite of this, much of the analysis requires the rapid and orderly retrieval of data from a large body of reference and current operational information. Facts relating to force status, logistics of supply and movement, geography, climate and installations are required, to name some of the more important. These must be stored in an ON THE EVALUATION OF THE COST-EFFECTIVENESS OF COMMAND orderly fashion. However, to support analysis, the facts must be related and sorted into many different orders or categories. Various manual or mechanized systems to aid this activity can be compared for cost, convenience, speed and other factors. Statements can be made regarding cost and relative performance. In some cases it may he possible to put a specific value on a difference in performance, but usually it requires command ex'perience and judgment to make the decision. And the decision as to the worth of a particular fact, array of facts in a category, or the worth of specific analysis may change drastically when the commander changes. Here, perhaps more than in any other command support subsystem, the effectiveness can be assessed only in the mind of the commander. What does he think he needs? SYSTEM FOR THE PROMULGATION OF ORDERS 21. Here again we have a function which has been performed by the military since the beginning of organized warfare. Given a specific situation, or a general requirement, it is possible to descrihe many different approaches to disseminating command information. These have included word of mouth, runner, carrier pigeons, bugles, drums, flags and rockets. Again, it is possible to com'pare the relative cost of various systems only if they have equal performance. Again, it is a matter of military judgment as to the value of improved performance in such a system. Accuracy is extremely important. Reliability, Le., probability that the command will be delivered, is of great value. The value of speed may be dependent in part upon the response time of the force commanded. A command transmission which takes seconds may be of no greater value than one which takes minutes where the response time of a military unit is a week. However, minutes or hours may be important even though the response time of a unit is days or weeks. It is possible to miss even a slow boat. To establish values of various system performance factors usually requires military judgment and cannot be generalized. Each planned application can be studied and in many cases definite, but not definitive, values can be attached to improvements in performance of some part of the sys- 217 tem. Other factors which cannot be assigned specific values, such as giving the order a greater sense of urgency or authenticity, may be more important. 22. It is worthwhile to single out the specific case of a nuclear exchange. This is certainly the most thoroughly studied of all the possible military activities which are not yet a matter of history. The nuclear exchange, 'once it is initiated, is usually considered to be more nearly a control problem than a straight command 'problem. It is bounded by doctrine,. a finite number of weapons and target choices. Command support subsystems with specific tasks can be evaluated for specific cost and relative effectiveness. A missile detection system can be evaluated-with existing missiles-and its performance against hypothetical new missiles estimated. An analyst can even assess many of the advantages of having a few minutes more warning time. But an evaluation of the dollar worth of this time is a task for the top military policy makers. Values can be assigned to degrees of reliability and accuracy. These can contribute to a sound decision, as they would in any other weaPQn of destruction system. In general these are like or are really control subsystem problems and can be ad~ dressed hy an analyst with considerable hope of obtaining some meaningful results. 23. The" command problem in the transattack and postattack period is mnre complex and probably less understood than conventional warfare. We don't have any relevant experience since fortunately we have never had an exchange. There are several questions we can ask about any proposed subsystem for command support: a. Can the system survive to do its job? b. Will there be anyone to use it? c. Will there be any data to feed it? d. Will it help? e. What will it cost? 24. Prior to this point an assumption has been made that hasn't been stated. It has been assumed that the subsystem or system component does something useful-it contributes to the better solution of the problem. This is the first question: Is this system relevant? The 218 PlROCEEDINGS--SPRING JOINT COMPUTER CONFERENCE, 1964 answer to this may save a lot of analysis time and many procurement dollars. If the answer is "Yes, the subsystem is relevant and useful," the following general observations can be made: a. Two or more approaches to the solution of the problem can be compared as to cost and performance factors. b. With luck, one of the alternatives m!ay be both better and cheaper. c. If additiona) performance is offered by the more expensive alternative, the problem arises of assessing the value of the increment of performance. Even if dollar values can be assigned, there are always other less tangible operational factors which must enter into the decision. d. A choice may exist as to whether or not to have a control system (or a particular weapon or device), but no choice is offered in the case of a command system. The command systems exist now. So we are always offered a relative choice. We can use present methods or add support subsystems. These can always be compared with the existing way of doing business. In either event we ha ve the basic command structure. Command systems are not a question of hardware. e. In all system component choices we may be faced with the cost estimator's standard dilemma. System A may use a part of an existing system, while System B may have growth potential or reduce the cost of future systems. f. The analyses and quantifications which can be done using the techniques provided by the engineering and scientific communities are valuable tools which can assist the commander in making the best <;>f an extremely difficult situation. g. The final decision as to the cost-effectiveness of a military command and control system should rest with the commander who is responsible for using the system and for the effect that it has on the success of his mission and the national security, whether he is a component commander or the Com- mander-In-Chief of the U.S. Armed Forces. He should have all 'available help, utilizing the best analytic. techniques, in order to make the best decision. 25. The commanders of the Unified and Specified Commands have been, in fact, given the responsibility for their command and control systems by the Secretary of Defense on 26 October 1963, according to Armed Forces Management, January, 1964. The Commanders will be looking eagerly for help in solving their extremely knotty and complex command support problems. I believe that virtually everyone here considers himself a professional, and many of you will be called upon to help solve these problems. Let us take a responsible attitude, and recommend hardware and software only when it is relevant to the problem, and can contribute to the solution better than an improved manual system, and only then after we are certain that the improvement is worth the cost; and that the user wants the kind of solution we propose. And I mean the user, the man who will have to make the system work as a part of his daily job. Let us have the courage to 'say, when necessary, "Glamorous hardware and elegant software alone won't solve your problem." And then work with the people who have the problem, and together find out what the problem is. And perha'ps find the solution, which may even make use of good hardware and software. Our professional ethics and pride require it. REFERENCES 1. ROBERT G. PFEFFERKORN, "Taylor's Flexible Response Strategy Shifts C&C Perspective," Armed Forces Management, Vol. 9, No. 10, Page 35, July 1963. 2. RAY CONNOLLY, "System Evaluation is Underway at ESD," Electronic News, Vol. 8, Page 22, March 18, 1963. 3. JOSEPH S. TOMA, USAF, "Probability Applications to Weapons Systems Analysis," AFSWC-TDR-62-59. 4. Ibid., page 29. FRACTIONIZATION OF THE MILITARY CONTEXT Dr. Frederick B. T h01npson TEMPO, General Electric Company Santa Barbara, California mand and control are the problems of maintaining adequate, relevant contexts under changing conditions and problems, and of insuring consistency across the varied and changing contexts of the members of the organizational hierarchy. It is on these problems of contextual dynamics that I would like to/focus your attention. INTRODUCTION Every subject is said to have both an inside and an outside. Its outside has to do with the relationships between the subject and matters external to it; while its inside is concerned with the subject's own internal dynamics. My talk concerns the dynamics of information in today's institutions with specific reference to the problems of command and control. Thus I shall leave questions concerned with the relation of COillmand to strategy and the nature of future wars to my colleagues who are well prepared, as I am not, to discuss them. THE SELF-ACCELERATION OF CONTEXT Our contexts tend to grow. The more we know, the greater our curiosity, the more the remaining unknowns provoke us. Each new discovery seems to create more problems than it solves, problems which beckon us to more complex, more extensive theories and understanding. This quest for knowledge is not only for facts concerning the external world, but also for a better understanding of ourselves, of our wants and objectives, and of the relative values to us of the alternatives we perceive. Context is ever-expanding. Throughout my remarks I shall make a great deal of use of the word "context." And so I shall first clarify just what I mean to convey by that word. I shall mean by context the total view a man, or a group of men, has of his situation at a given time. Thus context includes knowledge of environment, historic perspective, plans for action, motives, goals, all aspects of our understanding of the what, how and whys of our current situation. The context of a military headquarters is rather well-delineated. It includes the personnel records of the command, intelligence, operational information such as status of forces, logistic re ~ords and plans, operational plans, communication procedures, and certainly a clear understanding of the command's mission. If our contexts were limited to those which could be contained in the head of a single individual, our knowledge would be limited indeed. We have learned to build communities, communities whose principal function is to build and maintain a group context which exceeds in information that of any of its constituents by many orders of magnitude. Specialization can be viewed as a fractionization of the group context in such a way as to maximize the total information iri a community that can be brought In its broader meaning, command and control are the means by which an org--d.nization maintains adequate and interconsistent contexts for its constituents. The inside problems of com- 219 220 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 to bear on its various concerns. And the essence of organization is to insure intraconsistency across the group context while maximizing its informativeness. Our motivation for this insatiable quest for ever greater knowledge is clear. The more we know, the more efficiently we can modify our environment to meet our desires. Certainly our current standard of living is ample evidence of what the expanding human context can mean to us. But if expanding context brings greater control over our environment, it also extends our ability to gain knowledge itself. The great extensions of context made by Copernicus and Galileo and the observations of Tycho Brahe, opened the door for the kinematics of Kepler. In turn these advances showed the way for the dynamics of N ewton, and so on through the discovery of the Van Allen belt and solar winds. This same effect is equally applicable in the small as in the large. When a boy learns to ride a bike, this new knowledge vastly increases the world he can explore. Contextual growth is self-accelerating. Look at .this fact very carefully: Context is self-accelerating. If context were limited to a single individual, there would be a ceiling on contextual growth and this acceleration would be controlled. But by building larger and larger communities, we have removed this bound on contextual growth. If the community context were to grow steadily, one could conceive of an ever-enlarging culture. But the self-acceleration does not permit steady growth. As the rate of growth of knowledge increases, as well as its overall extent, self-consistency of the total construct becomes strained. Communication across the context cannot keep up with the new discoveries and conceptual extensions taking place on all sides. The feeling of being out of touch rapidly deteriorates to a fractionization of community identification. The basis of communication, the commonality of context, disintegrates. Castastrophic fractionization of context ensues, and the result is the plummeting of the amount of information remaining in the community. The symptoms of contextual fractionization are many. Among them are, for example, a feverish preoccupation with the problems of military command and control, attempts to centralize control of departmental or corporate informational activities, acceleration of organizational change, greatly exaggerated evaluation of communication activities and increase in "paperwork" of all kinds, and standardization by fiat, rather than by community recognition of common practice. And the final desperate stage to secure the shattering informational community is dictatorship. Is such catastrophic fractionization of our communities inevitable? I do not know. Certainly the rea,ding of history gives us pause to wonder. But there are ways of dealing with the problem of contextual explosion. Context must fractionate, because the strains on communication do become excessive, strains which build up faster than technological advance can relieve them. But we can achieve orderly fractionization. The constituent communities can be organized to retain through the organizational hierarchy the means to bring to bear a total body of know-how and understanding not achievable by anyone element of the organization. Gentlemen, the Department of Defense is tending toward catastrophic fractionization. The almost explosive rate of contextual expansion is all too clear. Intercontinental missiles are the result of global concerns and scientific advance, not vice versa. And the rate of expansion of the total defense context, indeed, of every facet of that context, has become explosive. There is no reason here to recite examples of the disintegration of communications, of inconsistencies of policy, or of the increasing difficulties of initiating definitive actions. We are all too aware, each in our limited sphere, of this fractionization. And even the newspapers and trade journals confirm our fear that it may be widespread. Those of us gathered here represent a sizable part of the community that has both means and mission to reverse this rapid decay in overall information in our monolithic organizations. We can assist in the achievement of ordered fractionization that can in turn increase the potential for information of today's institutions, and thus our potential for decisive, efficient action. But it is not in the increase in commu- FRACTIONIZATION OF THE MILITARY CONTEXT nication, the centralized data centers or the paternal agencies established in the name of efficiency, that this reversal will be achieved. Efficiency in the informational activities of a community come from entirely different sources. Before discussing specific approaches that our industry might undertake to give effective service at this critical time, I would like to take an~ overview of the kinds of measures a community can take to accommodate its expanding context-measures I believe the Defense Department must take if it is to maintain an adequate defense posture for our nation. STEPS TOWARD PREVENTING CATASTROPHIC FRACTIONIZATION Organize to Minimize Communication Requirements The task is not that of maintaining a single, all inclusive context where the centralized Secretary's Office has all the details of its far-flung operations at its fingertips. No single context can accommodate it. It is not just that no one man can take it all in a single thought. It is simply impossible to put such a context together no matter what resources are brought to bear. The means of communication are not adequate, nor can they be made adequate, to maintain the consistency of such a context whose rate of .change in every facet is as high as it is today. The essence of traditional command doctrine is the delegation of command prerogatives to the responsible officer on the scene. Let us examine this doctrine for a moment. What do we mean "on the scene?" In a task force operation the man on the scene is the task force commander. He is directly in touch with his subordinate command elements which he controls and maneuvers in· the accomplishment of the task force objective. However, if we consider one of these subordinate units, say a combat ship or combat wing, the commander of that unit is on the scene relative to its control and the coordination of its operation. In turn, for the operation of the ship's power plant, the engine room officer is on the scene; for the operation of a particular aircraft, the aircraft commander is on the scene. 221 A military operation - any operation - directly deals with reality; not with hypothetical plans, nor with far-flung systems which can never be fully sensed or directly experienced, but with individual men and individual items of equipment, and individual reports and individual points of view. This reality is strangely peculiar to the particular operation. It may be an operation at the highest level, such as dealing with Rusk and McNamara, Khrushchev and De Gaulle. It may be an operation at a middle level, such as the execution of a blockade of Cuba dealing with particular ships, the personalities of well-known officers and with weather conditions you have personally tasted on many a watch. Or it may be an operation at the lowest level such as knowing instinctively the coverage pattern for a radar and the kind of returns to expect, and the sense to be able to distinguish the moon from incoming missiles. Traditional military command doctrine gives the responsible officer, who is in the position to directly sense the reality, the means and the prerogatives to deal with that reality "on the scene." The essence of this doctrine is twofold. First, the responsible officer on the scene is in the best position to have the relevant information. Second, the delegation of prerogatives assunles responsible reporting of the relevant facts upward. As a result, the 1'equi1'ements for communication are reduced to a minimum and the relevance of communication is maximized. To attempt to obtain at a far-away headquarters the essential details, the peculiarities of an operation, and to exercise detail control from a distance puts impossible strains on communications. I do not mean by "communication" solely the transmission and reception of signals, but all that is implied when we say two men are communicating, one to the other. Those who think that this problem can be solved by great automatic data systems-and there are many people who think this in our industry-have no appreciation for the complexities of military operations, though they would decry the difficulties of debugging a simple computer program by telephone. The result of such systems is inevitably the inundation of the higher headquarters with noise and the rapid deterioration of the effectiveness of the subordinate. 222 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 The notion is also popular that one can centralize a portion of an operational task in a central agency, far removed from the realities that give meaning to the subtask in the first place. Thus, for example, major functions of military intelligence and military communication are centralized for the sake of efficiency. But the sources of feedback and the measures of relevance germane to the operational realities and requirements are missing in such centralized agencies. The relevant measures, heard only indistinctly, are all too easily replaced by feedback from the local environment which are all too often at cross purposes with the needs of the field. One of the control centers of a unified command wished to move a telephone fJ;:om one side of an office to the other. I t took two years for the paperwork to be processed through Washington before official permission was given. Of course, the phone was moved long before that. But it is precisely the inconsistency as well as communication strains which result from such foul organization and failure of delegation with which we are concerned. An equally ridiculous example is that a major military command now is in the process of putting all. their personnel records for the last ten years on punch cards and sending them to Washington. Washington may be able to process punch cards very fast, but any manager who has had to match man to job and stay on top of the personnel matters of his employees can imagine the reduction to primitive levels that managers on the scene will be forced to employ and the stratagems that will be used to keep Washington permanently misinformed. To delegate operational tasks to men on the scene calls for attention to the kind of tasks which are likely to occur, the kinds of control which must be maintained at higher headquarters and strategic considerations. These are the outside aspects of command and control. But once these are properly assessed, the inside principle must be followed: organize and delegate to minimize the volume and maximize the relev!Lnce of communication. And the key to this principle is to assign responsibility and prerogaUves to the man on the scene. To Stay Consistent, Stay Close to Reality One of the greatest deteriorating factors in any organization is incipient conviction on the part of a constituent that 'others with whom they must deal are out of touch with the realities of the situation. If the higher military headquarters appears to be functioning on the basis of assumptions that the field knows by its direct observation to be false, or even if the field only believes them to be false, the field will inevitably respond by subverting the information structure to its own ends. If the higher headquarters loses confidence in the meaningfulness of the reports it receives from the field, it will ignore those reports in making its decisions. The result is rapid collapse of communication, a collapse that cannot be detected in bit rates. The problem of maintaining touch with reality is greater now than ever before, for we have so few bench marks on which to lay our conceptions of military operations. We had not had operational experience under full scale war time conditions with weapon systems and unit organizations with which we are now equipped. There is no underlying body of experience that, among other things, assures the consistency of view that is so necessary to maintain the cohesion of the military organization. Thus we must insist with uncommon concern and tenacity that the operational realities of which we are cognizant are kept firmly in mind, let the chips fall where they may. In many cases, the knowledge of our senior military officers concerning what is actually going on in their commands is simply inaccurate or misinformed. It is generally accepted that the SAGE command and control system led the way in the development of modern automated command control techniques; that SAGE was the great prototype of automated command and control. The indications are, however, that many SAGE sites are not exercising their equipments from one inspection to the next, that some have even put cellophane overlays over their scopes and returned to essentially manual operation. What confidence can we put in the development of future command and control systems when SAGE is named as the great prototype? But it is not only that our higher headquarters are net looking. Of much greater concern FRACTIONIZATION OF THE MILITARY CONTEXT is that we are ignoring at all levels realities all too apparent to the analyst who will but unflinchingly layout the known facts. How many systems, organizations, bureaus and military commands live on when both they and their missions are obsolete? What is the degree of collusion in the conduct of military exercises? What studies have been buried? Who has not felt too often the pressure to justify rather than establish, and witnessed too many contrived demonsrations? We are not looking; we are not probing below the surface. But we have found a substitute: the operations analysis that purports to "simulate" military operations in a computer or establish formulas for determining the cost effectiveness of weapon systems. Operations analysis can be useful, but only if soundly established on ~dequately developed experimental evidence from the field. It is important that those who are applying the results of such analyses at the strategic level understand our technical deficiencies in the basic and crucial assumptions of these studies. A few specific examples of such deficiencies are: • there is no adequate method of discounting over the long haul in cost/effectiveness studies; • economic comparisons or economic resource cost estimates involving the Soviet Union depend on an adequate analysis of the ruble/dollar ratio, which has proved intractable to date; • the "soft" effects of nuclear weapons on population, communications and organization appear to dominate the "hard" effects, yet we have no adequate means beyond intuition to project these "soft" effects; • there is no adequate method to assess the effectiveness or the effects of deterioration of combat communications of any of the military or diplomatic services. Yet these deficiencies lie across the very roots of every major operations analysis today. Eight years ago I participated in a study to determine whether the results of a certain class of effectiveness studies were sensitive to the 223 underlying parameters of the studies. We found that the degree of sensitivity, relative to our knowledge of the parameters, reduced the significance of the results to a point where their usefulness was in grave question. I recently examined this same area to see what improvements had been made. I not only found the same practices, but the same reports which I had presumably established as inadequate were quoted as the basis for current studies. Is it not the case that our studies grow from roots that penetrate only as far as the intuition of the analyst? One of the best known and respected operations analysts once showed me his notebook where he wrote down prior to undertaking a study what results he expected to prove. He was very proud that he had never failed to predict his results correctly. If I were to be asked to choose between the expertise of a Ph.D. mathematician and a flag officer of our armed forces in matters of mathematics, I would pick the mathematician. As a mathematician, I do not have the arrogance to hold that the mathematician's "guesstimates" and intuition should hold sway in the arena of military operations. I am not here decrying lack of objectivity as such, or pointing in alarm at malpractice. What I am saying is that if we are to reverse the catastrophic fractionization of context which is occurring in the Department of Defense, we must insure by all available means that consistency which can legitimately be found. The best source of consistency is reality itself. We must get out of our nonprofit ivory towers, administrative labyrinths, and self-mesmerizing brochures. \Ve must insure that our context matches the reality that is there, if we bother to look. Experience must again be valued, the man on the scene respected, and the hunch heeded that tells us we had better drop. in unexpectedly to get a first-hand look. The Importance of Purpose Modern communication theory teaches us that information can be measured in terms of our relative uncertainty concerning a set of alternatives. What it does not tell us is where these alternatives come from in the first place. Once the alternatives are clearly defined, then that part of a communication which does not 224 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 properly reduce our uncertainty is identified as noise. However, if we were to change our selection of alternatives, what was once noise may become highly informative communication. Thus the selection of alternatives is a crucial aspect of obtaining information. However, it is in the selection of alternatives that we often go astray. It is far too easy, when we come across a new facet of a situation, to either make simplifying assumptions related to the techniques of the analysis rather than the problem, or to simply ramify the alternatives, establishing new requirements for data. In either case, communication theory gives us neither reason nor warning for the resulting dilution of relevance. We pay homage to systematic methods, and, like the physicist who ignores viscosity in favor of Newton's laws, forget about the sticky aspects. We must be sure to get all the hard facts; to distrust-indeed fear-the man who is outspokenly biased. We dare not make judgements of relevance, and the only limitations on alternatives are those made in favor of allowing more precise analysis. And as a result, we are faced with the paradox that since there is nothing we dare call noise, it is all noise. I know of one office of the Defense Department that has stored away over 7000 magnetic tapes, each containing a million and a half words. They never have and never will have the capability to look at them, yet they are reluctant to throw them away. The selection of alternatives is where our purpose is revealed, where our measures of relevance are established. It is only when there is clear purpose that there exists the means for establishing relevance. And it is only through a sense of relevance that we can winnow out the essential elements of information from the swirling, encompassing chaff of data and reports. When we have our purpose clearly in mind, then the one or two alternatives that we actually have stand out clearly in front of us. What is purpose? Purpose is not something set down in writing under the subhead, objectives; nor is it the first few paragraphs of a justification paper. I imagine that each of us has on occasion sat with tablet and pencil before us trying to put into a position paper or proposal a meaningful statement of purpose, and finding our words empty and unconvincing. Purpose is not expressed that way. Purpose is only truly meaningful to the man on the scene who has at his command the means of accomplishing something and is caught up, engrossed, in getting a task done. Such a man is not objective; indeed, he is vehemently biased. But this is the kind of bias we so desperately need. He ignores most of the facts, and in so doing has time to attend to his job. He is too preoccupied to fill in all the data forms; but when he communicates, the message both demands attention and clarifies by its clear relevance. Purpose is the man on the scene, struggling with a task, who can get direct feedback from his actions, who has at hand the measure of his accomplishment or failure. I do not think you can separate the two. Separate the man from the means for accomplishing his task, and purpose goes also. Remove him from the scene, from the source of direct feedback, and you remove purpose as well. In designing information systems for command and control there seems to be no attention given to conveying purpose. How is purpose conveyed? Purpose is conveyed by saying what the alternatives are, not by evaluating their cost effectiveness. Purpose is conveyed by saying what the measures of effectiveness will be. Purpose is conveyed by asking questions, not for the sake of the answer, but to be sure the man questioned got the gist of your order. Purpose is conveyed by leadership and follow through. The systemization of human knowledge has grown to such an extent that we find ourselves entrapped in a great web in which it seems that any strand we pull ties in with all the others tugging us in ways we did not anticipate. We tend to replace the question as to which way we wish to go by the question as to which way we can go. And we assume this latter question can be solved by simply getting our facts untangled, tracing through the scientific web of cause and effect, and thus clarifying the old alternatives and their cost effectiveness. The realities with which the military must deal today a're beyond such scientific explana- FRACTIONIZATION OF THE MILITARY CONTEXT tion. I am not talking about the "intangibles," nor about the role of "judgement," nor any of the other cliches used to justify intuitive behavior. The self-acceleration of context, in particular of our scienti~c/military context, has reached the point where changes are taking place in the system faster than our ability to properly take them into account. I have stressed above that fractionization is occurring, and the essence of fractionization is that overall rationalization of the total system becomes more and more impossible. If science is inadequate for the direction of our military programs, by what should we supplement science? Under these conditions of fractionating context and decay of overall informativeness we must find some means to reestablish relevance and spur and inspire purposeful action with a unity of direction. Our current attempt to gather all possible information into one place and then use scientific methods to reduce it to a point where deCisions can be made is resulting in just the opposite of what is req,uired. Indeed, the very cry of our operations analysts for clearer statement of requirements points up the almost total loss of measures of relevance and sense of purpose. Let us recognize that some men have a better sense than others for where we are going and what can be done about it; and that some men have the capability to inspire and lead. Just as we look for the finest intellects to become scientists, ,\-ve should similarly look for and esteem our men of judgement and our men of leadership. How much money are we spending today to encourage those who rate high on the college board examination compared to the incentive we are giving to courage of conviction, personal initiative, and the qualities of leadership? We do not breed leadership by centralization of decision making, by defiling the image of those who have achieved prominence as leaders and men of judgement by casually reversing their decisions, by giving precedence to the mathematically encapsulated intuition of men whose judgement has never been tested in operational situations, by occupying the time of our field officers with routine paperwork and the exclusion of honest tests of their effective- 225 ness in successful operation and sustained operational preparedness. It is in the practices of command and control that we determine the quantity and the quality of judgement and leadership that we shall be able to call upon in the future. It is the practices of command and control that allow the quantity and quality of judgement and leadership we now have to be exercised effectively. And it is the quantity and the quality of judgement and leadership that will determine whether the exploding context will fractionate in an orderly fashion, giving us the defensive capability that will sustain our great country, or will hasten the catastrophic fractionization that is now rotting our defensive capability from within. To summarize: • the requirements for communication must be minimized and the relevance of communication must be maximized by placing the prerogatives of command and the responsibility for reporting upward in the hands of the responsible official on the scene; • the interconsistency of context must be maintained by keeping close to reality, by delegation to the point where feedback from the real world can be felt, by follow through in insuring that things are as they are reported to be, and by facing up to realities that we know but are now ignoring; • relevance and purpose must be stimulated by attention and esteem for judgement and leadership and by the stimulation of these qualities by allowing them to be exercised at all levels of command. These three principles are the central issues of command and control today. Our attention to them will mark the success or failure of the establishment of effective command and control across our military organizations. Do not be misled that the only problems that remain are how to automate decision making, store and retrieve documents or harden communication centers. Let us turn now to these central issues and what our industry can do to resolve them. 226 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 IMPLICATIONS FOR THE COMPUTER INDUSTRY other measures in deciding the appropriate way to apply computers. Exploitation of the Adaptability of the Co'mputer Further, when the problem that the computer programmers and computer engineers see are so very large and complex and so distant from the underlying uncertainties giving rise to the computation, the idea that the data are suspect and the answer only an indication of what new question to ask, immediately requiring a new program, or second guess at inputs, is foreign, indeed. Thus the adaptability of the computer, which makes it such an ideal tool of conceptual exploration, has been downgraded. Little has been done until recently toward exploiting the other half of the computer's great capabilities. Indeed, relative to tot?-l expenditures or total population in our industry, little is being done today. The development of the digital computer has provided us with a machine whose combination of adaptability and computational power is way beyond anything previously available. As a means of manipulating great q,uantities of data and carrying out extremely complex data processing, the computer opens whole new avenues by which we can bring to bear distant observations on current concerns. Furthermore, the high speed, stored program computer has the potential of placing these capabilities at our fingertips. However, the exploitation of these two great virtues of the computer cannot be carried out independently. There is a trade-off between the computer as an adaptable instrument and the computer as a data processing instrument. To make the most efficient use of the computer as a data processing instrument requires efficient programming, minimizing of housekeeping and input-output functions, and careful scheduling of the computer's utilization. To make the most efficient use of the adaptability of the computer requires, in contrast, that the computer respond directly to the sometimes ill thought out instruction of the user, with much time spent on input and output to deal with the elaborate redundancies and conventions by which we normally communicate, and that the computer essentially wait ·for the user rather than the other way around. Now the principal uses of the computer today are in applications where the maximization of its data processing capabilities are required. It is indicative to recall that the biggest sources of funds by far for the development of computers have been the Atomic Energy Commission and the data handling aspects of military intelligence. In both cases the emphasis is almost entirely on speed of processing. Even the output required is in the concise and sophisticated language of mathematics. No wonder the current generation of programmers and computer engineers place efficiency of computation and efficient use of the computer ahead of all In particular, our command and control systems are not responsive to the rapidly changing environment, capabilities and objectives of the user. In fact, the principal result of all the push in command and control to date is the proliferation of organizations inserted between the ultimate user and his computer. There is the EDP office of the using command, his counterpart in the procuring command, the system monitors, the contractor's project office and finally the programming and design people. I t is in the interest of each of these offices to seal the system requirements years before its operational date and see to it that the most efficient-and thus necessarily the most immutable-configuration of programs and equipment are provided. For example, soon after the initiation of one of the Air Force L systems, it became evident that the requirements stated in the request for proposal (by then 15 months old) did not take cognizance of the user's trends and plans for reorganization. The system contractor duly recommended a rather complete reorientation in his effort. Not only was this recommendation ignored, but 10 months later, 6 months after a reorganization of the user that made the work statement obsolete, the system contractor was required to deliver a detailed systems design and establish by detailed analysis that it filled, but did not go beyond, obsolete requirements of a nonexistent organization. FRACTIONIZA TION OF THE MILITARY CONTEXT In the first part of this talk, I stress the growing problem of catastrophic fractionization of the context of the Department of Defense. I am convinced that a by no means insignificant contribution to this impending catastrophe is beingmade by past and current efforts in command and control systems. The huge, inflexible data systems with their insatiable demands on the field for irrelevant, often unused data, the cumbersome automation of decision processes whose development time cannot keep pace with changing requirements are contributing not only to the inflexibility of our defense posture, but immeasurably contributing to the inconsistencies they are supposedly resolving. There is nothing easier to corrupt than a complex, highly formalized data system. And there is nothing for which the coercions to corruption are stronger. I shall never forget the conversation I had some years ago with one of the leading contributors in our industry. At the time he was at a Naval shipyard, in charge of their computer installation. He described the problem. there as having nothing to do with efficient methods of inventory control or production scheduling. Rather their then current data system had been so completely corrupted at the grass roots level that one could place no reliability on any available data, and as a consequence, the yard management was in a very real sense helpless in face of the working level control of shop foremen. How much farther has this gone today? The real damage, though, is not being done by the command and control systems that are working; there are too few of these. It is the great promises and strange delusions that in a centralized data system we have the panacea of all our command and control problems. Mr. Gilpatric, when Assistant Secretary of Defense, said, "The machinery for gathering, analyzing, and presenting the data necessary for decisionmaking has, due largely to the extensive and imaginative use of automatic data processing by the military, advanced to a point where centralized decision-making is both efficient and effectiv.e." Mr. Esterly Page, Director, National Military Command System (Technical Support), repeating the above quote from Gilpatric, went on to elaborate on the choice that has been made: "During the past two years this nation 227 has undergone a basic change· in the philosophy of command and control which has resulted in new enlphasis on the requirement for large quantities of finite and precise information to form the basis for consideration at the highest level of problems that previously were considered and unfortunately decided at a much lower one." Like the wooden walls of Athens, computers may be the key to our survival. But what happens when those high up in the lonely citadel find they chose the wrong wooden walls, and the ones they chose have been rotted a way by the proper corruption which seeps in when the traditional coercions for responsibility have been taken a way? However, there is a bright spot in this otherwise disturbing picture. The Advanced Research Projects Agency is supporting a number of well-chosen programs for the development and exploitation of the adaptive capabilities of computers. Certainly one of the most ambitious of these programs is Project MAC, undertaken by the Massachusetts Institute of Technology. The Air Force is also turning toward developments along somewhat similar lines, as was stated by General Terhune 3 at the Fall Joint Computer Conference in Las Vegas. * There are, as well, programs sponsored by other agencies, both public and private. Forexample, the commercially supported project undertaken by the Control Data Corporation concerning computer .supported engineering design. These projects have as their general objective making the computer directly available to the individual researcher, analyst, and staff officer, as an adjunct to his creative thinking. The technical objectives are threefold. First, by means of remote consoles, interrupt features, and associated software, to provide a number of users direct and parallel access to the computer. Second, by means of problem oriented languages, including graphic and natural languages, to provide access to and response from the computer in a form that is natural and effi* This point of view was anticipated by "A Concept for the Navy Operational Control Complex of the Future," by R. W. Callan and F. B. Thompson,! and "Fundamentals Underlying Military Information Syst3ms Design," by F. B. Thompson, a paper presented at the First Congress on the Information Systems· Sciences, November 20,1962. 2 228 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 cient for the user. Third, by organization and advanced concepts of software logic, to provide more and more intelligent responses to an increasing variety of possible requests. These capabilities will take the computer from down the hall and behind the counter, and place it as a direct adj unct of the staff officer. Command and Control Implications of Direct Access Systems The general nature of these technological developments is probably known to you. What I should like to bring into sharp focus here is the implications these technological developments hold for the central issues of command and control. A computer as a direct adj unct of the staff officer is a very different thing than a computer as the central instrument of a great data system. Those who speak of direct access systems often describe how they will allow the staff officer to make use of some central data base, and the implication seems to be that the staff officer will have direct access to the great assemblage of fact that now stands assembled but inaccessible by the great data system. This is a false view. Acces~ to a base of fact can be meaningfully accomplished only if the user has a feel for the relevance, the source, and the units of those facts. In a very real sense, they must be his facts, his data. We too often assume that the number of missiles in Cuba, or the number of atomic weapons we could deliver to enemy targets are sufficiently well defined when in fact their uncritical application by the uninitiated is fraught with danger. This point needs to be stressed. Meaningful data is a fragile, subjective thing. The intelligent analyst knows this when he insists on knowing the use that is going to be made of his estimate before he is able to produce it. The contracting officer knows this when he refuses to allow even a unilateral passage of information during deliberations on a source selection. The combat commander knows this when he gets out among the troops to sense the situation on the spot. One can reasonably and responsibly use data only if it is one's own data. There is a second aspect of this matter of the data base underlying these direct access systems. The amount of data that could be ac- cumulated in, say, a major command headquarters is astronomical. The choice of just what data is to be found in the system thus becomes an important command decision in itself. That choice embodies the sense of relevance of the headquarters. Further, the implementation of that choice by directives on subordinates and requests to lateral and higher headquarters, is a principal means of conveying purpose and establishing direction. The headquarters whose reporting requirements are static and allinclusive gives up one of its principal tools of control and opens the door to subversion of its leadership. It is the direct access system that can give new vitality to data as a sensitive instrument of command and control. Therefore, the implication of the technological development of direct access systems is that there will be closely knit staffs addressing relatively small but dynamic bases of highly relevant data as they deal intensively and purposely with problems local to their scene. Such direct access systems cannot be reasonably justified on any other grounds. Thus the technological development of the computer as an adaptable instrument, responding directly to the requirements and local context of the user marks the beginning of the counter trend. Not only are the continuing failures of the automated information systems becoming more and more obvious, but the seeds of a new.type of system suited to the needs of the purposeful headquarters on the scene are being sown. The catastrophic fractionization of the Defense Department is being accelerated by the obsolete centralized information systems. It is the latter, the system that can be used responsively by the purposeful staff, that can bring the necessary vitality and responsiveness to orderly fractionization. The Promise and the Needs of the Highly Responsive Staff Throughout this paper, the underlying problem has been how to deal with the exploding military context. We have emphasized (1) the need to place the prerogatives of command and responsibility for reporting upward in the hands of the responsible officer on the scene; (2) the need to maintain a direct hold of FRACTIONIZATION OF THE MILITARY CONTEXT reality; (3) the need to establish purpose and measures of relevance through leadership. How can this be done, say in the environment of military command? The essence of orderly fractionization is that the units of command must be in a position to maintain a viable context, a cohesive and consistent view -that integrates their capabilities, environment and objectives in a way that is responsive to the reaHties with which they must deal. The commander and his staff must know what he wants to do, what it will take to do it and what he has to do it with, and they must have a sense of readiness that his objectives, his requirements and his capabilities add up with possibly a margin of capability in reserve. Noone of these three ingredients of his context-objectives, situation and capabilities -is given to him immutable. He must be able to modify his detailed objectives, reassess his situation, reorganize and redeploy his capabilities. That is, he must maintain the consistency of his context of command. But more than that, he must make sure of this intelligence, test and exercise his forces, prod and react to his superiors; he must maintain the validity of his con~ text of command. This maintenance of context is the essence of staff work and the foundation of command and control. The orderly fractionization of command is tantamount to the establishment and reestablishment of a hierarchy of command in which each headquarters can maintain such a context peculiar and appropriate to its position in the hierarchy. As the rate of expansion of overall context increases, this hierarchy of command must expand and deepen. Each element in turn must increase the efficiency and maintain the relevancy of its context. If this is' done there will indeed be fractionization, for the contexts of forward elements, in touch with the rapidly shifting local situations, will responsively shift and move in ways the contexts of higher elements cannot moment by moment respond. These higher elements, however, operating at higher levels of abstraction, will follow at their appropriate rate, their appropriate realities, of their appropriate scene. Fractionization of the overall context inevitably will occur. 229 Let me restate that in the bluntest possible terms: In the Department of Defense today, inconsistencies between the contexts of the various elements of the organization are inevitable. It is the character and source of these inconsistencies that must be controlled. If that fractionization is realized in terms of the responsiveness of the disparate elements of the command hierarchy, it will accommodate greater and greater responsiveness to change, and permit an orderly control of a vast and vastly informed organization. Consistency of overall context cannot be maintained in the face of change. But orderly fractionization of context that places the prerogatives of control at the point where the sense of change is most meaningful, that insures the degrees of change will be felt at the appropriate level and that inserts purpose into change, such orderly fractionization can permit our organizations to live a'nd grow and prosper. In Surn1nary Thus the crucial informational problem is the maintenance of relevant, consistent, valid context in each separate, disparate organization or military headquarters. This is the central task of staff work, the essence of command and control. It is in the perspective of this task that our information systems must be planned and developed. The appropriate information system must be a direct tool of staff, as natural and direct to use as the te~phone. The data held by the system must be put there by the staff, must be the intimate changing product of the staff, the factual base of their context whose relevance is their most crucial task. And that system must be the staff's system, not a universal system, not a standard system, but one that is recognized as what it is, inconsistent with all others, to a degree irrelevant to all others, and thus free to be responsive to the sense of relevance of its staff, the purpose of its commander or administrator. From such a context, communication will be relevant. And this communication, by its very shifts and changing emphasis, will convey purpose and direction as well as fact. This is a very different kind of system than the great data systems and automated control systems. It is a system that allows direct access in natural language, it is a system whose files 230 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, and formats, whose inputs and vocabulary are always changing, continuously changing. The Department of Defense is tending toward catastrophic fractionization. The reversal of the process of this explosion may still be possible. It rests in the hands of two groups: First, those in control of d~fense policY, in particular those who are determining the policies for military command and control. Second, it rests on us, for it is our industry that can turn to the development of systems that will exploit the adaptability of computers and will place them as the tools of staff in maintaining relevant, responsive contexts of command. The challenge to realize orderly fractionization is very real and urgent today, a challenge to which we must respond. 1964 REFERENCES 1. CALLAN, R. W., and F. B. THOMPSON, "A Concept for the Navy Operational Control Complex of the Future" (General Electric, TEMPO, RM62 TMP-49, July 1962). 2. THOMPSON, F. B., "Fundamentals Underlying Military Information Systems Design" (General Electric, TEMPO, SP-183, November 1962), to be published in Military Infor1nation Systems, edited by Edward Bennett (Praeger, New York, in press). 3. TERHUNE, T. H. An Address to the American Federation of Information Processing Societies, Fall Joint. Computer Conference, Las Vegas, Nevada, November 12,1963. SOME OBSERVATIONS CONCERNING LARGE PROGRAMMING EFFORTS Almon E. Daniels Weapons Systems Evaluation Division Institute for Defense Analyses INTRODUCTION The requirement to construct large systems involving both men and computers to assist in the evaluational and decision making processes of command and control leads very quickly to the development of large and complex computer programs. While my own efforts have been largely devoted to the development of detailed computer simulations of strategic air warfare;1 I have had an opportunity to follow in more or less detail the progress on a few of the command and control systems. The observations which are made here relate to a broad class of computer data systems and certainly apply to the ones evolving in the command and control area. One may think of a computer program as a progression of smaller programs or routines. Among these routines are ones which alter data presented to them, perform calculations, make new arrangements or combinations of the data, provide for employing alternate paths in the program, etc. Of considerable importance also are the control routines which bring together at the proper time the correct routine with the data on which it is to operate. In more complex programs, the sequence of use of the routines and data is subject to modification by external events. The tougher problems in the design of computer programs begin to arise when the in- ternal memory of the computer is too small to contain all of the routines and data involved. For the large man-machine systems the internal memory might be likened in size to a teacup used to dip a mixture of program and data from a barrel. Much larger memories will simplify some of the problems, but they will not eliminate nearly all of them. These remarks have been made to clarify, for the present purposes, the meaning of the expression "large computer program." The development of a large system goes through several phases. First, there is a formulation of system requirements. Then follows a period of system analysis, problem definition, and design. The computer hardware is selected, a detailed design is made and implementation is undertaken with numerous changes and delays. Experimental applications are made, redesign occurs, and modifications of the computer program are made. Further trials are made, and the cycle is repeated. The elapsed time for the accomplishment of these phases is measured in years. The design and implementation of most of the Air Force "Big L" systems have extended for three to five years. The other services have faced similar schedules. Under very favorable circumstances, a substantial application can be brought to a productive state in about two years. 232 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 '\ \ DESIGNERS' DILEMMA Designers of large data systems begin at condition A and envision a solution B, hurdling a number of intermediate steps. Because of the anticipated elapsed time of three to five years, embarking on the task of attaining solution B without intermediate steps requires the acceptance of a fairly bold assumption. It has to be assumed that solution B, which has been arrived at in terms of present day problems, will in fact be suitable for the intended task when the system is operational. In other words, ,the assumption must be made that the problem and the solution will remain relatively constant. Experience has shown that this happy state does not exist. The more distant the goal, the less certain the solution becomes. Furthermore, because the problem exists at condition A, there is pressure to arrive at a useable solution as soon as practicable. Consequently, as work progresses, several compromises are made. Call these less elegant solutions in succession Bh B2 , and B3 • As time passes, additional knowledge is acquired, and the actual requirements of the problem change to B' while the compromise solution is still Ba• A person not troubled by the esthetics of pure design could set out toward the not-crystalclear goal B by making the step from A to A' (which may be rather close to B 3 ) with much greater chance of early accomplishment of the lesser goal. Our experience with computer applications verifies the comment of one keen observer in the profession: "When we cease to change a program, we cease to use it." If there is any ~onclusion to be drawn from considering these two ideas together, it is the following: Make as complete a system study as possible, but design the implementation in such a way that a portion of the system can be exercised usefully at an early date. One must attempt to build the system and its modifications so that the user can operate the system while its usefulness is being extended incrementally. It is almost inevitable that exhibiting sample products of the system will lead to changing the design of the system; and the sooner this restatement of the requirement occurs, the sooner the first round of modifications to the system can be undertaken. Changes will be required on a continuing basis as the users of the system better understand what the system can do for them. USER PARTICIPATION It is next to impossible for the system analysis team to discover the full extent of the system being studied or to find all the boundary conditions unless the cooperating representatives of the user are sufficiently experienced in both the operational and computer aspects of the application to exhibit all the pertinent facets of the problem. The distinction is here made between the ultimate user of the system and his representatives who are assigned to assist with the design and incremental implementation of the system. The backgrounds and perspectives of the representatives may result in the incorporation of some undesirable features in the system, if they are not able to project their thinking to the needs of the ultimate user. If the ultimate user can be involved in the early exercising of the incomplete system, clarification as to emphasis and detail should occur before the whole design is implemented in an unsatisfactory fashion. Despite the possibility that guidance from representatives of the ultimate user may introduce some ideas into the design which will have to be modified at a later date, the participation of carefully selected representatives of the user throughout the design, implementation, and testing of the data system is vital. Without such participation, the user's organization will be ill-prepared to understand the series of compromises which have been made to bring the system to an operational state, and will not understand that asking for too much in a hurry is likely to delay the completion of SOME OBSERVATIONS CONCERNING LARGE PROGRAMMING EFFORTS the initial portion of the system and its incremental extensions. The user's personnel must be able to undertake the maintenance and modification of the system after the team from outside the organization has completed its work. In order to supply this capability, the user organization must provide sufficient personnel of suitable talent to participate in the implementation of. the system. These participants must be deeply involved in translating the design to language acceptable to the computer, debugging the routines created, developing test problems of proper' sophistication, producing the documentation, etc. As the key personnel assigned this duty may require two years or more to become proficient in substantial portions of the system, care must be taken to assure continuity in their assignments. Until the problem of rapid turnover among .computer programmers becomes less acute, it is likely that most of the more stable personnel involved will be among those in the employ of the using organization. TESTING For computer programs of considerable size, it is useful to distinguish three levels of testing. The programmer devises a test or tests for each subroutine he builds in order to assure that the computer reacts as anticipated to all the circumstances he considered in designing the subroutine. As these building blocks are completed, they are, ready for testing in combination with other subroutines and other aspects of their intended environment. Their input and output conventions are checked for compatibility. Larger test procedures are devised to exercise the joint functions of the program complex. Appropriate adjustments are made in' the program until all anticipated results are produced. The third stage of program testing2 consists of putting the program into limited operation to observe its behavior when dealing with the many variations of data which arise in practice. I t is very difficult to devise test problems which employ all the possible paths 233 in a program. Even though the program responds correctly in a limited test, it is possible after' several weeks of successful operation for the program to encounter some new combination of inputs against which it was not adequately protected. DOCUMENTATION Documentation of the system created in one of these three-to-five-year projects is an important though time-consuming endeavor. The description of the program in the language accepted by the computer is a key part of this record and must be kept up to date as program changes are made. This level of documentation is the "court of last resort" in isolating precisely what some routine does, but the technical remarks or diary prepared by the programmer while he has all the facts in mind will reduce the amount of detective work which must be done some months later when an unanticipated change must be made. Two or three other descriptions of the system may also be required at decreasing levels of detail. Adequate documentation is important to the person who created the computer program, as even he soon finds the maze of detail confusing without rather complete records. The person who creates one program is never free of it unless he makes it possible for others to modify his program without performing major research. The documentation must be generated so that a given programmer may be assigned to a different project. This documentation is essential, for the protection of the user, as the programmer may at some critical time no longer be available for consultation. SIMULATION Simple exercising of a large man-machine data system with the use of a single bank of information in a fixed pattern will bring into focus the utility of such a system to aid military decision makers only under rather limited circumstances. A simulation technique should be superimposed to alter the data flow according to various assumed alliances, postures, strategies, or the like. Such simulation exercises of the system in the operational environment by users of appropriate echelons will give 234 PROCEEDINGS-,sPRING JOINT COMPUTER CONFERENCE, 1964 them synthetic experience about situations which have not been encountered in sufficient detail in any other medium. Only by exercising the system with data flowing at an accelerated pace will many of its weaknesses be discovered. The simulation must, of course, incorporate uncertainty, conflicting information, degraded communications, etc., if realism is to be obtained. of truth, every new group which embarks upon a new project is dominated by persons who believe that they can avoid the mistakes made on other projects and shorten their own schedule. To some extent they do profit from the experience of others, but they usually make a few new mistakes of their own. Considerable effort has already been devoted to the development of detailed computer simulations of the air interactions in a nuclear exchange. 3 It would be hoped that these simulations might be used to generate under various assumptions much of the information required to alter the behavior of the man-machine data system. It is important to understand that a small team of four or five experienced analysts can accomplish about as much in the first four months as a team of twenty. Toward the end of the initial phase, the small team should be supplemented by specialists in various areas as required. There will be no advantage in gathering a team of 100 technicians at the beginning of the effort. As a matter of fact, such an action will probably delay the project. It should not be assumed that providing the simulated environment to influence the large data system is a small undertaking. Depending upon the detail introduced, the project may be even larger than the original one. A healthy growth in the effort applied to the project is important. A modest beginning with thorough indoctrination in the early months of the user-contractor relationship will payoff in the end. Thus far this discussion has dealt with the notions of system design, incremental implementation, inevitability of modifications, user participation throughout the project, testing at three levels, integrating documentation with the development of the program, and the usefulness of providing a simulation environment for the data system. Wide fluctuations in the support given the contractor will cause serious difficulties. If enough money is provided to acquire too large an increment of personnel, most of the old hands will be devoting too much time to training the new arrivals. If too little support is provided, progress lags and morale suffers. As new arrivals on the project will not contribute much for several months, the project is relatively insensitive, in the short run, to small personnel increases. It also seems appropriate to record some additional remarks based on participation in or observation of several large programming efforts. These remarks will range over the topics: level of effort, estimation of time required, hardware considerations, reaction to frustration, and programming systems. While these topics are not clearly related, the comments are intended to provide at least a partial check list for those who are brave enough to undertake the development of a large computer program. LEVEL OF EFFORT It requires great skill and unusual circumstances for a large system of programs to arrive at a satisfactory operational state in less than three years. Even though the period since 1955 has provided several instances of this bit ESTIMATION OF TIME REQUIRED Aside from the scarcity of experienced personnel capable of performing the scientific and engineering tasks involved in the development of a large computer data system, there are some administrative problems which lead to fixing the minimum time at two years regardless of the complexity of the system. Among the administrative problems are the following: budget justification and funding release practices, site construction schedules, and equipment delivery schedules. I t has been customary in some quarters to estimate the productivity of skilled programmers at 3000 instructions per man year. When SOME OBSERVATIONS CONCERNING LARGE PROGRAMMING EFFORTS a great deal of on-the-job training is involved, the estimate should be set at about 1000 instructions per man year. When smaller teams are given the responsibility for well defined sub-projects, instances of 12,000 to 15,000 instructions per man year have been observed. In estimating costs, it appears necessary to allow for each programmer two other persons classed as analysts, administrators, or engineering support personnel. The more complex data systems fall in the 100,000 to 200,000 instruction class. 4 Using the factors just given, one can begin to estimate the manpower required and the cost of implementing such systems. By imposing limits on the size of the team to be involved and taking into consideration the funding schedule, it is then possible to obtain a first approximation for a completion date. After the design is relatively complete. the users and designers must agree that the design meets the requirements of the project. After the detailed programming effort begins, a major re-orientation of emphasis which requires a redesign of a major segment of the system will normally delay considerably the completion of the project. Once agreement has been reached on the design of a specific large computer program, the user must exercise a great deal of patience and forbearance. No amount of exhortation will materially affect the progress of the project and may even cause delays. The user who schedules other events very closely on the basis of the promised completion date of a large programming effort is almost certain to have major disappointments. Some attempts have been made to apply PERT techniques to programming efforts. Until estimating techniques in the programming field are more reliable and the addition of extra manpower on lagging subroutines has a more predictable effect in the short run, the development of a PERT network will serve only to help the managerial echelons to understand the relationship of the various pieces of the program being constructed and to make the initial assignment of effort more intelligently. 235 HARDWARE CONSIDERATIONS Rapid strides are still being made in computer hardware development, and significant improvements as to speed, reliability, capacity, and flexibility are available every two or three years. It has been pointed out that the design and programming effort for large problems takes a minimum of two years. It is hard to imagine the confusion which would arise if a computer, of not too well defined characteristics, were being constructed for a large problem which was being programmed at the same time. First, it would require most of the hardware construction period to create the sophisticated programming system required to permit the large problem to be accepted by the computer. Further, about half way through the period, there would be a requirement to debug some of the routines of the large problem. As the problem has probably changed materially during the programming period and most certainly will change as soon as the program has been used a few times, most persons who have considered these facts have agreed that nothing is to be gained by trying to specify the characteristics of a large-scale special purpose computer. If it is built to satisfy the requirements of a problem as defined now, there is a good chance that it will not be adequate for the problem as it is understood shortly after the computer is completed three years from now. A useful competition among the computer hardware manufacturers is in progress. For reasons which need not be considered here, different . types of computers are being selected for installation at various locations on th basis of current requirements with well-documented justifications. Much of what is to be done at location A on computer X may also at some time have to be done at location B on computer Y, etc. If a programming system implemented on computers X and Y would, in fact, accept the programs first written for the other computer with only modest changes, considerable savings would result. 236" PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 REACTION TO FRUSTRATION Any person who has the tenacity to spend several weeks trying independently different approaches to the solution of a puzzle before success can appreciate in some small measure the frustrations of the programming activity and the final feeling of personal triumph when the last important programming bug is corrected. As the process of preparing a large program often extends over more than a year and the mistakes of many people are involved, the frustrations are of a higher order. In the normal course of events, nerves become frayed, fingers are pointed, neuroses appear, and other psychological and physiological reactions are not unknown. A few persons on the project who accept the ultimate technical responsibility for the completion of the project will find the pressures unabated for a period of months. It is small wonder that persons, who have experienced this trauma a time or two, have fairly firm ideas as to the circumstances under which they will accept such a responsibility again. The completion of the project will lag unless this concentrated effort does occur, and the managerial chain on the project cannot, at the beginning, predict which members of the team will punish themselves in this fashion. One of the important contributions being made by the more powerful programming systems is the elimination of many of the frequent recording and cross-referencing errors so that the more important logical blunders do not remain concealed for long in the debugging process. This alone materially reduces the length of the effort and permits more concentration on the solution of the important problems. PROGRAMMING SYSTEMS Because of the general confusion in connection with the use of the words "programming system," it may be helpful to distinguish (1) programming languages, (2) compilers, and (3) operating systems. 5, 6 A programming language is the set of symbols and conventions which are designed for the convenience of the programmer to express his detailed solution to the logical, manipulative, and computational problems encountered. A compiler translates the expressions of the programming language into sequences of instructions in the basic language of the computer hardware. An operating system augments the capabilities of the computer in such a fashion as to relieve the programmer of the requirement to provide in detail for input/output scheduling and assignment, memory allocation, etc., so that the programmer need not resolve these recurring problems in numerous variations and can devote his efforts to implementing the data system design. The JOVIAL system includes all three of these components and has been implemented on several large-scale computers, but the versions of the language are not identica1. 7 NELIAC has been widely used and consists of a language and a compiler. The data routines are incorporated during the compilation. This technique has permitted the larger computers to compile programs for computers with memories too small to accommodate a compiler. s The CL-II programming system consists only of a compiler and an operating system. The compiler is described as "syntax-directed" and can accept any of the present algebraic languages for which it is provided the necessary input tables. It has been demonstrated that careful preparation of these tables enables the compiler to generate as compact code as an experienced programmer. The sophisticated operating system of CL-II is based on the concept of the "extended machine" first expressed by Holt and Turanski. 9, 10 A good programming system should (a) Encourage modular construction of the computer programs. (b) Provide for data descriptions which are independent of the program until compilation occurs. (c) Relieve the "programmers of the necessity of constructing substantial debugging environments. (d) Eliminate the need for developing elaborate control programs. SOME OBSERVATIONS CONCERNING LARGE PROGRAMMING EFFORTS There seems to be no way to a void all the human errors which are made in the course of developing a large computer program, but a good programming system can relieve the programmer of many of the housekeeping problems so that his thoughts can be directed to the peculiarities of the data system being automated. 237 of the troublesome housekeeping details. (j) Standardizing on a single algebraic programming language is apparently no longer required. If there is to be reasonable progress in the production of a large computer data system, the programmer's work should be reduced as much as possible, and the initial system should be constructed with the anticipation that changes and extensions of the system will be required on a continuing basis. No claim is made that these observations form an exhaustive list of all matters to be considered by a group embarking upon the development of a large computer data system to assist in the evaluational and decision making processes of command and control. Each person who has been involved in such an effort will have a few items to add. Perhaps even this partial list will help some group to avoid a few of the mistakes others have made. SUMMARY REFERENCES In closing, it seems worthwhile to summarize the main points of this discussion: (a) The users of the data system must collaborate with the technicians throughout the design, construction, and testing of the system. (b) A full design is desirable, but a path should be chosen through this design so that a useful sub-system is available as soon as possible. (c) Anticipate changes and extensions to the system. (d) Do not stint on the documentation. (e) Exercising the system fully will probably require building a simulated environment. (f) Putting extra manpower on a project at the wrong time to accelerate the effort will usually accomplish little except to heighten the disappointment. (g) Large-scale special purpose computers still seem inadvisable because of changing requirements. (h) The programmer who takes his profession seriously does not find it to be an easy life. (i) Programming systems may not have reached perfection, but they offer the programmer some relief from many 1. DANIELS, A. E., "The User's Viewpoint on the Creation and Application of a Large Simulation Model," Proceedings, First War Gaming Symposium, Washington Operations Research Council, 30 November 1961. 2. SAMS, BURNETT H., "Some Observations on the Development of Large Programs," Sciences, Air Force Electronic Systems Division .and The :rvHTRE Corporation, November 1962. 3. PENNINGTO~, A. W., "A Description of the STAGE System," Proceedings, 11th Military Operations Research Symposia, April 1963. 4. HEINZE, K., N. CLAUSSEN, and V. LABoLLE, "Management of Computer Programming for Command and Control Systems," System Development Corporation, 8 May 1963. 5. KROGER, MARLIN G., et al., "Computers in Command and Control," Institute for Defense Analyses, Resarch and Engineering Support Division, Technical Report Number 61-12, November 1961. 6. HAVERTY, J. P., and R. L. PATRICK, "Programming Languages and Standardization in Command and Control," RM~447-PR, The RAND Corporation, January 1963. 7. SHAW, C. J., "The JOVIAL Manual, Part 3: The JOVIAL Primer," TM-555/003/00, 238 PROGEEDING~SPRING JOINT COMPUTER CONFERENCE, 1964 System Development Corporation, 26 December 1961. Code Translation," Proceedings of the Western Joint Computer Conference, 1960. 8. HALSTEAD, M. H., "Machine Independent Computer Programming," Spartan Books, 1962. 10. CHEATHAM, T. E., JR., and GENE F. LEONARD, "An Introduction to the CL-II Programming System," CA-63-7-SD, Computer Associates, Inc., Wakefield, Mass., November 1963. 9. HOLT, A. W., and W. J. TURANSKI, "Man to Machine Communication and Automatic SOME COST CONTRIBUTORS TO LARGE-SCALE PROGRAMS Burt N anus and Leonard Farr System Development Corporation Santa Monica, California INTRODUCTION uled and controlled are man months and computer hours. Together, these resources may be considered the cost of producing the program. Historically, these costs have been very poorly estimated; there are abundant examples of actual costs that exceeded estimated costs by 100 per cent or more. In the early days of computer technology, only a small handful of highly competent, scientifically-oriented researchers were familiar with the programming arts. In those days, the management of programming effort was only slightly different from the management of other types of research activities. Each project was unique and its probability of success uncertain; experience was severely limited; tools and techniques were custom-built for each job. In the c·omputer field today, despite many thousands of man years of experience in program development, we still tend to plan and to manage as if each program were a unique research project. This is partly due to the immaturity of the field, and partly because we have not yet fully recognized that the similarities between computer programs and their development are far more extensive than the differences between them. We have seen the development of many new tools to make the programmer more effective in his work; we must now ask whether we can develop new tools to make the program manager more effective in planning and organizing his scarce resources of talented manpower and expensive computer time. Because better cost estimation is an important step toward more effective programming management, because the costs of programs may be a significant portion of the total costs of large management or command information systems and because the estimates have been little better than guesswork to date, the Advanced Research Projects Agency of the Office of the Director of Defense Research & Engineering sponsored some research in this area at the System Development Corporation (SDC). Early efforts were aimed at data collection and analysis of several large-scale command and control programming efforts representing a total of more than two million instructions and 1500 man years of work. 2 , 3, 6, 7 This paper is a summary of a subsequent effort to (a) identify the common factors that influenced the cost of developing programs and (b) perform a preliminary analysis on some of the data. * These are viewed as necessary first steps toward the development of a more accurate cost esti- One of the most important requirements for management planning is an accurate estimate of the resources required for the completion of tpe project. In programming management, the two principal resources to be estimated, sched- * The full reseach report upon which this paper is based will be published as TM-1447, Factors that Affect the Cost of Computer P'rogramming, System Development Corporation. 239 240 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 mating ·procedure. Further progress depends upon more systematic data collection, and one of the purposes of this p'aper is to recommend the types of data that should be collected by programming managers for estimation purposes. PROBLEMS ENCOUNTERED IN DETERMINING COST FACTORS In the process of identifying and analyzing cost factors, one soon encounters a number of limitations in the 'programming field th~t may not exist in other, more mature disciplines. Some of these problems include the following: . 1. Lack of Agreement on Terminology- There are no universally acknowledged definitions of m'any of the terms used in the computer programming process. For example, the words "debugging," "parameter test" and "program validation" may all describe the same process; a "programmer" in one organization may be another and a "system called a "coder" analyst" in a third. Although we attempted to keep within the more limited context of command and control programs in our research, we found, even in this narrower field of programming, a widespread lack of agreement on terminology. in 2. Poor Definition of Product Quality-Apparently there has been little success in defining those attributes that characterize the nature or the quality of a computer program. For example, one hears programmers .talking in terms of flexibility, economy of memory, and maintainability, but there seems to be no generally agreed upon criteria for comparing programs on the basis of these attributes. 3. Poor Quality of Cost Data-Present cost collection methods seem to be designed primarily for accounting purposes and not for planning or control. For example, the collecti~ns of costs are usually grouped by organizational units rather than by product or function to be performed. 4. Dynamic Nature of the Field-Although computer programming is maturing as a discipline, there is still a wtde diversity of techniques and approaches being developed and used. As a result, any study of cost factors must consider the history and likely future trends of programming technology . 5. Nonquantitative Nature of Some Factors -Experience has shown that many of the factors that affect the cost of computer programs are qualitative in nature. In some cases, it is ·possible to predict at least the direction that cost will be affected by an increase in a given factor. For example, one would expect that the more experience one had with the particular type of program or computer involved in a given task, the less it would cost to perform that task. In other cases, qualitative factors appear to have a nonmonotonic effect as when an increase in a given factor (e.g., management planning) first decreases and then increases total cost. Of course, determination of the magnitude of the effect on cost of qualitative factors is even more difficult than determining the direction of the effect. Although these problems combine to make an analysis of computer 'programming cost factors somewhat difficult, a start must be made if program development efforts are to be more effectively planned and managed. COST FACTORS It is possible to identify hundreds of factors that contribute to the cost of computer programs, if such a level of detail is desired. In this paper, we will present a list of approximately 50 such factors, consolidated from a much larger list. Obviously, some classification scheme is necessary for discussion or analysis purposes. Factors might be grouped by work phase, such as program design or test; by management activity, such as planning or evaluation; by general categories such as resources, requirements, or environment; by units of cost measurement, such as man months or dollars; or by the classic accounting method of direct and indirect costs. However, these schemes seemed to cause difficulties because of ambiguities and overlap; as a result, a new classifi- SOME COST CONTRIGUTORS TO LARGE-SCALE PROGRAMS cation scheme was developed and is illustrated in Table I, in which factors are divided into these categories: The Job to be Done, The Resources that are Available, and The Nature of the Working Environment. 241 Since a full discussion of all of the factors is not possible here, only the most important one or two in each category will be briefly presented; the complete list is included as an appendix. TABLE I-COST FACTOR CLASSIFICATION SCHEME Category Name Logical Grouping THE JOB TO BE DONE Category Definition 1. Operational Require- ments and Design 2. Program Design and Production THE RESOURCES THAT ARE AVAILABLE Includes cost factors associated with the operating characteristics of the system for which the program is being written. Includes cost factors associated with both support and operational programs as determined by the constraints imposed by personnel, hardware and operational requirements. 3. Data Processing Equip- Includes cost factors associated with the data processing equipment required to ment produce and test a program, including all input, output and peripheral equipment. 14. Programming Personne~ velop a program. THE NATURE OF THE WORKING ENVIRONMENT 5. Management Procedures Includes cost factors associated with the plans, policies, practices and review techniques used in the administration of all phases of program development. 6. Development Environment Includes cost factors resulting from relationships of the programming staff with other organizations, such as customers and other contractors. 7. Facilities, Services and Includes cost factors related to supplies, Supplies physical plant, indirect labor and overhead. THE JOB TO BE DONE 1. Operational Requirements and Design The factors in this category tend to center around the question, "How well are the operational requirements of the information system known?" or, "How well is the problem defined?" Unfortunately, it is virtually impossible at the current state-of-the-art to evaluate the cost-contributing effect of many of the factors which relate to this question. 242 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 The primary cost factor in this category would appear to be the extent of innovation in the system, in its components, and especially in the automatic data-processing function. The extent of similarity of the new system to older systems may be a clue to estimating how clearly or easily the requirements of the new system can be stated. If the requirements are well known to the program designers, the programming job is more straightforward and less costly. Somewhat related to this factor is the extent to which the programming organization will participate in the formulation of requirements; the less active its role in determining requirements, the more likely misunderstandings will develop, resulting in costly errors, omissions and ambiguities. 8,000 INCOMPLEY 7,000 6,000 5,000 V 4,000 3,000 2,000 1,000 /. ",- 100 ~~ . / / Vt ~ 10--_. . ,..,.,.,. ~_-C" -". • • 200 300 400 500 600 700 No. Machine In5truction5 (Thou50nd5) Figure 1. Man Months Versus Program Size for Eleven Large-Scale Programs. 2. Program Design and Production In a large-scale program system, program design involves the determination of the broad logical subdivisions of the computer system, the design of an executive program to control the sequencing of programs, the design of the data base structure, the allocation of computer storage, and specifications for utility and support programs. As in the first category, these factors center around the question, "How clearly understood are the program requirements?" The factors also are concerned with the size and complexity of the job; the resources and tools available; and the plans for documenting, verifying and testing the product. Undoubtedly, the most important cost factor in this category is the number of computer program instructions and the types of programs that must be produced. In current techniques for estimating cost, the size of the program is often used as an intermediate measure to estimate the number of men who will be assigned and the number of computer hours required. Despite this reliance on size as the key to cost estimation, it appears that little research has been done to develop systematic and reliable ways to predict the number of instructions.*l So far, the experience of m'any program managers is that the number of instructions is often * R. Bleier of SDC has reported on our attempt to relate total program length to the frequency of certain decision-class instructions, TM-1603. grossly underestimated, except when very similar programs can be used for com'parison. **4,8 The conversion of the estimate of number of instructions to programming man months for large-scale systems is frequently done by allowing one man month for each 200 instructions. To test this rule of thumb, empirical data on the number of machine language instructions in eleven large command and control systems were compared with the 200- instruction-perman-month guideline (Figure 1). The programs represent a variety of command and control systems using several different computers and languages. The number of man months includes program design, testing and coding. A further analysis of the data revealed that the production rate for operational programs averaged 225 instructions perman month while the rate for utility programs was 311 instructions per man month. The explanation for the higher rate of utility program production was that the ** For example, a report of the Controller's Institute stated, " . . . almost all EDP groups have at one time or another seriously underestimated the number of steps required. . . . Every company we visited added a substantial safety factor varying from 20% for a company which claimed, due to experience, a reasonable accuracy in its estimating procedurES, to 400% for a company which had found itself that far out on a previous estimate." (Business Experience with Electronic Computers, New York Controller's Institute Research Foundation). "Measuring the Profitability of a Computer System." See also J. D. W. JameS. SOME COST CONTRIGUTORS TO LARGE-SCALE PROGRAMS program developer is his own customer for the program system and, therefore, can write his own requirements with little external coordination. For smaller programs not shown on the figure (Le., less than 10,000 instructions), rates of as much as 400 to 1000 instructions per man month for individual programs were reported. The conversion of the estimate of number of instructions to computer hours is also ~ubject to various rules of thumb. Figure 2 is based on experience with eight large ,programs. The three points falling below the line represent efforts in which a procedure-oriented language was used, indicating that such use may reduce the amount of machine time required for program development. As shown in the figure, one 16,000 • 14,000 12,000 5 10,000 V o J: ! 8,000 ~ .v ::~b¥1 I a. V• 6,000 100 200 300 .V V IIII 400 500 600 700 No. Mochine Instructions (Thousonds) computer hour is required for approximately every 53 instructions. Another hypothesis resulting from the same data is illustrated in Figure 3. This shows a near-linear relationship between the two resources of manpower and computer time. It is likely that better information for 'predicting the number of computer hours required for the production of programs of various sizes and complexities is available in most programming organizations although it is often buried in accounting data. A second important factor in this category is the extent of support program availability, reliability and documentation, including utility programs, debugging programs and library routines. Clearly, the more support ,programs that have to be produceq "from scratch," the more manpower and computer time will be required for the total program development. One other factor that may have a considerable influence on cost is the number and types of documentation produced for various types of programs. The graph in Figure 4 is based upon an analysis of five large-scale -programming efforts. It suggests that there is a linear relationship between the number of pages of documentation actually produced to satisfy contract requirements and the number of instructions in the program. These data represent Figure 2. Computer Hours Used as a Function of Program Size for Eight Large-Scale Programs. 7,000 6,000 I· 7,000 ~ ~ c: E / III U 0 Q '0 // 3,000 1,000 .->' ,..,.,- . ./ 4 3,000 Qj V ./ 2,000 4,000 ::I / 4,000 5,000 E J 5,000 .£ c: .~ I( 6,000 0) 0 a.. 2,000 "., 1,000 10 12 14 243 16 Computer Houn (Thousands) Figure 3. Man Months Versus Computer Hours for Seven Large-Scale Programs. ~ ~ ~ 0 100 200 ~ 300 ./ 400 500 No. Machines Instructions (Thousands) Figure 4. Pages of Documentation Versus Program Length for Five Large-Scale Programs. 244 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964. documents delivered to customers. There may be many times this number of pages actually written in a large programming effort. Some other guidelines for estimating the costs of documentation have been suggested. A drafting rate of 3 to 5 pages per day (750-1250 words) is a good rule of thumb for various types of programming documentation. A technical review rate of 20 p'ages ·per day seems average, but reviews that do not require extensive rewrites may run to 50 or 100 pages per day. Estimates on typing rates, illustrating rates and duplicating rates are usually fairly easy to obtain in most organizations. RESOURCES THAT ARE AVAILABLE 3. Data Processing Equipment The development of computer hardware is proceeding at such a rapid rate that it is difficult to make long-range estimates (beyond a few years) concerning its effect upon programming. Such improvements as faster add times, greatly increased memory capacities and speeds, multi-processors and new input/output devices may profoundly affect the accuracy of programming:cost estimation. With respect to equipment, a critical factor is the number of hours per day that the computer is available to the programming staff. A commonly held intuitive notion is that the more hours per day the computer is available to programmers, the lower the over-all cost of the programming effort. Among the considerations in determining the number of hours per day of availability are the number of shifts per day, the time required for preventive maintenance and the number of other computer users sharing the equipment. Of course, another strong influence is computer capability; for example, large memory capacities seem. to make programming easier. Further considerations are the power of the order code, the speed of access to primary and secondary memories, operating time and speed of input/output gear. 4. Programming Personnel The most important factor in this category rela tes to the experience of the programmers assigned to the job. There are three particularly important types of experience: (a) Experience with the particular computer-Clearly the more experience a man has with the particular machine for which the program system must be designed, the more apt he is to be familiar with its capabilities and therefore the less time it should take him to do the programming and testing. (b) Experience with the 'particular language -Programming languages differ in their suitability for various types of programming efforts. Familiarity with an appropriate special language, such as NELIAC or JOVIAL, certainly makes the programmer more efficient and requires a smaller number of man months. (c) Experience with the particular application-If the programmers have eXlperience with the particular type of system application and/ or design being programmed, then less time should be needed for the early analysis and definition phases of the job. In addition to experience, cost is affected by the number of man months of programmer training required for the project. A possible hypothesis is that the cost of programmer training may take the form of aU-shaped curve. That is, for any given task there seems to be an optimum amount of training that the programmer should have. More training presumably would not produce a commensurate return, while less would lead to errors and confusion in the programming. The number of people to assign to a given function or task also has an important impact on cost. There is ,probably an optimum number, for each type of programming effort, although research has not been conducted to determine what this is. In the field of research and development, which has some similarities with programming, the optimum number in a work group seems to be between 4 to 7. 5 There are also costs associated with obtaining personnel-either in hiring or in transferring from other contracts and in relocating them, if necessary. This is a function of both SOME COST CONTRIGUTORS TO LARGE-SCALE PROGRAMS employee turnover and the size and type of the project. A study is currently being sponsored by the Navy at the University of Southern California to analyze the job of the computer programmer, develop criterion measures of performance and determine optimal personnel selection and classification procedures. 9 NATURE OF THE WORKING ENVIRONMENT 5. Management Procedures The design and institution of clear-cut management procedures may seem costly at the outset, but their true value must be determined by comparing the cost of the plan with the cost of not having the plan. Both these costs are extremely difficult to determine but experience in many programming efforts indicates that well planned projects enjoy higher productivity rates. 245 staff must coordinate. In addition to the user or customer, there may be separate agencies responsible for the contracting and for the other aspects of the system, such as hardware development. Problems of coordination and concurrence multiply as a function of the number of groups with which the programming staff must deal. Often, mutual education between these various staffs becomes necessary and the cost of briefings and meetings for such purposes may make the cost per instruction higher for large-scale program systems than for smaller ones. 7. Facilities, Services, and Supplies The most im·portant effect upon total cost in this category is the use, maintenance, and monitoring of a management plan that includes at least communications and decision-m'aking procedures, mechanisms for handling changes in the program, delineations of responsibility and authority, and schedules for major milestones and products. The plans should also specify standards for flow charts and documentation 'and quality,control procedures. There is probably some optimum per cent of time that should be spent in planning for ,program development. In most accounting systems, nor~al overhead and miscellaneous supplies are covered by a percentage addition to the estimated direct labor and materials. However, unusual expenditures associated with large-scale programming efforts may not be adequately covered by the average overhead burden rate. For example, various types of technical and administrative support are needed to assist the programmer. Computer operators and EAM personnel save the programmer considerable time during testing. Effective and experienced management and administrative personnel assure that the work is efficiently organized and fre~ the programmer to cQ,Ilcentrate on technical matters. Technical editors help to ensure that documentation is adequate and understandable. There is some optimum mix of such support personnel that will ensure minimum cost. Another important cost factor is the number of computer runs permitted to each programmer each day. One of the reasons for the current activity in the development of time-sharing procedures is the belief that a larger number of computer runs per day for each programmer will shorten lead times 'and decrease costs. An equally reasonable hypothesis is that a cost trade-off exists between desk checking and computer testing such that some optimum number of computer runs will minimiz'e total cost, the optimum depending upon the relative cost of computer time and programmer time. Another important factor in this category is travel and communication cost. Trips may be required for briefings and conferences with user organizations and associated developmental agencies; for data gathering; for training and familiarization; and for concurrence on requirements or design. There is a strong tendency to underestimate these costs or to curtail them as an economic or political measure; this often results in delays in getting data or concurring on programming details, and these delays may be very costly in terms of time and manpower. 6. Development Environment In some cases an important consideration is the cost of special facilities, e.g., simulation devices, special office equipment, or computer A particularly important problem is the number of agencies with which the programming 246 PROCEEDINGS~SPRING JOINT COMPUTER CONFERENCE, 1964 room facilities. Special wiring and air conditioning, false flooring, space for storage and movements of parts and equipment, maintenance and test hardware, etc., all contribute to the cost. SUMMARY AND CONCLUSION In this paper we have listed some cost factors that represent a consolidation and skimming of a larger list of factors that contribute to the cost of computer programming efforts. In many cases, the factors are very difficult to measure or quantify; further, their effect upon other factors and upon the total costs of the programming effort is often difficult to determine. For many of the factors, some data exist in current accounting records, but these data have not been collected, compiled and analyzed. The mere listing of cost factors in programming is only a first step, albeit an important one, toward the development of a more scientific and, hopefully, a more precise method of estimating the cost of programming efforts. Ultimately, one would hope to discover by analysis of data some predictors that would enable a more accurate estimate of the number of instructions, man months and machine hours. Among the cost data-both estimated and real -that we would hope programming managers would begin to accumulate for the various types of products and activities in their projects are the following: 1. The number of machine instructions and the programming' language used. Also, the percentage of the finished program consisting of library routines and subprograms from previous programs. 2. The number of man months of programmer effort, including the first level of supervision, and the experience level of the programmers. 3. The number of hours of machine time required for testing and debugging purposes and the types of machines used. Also, the pattern of machine usage in terms of runs per day and hours per run. 4. The number, types, and timing of important program changes and, in at least a qualitative sense, the effects of these changes on the final product. 5. The types and number of pages of documentation required, including a notation as to whether they are single or double spaced. In addition, it would be useful if a log could be kept by a project "historian" describing certain qualitative attributes such as those described earlier in this paper. This section should describe the data-processing functions of the program system and its relationship to other systems. It should also identify all interim and end products, such as types, listings and descriptive documents. A series of experiments to study those factors that can be analyzed only in controlled environments ideally should be conducted simultaneously with the collection of new and existing data on program costs. For example, well designed, statistical experiments would be useful for determining the,effects of different types of programming languages upon total cost, the effects of greater or lesser machine availability upon costs, the optimum size of 'programming staff for different types of programs, and the best mix of programming talent (experienced versus inexperienced) for given types of jobs. Obviously, it may be quite some time before a valid predictive set of equations can be developed for program cost estimation. N evertheless, it is to be hoped that each small step in this direction will represent a useful experience in itself in terms of increased insight into the programming process. Certainly, resea~rch into techniques for improved programming management should be encouraged if the industrY'is to keep pace with the increasing demands for its services. APPENDIX I LIST OF COMPUTER PROGRAMMING COST FACTORS Summarized below for the convenience of the reader is the complete list of cost factors discussed in this paper. Operational Requirements and Design 1. Extent of innovation in the system, its components, and especially the automatic data-processing function. SOME COST CONTRIGUTORS TO LARGE-SCALE PROGRAMS 2. Extent to which the programming contractor will ,participate in a determination of the information processing needs (i.e., the system and operations analysis, and the system and operational design). 3. Number, size, frequency, and timing of system design changes. 4. Extent of command and control system decentralization and number of interfaces. 5. Number of other components and subsystems being developed concurrently as part of the command and control system (e.g., intelligence, sensor, etc.). Program Design and Production 1. Number of computer program instructions and the types of programs that must be produced. 2. Number, types, and frequency of inputs and out'puts to the computer (s). 3. Extent of innovation required in the program system; that is, the degree to which programs are similar in nature to those previously written. 4. Number, types, and quality of publications and documentation for both 'customer and internal use. 5. Extent of complexity of the data-processing functions. 6. Degree to which the following program design characteristics are recognized and must be incorporated. (a) Maintainability-the ease with which program errors can be detected and corrected. (b) Changeability-the ease with which new functions can be incorporated in the program. (c) Usability-the ease with which personnel other than designers can use the program. (d) Flexibility-the ease with which the program can be used for other purposes with only slight modification (e.g., SAGE programs for air traffic control) . (e) Generality-the ease with which a program can accept a wide range of inputs. 247 7. Extent of the constraints on program design (e.g., real-time requiremnets). 8. Number, size, frequency, and timing of program design changes. 9. Extent to which data for data base is available, or data collection is required. 10. Number of entries (total size) for the data base, the number of different types of data needed for it, and the extent to which each can serve many programs or subprograms. 11. Efficiency of the programming language and the com'piler or assembler. 12. Extent of the. completeness and clarity of the system test and acceptance test requirements. Data Processing Equipment 1. N umber of hours 'per day of computer availability. 2. Extent of capability of the computer and its suitability for the job to be done. 3. Extent to which the operation of the computer and peripheral equipment is reliable, well tested, and well documented. 4. Number of equipment components being developed concurrently with the program. 5. Number of different computers for which programs are being prepared. 6. N umber and types of displays used. 7. Extent to which adequate EAM support will be available. 8. Extent to which routine preventive and emergency maintenance will be available. Programming Personnel 1. Types and quality of programmers. 2. N umber of man months of programmer training required. 3. Number of programmers to be assigned to a given function or task. 4. Policy of obtaining and phasing of person~ nel to staff a new contract. 5. Rate of turnover. Management Procedures 1. Extent of use, maintenance, and monitoring of effective management plans within 248 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964: both the customer's and program developer's organizations. 6. Cost of punched cards, magnetic tape and other special supplies or equipment. 2. Extent of form,alized procedures to use the computer facility. 7. Cost of special security requirements (e.g., Top Secret vault). 3. Extent to which there is a well defined and controlled system change procedure. 4. Extent of an error-reporting and -correcting procedure. 5. Extent of contingency plans in the event the computer is overloaded or otherwise unavailable. 6. Extent of quality control that is exercised during testing (e.g., reliability requirements). BIBLIOGRAPHY 1. BLEIER, R. E. Frequency Analysis of Ma- 2. 3. Development Environment 1. Number of agencies the programmer con- tractor must deal with and their level of experience with system development. ~_ 2. Average number of days and effort required for concurrence. 3. Travel requirements. 4. Extent to which delivery dates for required 'programming tools are reliable, and correspondingly, the amount of pressure caused by a tight schedule. 5. Extent to which the computer is operated by another agency. 5. 6. Facilities, Services, and Supplies 1. N umber of computer operators and EAM personnel required. 2. Number and experience of technical management personnel, administrative personnel, and technical editors. 3. Cost of special simulation facilities, computer room facilities or special office equi'pment. 4. N umber of square feet of new office s'pace or building required. 5. Exceptional costs of graphic arts and reproduction. 7. 8. 9. chine Instructions in Computer Program Systems, TM-1603, System Development Corporation, 19 November 1963. FARR, L. A Description of the Computer Program Implementation Process, TM1021/002/00, System Development Corporation, 25 February 1963. HEINZE, K. P., N. CLAUSSEN and V. LABOLLE. Management of Computer Programming for Command and Control Systems, A Survey, TM-903/000/02, System Dt\felopment Corporation, 8 May 1963. JAMES, J. D. W. "Measuring the Profitability of a Computer System," The Computer Journal, 5 :4, January 1963, pp. 284293. JOHNSON, ELLIS A. "A Proposal for Strengthening U.S. Technology," in Burton V. Dean (editorL Ope'rations Research in Research and Development, New York, John Wiley and Sons, Inc., p. 34. LABoLLE, V. Management Aspects of Computer Programming for Command and Control Systems, SP-1000/000/02, System Development Corporation, 5 February 1963. NANUS, B. Cos,t Estimation Bibliography, TM-1430, System Development Corporation, 20 August 1963. New York Controller's Institute Research Foundation. Business Experience with Electronic Computers, 1959, p. 48. RIGNEY, J. W., R. M. BERGER and A. GERSHON. Computer Personnel Selection and Criterion Development: I. The Research Plans, Los Angeles, Department of Psychology of the University of Southern California, February 1963. HYBRID COMPUTATION ... WHAT IS IT? ... WHO NEEDS IT? ... Thos. D. Truitt Electronic Associates, Inc. Research and Computation Division Princeton, N ew Jersey INTRODUCTION flown" as the effects upon the dynamic behavior of the model, wHh changes in design parameters, were examined. The characteristics and performance of the simulation model often provided input data for a digital computer program that would evaluate, optimize, and calculate final design specifications. The digital computer was also useful as a simulation tool in calculating orbits and ballistic trajectories and in designing guidance and control systems for such aerospace flights. Some Historical Notes During the nineteen-fifties the capabilities of electronic computers expanded so fast as to stay well ahead of the needs of the average computer user. Such was the case in both the analog computer and scientific digital computer fields. One effect of this situation was the formation of two schools of experts with opposite views on the choice of the "best" general purpose scientific computer. Differences of training, experience, and semantics led to a serious barrier to communications between :these two groups. At best, the fashionable, middle-of-the-road position was to admit that each computing technique "had its place," which did little to break down the barrier. Only with the appearance of a computational task that could not be accomplished satisfactorily by either type of general purpose computer-only then was the barrier cracked and a small opening made. While conventional computer simulation techniques were quite adequate for most aerospace design problems, the exceptional costs and hazards involved in missile and manned vehicle missions required computer simulation of complete missions. Some full mission simulations required inclusion of actual control mechanisms and of a manned cockpit, thereby dictating simulation on a real-time scale. It was apparent that such total system simulations exceeded the capabilities of any single type of computer. Only by the combined application of analog and digital computers could adequate simulation be accomplished. It was hoped that the special features of the two computer types could be combined to form a hybrid simulator of superior performance. In the aircraft and the budding aerospace industries lthe analog computer had long been the primary, if not the only, means employed for simulation of new or proposed engineering designs. In fact the analog computer grew up as the aircraft simulation tool. A mathematical model of each new design was formulated and an electronic analog model formed on the computer. Performance data obtained from wind tunnel tests were added to complete the model, and large numbers of experimental "flights were Thus the earliest attempts :to combine the computation of analog and digital computers took place in about 1958 at the Convair Astronautics plant in San Diego and at the Space 249 250 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 Technology Laboratories in Los Angles.19,21 ,::19 In both cases the job at hand was the complete mission simulation of the trajectory of a long range missile. The speed of the analog computer was a necessary element in the study to permit a "real time" simulation of the rapid motion of the vehicle and of control surfaces. However, the dynamic range required of the simulation was in excess of that of the best analog computers. That is, the ratio of the total range of the traj ectory to the required terminal phase resolution (a dynamic range of 105 to 107) was greater than 104, the upper limit of analog computer dynamic range for small programs. Hence the digital computer was used to calcula~those variables for which such dynamic range was necessary. The most important of these were the navigational coordinates-the digital computer performed the open integration of velocities to determine the vehicle's position, plus the dynamic pressure, a function that is very sensitive to altitude and velocity. It is fortunate that in such long range aerospace trajectory simulations the variables with wide dynamic range requiring precise calculation are not, at the same time, rapidly changing. Moreover the "high speed" variables do not require precise calculation. The early combined computer. systems employed the largest and fastest digital computers available at the timeUnivac 1103A and IBM 704-together with 300 to 400 amplifiers of general purpose PACE analog equipment. In both cases even these fast digital computers were only just fast enough to perform the required repetitive calculations for the slowly changing variables of the simulation in real time. Since the installations of the first combined computers at least a dozen computer laboratories have employed general purpose analog and digital computers together to solve simulation problems, and a number of attempts have been made to devise spacial purpose systems of analog and digital devices. Among the latter are the CADDA of the National Bureau of Standards and the "pulsed analog computer" of the MIT Electronic Systems Laboratory.l0,ll,12, 13,35,42 Hybrid computers of a unique type are the combinations of a general purpose digital computer and a digital diff-erentjal analyzer (dda), illustrated by the Bendix G15 with the DA-1 attachment and the Packard Bell PB250 with the Trice dda. 27 The former system consists of a small, slow computer with an even smaller serial dda ($50,000· and $10,000 respectively). In contrast to this the Packard Bell system combines a small, m'edium speed computer ($40,000) with a large serial-parallel dda ($500,000). Among the systems of general purpose computers, generally large analog computers have been combined with both large (IBM 7090) and small digital computers (PB 250, LGP 30) .2,3,7,17,19,21 A brief analysis of the applications to which existing installations of combined systems have been applied leads to these generalizations. For the most part the analog computers in these systems have been employed in a normal manner to simulate the dynamic behavior of physical systems by solving sets of non-linear, ordinary differential equations, while the digital computer has performed one or more of the following three functions: complex control logic, storage of arbitrary functions or sampled analog functions, and high precision arithmetic primarily for numerical integration. Examples of the applications are: a. Analog computer plus digital control logic. A system that in itself contains discrete control functions of continuous dynamic variables is appropriately simulated by a hybrid computer. The kinetics of a chemical process are simulated by continuous analog means while its digital control system is represented by a digital program. 29 ,41 Similarly an aerospace vehicle with an on-board digital computer, control system, or autopilot is simulated by hybrid techniques. h. Analog computer plus digital memory. A very common difficulty in the simulation of a chemical or nuclear reactor is providing an adequate representation of the transport of fluid in pipes from one point to another - from reactor to heat exchanger. The simulation of this transport delay of a dynamic variable, such as the time variation of the fluid temperature, is very nicely accomplished by the use of a digital computer for storage of the temperature function for a fixed, or variable, length of time. HYBRID COMPUTATION . . . WHAT IS IT? . . . WHO NEEDS IT? . . . Digital computer memory has also been used effectively to store multivariable arbitrary functions - an operation which is seriously limited in the analog computer. c. Analog computer plus digital arithmetic. This type of application is the "classic" one where the digital computer is used to perform precise, numerical integration of space vehicle velocities to keep track of the exact position of the vehicle over a very long range flight. It should be noted that a significant difference is apparent in the applications of computer systems employing a very small digital computer and those with large, very fast computers. In general the small machines are limited to execution of control logic programs, one or two channels of transport delay simulation, or limited function generation programs. Since numerical integration and complex function generation by digital programs require considerable time for each calculation, for each discrete step in time, only the fastest digital machines can be used effectively for these tasks. SOlVIE COMMENTS ON THE EVOLUTION OF HYBRID SIJVIULATION The term "computer simulation" appears in so many contexts it is important to emphasize that its use in these pages is limited to the modelling of complex physical systems for the study of their dynamic behavior. These systems are represented by sets of differential equations, algebraic equations, and logic equations. As in most simulation studies the objectives of hybrid simulation may be experimental design, prediction and control, and design evaluation, verification, or optimization. It is not expected that the important applications of hybrid simulation will include: data processing system simulation; information handling simulation; business system simulations; siInulation of television coding, character reading machines, communications coding systems, (;tc . . . . These are all digital computer simulatiJn applications. Similarly hybrid computers are not warranted for the simulation of circuits, devices, and systems for which the analog computer is quite adequate. It is in the simulation of total systems that bring together components, some of which are suited for digital and some for analog simulation, that the newer hybrid techniques are re- 251 'quired. There probably are few, if any, simple hybrid computer applications. If hybrid computation can be said to be a field of endeavor it must be considered to be in the formative stage. Developments to date have led to equipment configurations and programming techniques that were dictated by specific problems and limited objectives. The growth rate of the field will be determined by the exteI1lt to which a broader view is taken of hybrid computer programming techniques and applications. The greatest advances in computers have been made when the experiences of users, programmers, have been brought to bear on design of equipm'ent. For the most part, hybrid computers of today consist of general purpose analog and digital machines, which are not aesigned for hybrid operation, tied together by "linkage equipment" designed only to solve the communication problem. This has been a necessary first step. Newer hybrid systems will be I designed not just for· communications but for efficient solution of hybrid problems and for convenient programming. The purpose of the following discussions is to bring attention to the essentials of hybrid computation and their relationship to problem solutions. Out of this should come some indication of how present day computers can be most effectively employed. The next generation of hybrid computers will undoubtedly achieve a greater degree of integration of parallel computing elements with the sequential stored program principle. Eventually patch panel programming of parallel elements will be replaced by an automatic system, thus affording a fully automatic method for computer set-up and check-out. Even today a secondary activity of the digital part of the hybrid machine is the partial automation of setupaiId check-out of tbe analog computer. This feature becomes increasingly important as the computer system grows in size and the programs grow in complexity, for the attention of the programmer and problem analyst needs to be directed to the simulation itself rather than the simulator. THE ELEMENTS OF HYBRID COMPUTERS Digital Computers Many conflicting factors have influenced the choice of digital computers used in hybrid sys- 252 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 terns. Computer speed and economics have probably been dominant. Since there are so many computers on the market today that have sufficient speed and that span the complete range of prices, it is more instructive to examine the features that are essential for hybrid computation. Speed. The speed of execution of arithmetic operations is most important, and this is a function of memory access time and multiplier speed. The access speed of drum and delay line memories is too slow. Magnetic core access times of 2 to 5 microseconds are currently popular. This means the time for addition of two numbers is 4 to 10 microseconds. Multiplication and division take longer-times of 15 to 40 microseconds are generally available and quite satisfactory. Overall program speep can be increased by the use of index registers-three registers is desirable; more are useful. Special instructions for subroutine entry, for executing commands out of sequence, and for testing and skipping can help increase computing speeds. Word Structure. The basic requirement is for a fixed point, binary word of at least 24 bits. Since round-off errors affect the last several bits a smaller word size would result in a dynamic range limitation of less than 106 • A longer word may be useful in a few applications where fixed point scaling may be difficult. Floating point computations may make things easier for the programmer but should not be depended upon at the expense of computational speed. It may be noted that the equivalent of fixed point scaling is a necessary part of the analog program, and hence floating point operations may not prove as advantageous as for some alldigital programs. Decimal format and character oriented machines do not offer any advantages for hybrid computation, and usually they are slower than equivalent sized binary computers. Input/Output. High data rates in and out of core memory and any feature that minimizes loss of computing time for input/output operations are highly desirable. In addition a fast, flexible means for communicating control signals to and from the analog section of the hybrid system is necessary. Three kinds of control signals are usually provided: interrupt and sense lines, and output control signals. It is by means of these controls that the sequential operations of the digital machine are made compatible with the parallel, simultaneous operations of the ana10g machine. Since communications must be made with many points in the analog computer, a number of these control signals are needed. Interrupt signals, from outside the computer, stop the current sequence of calculations and force transfer to another sequence. Sense lines simply indicate to the digital program the current state of devices outside the computer. They may be sensed by specific programmed instruction. Other programmed instructions will send control signals outside the computer on the output control lines. Memory. As noted above the digital computer main memory should be a high-speed magnetic core. Since most hybrid applications do not require a large memory for either program instructions or data, four, eight or twelve thousands words of core memory should suffice. Larger memories may be desired for special digital programs and larger hybrid problems when more experience has been gained in this field, thus expandability of a memory to 16K words is a good feature. N ewer computers are being introduced with small, very high speed "scratch pad" memories. Such memories may ha ve cycle times less than a microsecond and are used to store intermediate arithmetic results. This feature increases the overall computation speed of the computer. The normal manner of operating an analog computer involves a fair amount of non-computing time when the computer remains in the Hold or Reset mode. These intervals may range from seconds to minutes while adjustments are made, pots are set, or recorders changed, or while the programmer analyzes results. It is not possible for the analog computer to operate on other programs at these times, however, with a hybrid system, where such waiting periods are likely to occur also, it is reasonable to consider having the digital computer work on a different program during the intervals, whatever their length. Appropriate "interrupt" and "memory lock-out" features are possible to permit time sharing of the digital machine without affecting the hybrid program and without the danger of one program interfering with HYBRID COMPUTATION . . . WHAT IS IT? . . . WHO NEEDS IT? . the other. The secondary program (a strictly digital problem) is simply stored in a "protected" part of the core memory and utilizes all the bits of time not required by the hybrid program. Peripheral Equipment. In many digital computer installations the investment in peripheral equipment rivals that in the central computer. Current hybrid computer applications require only a minimum of digital peripheral equipment. The graphic output equipment associated with the analog computer is sufficient for computational results. Punched paper tape reader and punch and typewriter may be all that is required for programming. Larger systems in the future win employ punched cards and magnetic tape, primarily for rapid change-over of problem and automatic check-out. Large offline data storage does not appear necessary for most applications. In summary the digital computer must be characterized as a sequential machine. For effective use within a hybrid system the machine (a) must have sufficiently high internal speed for it to appear as though a number of calculations were taking place simultaneously; (b) must be organized for maximum speed in executing mathematical calculations; and (c) must have efficient means for input and output of data during calculation (Figure 1). OC·~---' INT---.. SENSE - - - - - ' Figure 1. The digital computer must be characterized as a sequential machine. For effective use within a hybrid system the machine must have sufficiently high internal speed for it to appear as though a number of calculations were taking place simultaneously. It must be organized for maximum speed in executing mathematical calculations; and it must have efficient means for input and output of data during calculation. 253 Analog Computers In contrast to the above the analog computer is a parallel machine, with many computing components and I/O devices operating in concert. There are few, if any, features of the modern analog computer that are not appropriate to a hybrid system. However, only the largest analog machines have been used for general purpose hybrid simulation. The common measure of a large computer is that it has 100 to 200 operational amplifiers. Since two or more computers may be "slaved" together, larger systems are possible when required. Analog computer features that are important for hybrid systems can be simply listed as: -Integrators with multiple time scales -Amplifiers for tracking and storing voltages -Very fast control of the modes of individual amplifiers -Automatic, remote control of the setting of potentiometers -Fast, accurate multipliers and trigonometric resolvers -High speed comparators with logic signal outputs -Electronic switches (logic signal gating of analog signals) In the early days logic equations or switching functions were programmed with relays and stepping switches, which were connected to the patch board by various means. Present day technology employs electronic switching of integrator modes and voltage signals at high speeds, and the delays inherent in relay devices can no longer be tolerated for logic operations. The logic building blocks common to the digital computer designer (fiip-fiops,gates, inverters, monostable multivibrators, . shift registers, and counters) are ideally suited to these operations. Thus with electronic switches replacing relay contacts, logic modules have become an integral part of all new, large, analog systems. These modules are programmed like the other analog components oy interconnections at a patch panel. Many signals occur simultaneously but they are logic signals-two values, Zero and One, that change as functions of time. Input signals to logic programs come from comparators, manual switches, and external control sig- 254 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 nals. Logic program outputs go to integrator mode controls, storage amplifier controls, electronic switches(DA switches) to gate analog signals. As will be shown later, it is essential for a hybrid system to have a very significant complement of digital logic components. A few gates and flip-flops are not sufficient. The potentialities for use of logic components in· an analog computer for hybrid operation are so great that the EAI HYDAC Digital Operations System is an entire computer console with its own patching system used entirely for the programming of digital components for parallel computation. This console is really a complete logic computer. It is used together with a conventional analog computer to form what is truly an all parallel hybrid computer. 1, 9,23,24,29,40,41 In summary· the modern analog computer must be characterized as a parallel machine. It is not solely a computer for continuous variables. I t is a parallel assemblage of building blocks: integrators, multipliers, etc., for continuous variables; and flip-flops, gates, counters, etc., and "digital" circuits for discrete variables. It is organized for convenient representation of an "analogous" physical system by means of a computer model constructed of these building block (Figure 2) . Figure 2. The modern analog cOplputer must be characterized as a parallel machine. Not solely a computer for continuous variables, it is a parallel assemblage of building blocks: integrators, multipliers, etc, for continuous variaw.s; and flip-flops, gates, counters, etc., and "digital" eircuits for discrete variables. It is organized for convenient simulation of an "analogous" physical system by a computer model that is constructed of these building blocks. Conversion Devices In providing data communication between a sequential computer and a parallel computer three kinds of devices are commonly used: the multiplexer, the analog-to-digital converter (ADC), and the digital-to-analog converter (DAC). In addition, all early systems have employed a timing and control unit which performs a relatively fixed set of operations, with manual switches to select options such as sampling frequency, and number of channels. Such "linkage systems" thus consisted of a timer unit plus a group of linkage building blocks prewired to perform a specific task. With the integration of digital logic components into the parallel computer, however, greater programming flexibility is possible by use of these logic units for timing control of the data conversions. Furthermore, the converters and multiplexer can act very naturally as additional building olocks in the parallel computer. Thus it is likely that future hybrid systems will simply incorporate the "linkage system" within the parallel computer. Usually several or many analog signals in a hybrid program will be sampled, converted and transmitted periodically to the sequential digital program. The numbers, of the several sequences of numbers to be entered into the core memory, can be accepted only one at a time. Since this is so, the conversions from voltage to number form can be performed one at a time-first from one analog variable and then from another. The multiplexer is used to select one from many analog signals, to step through a sequence of signals, and thus to furnish voltage input signals to the ADC. The output of commonly used ADC's is a binary number of 10 to 14 bits. A 13 bit binary output probably is the best compromise; it represents a resolution of one part in eight thousand, and resolution of analog voltage signals is at best one part in ten thousand. Conversion times range from 50 to 300 microseconds. A typical time of 100 microseconds would allow the converter to be shared by 16 analog signals each with a frequency spectrum extending to 20 or 30 cycles per second. This will be explained later. DAC units should have the same binary word size as the ADC, except for special low accuracy HYBRID COMPUTATION . . . WHAT IS IT? . . . WHO NEEDS IT? . . • uses. Conversion times are not determined by the converter but rather by the bandwidth of the analog amplifier following the converter. Data from the sequential computer appear only one word at a time, and some means for retaining the latest value, of each sequence of numbers, for each output function is needed. The sequence of numbers coming from the computer may first be converted to voltage values by a single DAC, and then distributed to storage amplifiers for each channel. It is more customary, however, to hold each of the latest words for each channel in a digital register which is an integral part of the DAC assigned to each channel (Figure 3). Special Forms As a passing thought it may be noted that while the primary emphasis here is being placed on the distinction between parallel and sequential operation, the term "hybrid," his;.. tori cally, has been used to imply the combination of continuous and discrete calculations, and that therefore consideration might be given to two special kinds of hybrid computers: The Parallel Hybrid Computer; which is a proper term for the EAI HYDAC 2000 machine. This system combines an analog computer with a general purpose system of programmable logic building blocks, multiplexer, ADC, DAC's, Figure 3. ADC's and DAC's are format converters, changing voltage to numbers and vice versa. As components of the parallel machine the converters together with logic components must act to "match impedances," i.e., resolve the incompatibility between the parallel and sequential programs. 255 digital memory units for storage· of sampled analog functions, and several digital numerical adders and subtractors. The application of this system encompasses an intermediate range of hybrid problems, such as: a. Transport delay simulation 24 b. Single and multi-variable function generation c. Logic control systems23 d. Automation of the analog computer for parameter searches and optimization studies 41 e. Simulation of numerical and sampled data control systems 1,9 The Sequential Hybrid Computer, which is exemplified bytthe experimental "pulsed analog computer" techniques developed at M.LT. for use in an ai~craft flight trainer.1° This system employs a [:sequential digital computer which controls a small number of analog functional components--one multiplier, one reciprocal generator, one integrator, and several adding units. These units are interconnected and receive inputs by digital program control. They form, in effect, "analog subroutines" for the sequential computer. THE SEQUENTIAL/PARALLEL HYBRID COMPUTER The term "hybrid" is most appropriately used to indicate the combined use of sequential and parallel computing techniques, first because the future growth in hybrid simulation will be predominantly in this direction. Second~ and more important, is that from the standpoint of the programmer who must bring the two types of computers together to find a useful solution to a problem, the only really significant disparity lies. between sequential and parallel operations. The difference between continuous voltage and discrete number is simply one of format. It would make little difference if the analog signals were frequency modulated, pulse code modulated, hydraulic, or pneumaticappropriate format converters could be found. The feature of hybrid computation that is of importance is: in part of the machine many operations are taking place simultaneously, and many time-varying problem variables exist in parallel; while elsewhere a number of operations take place, one at a time in a repetitive 256 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 manner, so as to effect the generation of several problem variables, as if they occurred simultaneously. Furthermore, the parallel computation is tied to a real-time base: the very passage of time itself accounts for the changing of the basic independent computer variable. The sequential program is asynchronous-not controlled by a clock. Operations are executed in sequence at whatever rate is possible, and for any reference to be made to the actual elapsed time, external communication is necessary. This basic incompatihility requires that the interface between the two types of operation embody more than the simple format conversions performed by the ADC and DAC's. It is necessary for data and control information in the parallel machine to be available to the sequential machine and conversely that the latter be able to send data and control signals to many points in the former. Coincidence or simultaneity of events communicated to and controlled from the sequential program are particularly difficult to handle. The logic and data control of the interface equipment must resolve these differences in timing and operation. What might be termed an "impedance matching" device is needed between the parallel and sequential program in order to make most efficient use of both machines. The exact manner in which this is done will vary from problem to problem (Figure 4). A Simple Example An example will illustrate some basic considerations in defining a general purpose hybrid system. First, the operation of the simplest of linkage systems: an ADC and multiplexer, a Figure 4. A hybrid computer is a compatible. system of parallel computing components, both digital and analog, and a stored program sequential machine. The hybrid computer programmer must constantly be aware of the relative timing of events in the parallel and sequential parts of the program. "Matching impedances" between these parts is accomplished by programming of the interface components to suit the simulation. number of DAC's, and an "interrupt clock." The flexibility of the stored program digital computer is relied on for control of these units. Assume 10 analog signals are to be converted one at a time. These. words are placed in memory (average program time: 40 p.sec. per word and then about 7.5 or 8.0 milliseconds of sequential, digital calculations takes place, followed by output from memory of ten words (20 p.sec. per word) to ten DAC's. The entire cycle requires 7500 + 10 X 40 (input) + 10 X 20 (output) = 8100 microseconds of digital program time. If it is assumed the conversion of the data (A to D) requires 150 microseconds per word then 1.5 additional milliseconds, or 9 ms are needed if everything proceeds sequentially. Assume further that because of the frequencies, or the analog signals, it is necessary to sample at least some, and therefore all, of the channels at 100 samples per second. A "real4ime interrupt clock" is set at 100 cycles per second. This timer unit is an adjustable oscillator that sends an interrupt pulse to the digital computer. The latter then activates the ADC, waits 150 p'sec for completion of a "Ready" signal, steps the multiplexer to the next channel, stores the converted word in memory, and then repeats this cycle ten times. With the tenth step the multiplexer resets to the first channel. The program then proceeds with the 7.5 milliseconds of calculation, outputs ten words, one at a time, to ten DAC's, and then waits for the next Figure 5. An early hybrid system configuration. The sequential program controls the timing of the conversion cycle. The cycle is initiated by the "interrupt clock." For a tyical problem the clock might be set for 100 cps; and 7 to 8 milliseconds per cycle would be available for calculation. HY,BRID COMPUTATION WHAT IS IT? . . . WHO NEEDS IT? . . . 257 and control devices external to the sequential computer. In other problems these percentages may be higher. The other weaknesses in this system lie in the fact that it was not designed to be a general purpose system. It is restricted in application to a class of problems for which the periodic "input/calculate/output" cycle is useful. Figure 6. The sequential program flow diagram, for the example hybrid system of Figure 5, shows the steps required for control of the converters. IN~~~~~PT .........1....-_ _ _ _ _ _ _---(,1-'_ ___"_ _ PULSE IIII ADC OPERATING TIME DIGITAL COMPUTER TIME iIIuu I-- CALCULATE 7.4MS..j ~ 'OH'OH'O ~ ~~ I t, tl LI 1, TnT COMPLETION STEf' IIILTIPUXER --"':J 1NDEX II TltANSFER '"'-~j--START "DC L ~40~SEC--1 Figure 7. Typical times are shown for the steps in the conversion cycle of the example system of Figure 5. All ten channels are converted and stored in memory as fast as possible before proceeding with calculationsat the expense of intervals of "waiting time." interrupt pulse. (See Figures 5, 6, and 7.) Manual controls are provided for selecting the interrupt clock frequency and the number of channels in the multiplexer stepping cycle. This is certainly a simple system and it appears to satisfy the basic requirements for communications. Some of the shortcomings of the system are apparent: sampling and outputting of each channel do not take place simultaneously, 15 % of the sequential program time is "waiting" time, and 3 to 5 % is used to select System Improvements or Variatio~ By programming the parallel digital COMponents of the parallel computer to perform timing and control functions for the system the following changes to the above system are suggested: a. Simultaneous sampling. If the sequential program operates on two or more of the input numbers together to calculate an output, then errors may occur since the input numbers were sampled at different times and correspond to different values of the independent variable. A similar effect may occur at the output since the numbers in a group of ten appear at the ten DAC's at different times. It is certainly possible by numerical means to compensate for the errors, at the penalty of additional program time. 18, 28 The common soiution is to add memory to each of the ten input and ten output channels. Ten Track/Store amplifiers are added before the multiplexer and a control signal causes them all to sample, by storing the voltages, simultaneously. At the output, 13 bit registers are added in front of the DAC's. When all ten registers ha ve been loaded, a transfer pulse causes all DAC values to be updated at the same time. b. External timing of ADC and multiplexer. Sequential program time can be saved by permitting the control of the ADC, multiplexer, track store cycle to be controlled externally. A simple clock, counter, flip-flop, and group of logic gates will permit the input conversion cycle to run at its own rate-interrupting the sequential program only at the completion of a conversion. Thus the conversion time can overlap the calculation time, eliminating the waiting time. Upon interrupt only 10 to 20 p.sec. may be required per sample; many control steps are eliminated. Similarly on output, the addressing and selection of output channels can be done by simple circuits rather than using sequential program time (Figure 8). 258 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 Figure 8. Several improvements to the interface system of the example of Figure 5 include: simultaneous sampling, external ADC and multiplexer timing by a parallel logic program, use of sense lines to reduce conversion channels, detection of random events, multiple sampling frequencies, and/or asynchronous sampling. c. Real-time clock to establish sampling frequency. If the sequential calculation involves numerical integration over a long term, the accuracy of the sampling interval is just as important as the round-off and truncation error in the numerical calculation. Although numerical means may be resorted to for very accurate integration, in a hybrid program the calculations still need to be referred to a real-time base. This is done by using an accurately calibrated source for setting the sampling interval, or frequency. A good high-frequency crystal stabilized oscillator is an important part of the parallel digital subsystem. Sampling frequencies lower than the oscillator frequency are selected by use of preset counters. d. Use of sense lines to reduce number of conversions. In the simple example problem only whole number data are transmitted to the sequential program. Thus, if the relative magnitude (greater or less than) of two analog signals is needed in the digital calculation, the two numbers must be converted, stored, and then compared. This can be accomplished more simply by use of an analog comparator the output.of which is sent to the digital computer by a sense line--saving time and equipment. The state of any parallel logic component may be monitored conveniently by sense lines. These are tested in one memory cycle (2-5 fLsec.). If many such communications are needed the savings will be significant. Sense lines should also be added to allow the sequential program to determine the mod~s of the analog computer, the relative sizes and signs of error quantities, and the states of recording devices. e. Detection of random events. With fixed, periodic sampling the sequential program cannot tell exactly when events take place in the parallel machine. With comparators and parallel logic, complex functions of analog variables can be monitored. For example, it might be required to determine when the overshoot in Xl exceeds X2 after the third cycle, but only when X3 is negative and X4 is less than X5. After determination the sequential program can be interrupted to perform specific conversions and calculations-asynchronously with respect to the primary conversion cycle. In this manner the parallel logic avoids the delays in the sequential program and uses the latter only when required. The parallel logic program analyzes the data, interrupts the sequential program, and sets up the proper channels for conversion in and out of the digital computer ( Figure 9). f. Multiple sampling frequencie.s. In the example problem all channels are sampled at a frequency determined by the highest frequency present in anyone channel. It may often be the case that there are two or more groups of variables with different ranges of variable frequencies. It may then be appropriate to sample each group at different frequencies. Another ap- -XI -x.. x. Figure 9. A parallel logic program is used to detect random events in the parallel computer. The "desired control signal" interrupts the sequential program when the overshoot in Xl exceeds X2 after the third oscillation; but only when Xs is negative and X4 is less than X5. Xl through X3 are analog voltages. HY·BRID COMPUTATION . . . WHAT IS IT? . . . WHO NEEDS IT? . . • proach using different sampling rates is to use several eight channel multiplexers in cascade so that the output of two of them feed two channels of a third which feeds the ADC. On each cycle of the third unit the first two are stepped, yielding different variables for those two channels on each cycle. Alternatively, each time the third steps to the two special inputs the corresponding multiplexer makes a full cycle. Timing control of these operations is performed by parallel logic components (Figure 10). g. Asynchronous sampling. A completely asynchronous conversion system has been designed by one computer laboratory, in which the sequential program is interrupted only by comparators. Twenty analog problem variables are compared to reference values that are adjusted by the digital computer when necessary. Each comparator calls for conversion of some group of variables (the same variables may be called for by different comparators). When two or more comparator signals occur simultaneously or during a conversion operation, two levels of priorities are set up by logic elements to determine what interrupts are to be made. While the system appears complex, it is accomplished in a simple fashion in the paraHei computer and makes good use of the sequential computer time. A longer list of useful variations in the control and timing of sequential/parallel communications can be compiled. For the most part, however, they should be explained in terms of the particular problem applications. Operating Times for Typical Mathematical Functions The repeated emphasis upon the efficient utilization of the sequential program time, high arithmetic speeds, and programming tricks to gain speed can be seen to oe warranted when one examines the sequential operating times for several typical mathematical functions, which, on the analog computer, would be executed continuously and in parallel. a. The sum: a + b + c + d 40 microsec. b. The expression: ax + by + cz 160 microsec. c. Sinwt or coswt 215 microsec. d. Square root of X2 + y2 432 microsec. e. Generate z == f (x, y), where two dimensional interpolation is required between functional values evenly placed in x and y: 0.5 to 1.5 millisec. f. Rotate a vector through three coordinate angles: 2 to 6 millisec. g. Perform one integration of a single derivative for a single time step: 0.1 to 1.3 millisec. A program of three first-order differential equations, where the derivatives are calculated from the functions above (items a through f) would not be a large program; and yet for a single step in time, the calculation time would be about 11.2 milliseconds. dx dt - x+y + z + f (x,y) dy dt == ax - by 2 2 dz dt == x + y ANALOG SIGNALS Figure 10. Cascaded multiplexers, in this or other configurations, can aid in establishing mUltiple sampling rates for different groups of analog signals. 259 + cz • t + Slnz Allowing another millisecond or two for control and input/output instructions one can estimate' the real-time speed performance of this program. The speed is best expressed in terms of the useful upper frequency (at full scale), in a problem variable, that can be represented by the computer. Although the example equations have no real meaning, the frequency limit for such a program is about 1 :1f2 cps. This does not seem like very fast performance for so few, simple equations. On the other hand, it is fast compared to frequencies of some of the vari- 260 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 abIes in an aerospace simulation program for which digital precision is required. In any event, it should be clear for best utilization of the sequential computer, care should be taken to reduce operating time whenever possible. Sampling Rates When parallel and sequential machines are connected in a closed loop it is assumed that at least part of the task of the sequential program is to accept sequences of sampled values of continuous inputs, calculate functions of these inputs, which are then transferred out as sequences of numbers to be smoothed into continuous signals. The digital computer attempts to appear as if it were a parallel computer, and as in a movie projection the effectiveness of this approximation is determined by the ratio of the frame or cycle rate to the rates of change of the signals communicated, and the time resolution of the person or computer receiving the information. Thirty frames per second will not catch the information in the trajectory of a humming bird. A higher rate is needed for an accurate recording of the flight. The human eye, however, cannot resolve time intervals less than 1/30 of a second. Thus an accurate recording can be transmitted to the eye only by a time scale change to slow motion. Fortunately, the parallel computer has a time resolving power sufficient to detect the shortest practical cycle time on the sequential computer, so the limiting factor in determining useful cycle frequencies is the rates of change of the variables that pass between the two computer sections. It is customary to speak of the bandwidth or spectrum of these signals-or more particularly the highest useful frequency that must range over the full magnitude scale. The sampling rate or cycle rate must be selected in terms of the number of discrete numbers or voltage samples necessary to represent this highest frequency at the desired accuracy. In sampled data theory the "sampling theorem" states that the sampling frequency must exceed two times the highest signal frequency if all the information in the original signal is to be retained. 36 That is, some number greater than two samples per cycle is necessary. Another important point comes from the theory: in sampling voltages at the input to the digital computer the rate must exceed twice the frequency of any signal present. If noise signals are present that are higher in frequency than the desired signal and exceeding 112 the sampling frequency it is possible for this noise to be reflected Into the signal spectrum, thereby destroying useful information. This can be avoided with appropriate noise filters. If this were the only limitation it would be fortunate. However, too few samples per cycle makes it difficult for the sequential program to extrapolate and predict what takes place in between samples. I t is possible to do this, of course, by numerical means, but at cost in program time. Furthermore, numerical algorithms for integration are sensitive to the ratio of sampling interval to the rates of changes of the variables, and the calculations may become unstable if too few samples per cycle are used (Figure 11). The most important criterion for determining sampling rates appears in the conversion of the discrete data to continuous analog functions. Two sources of error affect the accuracy of the resultant continuous function. The first is the delay due to conversion and the sequential program itself. The output numbers are functions of input numbers that were sampled at an earlier time. Since the delay is unavoidable, but is predictable, numerical means are used to extrapolate the data to the time of actual digitalto-analog conversion. 18, 28 The second error source is in the mechanism for conversion from Sampling Oemultiplexing a a Multiplexing Smoothing Figure 11. A Sequential-Parallel Hybrid Computer: The noise and delays due to sampling and multiplexing on the one side and the magnitude and phase errors due to demultiplexing and smoothing on the other are dominant factors in determining the proper sampling frequency. 261 HYBRID COMPUTATION . . . WHAT IS IT? . . . WHO NEEDS IT? . discrete to continuous form. A sequence of discrete values fed to a DAC results in a "staircase" analog function. The desired output is a smooth curve passing through each data point (the left corner of each step). If the staircase is smoothed with an analog circuit the result is a smooth curve shifted in time 1hat, passing through the center of each step. The amplitude of this curve is attenuated from what it should be. This technique of smoothing is called "zero order" filtering. (See Figure 12.) The size of the errors is a function of the number of samples per cycle. At ten samples per cycle the magnitude attenuation is about 1.1 % and the phase shift is 18 degrees. At 30 samples per cycle the errors are 0.7% and 6.5 degrees. A first order filter may be applied to the DAC output to reduce the errors. For special purposes higher order extrapolating filters are feasible. These filters are programmed from analog components. The first order filter extrapolates from the last two discrete values to generate intermediate values until the output voltage is reset to the next discrete value from the DAC. The first order filter has a much improved phase characteristic but at low sample rates the magnitude is erroneously accentuated. The IDEAL OUTPUT Figure 12. The discrete to continuous signal conversion requires smoothing and hence yields only an approximation to the ideal output from the sequential computer. The zero order conversion simply holds the output voltage at the last sampled value until the next arrives. When the "steps" are filtered out the result is shifted in time by the width of one half step. ThE:. first o;der scheme uses the past two converted values to predict the value between points, before "resetting" to the next value. 0.1 % ,'- " \ ... ----- ~ Zero Order " Sample I Cycle 10 ,, ~ 20 " " 30 40 -- ---- 50 Figure 13. Zero and first order conversion methods are compared, after filtering. The errors are functions of the number of samples per cycle of full scale signal frequency. A good rule of thumb for the zero order filter is that 50 samples per cycle, the errors are less than 0.1 % and 3.6 degrees. error characteristics of the two filters are shown in Figure 13. A good rule of thumb for the simple zero order filter is that for 50 samples per cycle the errors are less than 0.1 % and 3.6 degrees. The above rule is convenient for estimating the required sample rate and hence the time available for the sequential program. If the variables converted from digital vary at a maximum frequency of 2 cps, then 100 samples per second are needed, and 10 milliseconds is the cycle time for the sequential program, for primary calculations and input/output operations. Dynamic Range of Dependent and Independent Variables The time resolving power of the analog computer was mentioned above in connection with an analogy to the resolution of the human eye. It is instructive to pursue this concept further. The time resolving power of a computer is measured by the shortest time interval that can be accounted for in a calculation. For all signals in an analog computation, the resolution is directly related to the bandwidth of the components; however, the computer's ability torespond to on-off signals and very short pulses, or 262 PROCE.EDINGS-,SPRING JOINT COMPUTER CONFERENCE, 1964 to discriminate between two closely spaced events is a closer description of time resolution. In a digital computer the absolute minimum resolution might be taken as the time to execute three instructions; however, within a hybrid system the resolution of the sequential program is either the sample interval discussed above, or at best, for asynchronous operation, the time for a complete interrupt program to respond to an event. In the parallel computer the time resolution is, of course, much greater because computing elements need not be time-shared. For relay circuits the resolution is about 1 millisecond, for electronic switching of analog signals from 10 to 100 useconds, and for parallel digital operations from 0.1 to 10 useconds. If these numbers are compared to the total length of a typical computer run, say 1.5 minutes, computer time resolution can be measured by a nondimensional number: Parallel digital logic operations .. 1: 109 Parallel digital arithmetic 1: 101 operations Parallel analog, electronic switching 1: 5 X 106 Sequential program, minimum useful program 1: 3 X 105 Parallel analog, relay switching 1: 105 Sequential program, typical sampling 1: 5 X 103 The digital computer is employed in a simulation where the dynamic range of dependent variables requires a wide dynamic range (reciprocal of resolution) in the computation. It is seen that resolution of the independent variable is traded for that of the dependent variables when a particular calculation is moved from analog to digital computer. Figure 14 shows these functions plotted against each other for different computers. The flat part, or "operating range," of the sequential computer plot is seen to be limited on one end by truncation error and the 'other by round-off error. This is to be interpreted as meaning that for a given set of mathematics short cuts and approximations may be used to improve the time resolution up to a point where the truncation error becomes serious. On the other end, special techniques may be used to reduce round-off error, including double precision operations, at the expense of time resolution. REAL TItt£ FREQ. (CPS) z 2 ~ § 3I iIII II: ~ ~ ~ 10 10 1 f"1O •Z 10 10 ~ 10 z 10 I!: 10 ~ 7 & .... 10 I I ! I 7C ~ I i I " ... .... , r--_ DDP 24 ........... 1 r--- . PlIRAW LDIGI ~AL .,r\ " 2 I \ r\ "AU AillL 'ANAL PG 1 100 1000 I \ ................ , 10 Z ~ .' 0.1 ~ 1'0.... ................ ....... I I I I 10 10 J MIN. 2 I SEC. I 10 1 I 10" I 10' 1m. SEC. ........ I I 10& 10 I 7 10" 10' I" SEC. INDEPENDENT YARIA8l.£ OWE) RESOLUTION Figure 14. Certain performance characteristics of computers can be deduced from this comparison of the available resolution in the computer representation of dependent and independent variables. Notes: (1) The limits on the "Parallel Digital" curve are given as those of the EAI Hydac, 0.5 ,usec. in time and 16 bits in magnitude; (2) the attenuation on the right hand end of the DDP-24 and 7094 curves corresponds to truncation errors; (3) the slope at the left of these curves corresponds to reduction of round-;off errors at the expense of speed including use of double precision methods (broken lines); (4) The "Real Time Frequency" scale refers to signal frequencies passed by the sequential program (DDP-24, 7094) assuming a maximum sampling rate of 100 samples/cycle. When the digital computer curves are related to the frequency scale, at the top of Figure 14, a particular size program must be considered. For example, at the 2 cps point, six second order differential equations for a trajectory simulation could be calculated, for throt point corresponds to a 10 millisecond (bottom scale) sequential program time interval. At the 20 cps point, either very crude integration algorithms and approximations are used for the same problem, or one would be considering a much smaller calculation. Moving to the left on the curve, more time is available either for more accurate calculation or for computation of more functions. The useful operating ranges for the different techniques are evident from this figure, and this point of view should be useful to the problem analyst in considering hybrid simulation. FORMULATION OF THE SIMULATION MODEL AND PROGRAMMING Mathematical analysis of the behavior of physical processes and systems is a basic tool HYBRID COMPUTATION . . . WHAT IS IT? . . . WHO NEEDS IT? . . . for the design engineer, and the frequency of its use has been growing for many years at an increasing rate. At first, analysis was restricted to the smaller elements in a system, to linearized approximations, or to phenomena that can be isolated from interaction with its environment. For example, there have been many studies of noninteracting servo control loops, heat diffusion in devi,ces of simple geometry, the "small signal behavior" of aircraft and their control systems, and batch and continuous chemical reactors of simplified geometry. Analysis starts from a consideration of the basic laws of physics as applied to the process at hand and proceeds to develop a mathematical model. The solution to the equations of this model for a range of the independent variable (s) constitutes a simulation of the process. The nature of the designer's task and the very fact that the analysis has been limited to an element of a more complex system, requires that many such solutions be calculated. The simulation is performed numerous times over to determine the variations in the process behavior with changes in (a) internal design parameter~ of the process, and (b) environmental conditions. Electronic computers, of both types; have aided immeasurably in reducing this task to a manageable one. The facility in obtaining simulation results ~tp~t compu·ters have afforded the designer and analyst has accelerated the general acceptance of the analytical approach to difficult design problems. In addition to the wider use of simula.tion the successful correlation of experimental results with analytical predictions has built confidence in these techniques, which has led to the undertaking of simulations of more complex systems. It was once felt that a simulation model could be made so large that the analyst would have difficulty coping with the variables. Indeed this can happen, when poor engineering judgment leads to a model with many more variables than known conditions and assumptions. However, a complex model carefully built up from verified models of subsystems may lead to valuable results attainable by no other means. Thus as analysis and simulation have yielded understanding of the behavior of small systems, a natural process of escalation has led to simulation of systems of greater and greater complexity. The increased sophistication of simulation models has made the analyst even more 263 dependent upon computers for effective control of the simulation and for interpretation of results. The rapid growth of analytical methods and the exploitation of computer technology have paralleled an even faster expansion in complexity of engineering systems. Aerospace systems, moon missions, space satellite laboratories, nuclear reactor power systems, and automated chemical plants are examples of engineering systems that are so expensive and/or potentially hazardous that the design cannot be undertaken without computer simulation to predict ultimate performance. It is no longer feasible to restrict analysis to linearized or isolated subsystems in development of such systems. As technology continues to expand reliable methods must be found to predict, by simulation, the performance of total systems. For only with such analysis and prediction can decisions, involving capital investment as well as design features, be made. It is in this context that hybrid computation can be seen to fulfill a growing need. One might well ask what are the implications of t.his escalation of complexity. If simulation models must necessarily grow larger, just ho\v does this affect the procedures of analysis, computer progr~"'TIming, computation, and inteL-vretation of results? How are the hazards, which were o~ earlier concern, of becoming overwhelmed with useless data and meaningless computation be avoided? There is a pernicious theory about programming for very large digital simUlation, that says if two men can do the job in six months, four men will take twelve, and eight men would never complete it. How can the step from mathematical model to the first computer simulation run be held within bounds--to avoid inordinate investment in programming that may never work or may have to be scrapped for a better approach? How can the analyst or design engineer stay in touch with his model? Surely there are no answers that yield guaranteed results. But these are serious questions and some direction is needed in order to evaluate properly the true potential of advanced computer techniques. The implications in the field of hybrid simulation may be divided into three categories: 264 PROCEEDINGS-SPRING JOINT COM·PUTER CONFERENC.E, 1964 (a) Model building in programming (b) Software (c) Automation Model Building in Programming The analyst, design engineer, and programmer of a large hybrid simulation must all (if they are more than one person) become involved in all phases of the simulation process. Responsibility cannot be divided up, as it often is at the digital "closed-shop" facility, between analyst and computer programmer. The hybrid computer laboratory must be operated, as many analog laboratories, on an open-shop basis with expert programming support available from the laboratory. The design engineer must have a genuine understanding of the computers to be used, even though he may not do the actual computer programming. Since the' computer actually becomes the model of his system, he must know the limitations imposed by the machine as well as by the mathematics, and he must be able to communicate effectively with the computer. Moreover, during the construction of the mathematical model the analyst must keep in mind the features of the parallel and sequential parts of the hybrid computer in order to achieve a proper partitioning of the mathematical model to suit the computer. Much attention has been given here to the relative speeds of computation inherent in the different computing techniques. It may be evident at this point that the presence of a very wide range of signal frequencies in a system to be simulated is the one characteristic that most clearly indicates the need for a hybrid computer. As an example, consider the simulation of a long range flight of a space capsule. In "real time" the position coordinates probably vary at 0.01 cps over most of the range, and, at most, at 3 cps during launch and re-entry. At the same time, pitch, roll, a!ld yaw rates and thrust forces may reach 10 cps or more. Adaptive control functions and control surface forces may have transient frequencies as high as 50 cps; and a simulation of reaction jet control forces may require tO'rque pulses as narrow as one millisecond. Since there is little or no damping in an orbital flight,these pulses have a long term eifect, and accuracy in their representation is important. If an on-board predictive computer is included in the simulation, iterative calculations on the analog computer may involve signal frequencies of 100 to 1000 cps. Thus, this simulation spans a frequency range of 105 as well as a dynamic range in some dependent variables of 105 or 106 (Figures 14, 15, and 16). The following observations may be fairly apparent, but in considering division of a problem between computers it is well to note the types of mathematics for which each is best suited. The forte of the digital computer is the solution of algebraic equations. If the equations are explicit, the calculation time is easily determined. Implicit equations often require a variable length of time, and if there are not too many of them they may be readily solved continuously on the analog computer. Numerical integration comes as a by-product of the computer's power in solving algebraic problems. Time is the only penalty; If the high precision is not needed, the integration is better done by the analog computer, for the solution of ordinary differential equations is its strong feature. Evaluation of arbitrary functions is performed with ease by both computers, as well as by parallel digital components; however, if Figure 15. The relative speeds of computation inherent in the different computing techniques are important considerations in the planning of a computer simulation of a large complex system. The presence of a wide range of signal frequencies in a system to be simulated is the one characteristic that most clearly indicates the need for a hybrid computer. 265 HYBRID COMPUTATION . . . WHAT IS IT? . . . WHO NEEDS IT? . . . Logic equations that must be evaluated continually with respect to their relation to analog variables clearly must be programmed with parallel logic elements. On the other hand, decision and control functions that have to do with the occasional evaluation of states of the computer and errors signals and with sequencing various sections of the total system through different modes and states of operation, may require both parallel and sequential oPerations. Hybrid simulation requiring solution of partial differential equations opens a whole new subject for discussion. Let it just be said that although there is very little practical experience in this field, it appears to offer one of the most promising areas of growth for hybrid simulation. The digital computer approach to the solution of PDE is often limited by available computer time-particularly in simulation problems where it is desired to solve the problem many times for various conditions. The analog computer can solve some PDE problems very efficiently but it is often seriously limited by the necessity of large amounts of equipment for complex problems. Moreover, only with memory to store complete functions (either in a parallel L!_1 _ _ _ _ _ .. Figure 16. (Note: place figure horizontal with the word "time" on the left). A wide range of signal frequencies is suggested here: although not to scale, for a dynamic range of 106 could not be illustrated conveniently. Consider the simulation of a long range flight of a space capsule. The curves might represent (1. to r.): position coordinates varying at 0.01 cps; deviation from a desired path, 0.1 cps; pitch, roll, or yaw rate, 1-5 cps; reaction jet control pulses, 1 ms. pulses at several hundred pulses per sec.; thrust forces or control surface transients, 1-50 cps; iterative calculations for trajectory predictions, 100-1000 cps. speed is important, and if the data are functions of two or more variables, a digital program is the best choice. Simulation of nonanalytic non-linear functions, such as limits, back-lash, dead-zone, stiction, and hysteresis again are amenable to both techniques but analog is probably more economical. Evaluation of trigonometric and hyperbolic functions also can be done both ways and the choice seems to depend on the particular problem. In this case there is a third choice, for there are techniques and equipments for executing these functions by parallel digital components. 37 _l! __ ! L _ ' _____ L ___ ____ ulglLal SyS('~UI or a __ ~ .. ___ S~Ut:U('lC:U L _ _ '\ CUIUPULt:::l-, __ _ can certain kinds of boundary value problems be approached. The hybrid computer has the abiiity to store boundary conditions as well as complete sets of intermediate solutions so that parallel computer programs can be used for speed, but then be time-shared over again for different parts of the space domain. Some very challenging problems and some promising possibilities face the experimenter in this field. Returning now to the implications of the growth of complexity in simulation, the important point in programming is that whoever prepares the computer program must himself be a model builder and be familiar with the system to be simulated. The program should be designed, constructed, and checked out in much the same way that any other kind of model of a complex system would be built. The computer model should be put together from working models of subsystems. Each subsystem, or group thereof, is verified for ;correct performance in a linear or simplified mode before connecting it to other parts of the model. At each point in the expansion of the model, 266 HY;BRID COMPUTATION . . . WHAT IS IT? . . . WHO NEEDS IT? . . . including the final one, at least one test case of a linear mode of operation should be checked against known or precalculated behavior. Computers can extend the analytical powers of man, but they cannot work magic. The computer is a storehouse of answers, but the burden is upon the analyst to ask meaningful questions if he is to receive useful answers. Only with a step by step process, asking questions of the computer at each step, can a valid and useful computer model be built for a large, complex system. Software Standard programs and routines for digital .computers, of general utility to programmers, known as "software," are in such wide use that the production of software is virtually an industry in its own right. "Automatic programming systems," which make computer programming easy for the non-computer expert, are responsible for the almost universal acceptance of digital computers in scientific research and development. The development of sophisticated software has made it possible to increase computer utilization, to gain wider use of computers with minimum training of personnel, and to reduce duplication of programming effort for programs of general utility. A total dependence upon automatic programming has the disadvantage of isolating the problem analyst, and ·even the programmer himself, from the computer. The analyst is restricted from communicating with his computer model while computation takes place. The programmer is limited in taking full advantage of the computer's special features. On the other hand, in the analog computer field the reverse situation exists. No comparable "software" usage has shown up. There is little in the way of automatic programming and preserving of standard programs by analog computer programmers. However, another characteristic of simulation by analog computer is that the problem anayst is involved in building the computer model and he maintains rapport with his model during the simulation. The role that software must play in hybrid simulation of large complex systems is evident. "Hybrid software" must ease the programmer's buraen, as it does for the digital programmer, and at the same time it must bring the analyst closer to his model rather than isolating him from it. Hybrid software must include not only coding for the sequential computer but also interconnection diagrams and prewired patch panels for the parallel machine. The following types of software are needed to support growth of hybrid computation to meet the simulation needs of today. a. Compilers and Assemblers. Conventional compilers and intepreters have their useful place in hybrid computation, to aid in processing data prior to computation and processing results for interpretation. Automatic programming systems for hybrid computation may differ from conventional systems only in three ways: running time of the objeCt program is minimized at the expense of compiling time; actual running time for each program statement is precalculated or estimated to aid the programmer with timing of the parallel/sequential interface; and while the programmer's language is "problem oriented," it is required to be machinedependent. The programmer must be able to utilize special machine features and to program for control of all interface operations. b. Utility LibranJ. In addition to the conventional utility routines for mathematical functions, format conversions, and input/output operations, the hybrid simulation library should expand with routines for specific transfer functions of useful subsystem models that have become standard and are used in larger models, e.g., a typical servo controller. Another type of example is a function generator program to any number of aerodynamic functions. A standard program for a complete aerodynamic vehicle simulation is also feasible. c. Input/Output Routines. Direct on-line control of the computer model by the analyst is needed. In a convenient language it must be possible to experiment with time scales, parameter values, and even to make substitution of mathematical algorithms (particularly integration algorithms), without any penalty in running time. This means that a complete symbol table and all definitions of parameters must be available to an executive routine that will accept operator instructions to modify a particular problem variable and proceed to calculate HYBRID COMPUTATION . . . WHAT IS IT? .•. WHO NEEDS IT? . . . changes in all the "machine va·riables" that are affected. The executor also permits interrogation of the state (and time history) of any problem variable, in engineering units. Upon operator command the model can be modified by changing the linkages between submodels or subroutines. It may, for instance, be desired to linearize part or all of the model for checking purposes, or to isolate or "freeze" certain parts of the model. In monitoring and adjusting the model the executor must not be limited to the sequential computer but should have full access to the parallel elements in the computer system. Automation One important aspect of hybrid computation, which is barely mentioned above, is the opportunity for automating much of the routine parts of programming and check-out of the analog computer. It is evident that a necessary feature of any hybrid computer system is the mechanization of, and sequential program control of, as many of the manual operations on the analog computer as possible. This includes setting of potentiometers, switches, modes, time scales, recorders, and the selector and readout system. This kind of control is import....ant for some of the software functions mentioned above. Also it makes possible automatic set-up, testing, and diagnosis of machine and program faults. Some interesting diagnostic programming for such a hybrid computer was developed in 1959-60 at General Electric MSVD in PhHadelphia. 15,17,32 A different type of programming automation is offered by the Apache system developed at Euratom, Ispra, Italy, for the IBM 7090 and P ACE analog computers. 14 This is a digital program that translates a mathematical statement into detailed programming instructions for the analog computer. While Apache is not intended for hybrid computing the appropriateness of such a program should be apparent. One last important characteristic of hybrid simulation concerns the automation of the model building process itself. Simulation inherently involves trial and error experimentation. The elements of a model are verified; sensitivity to environment is explored; and variation of performance due to parameter changes are evaluated. When a criterion for optimality can be 267 specified, experiments are made to obtain optimum performance. The sequential computer is perfectly suited to the automation of these procedures. Between calculations the digital computer can evaluate the results, decide upon changes to the model or the data, and implement the changes. At the same time the analyst can monitor the progress of the simulation and interrupt the automatic process whenever human judgment is required. CONCLUSIONS The main points developed in this paper may be listed simply. a. Hybrid computation is built upon the technology of analog and of digital computers and is equally dependent upon the programming methods, software, and procedures of problem analysis that have been developed for each. b. A hybrid computer is a compatible system of parallel computing components, both digital and analog, and a stored program sequential machine. The hybrid programmer must be constantly aware of the relative timing of computationa! events in the para!!e! and sequential parts of the system. c. There is an ever growing need for simulation of very complex engineering systems. The process of analysis and building of a computer model for evaluation and prediction of behavior are a required step in many large development programs. The hybrid computer offers a means for many such simulations that would- be impractical by other means. Hybrid computation is inherently a tool for very complex simulations rather than simple studies. BIBLIOGRAPHY 1. BARNETT, R. M., "NASA Ames Hybrid Computer Facilities and Their Application to Problems in Aeronautics," Internati01zal Symposium on Analogue and Digital Technique Applied to Aeronautics, Liege, Belgium (September 1963). 2. BAUER, W. F., and WEST, G. P., "A System for General Purpose Analog-Digital Computation," JACM, Vol. 4, No.1 (January 1957), p. 12. 268 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 3. BAXTER, D. C., and MILSUM, J. H., "Requirements for a Hybrid Analog-Digital Computer," National Research Council of Canada, Mechanical Engineering Report MK-7, Ottawa (October 1959), and American Society of Mechanical Engineers, Paper No. 59-A-304. 4. BERTRAM, J. E., "Effect of Quantization in Sampled-Feedback Systems," U.S. Government Research Reports, Vol. 31 (January 16, 1959), p. 19 (A), PB 133341. 5. BIRKEL, G., JR., "Hybrid Computers for Process Control," Communication and Electronics, No. 52 (January 1961), pp. 726-734; discussion, p. 734. 6. BLANYER, C. G., and MORI, H., "Analog, Digital, and Combined Analog-Digital Computers for Real-Time Simulation," Proc. EJCC (December 1957), p. 104. 7. BURNS, A. J., and Kopp, R. E., "A Communication Link Between an Analog and a Digital Computer (DATA-LINK) ," Grumman Aircraft Engineering Corp., Research Department, Research Report RE-142 (October 1960), ASTIA, No. AD 244 913. 8. , "Combined Analog-Digital Simulation," Proc. EJCC, Vol. 20 (December 1961), pp. 114-123. 9. CAMERON, W. D., "Determination of Probability Distribution Using Hybrid Computer Techniques," International Symposium on Analogue and Digital Techniques Applied to Aeronautics, Liege, Belgium (September 1963). 10. CONNELLY, M. E., "Simulation of Aircraft," Servomechanisms Lab. Report 7591R-1, M.LT. (February 15, 1959). 11. , "Analog-Digital Computers for Real Time Simulation,". M.LT. Report DSR8215, Final Report, ESL-FR-110 (June 1961). "Real-Time Analog-Digital Computation, IRETEC, Col. EC-11, No.1 (February 1962), p. 31. 13. Cox, F. B., and LEE, R. C., "A High-Speed Analog-Digital Computer for Simulation," IRETEC, Vol. EC-8, No.2 (June 1959), pp. 186-196= 12. 1964 14. DEBROUX, A., and GREEN, C., and D'Hoop, H., "Apache--A Breakthrough in Analog Computing," IRETEC, Vol. EC-11, No.5 (October 1962). 15. FEUCHT, K.; "Diagnostic Programs for a Combined Analog-Digital System," Proceedings of the Combined Analog Digital Computer Systems Symposium, Philadelphia (December 16-17, 1960). 16. GAINES, W. M., and FISCHER, P. P., "Terminology for Functional Characteristics of Analog-to-Digital Converters," Control Engineering, Vol. 8, No.2 (February 1961), pp. 97,8. 17. GELMAN, H. D., "Evaluation of an Intercept Trajectory Problem Solved on a Combined Analog-Digital System," Proceedings of the Combined Analog Digital Computer Systems Symposium, Philadelphia (December 16-17, 1960). 18. GELMAN, R., "Corrected Inputs-A Method for Improving Hybrid Simulation," Proc. FJCC, Vol. 24 (November 1963). 19. GREENSTEIN, J. L., "Application of ADDA Verter System in Combined Analog-Digital Computer Op2ration," Pacific General Meeting, AlEE (June 1956). 20. HALBERT, P. W., "Hybrid Simulation of an Aircraft Adaptive Control System," Proc. FJCC, Vol. 24 (1963). 21. HARTSFIELD, E., "Timing Considerations in a Combined Simulation System Employing a Serial Digital Computer," Proceedings of the Combined Analog Digital Computer Systems Symposium, Philadelphia (December 16-17,1960). 22. KORN, G. A., "The Impact of the Hybrid Analog-Digital Techniques on the Analog Computer Art," Proc. IRE, Vol. 50, No. 5 (May 1962), pp. 1077-1086. 23. LANDAUER, J. P., "Simulation of Space Vehicle with Reaction Jet Control System" (1962), EAI Bulletin No. ALHC 62515. 24. , "The Simulation of Transport Relay with the Hydac Computing System," EAI Bulletin No. ALHC 63011. 25. McLoED, J. H., and LEGER, R. M., "Combined Analog and Digital Systems-Why, When, and How," Instrument and Automation, Vol. 30 (June 1957), pp. 1126-1130. HYBRID COMPUTATION ... WHAT IS IT? ... WHO NEEDS IT? . . . 26. MITCHELL, B. A., "A Hybrid Analog-Digital Parameter Optimizer for ASTRAC-II," Proc. SJCC, Vol. 25 (April 1964). 27. MITCHELL, J. M., and R UHMAN, S., "The Trice-A High Speed Incremented Computer," IRE Nat. Conv. Record (1958), Pt. 4, pp. 206-216. 28. MIURA, T., IWATA, J., "Effects of Digital Execution Time in a Hybrid Computer," Proc. FJCC, Vol. 24, (November 1963). 29. NORONHA, L., "An Integrated General Purpose Hybrid Computing System," International Symposium on Analogue and Digital Techniques Applied to Aeronautics, Liege, Belgium (September 1963). 30. PALEVSKY, M., "Hybrid Analog-Digital Computing Systems," Instruments and Automation, Vol. 30 (October 1957), pp 18771880. 31. , "The Digital Differential Analyzer," Computer Handbook, Edited by G. A. Korn and H. O. Huskey, New York: McGraw-Hill (1961), Chapt. 19. 32. PASKMAN, M., and HElD, J., "Combined Analog-Digital Computer System," Proceedings of the Cmnbi'ii£d Analog D-ig-ital Computer Systems Symposium, Philadelphia (December 16-17, 1960). 33. SHAPmo, S., and LAPIDUS, L., "A Combined Analog-Digital Computer for Simulation of Chemical Processes," Proceedings of the Combined Analog Digital Computer Systems Symposium, Philadelphia (December 16-17,1960). 34. SHILEIKO, A. V., "A Method for Selecting the Optimum Structure of a Digital Analog Computer," Automation and Remote Crmtrol (Avtomatika i Telemekhanika) , Vol. 22, No.1 (August 1961), (originally published January 1961), pp. 76-81. 35. 269 SKRAMSTAD~ H. K., ERNST, A. A., and NIGRO, J. P., "An Analog-Digital Simulator for Design and Improvement of ManMachine Systems," Proc. EJCC (December 1957), p. 90. 36. SUSSKIND, A. K., "Notes on Analog-Digital Conversion Techniques," M.LT., Technology Press (1957). 37. VOLDER, J. E., "The Cordie Trigonometric Computing Technique," IRETEC (September 1959), pp. 330-334. 38. WEST, G. P., "Computer Control Experience Gained from Operation of a Large Combined Analog-Digital Computation System," Proc. of Computers in Control Systems Conference, Atlantic City (October 1957), p. 95. 39. WILSON, A., "Use of Combined AnalogDigital System for Re-entry Vehicle Flight Simulation," Proc. EJCC, Vol. 20 (Decembe-r 1961), pp. 105-113. 40. WITSENHAUSEN, H., "Hybrid Simulation of a Tubular Reactor" (1962), EAI Bulletin, No ALHC 6252-25. o 41. , "Hybrid Techniques Applied to Optimization Problems," Proc. SJCC, Vol. 21 (May 1962). 42. WORTZMAN, D., "Use of a Digital! Analog Arithmetic Unit within a Digital Computer," Proc. EJCC (December 1960), p.269. 43. ZETKOW, G., and FLEISIG, R. (Grummen Aircraft Corp.), "Dynamic Analysis of OAO Spacecraft Motion by Analog-Digital Simulation," IRE Convention, Space Electronic Session (March 1962). A HYBRID ANALOG-DIGITAL PARAMETER OPTIMIZER FOR ASTRAC II Baker A. Mitchell, Jr. Deparbnent of Electrical Engineering UniveTsity of Arizona Tucson, Arizona INTRODUCTION This paper describes an optimizer designed to find system parameter combinations which optimize a functional, F, such as '1' F (a" ... ,an) = f [y2 (t) + u2(t)] dt o where y(t) = y(t, at, ••• , an) u(t) = u(t, at, ••• , Simple all-digital logic permits implementation of different sequential optimization strategies, including correlation between randomperturbation vectors and step-size changes depending upon past successes and failures. The analog integrator/multipliers commonly used to set system parameters have bEfen replaced by simple, reversible binary counters driving D / A converters 3 for simplified design and improved reliability.4 The principle' of the optimizer is shown in the block diagram of Fig. 1. an) are state and control variables depending on the unknown parameters at, ••. , all in accordance with the system equations ~Q, ._- y, '.., ~an ·· · ~ System Equations --.: rF F(t,uj,Yj} ~ , .... I Success Detector ~ I The new optimizer is designed to work with a fast all-solid-state iterative differential 'analyzer (ASTRAC II) which is capable of producing complete solutions Yi (t) and the corresponding values of the performance measure F (aI, ••• , all) for up to 1000 new parameter combinations per second.! To simplify optimizer logic and memory requirements in problems involving many parameters, we simultaneously implement random perturbations 2 on all parameters ak and step to the perturbed point whenever the perturbation yields an improvement in the performance measure F (at, ... ,all)' OpfimiHr iLoliJ1c --- S Figure 1. Optimizer Block Diagram. 271 ~ I 272 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 The most frequently used method employs n trial steps to compute approximate gradient components LF / La in each parameter direction; these gradient components are then stored and used to compute the optimal correction Lai for a working step, or for a series of working steps in the same direction. 8 Figure 2a. Optimum Gradient Method. Figure 2b. Pure Random. Perturbations. Figure 2c. Correlated Random Perturbations. Figure 2. Typical Optimization Paths. Figure 2a shows the parameter-space path over which a conventional deterministic system would optimize a simple two parameter system. Starting with a trial set of parameters (lai the conventional optimization logic employs the results of successive differential analyzer runs to obtain succeeding parameter values IOal = 1'-1 + I'LaI \vhich successively improve rF= F (raj, ... , ran). Such deterministic methods require complex logic and storage. Although they may converge well for favorable performance functions F (ab ... , an), they may "hang up" on ridges or in canyons of the multidimensional landscape of the performance measure domain. 5 Furthermore, if the performance measure contains discontinuities, nonlinearities, or large higherorder derivatives with respect to the parameters, our information of past performances will be of little value in determining succeeding -steps; thus the step-size may have to be reduced to such a degree that convergence to the optimum is extremely time-consuming. Figure 2b shows how a pure randomperturbation scheme might optimize the same function. Here, Lai may be positive, zero, or negative with equal probability; and the nominal parameter point is moved as soon as the first improvement in the performance function occurs. No attempt is made to affect perturbations by past results or gradient methods. On the other hand, if perturbations are to be correlated with past successes or failures, then the optimization path might appear as shown in Fig. 2c. Such a scheme causes future increments Lai to favor the direction in which past improvements in the performance function were made. Notice, however, that we still do not require computation of individual gradient components, as in deterministic gradient optimization schemes. Hence, logic and memory requirements are reduced. Motivation for Random Search The basis for all direct computer methods of parameter optimization is the same: using a mathematical model or simulated system, we set the parameters to some trial values and compute the performance criterion. Then according to some rule, we reset the parameters to new values and again compute the performance criterion. This procedure is repeated until some desired degree of improvement is obtained. A HYBRID ANALOG-DIGITAL PARAMETER OPTIMIZER FOR ASTRAC II Naturally it is hoped that the rule for adjusting the parameters will take maximum advantage of the knowledge gained from observing previous trials, and by so doing achieve the optimum set of values for the parameters in the shortest possible time. Usually, however, this rule depends solely upon the knowledge gained from recent past trials and this is thought to be equivalent to using this knowledge to maximum advantage. If, however, the performance criterion contains discontinuities, nonlinearities, or large higher-order partial derivatives with respect to the parameters, our information of recent past behavior (actually a total or partial first derivative) may be of little value for the determination of successive steps; and if the step size is too large, this information from the preceding step (or from a short forward trial step) will be totally misleading. Thus, with conventional, deterministic perturbation such as the gradient method, one may be .(orced to reduce the step size to such a degree that convergence to the absolute optimum is excessively time-consuming. For this reason it has been suggested that randomness be introduced into the search rule-perhaps in proportion to the expected severity of the discontinuities, nonlinec:rities, etc., present in the cost function domain. In reality, it may be difficult to make any reliable prediction concerning the behavior of the performance function. Even with reasonably w~ll~behaved performance functions, it can be quite c;lifficult to foresee "ridges," "temporary plateaus," "saddle-points," and other features which render deterministic rules far from foolproof. 273 will be used to indicate that the incremented set, 6a, has yielded a more favorable value for the performance measure than was obtained with the unincremented set, ai' A failure will mean that the incremented set yielded a less favorable value for the performance measure, in which case the failing increment is subtracted from the parameter before a new increment is added. Successive fail"ures and successes can be counted and used to decide when an increase or decrease in the step size might be ai + Fi~ure 3. The function defined represents a system compo;ed by particular percentage~ of each of the four compounds shown at the corners. Contour lines are drawn in order to indicate values of a property on the system. The heavy lines are lines of discontinuity in slope. S Reference 5 goes further into such motivation for random-search methods (Figs. 3 and 4). PRINCIPLES OF OPERATION Most of the optimization strategies proposed here can be based on the flow chart of Fig. 5. The operation common to all the various strategies consists of incrementing all parameters simultaneously by individual random increments +6a, -6a, or zero; the common magnitude 6a (step size) of these increments is subject to. a separate decision. The term success Figure 4. This sketch of a dynamic vibration absorber shows the amplitude of vibration F plotted over the frequency range w for values of the parameter al. The effect of only one of the three parameters, aI, a2, a3, of the actual system could be drawn. A possible criterion for an optimum absorber is to require that the maximum amplitude of vibration yielded by a particular set of parameter values, aI, a2, a3, be minimum over the frequency range of interest. s 274 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 integrator RESET pulses, and sampling pulses. The digital section has its own patchbay with removable patchboards for implementing various logic functions. Patchable gates and flipflops are used in conjunction with the prewired timing and RESET circuits. In view of the amount of logic involved in the optimizer, however, it was thought best to build it as a separate digital section with its own removable patchboards, devoted to this purpose. The complete ASTRAC II optimizer will not only implement the sequential random search optimization described here, but will permit comparison with deterministic optimization schemes. Figure 5. Flow Diagram for a Typical Optimization Routine. advantageous. A binary noise generator 7 together with digital correlation logic decides what th~ sign of each new increment will be. Thus, the overall effect of the perturbation scheme is an n-dimensional random walk. THE ASTRAC II SYSTEM Optimizer Logic The digital logic of the optimizer is subdivided into basic functional units whose inputs, outputs, and control points are wired to its patchbay (Fig. 6). With a different prepatch panel, these components are also available for other uses besides optimization. In particular, the parameter-setting circuits will also serve for experiments with deterministic optimization schemes. • The dynamic system and the performance criterion are to be simulated on the Arizona Statistical Repetitive Computer, ASTRAC II, although ASTRAC I served for preliminary studies. ASTRAC II is a ± 10 vol,t, all-solidstate iterative differential analyzer capable of iteration rates of 1 Kc. as well as real time computation. The first 20-amplifier section of ASTRAC II is to be completed in the fall of '. ,:, !". - !"!,.- ~; • .!,-~ 1964. The analog section has a large conventionally appearing patchbay. 20 Mc. transistorized amplifiers mounted in shielded cans plug directly into the rear of the patchbay without any intervening wiring. The analog section will comprise sample-hold memory pairs, comparators, analog switches, swi~ched integrators, diode quarter-square multiplifiers, and diode function generators. Timing and logical control is furnished by the digital section, which provides timing pulses, Figure 6. Photograph of the Optimizer. A D I A multiplier card is shown at bottom left. A HYBRID ANALOG-DIGITAL PARAMETER OPTIMIZER FOR ASTRAC II The functional units are built of commercial plug-in logic cards interconnected on racks with wire-wrap terminations for ease of modification and expansion. The resistor networks and switches comprising the D / A multipliers are mounted in shielded plug-in cans adjacent to the operational amplifiers behind the analog patchbay. Shielded digital control lines connect each D/ A multiplier to the optimizer patchbay. Hybrid Analog-Digital Noise Generator ASTRAC II will employ a new noise generator10 producing pseudo-random maximumlength shift-register sequences at any desired clock rate up to 4 Mc. We may obtain either a single pseudo-random sequence repeating after 33 million bits, or four uncorrelated sequences one-fourth as long. Success-Failure I ndica.tor Essentially, the function of this circuit (Fig. 7) is to compare the value of the best performance measure, LF, obtained to date, with the performance measure just yielded by the last com- 275 puter run, rF. If the last run was a fail'/!-re, (e.g., rF < LF for maximization), then U a and ~ S remain zero; and LF is still held as being the best value. If, however,-· the last computer run was a success (rF > LF), then U a becomes "I" which causes the second sample-hold to take on the value just obtained, rF, as now being the new optimum. The pulse U a also causes flip-flop 7 to assume the "I" state (s-o) which indicates to the digital optimization logic that a success was obtained with the last set of incremented parameters. If it is known that F will always be monotonically increasing during the latter part of the COMPUTE period, Switch 3 and U 2 need not be used. Master Clock The Master Clock provides all timing pulses throughout the digital optimization routine. It consists of a four bit Gray-code counter driven by a 1 MC. pulse, Ch from the differentialanalyzer digital control unit. C1 is gated to the counter during the differential-analyzer RESET period. With the exception of the SuccessFailure Indicator circuit, \vhere timing is under a., ___ ~ c, _____---' ~--------' ~ ~ ~~ ~ rlL..~------------ rlL.._____ _____________ rlL..________________ -=~ NN ____________~ R U ______________________~n~ I ~ U3 S PI L-...J M. _ _ _ _ _ _ _ _ _ ~rI~ Pz ________---- L-.J Mz ____________________ ____________________----JnL.._________ n] ____________ If Success occur. r---L- Figure 7. Success-Failure Indicator: P3 M3 c ~rlL.. ________ L-J n~ ____ ~ Figure 8. Pulse Sequence from Master Clock. 276 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 control of the differential-analyzer, no optimization logic is performed during the COMPUTE period of the differential analyzer. Parameter 5 ettin9 ~~~,..--- From~ -x CIICIIyz.r ..... The sequence of the tjming pulses from the Master Clock is shown in Fig. 8. S', as shown, occurs only after failures, i.e., S == 1; if S == 0, S' == 1 throughout the RESET period. A success or failure also causes nH or nl<' to occur (Fig. 15). +x PARAMETER SETTING O\A convert ... I muIIpIIer The flexibility needed to implement a variety of different optimization-logic schemes while maintaining simplicity, reliability, and low cost is achieved by using a unique method of parameter setting. Binary-Counter Operation Referring to Fig. 9, the binary up-down counter increments whenever a pulse appears on the "I" line. The right-left shift register contains zeros in all except one of its stages, and the position of this "I" selects the stage of the binary counter which is to receive the "I" pulse. By controlling the D / A multipliers, the counter has then increased or decreased Ui by an Figure 9. Parameter Setting. S'_-__--.· USi uC', uo Mj uti US;, UP-DOWN LOCK LC LS; LC i Lc Lei LSi 1 S BC C Figure lOa. U -L-D Selector Circuit. Figure lOb. U-L-D Memory. A HYBRID ANALOG-DIGITAL PARAMETER OPTIMIZER FOR ASTRAC II ory associated with the binary counter for each parameter (Fig. lOb). increment 6ai; the magnitude 6 is determined by the position of the "I" in the shift register, and the sign (+ or -) is determined by the logic level on the UD line (1 == count up, 0 == count down). The selector circuit accepts two uncorrelated random bits IN}, IN:! obtained from the ASTRAC II noise generator. Depending on the interconnections of the selector-circuit gates G}, G2 , G:{, G4 to gates U, L, D, the gate outputs Un' Lo, Do will have different joint probability distributions as shown in Table 1. U-L-D Digital Logic The U-L-D (UP-LOCK-DOWN) Logic is composed of two sections: a central U-L-D Selector Circuit (Fig. lOa), and a U-L-D Mem- TABLE I P(U == 0) P(L == 0) P(D == 0) Connect 1 0 0 Gh G2 , G3 , G4 U % ~ 0 G}, G2 , G3 G4 U L % 0 1,4 G h G2 , G3 G4 U D 112 112 0 G b G2 G3 , G4 U L o G· U L ~ . <" • 277 G G G:' 2 to Gates U L " I ~_____________________G_4__________________ .~~ G1 U ~'~ ~ 1,4 1;2 1,4 1;2 0 112 U D 0 1 0 L ~ 1,4 1;2 0 3,4 1,4 0 112 112 1,4 0 3,4 0 1,4 3,4 0 0 1 Effectively, these distributions can be obtained by placing a logical "I" on the RC line. I I 278 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 The gate outputs, Uo, Ln, Do, determine the states of the dc set and reset level controls on the UP-DOWN flip-flops and the LOCK flipflops of all U-L-D Memories (one for each parameter) simultaneously. The pulse Ml from the Master Clock now first sets the U-L-D flipflops of the first parameter to their proper states as determined by the first set of random bits IN h IN 2 • Next, the noise generators are pulsed again by the Master Clock (pulses NN) producing two new random bits, 2Nh 2N 2, which determine a new set of states for the dc set and reset level controls of the U-L-D Memory flip-flops. Now, the pulse M2 to the U-L-D Memory of the second parameter sets its UP-DOWN and LOCK flipflops in accordance with 2N h 2N 2. The process repeats for the remaining parameters. U-L-D Memor'lj Note that we shall require two decisions for each parameter. The LOCK circuitry decides whether ak is to be incremented or not incremented ("locked"). The UP-DOWN circuits decide the direction (up or down) of the increments Dak, if any. We shall consider the UPDOWN circuits first. failure or a success, if a particular parameter had been locked (Le., its last increment was zero) then a probability function giving equal weight to all three states might be desirable for the next trial. Referring to Fig. 11 the correlation circuit is patched as desired and senses the sign of the last increment in each U-L-D Memory, starting with the first parameter. If Dak is positive, the RC line changes the selector gating so as to- increase the chance of a positive Dak for the next run if the last run was successful. The reverse can take place if the last run was a failure, depending upon the correlation control "CC". If, however, Dak was zero, as indicated by the state of the LOCK flip-flop, then the correlation line RC is turned on or off with equal probability by a random-noise input. This entire process is repeated for each parameter in turn, as they are sequenced by the pulses Pi from the Master Clock. S5 CC If an UP-DOWN flip-flop is set (reset), a logical 1 (0) will appear on the "UD" line to the binary counter, if S' == 1. We now come to the LOCK decision. If the LOCK flip-flop is set or reset the incrementing commands "C" and "BC" from the l\1:aster Clock will or will not carry through the gates on "I" to increment the counters in the direction dictated by "UD" RC Correlation Circuit This circuit can be patched so as to introduce correlation between successive random perturbations according to some strategy selected to speed optimization. Suppose that the last set of increments succeeded in improving the performance function. Assuming that the performance function is fairly well-behaved, the greatest chance for another success lies in weighting each parameter so that it, will probably increment in the same direction as in the previous trial (strong positive correlation). By the same reasoning, after a failure a strong negative correlation might be introduced. After either a cc- I I I I I I I I t nevCltive correlation after toilure pOlitive correlation after nevotlve nO and pOliti". lucce .. canelatlon correlation Figure 11. Correlation Circuit. A HYBRID ANALOG-DIGITAL PARAMETER OPTIMIZER FOR ASTRAC II OPTIMIZATION STRATEGIES 1. Pure Random Perturbations Pure random perturbations are achieved if we preset the "1" in the shift register to gate· the count pulse into the binary counter stage yielding the desired step distance, e.g., V2, 14, ... , 1/128. The noise generator is connected directly to the SET and RESET level controls of the Up:'Down flip-flop of each parameter. During the analog RESET period, the noise generator is pulsed once for each parameter shortly before the sequenced pulse to the proper Up-Down flip-flop arrives. Thus, the Up-Down flip-flops sequentially assume the successive states of the noise source. The count pulse, C, is then fed to all parameters simultaneously. Hence, all parameters increment by the same magnitude but with random signs during each analog RESET period, executing a random walk in the perturbation scheme. With pulses S, S' and BC added to the U-L-D Memory, the set of increments used in the preceding run can be subtracted from the counters prior to the addition of increments for the next run. Thus, after a failure in an optimization run, the counters can be returned to the state which yielded the last success, before making another search. 2. Random Walk with Reflecting Barriers This scheme is exactly the same as the pure random walk with one additional operation. Prior to assigning a new set of signs to the Up-Down flip-flops, a pulse to signify that a parameter has reached a barrier-possibly from a comparator in the analog system-can be gated to the U-L-D logic of the parameter to be reflected, causing its Up-Down flip-flop ~o complement and, later, to ignore the sign that is assigned to it by the noise source. In this manner, the parameter will have been reflected to its old position held two analog COMPUTE periods previously. 3. Random Walk with Varied Step Size This scheme also contains only one addition to the pure random walk. When it is desired to increase or decrease the step size-possibly after a certain number of successive failures 279 have been counted-one has only to insert the increase or decrease command, e.g., the counter output, into the shift-right or shift-left input of the shift register. This gates the count pulse either to the next higher or next lower parameter counter stage. The noise generator then assigns polarities to the Up-Down flip-flops, and the parameters are incremented by the new step size. For this purpose, the optimizer contains two success-failure counters. 4. Correlated or Biased Random Walk Since two independent noise sources are available, one can arrange P(N 1 N 2) == 14, P(N 1N2) == 14, pd~lN2) == 14, P(N 1N 2) == 14. These can combine to give P (X) == lh, or ~ P (Y) == 34 , where X == N IN2 + N IN2, Y == NIN2+NIN2+NIN2. There are three possible states for the U~L-D Memory: 1. Up; 2. Down; 3. Lock. If a failure occurred in the Up state, after subtraction of the failing set of increments, it would be desirable to assign weighted probabilities which would be more likely to result in the next state being Down. The probability distributions which can be' prepatched are listed in Table I. Likewise, if a success occurs in the Down state, the next assignment of states could be weighted on the same basis. ~ ~ This strategy can be combined with step size variations implemented with the aid of the success/failure counters. TESTS The following tests were carried out using the optimizer in conjunction with ASTRAC I, ,a ±100 volt, 100 run/sec. iterative differential analyzer. In order to generate performance measures with the precise characteristics desired, only algebraic functions F (aI, a2) were used for quantitative evaluation of the various optimization strategies. For practical use in optimizing dynamic systems, the optimizer setup would be entirely unchanged, except that the function F (ah a2) would be generated as samples at the end of a differential-analyzer run. 280 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 Also, the relatively slow repetition rate of 10 runs/ sec. was employed only for recording purposes. were allowed to vary over ±100 volts. Convergence was considered to be satisfactory when F was within 0.5 volt of the maximum. Functions Optimized Initial tests were made with two different types of performance functions. Strategies Employed Parameters were allowed to step only after successful runs, i.e., unsuccessful parameter changes were subtracted out. Minimization of functions of the general type (6) Various types and degrees of correlation between successive parameter runs were tried. (See Correlated and Biased Random Walk.) was carrIed out. The parameters al and a:.! were allowed to vary over ± 100 volts, and convergence of al, a:.! was considered to be satisfactory when they were within 0.78 volts of their values which optimized F. The step size, 6, was increased by a factor of 2 after N R consecutive successes and decreased after Nl<' consecutive failures; Ns and Nl<' were varied. (al-kd 2 + (a!!-k:J2 a b The next experiment involved maximization of a function F (al, a:.!) exhibiting sharp ridges formed by the intersection of three planes as shown in Fig. 12a. The equation for this function is . Max a:!-al -a:,! +2al -a:,! 1.5al = SOK ~501( 1M 100 + -3- (7) cfJ c = (optimum) 66.6; al (optimum) 44.4 (8) Extremely sharp ridges or intersections were simulated by using accurate high-speed selector circuits (Fig. 12b). The parameters al and a:! a:! ISOK +300 - oi, /501( SOl< -dO 0 - aLl. + F c.. ." 1:[': I ..,.., I: " ,,:;, ... .:.,,: Ii',:. I , ..'J ,., ~ I: 1--' , I' I .. I:il,' ;,11 "IT lh :f :1 :;, ""'"! " !J:I !!I! III 1'1 : I' :i j,L,' ":' 1:; .,,1',·' c· .!,,"" "., j"L",i .. :- Figure l3b. Optimization of Ridge. "! '1 282 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 ginning of both trials No. 1 and No.2. Thus, it was not necessary to climb the longest ridge. The paths converged more quickly up the shorter ridge (path B in Fig. 12c). This favorable possibility is not present in ordinary gradient techniques. Path A in Fig. 12c is most nearly like a path resulting from conventional gradient techniques. Fig. 14a shows a correlated random search with step-size variations employed in the strategies. The optimizer is not confined to merelyzigzagging slowly up the ridge but can traverse great distances while searching for improvements. Correlation im-proved convergence time somewhat, but only when weak positive correlation after successes was used. For 45 trials using this correlation, the average time to converge was 73 runs if the step-size was decreased after 2 failures. Other types of correlation slowed convergence by 10--.:20 per cent. For comparison note that an optimizer going directly in a straight line to the optimum point would require 106 steps if a fixed step size of 1.56 volts were used. Stopping Conditions When the optimum value of F is unknown, defining a stopping condition is subject to several factors. One such factor arises when we are not certain that only one peak exists in the domain of F. In this case, we would want to cycle the step size through its decrease-increase scheme several times before stopping. Then a rescaling of the simulation might be desirable in case the initial ranges of the parameters was chosen too large. Conclusions While experience with this optimizer is still quite limited, it appears that its performance can compare quite favorably with conventional techniques. Better conclusions can be made when this system is expanded to accommodate four parameters and the logic is enlarged to permit implementation of the conventional deterministic schemes-permitting a direct comparison between random and deterministic methods optimizing the same function. Presently, however, the random techniques seem well able to handle cases in which the performance measure is not well-behaved (Fig. 3 and 4). Figure 14a. Optimization of Ridge. Figure 14b. Employing Step Size Variations. ACKNOWLEDGEMENT The project described in this report is part of a hybrid analog-digital computer study directed by Professor G. A. Korn. The writer is grateful to the Office of Aerospace Research, Information Research Division, Air Force Office of A HYBRID ANALOG-DIGITAL PARAMETER OPTIMIZER FOR ASTRAC Scientific Research and to the Office of Space Sciences, National Aeronautics and Space Administration for their continuing support of this study under joint grant AF -AFOSR-89-63; and to Professors L. W. Matsch, Dean of Engineering, and H. E. Stewart, Head, Department of Electrical Engineering, for their encouragement and contribution of University facilities. REFERENCES 1. KORN, G. A., and T. M. KORN, Electronic Analog and Hybrid Computers, McGraw- Hill, N. Y., 1964 (in print) . 2. MUNSON, J. K., and A. I. RUBIN, "Optimization by Random Search on the Analog Computer," IRE Trans. PGEC, June, 1959. 3. WAIT, J. V., and B. A. MITCHEL~, "A Simple Solid-State Digital-to-Analog Converter for Hybrid Systems," ACL Memorandum No. 61, University of Arizona, 1963. 4. MITCHELL, B. A., "A Hybrid Analog-Digital One Parameter Optimizer," Ann. AlGA, January, 1964. 5. KARNOPP, R., Ph.D. Thesis, Massachusetts Inst. of Technology, 1963. 6. BROOKS, S. H., "A Comparison of Maximum-seeking Methods," Operations Research, JulY-August, 1959. 1 II 283 7. HAMPTON, R., G. A. KORN, and B. A. MITCHELL, "Hybrid Analog-Digital Random-Noise Generation," IEEE Trans. PGEC, August, 1963. 8. WITSENHAUSEN, H. S., "Hybrid Techniques Applied to Optimization Problems," Proc. SJCG, 1962. 9. HOWELL, M., "Automatic Parameter Optimization as Applied to Transducer Design," Proc. SJCG, 1963. 10. HAMPTON, R., "Hybrid Analog-digital Pseudo-random Noise Generator," Proc. SJCC, 1964. APPENDIX I The following units are contained in the optimizer digital and/or are wired to the optimizer patchbay. On the drawings, a small circle on the end of a wire indicates a patchbay termination. 1. 3 4-bit Gray code counters. One of these counters has a free-running multi vibrator for the input. This counter is used exclusively for sequencing operations throughout the logic scheme subroutine, e.g., the analog RESET period. The remaining two Gray code counters have their flip-flop outputs adjacent to two gates on the 1 n Figure 15. Gray Code Counter Circuit. 284 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 patchboard. These may be patched to yield outputs after any preset number of input pulses. These counters may reset themselves or may be reset externally (Fig. 15.) 2. 1 8-bit right-left shift register. The DC set and reset lines, along with the set and reset outputs, appear on the' patchboard for parallel drop-in on command. Also the set and reset level controls for the first and last flip-flops are on the patchboard thus permitting operation as a ring counter. Four inputs are provided for shifting in either direction. (Fig. 17b.) 3. 4 8-bit up-down binary counters. The DC set and reset lines, along with the set and reset outputs, appear on the patchboard for parallel loading. A gated complement input for each flip-flop is brought out, allowing the counter to be stepped at any stage. A flip-flop with associated gates permits both pulse and level control of the up-down lines. (Fig. 17a.) w RIGHT-LEFT SHIFT REGISTER x ____ w' ---- x' y - - - - y' Shift "'vhf Shift Lei'. Figure 17a. UP-DOWN Binary Counter. •• -x z. PsludoRandOll! Nai,. G.n.r-'or ~. Ma ...r Clock ~ Gro, Cod. lola Count.,. NI ...-~SlIift t.' R.... '!. " 51 .5% ..L Tolerance I ~o Re.lator •• It . .. . ... 'K "I "2 G· , 10 • ProbOblllty Oiatributlan aX Selector Count.r 1K ,. ,. 4K RC 10. ZO· I. 10. GI Noi •• Corr.lotlon Circuit HI Count.r PI I. Gj Figure 16. D I A Multiplier and Switch. Figure 17b. Right-Left Shift Register. OIA A HYBRID ANALOG-DIGITAL PARAMETER OPTIMIZER FOR ASTRAC II 4. 4 8-bit D / A multipliers. The digital control lines for the D/A multipliers (mounted in shielded cans behind the analog patchbay) are wired to the digital patchbay. Each set of lines is associated with one of the up-down binary counters (Fig 16.) 5. 2 pseudo-random discrete-interval, binary noise generators. The noise generator for ASTRAC II is a 25-stage shift register with modulo 2 adders in feedback, generating a maximum length of 3XI0 7 random bits. This can be divided into two noise generators, each having a 1.5XI07 random bit sequence. The noise generator shifts out a random bit when a pulse is applied to the shift "input. These inputs, outputs, and complement outputs appear on the optimizer patch bay as' well as on the noise generator patchbay. Figure 18. Digital Logic Block Diagram. 285 A HYBRID ANALOG-DIGITAL PSEUDO-RANDOM NOISE GENERATOR R. L. T. Hampton College of Engineering Department of Electrical Engineering Analog Hybrid Computer Laboratory The University of Arizona Tucson, Arizona from stationary mechanisms such as a radioactive source, still create problems and expense.! For example, the 80 Kc random-telegraph wave generator developed at The University of Arizona's Hybrid Computer Laboratory and described in Ref. 2 required a iairly sophisticated and not completely satisfactory countrate control loop. I. INTRODUCTION Analog and hybrid analog-digital computers used for random-process and statistical studies require noise sources capable of generating random signals whose amplitude distribution, d-c unbalance, spectrum, and RMS level are specified within the computer accuracy limits. Noise samples must not be correlated for time delays exceeding one-ten-thousandth to onethousandth of a computer run. In the design of the University of Arizona's new ASTRAC II iterative differential analyzer, which is to be capable of taking statistics over 1,000 random-input computer runs per second . ' It was decided to abandon analog noise generation completely. Instead, the machine win em.. ploy a digital shift-register sequence generator that can produce binary pseudo-random noise sequences at any clock rate between zero and 4 Mc. This permits exact time scale changes or intermittent operation. The noise generator produces digital computer random numbers as well as analog noise. The digital numbers are easily stored or transmitted and may be used to produce binomially or normally distributed random analog coefficients. Digital multiplexing yields multiple uncorrelated noise signals from a single shift-register. These noise signals are independent of any physical quantity except for the output clamping levels. Also the flat spectrum binary output permits direct logicalor analog multiplication. The length of the Noise derived from thyratrons in magnetic fields, noisy diodes and photomultiplier tubes coated with radioactive paint changes with various environmental conditions. Thus, elaborate gain-control, sampling and/or filter circuitry is required in order to meet computer specifications. By using the random signal from such sources to trigger a flip-flop or thresholdsensing comparator, flat-spectrum binary noise with ±A volt output levels is obtained. Such binary noise can easily be filtered to produce Gaussian signals and is very useful in its own right: it can be used to drive analog or digital switching systems used to simulate random events, machine failures, etc., and lends itself to direct correlation with other signals without the use of analog multipliers. By precision clamping, the RMS level of binary noise can be closely controlled, but the non-stationarity of the circuits used to obtain electrical noise, even 287 288 :PROCEEDINGS---SPRING JOINT COMPUTER CONFERENCE, 1964 pseudo-random output sequence is 33, 554, 431 bits which is equivalent to several thousand computer runs. generates the sum (A + B)Mod: 2 of any two binary inputs A and B according to the following table: Shift Pulses _ _ _ _-. II. BINARY PSEUDO-RANDOM NOISE GENERATION WITH SHIFT-REGISTERS 2.1 Pseudo-Random Binary Sequences Binary pseudo-random noise, as the term is used in this paper, differs in two important respects from purely random binary signals: 1. A truly random binary signal is nonperiodic, while a pseudo-random sequence repeats itself after some suitably long sequence. 2. In many random binary processes (e.g., a random telegraph wave) the transition from the "I" state to the "0" state (or conversely) can occur at any. time, and the state at any instant of time is independent of the state at any other instant of time. In the pseudo-random binary process the binary level transitions can occur only at specific clock pulse times, separated by intervals during which the binary state is fixed. In this case the state during the fixed time interval is independent of the state in neighboring time intervals. A periodic binary sequence will be classified as a pseudo-random sequence if it satisfies the following conditions: 1. In each period the number of "l's" must not exceed the number of "O's" by more than one (or conversely). 2. In each period there must be twice as many sequences of "1's" or "O's" of length n as those of length n + 1. 3. The autocorrelation function must have the form shown in Fig. 3b, Le., peaked in the middle (T == 0) and tapering off rapidly at both ends. s Such a binary sequence with a sufficiently long period-longer than a desired series of computer runs-can be used essentially like true random noise for computing purposes. Periodic binary sequences may be obtained from a digital shift-register with modulo-2 adder feedback (Fig. 1). Module-2 addition x (t) Output + Modulo - 2 adder Figure 1. + Bhlod: 2 A B 1 0 1 0 1 1 1 1 0 0 0 0 (A As can be seen from the above table, mcdulc-2addition can be implemented logically witp. an EXCLUSIVE-OR circuit. The shift-register consists of cascaded flip-flops driven at the desired rate by external clock pulses (shift pulses). The outputs of certain flip-flops are added modulo-2 and their sum is then fed back to the first stage of the shift-register. Figure 2 illustrates three shift-register periodic sequence generators and their corresponding sequences. Each column of "1's" and "O's" corresponds to the successive states of each stage of the register. It should be noted that No. 1 and No. 2 outputs are periodic every 23 - 1 == 7 bits, while No. 3 is periodic every A HYBRID ANALOG-DIGITAL PSEUDO-RANDOM NOISE GENERATOR 289 and the integers s are 1, 2, 3, 4, 5, 6. Therefore, fJ(2 3 Inltlol Condition I I I 0 I 0 I I o I I o 0 0 I 0 I 0 Initial Condition o I 0 I 0 I I I I o I I 0 I 0 0 I I o I I 0 I I I 0 o o I I 000 000 000 : : : 000 ; : : 000 000 : 1st o ~ ~} I I I 0 I o o 0 0 0 0 lat PeriOd Period o 0 0 Figure 2. 3-Stage Periodic Binary Sequence Generators. 3 bits. In each case the periodic series is completely determined by the initial state of the flip-flops and by the feedback connect~ons. The resulting sequences for an all-zero initial condition are also shown. 2.2 llfax'i'inw;n Length Seque'nces It is easy to show that the maximum length of any sequence produced by a shift-register is 2n-1, where n is the number of flip-flop stages. For an n-stage generator, there are 2n possible states. The all-zero state can be ruled out as an admissible condition, since with modulo-2 addition, each succeeding state wQuld also be all zero as illustrated in Fig. 2. Therefore, the sequence is periodic with a maximum of 2n - 1 bits. Golomb has proven that every maximum length shift-register sequence satisfies the three conditions required for a pseudo-random sequence. 3 The number of different maximum length series obtainable from an n-state shift-register n is given by 0(2 - 1) , where 0 (m) is Euler's n Phi Function, defined as the number of integers s such that 0 < s < m and s is prime to m. For a three-stage generator n == 3, m == 2n - 1 == 7, - 3 1) == 2, so a three stage shift-register can produce two different maximum length sequences, each corresponding to a unique feedback arrangement. Generators No.1 and No.2 in Fig. 2 show these two feedback arrangements. Generator No. 3 in the same figure is an example of a feedback arrangement that produces a non-maximum length sequence. N onmaximum length sequences do not in general satisfy the three conditions required for pseudorandom sequences, and thus they are not useful for statistical studies. Consequently, to design a practical pseudo-random noise generato'r of n-stages, it is necessary to determine the feedback connections which produce a sequence of 2n - 1 bits in length. Another important characteristic of maximum length sequences is the so-called "shift and add" property. That is, when any maximum length sequence is delayed by an integral number of clock periods and then added mod·, ulo-2 with the original sequence, a third identical sequence delayed with respect to the first two is formed. 6 This property has a useful application, as will be pointed out in Section HI where the actual hardware design of a binar.{ pseudo-random noise generator is considered. The "shift and add" property is also used to derive the autocorrelation function for maximum length sequences (see Appendix). 2.3 Obtaining the Maximal Period A mathematical technique for obtaining maximum length sequences is rigorously presented in Refs. 3 and 5. The method consists of viewing each state of the n-stage shift-register as an n-dimensional vector and the shiftregister /modulo-2 adder system as a linear operator, producing the successive states of the n-dimensional vector. Such an operation may be represented by an n x n matrix X. The first row of this matrix corresponds to the first stage of the register, the second row to the second stage, etc. The same is true for the n columns, 290 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 i.e., the first column represents the first stage, etc. Each element of the matrix is either a "1" or "0". A "1" in any position indicates that the flip-flop stage denoted by the column drives the flip-flop stage denoted by the particular row. Otherwise, a "0" elements exists. Considering generator No.1 in Fig. 2, the X matrix may be constructed by observing that stage 1 is fed by stages 2 and 3; therefore in the first row, a "1" is entered in columns two and three. Stage 2 is fed by stage 1, so in row two a "1" is placed in column one. Again stage 3 is driven only by stage 2, hence in row three a "1" is placed in column two. This completes the X matrix for generator No.1, viz., Similarly, for generator No. 2 the defining matrix is o o 1 It should be noted that the diagonal below the main diagonal will always consist of a series of "1's", while the first row of the matrix represents the feedback coefficients. Generalizing, the X matrix for n stages may be written: Ci · o o 1 o o 1 o o o 1 ·0 1 0 where the C's represent the feedback coefficients ("0" or "1"). The characteristic polynomial of the X matrix is thus, det [X-AI] == Ci C1-A C2 -A 1 1 0 0 -A' 1. 0 0 0 1 -A (_ A)n-l(C 1-A)-C2(-A)n-2+C a(-A)n-a ... (_A)n-n Cn == (_\)n(l_~_ C2 A A2 I\, _ _ Ca _ Aa . .. Cn) An 1 where () ==A n L C, f1. ] = 0 is == 1 defined as the characteristic equation of the shift-registel" generator. A necessary, but not sufficient, condition for the period of the shiftregister to be of maximum length is that the The bracketed term [ 1 - . 1 characteristic equation be irreducible (unfactorable). In Fig. 2 both generators No. 1 and No. 2 have irreducible characteristic equations, but that for No.3 can be factored. Using a technique known as the "sieve method," the irreducible polynomials which produce maximum length sequence have been tabulated, e.g., see Ref. 4. A HYBRID ANALOG-DIGITAL PSEUDO-RANDOM NOISE GENERATOR 291 2.4 The Autocorrelation Function 2.5 The Power Density Spectrum One of the most important properties of a maximum length sequence generator output is its time autocorrelation function. Since the sequence is periodic every 2 n - 1 bits, the autocorrelation function will also be periodic every 2n - 1 bits. Each bit represents one clock period, 6. t seconds in duration. In general, the autocorrelation function for the first period of an n-stage shift-register can be shown to be From the Wiener--Khintchine theorem, it is known that the power density spectrum Gxx(f) of a function x(t) is simply the Fourier transform of the autocorrelation function for x(t). As derived in the Appendix, the power density spectrum for a maximum length pseudo-random binary sequence x (t) is j 1- Rxx (T) == - ,T 2n I 2 n2n 1 for , T -=- 1 iL 00 a=-oo 1 bit a=,F [Si::/,£Z for , T , > 1 bit Rxx (T), for T equal to an integral number of bit intervals, is derived in the Appendix. Figure 3 0 r Il ( f _ ;f,) where Z == 2R_l = number of bits in one period of x(t) f~ = 1/ 6. t = clock frequency From the above expression, it should be noted that (1) Gxx(f) is a discrete spectrum with a xCt) -J=u harmonic separation of Ca) (2) Nulls occur at integral multiples of the clock irequency Ie. (3) The bandwidth of Gxx(f) =0.32 f(" 2"-1 Clock Periods ~~-r~====~~~~~~~~==:'T L r ~ c.p.s. 1 Clock Period. At Therefore, for a 25-stage shift-register (Z = 225 _ 1) and a 4 Mc. clock rate, Gxx(f) has a harmonic frequency separation of 0.123 c.p.s. and a bandwidth of 1.28 Mc. 1 2"-1 (b) III. DESIGN OF A PSEUDO-RANDOM NOISE GENERATOR Figure 3. 3.1 Overall Design shows the autocorrelation function of a maximum length sequence x (t). It can be seen that for time delays equal to or greater than one clock period, the correlation is essentially zero for large values of n. As opposed to the one-peak-per-period autocorrelation function of maximum length sequences, the autocorrelation function of nonmaximum length sequences has several positive and negative peaks per period. 1II This results because, as stated before, non-maximum length sequences do not satisfy the three conditions for randomness. The noise generator employs the same plug-in digital module cards (Computer Control Co. S-Pacs) standard in the new ASTRAC II computer. The block diagram of the entire noise generator system is shown in Fig. 4. This system will operate at clock rates as high as 4 Me and as low as desired. Multiplexing yields 4 uncorrelated pseudo-random noise outputs from a single 25-stage shift-register. The clamping circuitry produces ±6 volt analog outputs which are easily filtered to generate Gaussian signals; diode function generators can be used to produce other types of analog noise with 292 P,ROCEEDIN"GS--SPRING JOINT COMPUTER CONFERENCE, 1964 specified amplitude distribution and power spectra. 3.2 The Shift-Register and Modulo-2 Adders The shift-register consists of 25 general purpose flip-flops. The SET output of each flip-flop is connected to the Reset Level Control of the next stage, and the RESET output is connected to the Set Level Control (Fig. 5). The shiftregister is normally driven from the main 4 Mc ASTRAC II Clock Oscillator. The maximum length period for n == 25 is 225 - 1 == 33, 554, 431 bits. Since there are usually many feedback arrangements which will produce a maximal sequence, the one requiring the least hardware will be selected. Using the table in Ref. 4, it was found that if the outputs of stages 3 and 25 are fed back, only one modulo-2 adder is needed. Using this same table, the feedback arrangements, for n == 10 through n == 33, requiring only one modulo-2 adder to produce a maximum length were calculated and are listed in Table 4~.Io'.d HoI . . Outputs 1 of the Appen.dix. In terms of C.C.C. logic modules, a modulo-2 adder requires 4 NAND gates. The first 3 gates form an EXCLUSIVEOR, and the fourth gate provides the complement of the EXCLUSIVE-OR circuit (Fig. 5) . The output of the modulo-2 adder is fed back to the Reset Level Control of the first shift-register stage, and its complement is fed back to the Set Level Control. The output of each flip-flop and its complement are wired to a small patchbay (with a removable patchboard) provided for the noise generator. Since the binary sequence for any stage of the shift-register is the same as that of the preceding stage delayed by one clock interval, the patchbay allows access to 25 seQuences--each delayed by one clock interval from the previous one. The DC SET and DC RESET input terminals of each flip-flop are also brought out to the patchbay so that any desired initial state may be patched into the shiftregister from the computer NOISE GENERATOR RESET LINE at the start of each computation. This resetting feature is of considerable interest for rechecking a series of Monte Carlo computations with different pseudo-random noise inputs. If the NOISE GENERATOR RESET patching is omitted, the noise generator will run free and produce periodic sequences at a repetition rate not in general commensurable with the analog computer iteration rate. To provide the option of having two completely independent noise generators, the connections between shift-register stages 11 and 12 are patched rather than wired internally. The first 11 flip-flops require only one modulo-2 adder to produce a maximum length sequence, but the 14 stage shift-register requires three adders to produce a maximal period. One arrangement used to obtain a maximum length sequence from the 14-stage generator is to add the outputs of flip-flops 3, 4, 5, and 14 modulo-2 and to feed the sum back to stage 1. Figure 4. ASTRAC II Noise Generator. F.F.I F.F.2 NOISE F.F. 3 I GENERATOR RESET F.F.2! LINE Figure 5. Pseudo-Random Noise Generator Connections. As one of many alternative patching combinations, two identical II-stage maximum sequence noise generators, employing only one modul~2 adder each, may be constructed by using the same feedback connections for the 14-stage shift-register as are used for the 11- A HYBRID ANALOG-DIGITAL PSEUDO-RANDOM NOISE GENERATOR stage register (the outputs of flip-flops 2 and 11 are modulo-2 added and fed back to flip-flop 1). The sequence output of the 14-stage shiftregister is then taken from the eleventh stage, leaving 3 stages unused. 3.3 Multiplex Logic The purpose of the multiplex logic is to provide several (in this case four) uncorrelated pseudo-random noise sources from a single shift-register. There are at least two ways of accomplishing this. The first method consists of sampling the shift-register output once every fourth clock interval. This method is used in the noise generator for ASTRAC II, because it requires less digital equipment. The second method utilizes the "shift and add" property of maximum length sequences. A c B 293 o First period of the Shift-register o A B c Second period of the shift-register c o A B Third period of the shift-register B c o A Fourth period of the shift-register 3.3.1 Method I-Output Sampling The output sampling technique uses four staggered 1 Mc pulse trains to sample the 4 Mc pseudo-random noise output. Each pulse train samples the shift-register noise output every fourth clock interval, e.g., the first sampling pulse train senses the state of the noise generator output during the first, fifth, ninth, etc., clock intervals. The final result is four essentially un correlated 1 Mc pseudo-random noise outputs, each of ~ which is a maximum length sequence (33, 554, 431 bits if the 25-stage shiftregister is used) . Since the 4 Mc noise sequence is sampled only once every fourth clock interval by anyone of the 1 Mc pulse trains, it takes 4 periods of the 4 Mc sequence to produce the 33, 554, 431 bit period of anyone of the 1 Mc sequences. The 1 Mc sequences do not become periodic after the first 4 Mc period because the number of bits in the 4 Mc period is not evenly divisible by four. In fact, by designating the four 1 Mc outputs as A (t), B (t), C (t), and D (t) respectively, it can be shown (see Fig. 6) that during the second 4 Mc shift-register period A (t) takes the same sequence B (t) had during the first period of the shift-register etc., until the fifth period. Then A(t) begins to repeat the sequence it had during the first shift-register cycle. A similar process holds for the other three sequences B(t), C(t), and D(t). Actually, all four A B c o Fifth period of the shift- register Figure 6. outputs have the same binary sequence, but each of them is delayed from the previous one by approximately 8, 388, 608 bits. That is, for the outputs A(t), B(t), C(t) and D(t), A (t) A (t) A (t) A (t) == B (t + 8,388,608 bits) == C (t + 16,777,216 bits) == D (t + 25, 165,824 bits) == A (t + 33,554,431 bits) It follows that the cross-correlation function of A (t) and B (t) will peak only after 8, 388, 608 bits. For the sampling rate of 1 Mc, 1 bit is equivalent to 1 microsecond in time. Therefore, the correlation peak occurs approximately 8.4 seconds away from the time origin. The same is true for B (t) and C (t), or C (t) and D (t). This is long enough for, say, 500 computer runs using 15,000 bits per run from four essentiaUy uncorrelated noise generators. The digital circuitry required to implement the above operations is shown in the Appendix. Using the same approach, other combinations are possible. For example, the ASTRAC II 294 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 pseudo-random noise generator is designed so two un correlated 2 Mc maximum length sequences may be generated. Denoting them E (t) and F (t), then E (t) == F (t 16, 777, 216 bits). One digital bit in this case is equivalent to 1/2 of a microsecond. This added feature re",,quires little additional circuitry, as can be seen in the Appendix. + As with the shift-register, the flip-flops of the multiplex logic may be reset as desired by patching between the flip-flop DC SET or DC RESET terminal and the computer NOISE GENERATOR RESET LINE. 3.3.2 Method II-HShift and Add" Property In effect, the sampling method described above merely produces four identical sequences delayed with respect to one another. In view of the "shift and add" property of maximum length sequences, 6 similar results can be achieved by suitable modulo-2 addition of the various flip-flop outputs. By selecting the arrangement which produces four sequences delayed by approximately 8 million bits from one another, four essentially uncorrelated noise outputs are obtained. The main external difference between this method and the sampling method is that here the noise sequences are still 4 Mc, whereas before they were reduced to 1 Mc. Removeable Patchboard ON ~ OFF Figure 7. Front View of Noise Generator Panel. 3.5 Level-Shifting and Clamping Circuitry To obtain precision-limited binary sequences of ±6 volts, it is necessary to pass the digitalnoise sequences through level shifting and output clamping circuits. The voltage level shift is required since the standard outputs of the C.C.C. digital modules are -6 and 0 volts. Shown in Fig. 8 is the circuit used to accomplish the level shifting and clamping operations. Transistors Ql and ·Q2 form a Schmitt trigger. Q" provides a current source for the Schmitt trigger, and Q4 provides a clamped emitter fol. lower type output. The rise time is less than 50 nanoseconds as is the delay through the circuit. +15V +6 3.4 Digital Equipment Requirements Using commercially produced (Computer Control Co.) 5 Mcplug-in cards, the entire digital system (25-stage shift-register, 3 modulo-2 adders, and the multiplex logic) costs approximately $2,100. The following components are required: 1. Eight MF-35 flip-flop cards (4 flip-flops per card). 2. Four DI-35 NAND gate cards (8 NAND gates per card). 3. One PN-35 power amplifier card (4 power amplifiers per card). 4. One mounting rack (19 card capacity). 5. Vector patchboard and frame (300 contact&) . The design of the front panel and associated patchboard of the ASTRAC II Noise Generator is shown in Fig. 7. -I5V Figure 8. Level-Shifting and Clamping Circuitry. 3.6 Control of the Mean and Mean Square Value 11 3.6.1 Mean Value At high digital-clock frequencies (10 Kc to 4 Mc) used in typical repetitive computer applications (10 cps to 1 Kc repetition rates), the DC level E [x] of the noise generator is best A HYBRID ANALOG-DIGITAL PSEUDO-RANDOM NOISE GENERATOR controlled by a DC blocking filter with the transfer function TS H(S) == 1 TS (1) + where T == RC (Fig. 9) is an appropriately long time constant. For "slow" analog computation, symmetrical precision clipping of the binary noise output is usually sufficient to control E [x], or the active filter of Fig. 10 may be used to generate the transfer function (1). x (f ) O~---U-":""""--____- - - - O XO ( 295 during anyone computation, the peak-to-peak voltage will be monitored during computation by oscilloscope comparison with a DC reference voltage read on the computer digital voltmeter. At low clock freq.uencies, simple analog precision limiters may be used to clip the binary waveform. with an accuracy of approximately 0.1 per cent. Still, at high clock frequencies improved transistor clamping circuits, as opposed to more cumbersome AGC-type control, would be useful in regulating the mean square value. t) IV. EXPERIMENTAL TESTS R The following experiments are now being conducted with the aid of the ASTRAC I repetitive statistics computer. 4.1 Time Average and Mean Square Value Figure 9. Passive DC Blocking Filter. xCt) o_ _~_.......;..11 ~ __- -..........--_..oo xo(f) I ..... --~----O Xo ( t) The time average of the pseudo-random noise may be measured by filtering it with a low pass filter. The filter output is then sampled and converted into the appropriate number for a digital counter. The direction of the count is determined by the polarity of the sample. When the preset run counter stops, say, at m computer runs, the number indicated in the counter will be m Figure 10. Active DC Blocking Filter. L Xk==mx k==l 3.6.2 Mean Square Value Finite time averages of the squared binary noise output X2 are not subject to fast random variations, and equal one-fourth of the squared peak-to-peak output when a DC blocking filter is used. However, even with a constant load (operational-amplifier input), the.peak-to-peak output of the clamped emitter follower in Fig. 8 is subject to slow drift due to temperature variations of the break points of the clamping diodes. For example, a 10 0 F temperature variation could change the peak-to-peak output as much as 30 millivolts, or 0.25 per cent of the nominal 12 volt value. This corresponds to a 0.5 per cent change in the mean square output E [X2]. Although drift should be negligible Alternately, the time average may be found by using an analog integrator with a long time constant. By using a diode squaring circuit and the same "sample and count" method used to find the time average, the mean square value is obtained. After m runs the counter will readS m Lx==mx 2 k==1 4.2 Amplitude Distribution This measurement is made by using the Amplitude - distribution Analyzer built into ASTRAC 1. The analyzer uses a slicer-circuit 296 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 which enables its output counter to register one pulse per computer run if and only if the analyzer input voltage x(t) lies between the preset values ( X - 6;) and ( X + 6;) . The result- ing count estimates the Probability that 6X 6X] [ X - """2 < x (t 1 ) L X + ""2 . If 6X is made sufficiently small, an approximation of the density function is obtained.9 4.3 Correlation Experiments A unique method for measuring the autocorrelation function of pseudo-random noise consists of wiring two pseudo-random generators to produce identical maximum length sequences. One of the generators is then driven at a clock frequency of fl and the other at a clock frequency of fl + 6f, where 6f is very small compared to f 1 ; thus the noise generator outputs appear with a continuously varying delay with respect to one another. The generator outputs are then multiplied together and low-pass filtered to give the approximate autocorrelation function for direct oscilloscope or recorder presentation. 10 A more accurate estimation of the autocorrelation function may be obtained by using the ASTRAC I computer to generate the following functions 8 : kX(t 1 ) + kX(t l + T) and kX(t 1 ) kX (t 1 + T), k is the kth computer run and the samples at tl and tl + T are taken during each computer run. The two functions are then square to give (i[x(t 1 ) + kX(t l + T»)2 and [kX(t 1 ) - kX(t l + d]2 After m runs, the final result stored in the counters is m/2 %. L {[tX(t1) + 'x(t1 + .)], k==l _[kX(tl) - 'x(t, m/2 == L kX(tt} kX(t + k==l l T) + .)]'} For a large number of runs, , m/2 estimated Ru (T) ==! L kX(t 1) kX(t l + T) k==l 4.4 Probability Distributions of the PseudoRandom Sequence Assuming the sequence period is large, binomially distributed random numbers q are obtained by counting the noise generator "l's" occurring during Q clock periods. p (q) == ( ~) (~ )Q q == 0,1,2, ... E {q} == Q/2 Var {q} == Q/4 Note that, the random variable q is asymptotically normal as Q ~ 00 • Thus, the random variable u, where u == q-Q/2 2q-Q Q/4 == Q converges in probability to a standardized normal random variable. V. CONCLUSION In conclusion, it should be pointed out that such a hybrid noise generator has several striking features not generally shared by existing analog noise generators: "1. The analog noise output is independent of any physical quantity other than the output clamping levels. 2. The shift-register can be reset at any time to repeat a sequence of random events exactly. 3. The binary noise bandwidth is proportional to the shift register clock rate, which can be changed (and modulated) at will. This permits exact time scale changes or intermittent operation. 4. The noise generator produces digital computer random numbers as well as analog noise. Random digital words are easily stored and transmitted and also may be used to produce binomially distributed random analog coefficients with the aid of D / A-converter multipliers. A HYBRID ANALOG-DIGITAL PSEUDO-RANDOM NOISE GENERATOR 5. Digital multiplexing yields multiple uncorrelated noise signals from a single shift-register. 6. The binary output permits direct logical or analog multiplication. In addition, the group-alphabet property of shift-register sequences yields delayed sequences, with the aid of digital logic; which is useful for correlation experiments." 1 7. The flat spectrum binary noise yields Gaussian noise with any reasonable spectrum by filtering; diode function generators may then be used to produce different amplitude distributions. 8. One noise generator may also be broken into two or more completely independent generators if desired. In view of the versatility of pseudo-random noise generators and the reliability and decreasing prices of digital-logic modules, the conventional analog noise generator may well become obsolete. REFERENCES 1. 2. 3. 4. 5. 6. R., G. A. KORN, alld B. 1YIITCHELL, "Hybrid Analog-digital Random-noise Generation," I.E.E.E. Transactions on Electronic Computers, August 1963. MANELIS, J. B., "Generating Random Noise with Radioactive Sources," Electronics, September 8, 1961. GOLOMB, S. W., Sequences with Randomness PrlYperties (Internal Report) , Glenn L. Martin Co., Baltimore, Md., June 14, 1955. I{EPCKE, J. J., R. M. TAYLOR, and W. S. WYROSTEK, Geese Techniques for Pseudo Noise Generation, Defense Systems Dept., General Electric, Syracuse, New York, August 1962. BIRDSALL, T. G., and M. P. RISTENBATT, Introduction to Linear Shift-Register Generated Sequences, Technical Report Number 90, University of Michigan Research Institute, Ann Arbor, Michigan, October 1958. PETERSON, W. W., Error Correcting Codes, The MIT Press and John Wiley and Sons, Inc., New York, 1961. HAMPTON, 297 7. Instruction Manual for 5-Mc S-Pac Digital Modules, Computer Control Company, Inc., Framingham, Mass., July 1962. 8. CONANT, B. K., "A Hybrid Analog-Digital Statistics Computer," ACL Memo Number 45, The University of Arizona, Tucson, Arizona. 9. BRUBAKER, T. A., G. A. KORN, "Accurate Amplitude-Distribution Analyzer Combines Analog and Digital Logic," Rev. Sci. Instruments, March 1961. 10. STERLING, J. T., Introduction to PseudoNoise Codes and Correlators, Defense Systems Dept., General Electric, Syracuse, New York, May 1962. 11. KORN, G. A., unpublished lecture notes, University of Arizona, 1963. ACKNOWLEDGEMENT' The project described in this report is part of a hybrid analog-digital computer study directed by Professor G. A. Korn, who suggested the project and contributed a number of ideas. The author is grateful to the Office of Aerospace Research~ Information Research Division, Air Force Office of Scientific Research and to the Office of Space Sciences, National Aeronautics and Space Administration for their support of this study under joint grant AF-AFOSR-89-63 ; and to Professors L. Matsch, Dean of Engineering and Harry Stewart, Head, Electrical Engineering Department, for their encouragement and contribution of University facilities. APPENDIX Multiplex Circ1-titry To obtain the four staggered 1 Mc sampling signals, a Gray-Code logic circuit driven by the 4 Mc ASTRAC II clock is used (Fig. A). The Gray-Code effectively divides the clock input by four. The required sampling pulses exist at the outputs of the four NAND gates. They are denoted by Q), ®, ®, and 0 (Fig. B). The multiplexing is accomplished by inverting one of the sampling pulses, for example 0, and applying it to the AC input of a flip-flop. The inversion is necessary for correct triggering. The 4 Mc pseudo-random noise sequence and its 298 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 NOISE GENERATOR I RESET Derivation of the Autocorrelation Function R:r.:r. ( T) of Maximum Length Sequences lO LINE I (For T equal to an integral number of bits or clock periods) Previously, the pseudo-random noise from a shift-register has been considered to be a seSet t>utput 0 A Reset Output _~l.J1JlI1J B 4Mc. Clock Pulses -6 -t*~.1- A_:n Aj B B B i -:n L °LJ -6 n °-:1 Figure A. Gray-Code Circuit. complement are applied to the flip-flop Set and Reset Level Controls as shown in Fig. C. The flip-flop output is then the desired 1 Mc pseudorandom noise. The other three 1 Mc noise sources are similarly derived. Two staggered 2 Mc sampling pulses are easily obtained by NAND-gating pulse trains CD and ® to give the first 2 Mc sampling signal and NAND-gating ® and ® to give the second. They are then applied to the AC input of a flipflop, as was done with the 1 Mc sampling pulses, to obtain two un correlated 2 Mc maximum length sequences. A Gray-Code circuit is used instead of two cascaded flip-flops to provide the "divide by four" operation, because only one of the flipflops shown in Fig. B changes states per clock pulse. On the other hand, with two cascaded flip-flops, both go through a transition of states every second clock pulse. This would create undesirable coincidence spikes when the cascaded flip-flop outputs were NAND-gated to obtain the four staggered 1 Me sampling trains. ~-:I ---Jn. . __ L..--._ _ n '----------~~~-------- ~o -6 @ 0 -6 Figure B. Four Staggered 1 Me Sampling Pulses. NOISE RESET LINE I s.t yo-------r Out ut > IMC. PauedoRandom Nol•• y 0--------1 Reset Output y= 4Mc. Pseudo- Random Y=Complement Noise of 4 Mc. Pseudo - Random Noise Figure C. A HYBRID ANALOG-DIGITAL PSEUDO-RANDOM NOISE GENERATOR quence of "O's" and "1's", representing the two stable states of the flip-flop stages. If instead, the two stable flip-flop states are designated as "I" and "-I" respectively, it can be shown that modulo-2 addition with "0" and "I" is equivalent to arithmetic multiplication with "I" and Since 1 bit is equivalent to 1 clock interval in time, the period T == 2 n - 1 bits. Now substituting equation (1) into equation (3) and expressing the limits in terms of n, we have 2n-1 2 "-I". Rxx ( 7"1) - 2 n B A.B A B (A+B)MOD 2 A 1 0 1 -1 1 -1 0 1 1 1 -1 -1 0 0 0 1 1 1 1 1 0 -1 -1 1 f -=- 1 (2 n x (t + 7"2) dt where 7"] and 7"2 are equal to some integral number of clock periods. It follows that for maximum length sequences of "-l's" and "l's", x (t) x (t 7"1) == X (t 7"2) . (1 ) + + The time autocorrelation function for a func- 2n - 1 times Since the all "I" state (or equivalently, the all "0" state in terms of modulo-2 addition) is a forbidden condition, a maximum length sequence always has one more "-I" state than it does "I" state. Consequently, Rxx ( 7"1) == - - x(t)x(t+7"])dt.(2) 7"1 =1= 0 (2 n -1) 2n-l 2 f 2n -=-1 1 dt - (2n-l) 2 ==1 T/2 x(t) x(t + 7"1) dt. (3) -T/2 Derivation of the Power Density Spectrum Gn·(f) of Maximum Length Sequences 00 Gxx(f) == F (Rxx(T» / 2 -T/2 When x (t) is periodic, as is the case for a maximum length shift-register seq,uence, no limiting process is needed. Therefore, the autocorrelation equation becomes i f -=- 1 n T~oo R xx (T1) == 2n == fRxx(T)e-27rfT d7" -00 (6) If 7"1 == 0, the autocorrelation function may be written, 2n-l 2 R {0 \ 1 ~"xx,"",_ == 2 - 1 J{v2 ..... It ,"',\ tlt ..... T/2 if (5) Number of "l's" in] the sequence minus the number of "-l's" [ in the sequence 1 tion x (t) is by definition Rxx(7"])==lim 7"1 =1= 0 1) - 2 Thus, the "shift and add" property for "I" and "0" sequences becomes the "shift and multiply" property for "-I" and "I" sequences. Since for maximum length sequences of "1's" and "O's", it is true that x (t) + x (t + 7"1) == X (t + 7"2) , 299 PROCEEDINGS-SP~RING JOINT COMPUTER CONFERENCE, 1964 300 using a Fourier series representation for Rxx ( T ) T/2 00 = L raja Rxx( T) 2Tr fo T i f R(T)e- ,ra 00 = 2Tr foT dT, fo - i -T/2 0.=-00 Gxx(f) ja 00 f L rae -00 e - j 2TrfT dT ja 2Tr fo T 0.=-00 since the Fourier series for Rxx( T) converges uniformly, the order of integration and summation can be reversed, giving 00 00 fe \ ' ra Gxx (f) == L 0.=-00 j e- j a 2 Tr f 0 T 211"fT -1200.001 FREQUENCY IN CYCLES Figure 3. Demodulating Filter Response. +1 0 i= c a:: !d o· 1.6 PHASE -I 0 1.4 ~ ~ C -2 1&1 -3 .J > A. en c :I: A. 1.2 -4 ~ 5 bandwidth). Filter cutoff at 50 kc seems to be about optimum for a 2 mc bit rate; values above this admit excessive noise into the output. The demodulator has objectional phase shift above 1 kc (see Fig. 3 for filter response, which was improved, at the expense of some amplitude response, by lead networks at the input, Fig 6.) The overall system response is shown in Fig. 4. The uncompensated system is flat out to 40 kc. Fig. 5 shows the static input output characteristic. This curve was obtained with a digital voltmeter and is seen to be quite linear. 100,000 10,000 1000 100 10 305 AMPLITUDE -5 The output pulse widths of the CCC Delay Multivibrator Cards were narrowed to about half their normal minimum value. It was found necessary to add several additional logic cards to what could be considered a minimum component delta sigma system in order to prevent cross coupling effects from causing pulse-train jitter. Such jitter makes pulse reshaping more difficult, but has no noticeable effect on other aspects of system performance . Operation of the modular circuit, shown in Fig. 6, is straightforward. The 2 mc clock trig- 1.0 !50 500 20.000 5000 FREQUENCY IN CYCLES Figure 4. System Response of Complete b.~ System. GAIN OF DEMODULATOR AMPLIFIER WAS LESS THAN UNITY MODULATOR -----------"1 DEMODULATOR I +2~---4----~----*-----~--~----~-- -3 -2 -I INPUT o 2 VOLTAGE Figure 5. Static System Response. 3 OUTPUT .0044 ILt I 3MHY I T /LILt Figure 6. b.~ Modulator Demodulator. 306 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 gers a delay multivibrator, whose complementary output pulses are NAND gated so that one or the other is allowed to reach flip-flop FFl. The flip-flop output is added to the analog input, and the sum is integrated. The integrated output is fed into a Schmitt trigger which in turn controls the NAND gates in such a manner that feedback of the flip-flop output always tends to return the integrator output to zero. As a result, the running average of the output pulse F (t) is proportional to the analog input to the integrator. SYSTEM RESPONSE Although it is difficult to determine the modulator response or pulse code pattern for an arbitrary input, it is instructive to consider the system response to selected inputs. As Fig. 2 indicates, the flip-flop output for a zero input signal consists of a square wave with the transitions occurring at the clock intervals. Consider an input step voltage equal to one half the flip-flop voltage. The flip-flop pulse pattern which would result from this input is displayed in Fig. 7 along with various other waveforms in the system. The average value of the flipflop voltage F (t) is E./2, one half its peak value where Eo is the amplitude of the flip-flop output. The fundamental frequency of the waveform for this input is 1/4T where T is the clock period. If this waveform is averaged by a low pass filter, the steady state output of the filter would be E/2 volts or the input signal. Input S (tl CUIJVS ZJ\ / V ClocItO 0 0 0 0 X (tl 0 FIt) 0 -.-lr==tR V n 0 0 0 0 0 R .!-. Figure 7. Modulator Waveforms for Half Full Scale Input. o fc Frequency ~ Figure 8. Ideal Low-pass Filter. If the system is to be responsive to step voltages in a reasonable amount of time, it is necessary to keep the bandpass of the averaging filter as large as possible. On the other hand, too large a bandpass would permit an unacceptable amount of ripple to appear at the output. If one assumes the existence of an ideal low pass filter as shown in Fig. 8 and if the cutoff frequency fe is set below 1/4T cycles per second, no ripple components will appear in the steady state output. Unfortunately, the ripple frequency is a function of the input level and for inputs close to ± Ell volts, the fundamental frequency of the flip-flop waveform becomes arbitrarily small. In fact, for input levels equal to ± Eo the system reaches the limits of its dynamic range and the flip-flop remains permanently in one state. For an averaging filter with a bandpass fe cycles per second the static range of the input must be limited totO (feT) Eo 100 :: ~:f7'~ < 100 I...J > 200t ~.::j~ 100 '" 311 100 10 15 10 0 o hc 2.5 KC MODULAnON 5 FREQUENCY 10 15 IN 0 5 10 .5 INPVT VOLTAGE .75 1.0 RATIO Figure 14a. Spectral Line Amplitudes Versus M. MODULATION ~IlLWJ 0 25 15 300 32 KC BI T RATE 1.5 KC MODULATION 200 15 .01-1- = = = - - - t - - - - - + - - - - - - + - - - - - - t - 1 15 ~::~ > KC 200 Figure 13. Spectrum Study of Flip-flop Output. 1 :UJ 100 o::;) I- ::; 0 Q. It was noted that spectra containing exclu- sively harmonjcs of the fundamental occur only when the bit rate is an integral multiple of the modulating frequency. The converse of this is not always true, however, as can be seen in Fig. 13b. Spectrum analysis was also performed for the 2 me bit rate and 20 kc filter cutoff up to 16 kc. Under these conditions only harmonic frequencies of the fundamental were present. Typical spectra are shown in Figs. 13d, e, and f. For bit rates several orders of magnitude higher than the modulating frequency, the question of even division depends on the fourth and higher digits in the clock frequency, and these are subject to random drift. Under these conditions only harmonics of the fundamental were observed. These amplitudes were much l'ess than that of the fundamental. Spectrums for low bit-rates are shown in Figs. 13g through 1. This allows the spectrum analyzer to cover more of the spectrum and gives a better insight into system operation. Figs. 13g, h, and i are for a 16 kc bit-rate in which the entire spectrum may be studied. In Fig. 13g there is no input and the main component is at one half the clock frequency as has been previously noted in Fig. 2. There is only ~ ~~:!~ o .25 .5 INPUT VOLTAGE .75 1.0 RATIO Figure 14b. a small clock component and no measurable noise (note logarithmic millivolt scale). In Figs. 13h and i the fundamental frequency evenly divides the clock frequency and all signal harmonic frequencies are present. Note that the amplitude of some harmonics are greater than the fundamental. A bit-rate of 32 kc is used for Figs. 13j, k, and I allowing half of the spectrum to be observed. In this case nonfractional modulating frequencies are shown. Fig. 13j has many of the harmonic frequencies missing and shows no pattern of recognizable order as compared 8with the two spectrums to be described below. Fig. 13k has all signal harmonics present plus addi~tional frequencies four tenths of the way in between successive harmonics. Fig. 13-1 also has all harmonics present with the intervening space equally divided by two more spectral lines. Figs. 13k and I also show some spectrum lines with amplitudes above that of the fundamental. 312 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 CONCLUSION Providing time delay and memory in an analog computer opens up new classes of problems which need to be solved. Simulations involving transport lags, correlation studies and communications problems require the fo.rmation of time delays. Iterative techniques for solving integral eqijations require analog function storage. The use of a magnetostrictive delay line for the storage medium is attractive because of the success this technique has had in digital computers. However, information must be introduced into this line in a digital manner. Although PCM is the most efficient method of digitizing, its equipment complexity and hi~!'h cost make it unattractive to small computer installations. Delta sigma modulation, which encodes an analog signal into a digital code, is an inexpensive technique which has excellent linearity and good noise characteristics. Using this method of modulation in conjunction with a magnetostrictive delay line, 5 to 10 milliseconds delays may be obtained at 2 mc bit rates. The device will accommodate analog signals of up to 8 kc with phase shift below 2 degrees. The total dynamic error is within .2 per cent of half scale up to 1 kc. Magnetostrictive delay lines are limited at present to pulse rates of 5 mc. However, advances which will be made in high speed digital storage techniques can be utilized for analog storage since the analog signal is encoded into digital form. This system, due to its fixed spacing of narrow pulses, also offers the possibility of multiplexing. That is, one delay line with its read-write circuitry could be used to store several analog functions. This would, however, bring back the problem of the use of precise timing circuits in order to separate the pulses belonging to e·ach analog function. where S (t) is the input signal and -F (t) is the flip-flop output. Consider Equation A-I evaluated at t == nT where T denotes the clock period and n an arbitrary integer. :t E(nT) == S (nT) - F (nT) (A-2) dt E(nT) may be approximated by dt d[ (n + I)T] - dnT) T hence, E[ (n + 1)~] - dnT) == SenT) _ F(nT) (A-3) Now F( T) -{ +Eo if (nT) ::::"'0 n - -Eo if E(nT) <0 so F(nT) == E(nT) Eo I E(nT) , provided that E(nT) , dnT) I == 1 for dnT) == 0 Rewriting Equation A-3, we find E[(n+l)T] -dnT) E(nT)T == T S(nT)-Eu 'dnT), (A-5) l]=TS(nT) (A-6) A-6 is the basic equation describing the behavior of the modified delta modula'tion system. Unfortunately, the presence of the absolute value term (which has as its counterpart the comparator in the actual system) does not allow an analysis of the modulator on a linear system basis. However, Equation A-6 may be solved for specific inputs either on a digital computer,14 or by a step by step solution. APPENDIX Delta Sigma Modulator System Equations Consider the basic delta sigma modulator as shown ~n Fig. 1. The integrator output, (t) is given by d" (A-I) dt E (t) == S (t) - F (t) BIBLIOGRAPHY 1. KORN, G. A., New High-Speed Analog and Analog-Digital Computing Techniques: The ASTRAC System, Electronic Industries, July 1962. A DELTA-SIGMA MODULATION SYSTEM FOR TIME DELAY / ANALOG STORAGE 2. ECKES, H. R., and G. A. KORN, Digital Program Control for Iterative Differential Analyzers, ACL Memo No. 86, University of Arizona. 3. KORN, G. A., High-Speed Iterative AnalogDigital Computation: The ASTRAC II System, ACL Memo No. 93, University of Arizona. 4. KORN, G. A., Analog/Hybrid Storage and Pulse Modulation, IEEE Transactions;, on Electronic Computers, September 1963. 5. KENNEDY, J. D., Representation of Time Delays in Huskey, H. D., and G. A. Korn, Computer Handbook, McGraw Hfll, 1962. 6. JURY, S. H., Memory and Function Generation in Analog Computers, Military Systems Desi[ln, January 1962. 7. DUNDON, T., Magnetosti-ictive Delay Lines for Digital Applications, Computer Design, January 1963.. 8. Hybrid Compute'r Course Notes, Electronics. Associates, Inc., Princeton' Computation Center, Princeton, New Jersey. 9. DE JAGER, Delta Modulation, A Method of PCM Transmission Using the One Unit Code, Phillips Res. Repts., Vol. 7, 1952. 10. INOSE, H. Y., YASUDA and J. l\1URAKAMI, A Telemetering System by Code Modulation, IRE Transactions on Space Electronics and Telemetry, September 1962. 313 11. STORER, J. E., Pass~ve Network Synthesis, McGraw Hill, 1957. 12. HANDLER, H., Measurement of Phase Shift, IEEE TTansactions on Electronic Compute1'S, June 1963. 13. INOSE, H., and Y. YASUDA, A Unity Bit Coding Method by Negative Feedback, IEEE Special Inte1'national Issue, November 1963. 14. TRIPP, J. S., A Deterministic Study of Delta Modul~tion, Kansas State University Bulletin, Special Report Number 17. ACKNOWLEDGEMENT The project described in this report is part of a hybrid analog-digital computer study directed by Professor G. A. Korn. The writers are very grateful to the Office of Aerospace Research, Information Research Division, Air Force Office of Scientific Research and to the Office of Space Sciences, National Aeronautics and Space Administration for their continuing support of this study under joint grant AFAFOSR-89-63; and to Professors L. Matsch, Dean of Engineering and Harry Stewart, Head, Electrical Engineering Department, for their encouragement and contribution of University facilities. A COMPUTER-SIMULATED ON-LINE EXPERIMENT IN LEARNING CONTROL SYSTEMS J. D. Hill, G. J. McMurtry,.and K. S. Fu Control and Information Systems Laboratory School of Electrical Engineering Purdue University Lafayette, Indiana INTRODUCTION including hill-climbing, methods of classification for pattern recognition, reinforcement learning, problem solving machines and various other aspects of artificial intelligence. Nearly all of ,these systems utilize some form of memory and do improve their performance with time. However, they require an off-line training period involving a human operator to judge whether or not their response to a given stimulus is satisfactory, i.e., they lack a bunt-in index of performance. The structure of a learning control system combines digital memory and logic circuitry with an adaptive system. Data obtained through adaptation is stored (remembered) and later utilized to improve the system performance. The learning control system will operate satisfactorily under changing environmental conditions in which an adaptive system fails to improve the performance. The general learning system operation is outlined in this paper and a simple experimental system which illustrates the improved performance is discussed. The example sys,tem is a second order plant in which the damping ratio and undamped natural frequency are considered to be affected by the environment in a piecewise constant manner. The system was simulated on a GEDA analog computer and the memory and logic functions were supplied by an IBM 1620 through IBM 1711 and 1712 analog .to digital and digital to analog equipment. A typical example of this is given by Gabor, Wilby and Woodcock 3 who have constructed a universal nonlinear filter which will organize its internal parameters in such a way as to act as an optimum filter, prediotor, or simulator of an unknown mechanism, depending upon how it is trained. The important point is, however, that it must be trained by a human operator before it can function in the desired manner. This is typical of the general class of so-called learning or self-organizing pattern recognition machines. "Pandemoni urn," 4 "Perceptron," 5 and "Adaline"6 are other pattern recognition devices with self-organizing capabilities. All, however, require off-line training by human operators. LITURATURE SURVEY The words "learning system" and "selforganizing" appear frequently in the literature in the area of automata studies and artificial intelligence. Hawkins! has given an excellent review on self-organizing systems as well as an extensive bibliography, while Minsky2 has reviewed various aspects of artificial intelligence Thus, though some of the techniques which have been developed for pattern recognition and automata theory may be useful when applied to the learning control problem, there has as yet 315 316 PROCEEDINGS SPRING JOINT COMPUTER CONFERENCE, 1964 been very little direct application to control systems. In the hierarchy of automatic control systems, adaptive systems are more sophisticated than standard control systems. TruxaF gives a good general review of adaptive control systems while Mishkin and Brauns discuss several specific examples. The next advancement beyond adaptive systems appears to be in the area of learning control systems. Krug and Letskii 9 have suggested the use of a learning process for optimum control. In their paper they suggest that the optimum control of slow but complex processes, such as chemical processes, might be found by a systematic evaluation of input and output data and an index of performance. Probabilistic methods are suggested for organizing the memory for optimulll search procedure. The system as outlined is very general and a human operator is left to make the final decision as to whether the control found by the so-called automaton is satisfactory. Only cursory attention is given to the possibility of replacing the human operator. A considerable effort has been directed toward the investigation of learning in automatic control systems at the Control and Information Systems Laboratory, School of Electrical Engineering, Purdue University. An informal introduction to learning control systems has been given by Fu. 10 One of the specific systems investigated at Purdue Universityll is discussed in this paper. Philosophy of Learning Cont-rol Systems The structure of a learning control system, as visualized at present, is distinguished from an adaptive system mainly in that in addi,tion to a conventional adaptive system the learning system has memory and logic. Data obtained through adaptation is stored and later utilized .to improve the system performance. Thus, whereas an adaptive system may take advantage only of its immediate past experience, a learning system is able to recall and use plant adjustment data obtained through adaptation while operating under similar environmental conditions in past time. An adaptive system will optimize a slowly time varying plant to a given index of performance (IP), often through a hill-climbing technique, by modifying the controller or plant parameters. Thus, if a sufficient range of parameters is available, the adaptive system will become optimum for a given index of performance. A basic constraint is that the plant should vary slowly enough that the adaptive loop is able to track the minimum of the index of performance and maintain relatively constant performance. In some instances, the plant parameters vary so quickly that the adaptive loop cannot maintain optimum performance although some adaptive action does take place. This is one type of situation in which the learning system proposed by the authors may be applicable. Learning systems of the type discussed also yield superior performance in systems with slowly varying parameters which change suddenly but are relatively constant between changes. The learning system would be designed so that it would store in memory a quantized measure of the plant parameters which are varying or of the environment causing the variation, the best index of performance obtained by the adaptive system, and the corresponding corrections necessary to obtain this performance. It is important to realize that the hill-climbing technique' used in the adaptive portion of the system may not converge to the minimum of the IP surface if the measurements of the IP are noisy. Thus all environmental parameters affecting the IP must be measured. Only if a separate hill-climb is performed for each combination of environmental parameters and all environmental parameters are considered will the IP surface be free of noise and the adaptive portion of the system operate properly. Thus when a previously occurring set of plant parameters is again encountered, the best learned corrections would be immediately set from memory and adaptation carried out from that point. The system would, of course, be designed so that the contents of the memory are continuously updated by storing the most recent best settings of the corrections. Assuming then, that the varying parameters may be quickly identified, and that the memory interrogation is faster than the adaptive action, the system performance, after sufficient operat- 317 A COMPCTER-SIMULATED ON-LINE EXPERIMENT IN LEARNING CONTROL SYSTEMS :: Figure 1. General Plant. ing time, would approach the optimum performance. In the general learning sHuation the plant and plant parameters are shown in Fig. 1. In Fig. 1, e == (eh e2, ..., en) is the environment vector which is considered to be measurable but uncontrolled. It includes all plant inputs and environmental factors which cannot be changed in order to improve the IP. d == (d h d2 , ••• ,d p ) is the plant parameter adjustment vector and includes plant inputs which may be changed in order to improve the IP. c == plant output vector, and I is the plant index of performance. Now each component ei of the plant environment vector e, corresponds to a separate environmental or input variable such as temperature, pressure, etc. There are several methods of hill-climbing the d vector to the minimum of the IP surface, but the one chosen here is to hill-climb each component of d separately and sequentially, the best values of each of the p parameters being stored in memory corresponding to each er, along with the corresponding direction of increase or decrease in each parameter of d and the lowest value of I. The stored adjustment vector corresponding to er is labeled drM. (Superscript M indicates a stored or memorized parameter. ) The operation of the system is then as follows. Upon recognition of the occurrence of er d is set to drM from a search of memory, and hill-climbing proceeds. The computer program should be arranged to facilitate a fast search of memory for previously occurring er. This may be implemented by programming the computer to search the most frequently occurring er's first. The program must also be capable of setting up new storage locations for er's which have not previously occurred. Now let us consider that a particular er occurs, given that it has previously occurred k times. Immediately drM (k) is set from memorv and parameter dj is to be adjusted, where: j == k - a p .. These conditions are app::::::"j>O plied to indicate sequential nature of adj ustment of d/s as mentioned pre) viously. W For measurement purposes, each of these variables, ei, is assumed ,to be quantized into qi levels where the qi'S for different values of i (i == 1, .. ~, n) are not necessarily equal. Then the number N of possible different environment vectors e is n N == IT qi i==1 e will thus be relabeled e == er ; r == 1, 2, • . . , N when referring to the rth possible environment. The index of performance, I, is considered to be a scalar function of er , d and c, i.e., I == f(e r , d, c) where c == F (e r , d). Thus, for a given er , I has at most a single minimum as a function of d. I is then a p-dimensional hyper-surface in the adjustment parameters dj (j == 1, 2, . . ., p). There results, then, a p-dimensional hill-climbing problem corresponding to each different er • Then d{(k + 1) is adjusted to d{(k + 1) == d{M(k) + s{M(k) 6dj where 6 dj S{M (k) == increment of d == ± 1 (stored direction j in which to increment d{M (k» Let us now consider the logic required to program the hill-climbing operation and the modification of computer memory. Define m r(k j + 1) _ - {I0 for (Ir(k + 1)-IrM(k» for (Ir(k + 1)-IrM(k» where Ir(k + 1) == I (e r, dr(k + 1) IrM (k) == I (er, drY (k) ) L O} >0 318 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 parameters affecting the system are assumed to be measurable and measurement noise is neglected. All environmental parameters er are assumed to be constant during one hillclimbing step. In the experimental example the same assumptions were made except that er was assumed constant for four hill-climbing steps. The memorized compensation parameter then becomes d{M(k + 1) == d{ll(k) + m{(k + 1) s{M(k) 6dj The memorized compensation vector is given by d rM (k + 1) == drY (k) - dj rll (k) + d{"AI(k + 1) where d{M (k) == (Oh O2 , ••• OJ-h d{M (k), Experimental System OJ+h ••• Op) d{M (k + 1) == (Oh O2 , ••• OJ-h d{M (k OJ+ h ••. 01.) A learning system of the type discussed above with second order plant has been simulated on the IBM 1710-GEDA hybrid computer installation. The system was assumed to be subjected to a pseudo-random sequence of environmental conditions which change the damping coefficient and undamped natural frequency of the system at discrete intervals. The environment was changed sufficiently often that purely adaptive action (i.e, hill-climbing on the IP surface) could not optimize the system during the period of constant environment. + 1), The memorized value of the index of performapce becomes IrM(k + 1) == IrM(k) + m{(k + 1) (Ir(k + 1) - IrM(k» and the stored direction in which to increment d{lI (k + 1) is given by s{M(k + 1) == - sgn [(Ir(k + 1) IrM(k» (d{(k + 1) - d{ll(k»] In the above development, all environmental u I T c t I I ----J r .--------.1 ~-- AnaIoc) to I I I Divital di9tol I Compute, conve,.. 1 1 0 -_ _...._ _ _ ~--.---------L---------=--=--=-:-====--=--=--=--=Figure 2. Experimental Learning System. I I I 319 A COMPCTER-SIMULATED ON-LINE EXPERIMENT IN LEARNING CONTROL. SYSTEMS The system was subjected to a fixed amplitude square wave input in order to facilitate the computation of an index of performance of the quadratic type. In the plant, as shown in Fig. 2, el and e2 are environmental parameters which are constrained to remain constant over two periods of the square wave input. Thus, at each occurrence of an (eh e2) pair four computations of the IP are carried out, one at each transition of the square wave.. After each computation of the IP, the compensation parameters d l and d2 are adjusted by a two-dimensional hill-climbing technique described above in order to minimize the performance index. Memory is used to store the current best values of d l and d2 for a given set of (eh e2) values, as well as the directions in which dl and d2 were being adjusted, and the best value of the IP found previously. Thus when a previously occurring (et, e2) pair reoccurs, the best values of d l and d2 are set from memory and the best direction to increment d l and d2 is known. Adaptation then proceeds and the latest values of the best d 1 and d2, direction and IP replace the old values in memory. For the particular system under investigation, el and e2 were each allowed to take on five different values, Le .• ql - (12 == 5. Thus twenty~ five different (et, e2) combinations were possible. In order to simulate the limitations on computer memory capacity, only the sixteen most probable (eh e2) combinations were allowed to have corresponding d h d2, etc. data stored with them. In this system no compensation or hill-climbing took place on the nine least probable (eh e2) combinations. Probabilities were computed by counting occurrences of (et, e2) pairs and a continuous check was made for the 16 most probable. In the hill-climbing technique, the increments used for changing dl and d2 were of fixed size and were not reduced even after learning was essentially complete. The changes in el and e2 were generated by storing in memory a pseudo-random sequence of (eh e2) pairs two hundred long. The (eh e2) pairs were set from memory on the digital pots just prior to the square wave transition and the sequence of (eh e2) pairs repeated after each two hundred values (fifty different (eh e2) pairs since each pair was repeated at least four times in a row) . The performance index (IP) used was of the form T IP == I-=-(Yl £2 + Y2 X2 2 + Ya u 2) dt f o where £, X2, U are as defined in Fig. 2, and Yh Y2, Y:kmay be changed as desired. In this example, the parameter el was allowed to take on the values 4, 5, 6, 7, or 8 and e2 to have the values 20, 30,40, 50 or 60. An outline of the digital computer program and flow diagram for the system under consideration are given in Appendix A. DiscuSsion of Results An investigation of the IP surface, for the particular system and performance indices under investigation, was carried out. The system may be redrawn as shown in Fig. 3 if we let a == el + d1 and b == e2 + d2. Let the input R (s) be a step input of amplitude A. Then A R(s) £(s) == s A(s I + a) ... "" I 'h 0 2 ~ ,Q"'TIJ X2 (s) == S2 + as + b u (s) == S2 + as + b A As For an index of performance given by I == f 00 (YI £2 + Y2 X2 2 + ya u2 ) dt o c(s) Figure 3. Simplified System Block Diagram. PROCEEDINGS-SPRING JOINT COMPUTER CONFERE~CE, 1964 320 For the performance index used in this example )'1 == 0, )'2 == 1, ),a == 1 Parseval's theorem yields jco 1==_1_ 21rj f (-'II [ds) d-s)] -jco )'2 [X2 Aft~r (s) X2 (-s)] + Thus + )'3 [u (s) U _ A2 [b + 1] _ k[b + 1] I 2ab ab (-s)]} ds some manipulation, the integrand be- The constant IP contours for this performance index are shown in Fig. 4 for k == 1.0. We note that for this case, the index of performance is very insensitive to e2 + d 1 == b but very sensitive to el + d l == a. This theoretical conclusion was verified experimentally as may be seen from the trajectories plotted in Fig. 4 for several (eh e2) values. The system trajectories required approximately two and onehalf hours operation to reach the points indicated. The hill-climbing was not completed at this stage but the time was sufficient to illustrate that the system was learning. In this comes A2()'1 + )'3) [ -),I] [_ s + + + -),-2-+-a-2 s )'1 (S2 )'2 + a 2)'1] )'3 + as + b) (S2 - as )'1 + b) + )'3 The IP may be evaluated from standard tables12 to yield _ A2[b()'1 + )'3) +)'2 + a 2)'1] I 2ab Then for given )'h ),2, and ),s, contours of IP may be plotted in the (a, b) plane. I I I I I \ 1"--- 60 l.P. -0;'01 2.!5 hr. corr.ponds to 0 level on Fi9. 3.!5 t =Z.5hr 40 "--- + 1.0 hr. corresponds to C level on Fi,. 3.!5 Z5 I:l • " ' , .'f\. 8 level corr,sponds to 8 lev,1 (.. adaptive steps) on FiV. 3. !5 t·"o:·~~ '-.~""O" o• ~" 20 r- ~ ~ o o /' j/ 0.03 .' ~ . \.t:lI.OIw. .' ~/- - - O.O~ Hillel. .", Trajectory // t:o?~~ 0.10 ..!..1.v.1 .i:Q '\. ·.t=0 40 80 120 Figure 4. Index of Performance for I = k (bat 1) LQ.. 0.2!5 0.5 " 160 200 321 A COMPCTER-SIMULATED ON-LINE EXPERIMENT IN LEARNING CONTROL SYSTEMS 60 3 IP. = 1 0 ~ A A [X~ 2 + U ] dt A A 40 A A B ILl 0 LEVEL A - LEVEL B - AFTER 4 ADAPTIVE STEPS LEVEL C - AFTER I HOUR OPERATION LEVEL D - AFTER 2.5 HOURS OPERATION A INITIAL A PERFORMANCE A Z A <{ A A B :IE a:: 0 B IL. a:: B ILl a.. IL. 0 20 x ILl 0 ~ ( ~ ) (:0) (:: ) Environment probability.06 .06 -06 -06 .04 ·06 I. P. = f 3 o [x~ + u2 ] .04 .04 dt ~z 40~ r <{ :IE a:: o IL. a:: ILl a.. IL. o 20 x o ilr - ILl Z - A CD ~ ~ (:~)(560) (6~) probability .02 .02 ~ INITIAL .04 .04 .06 LEVEL A - LEVEL B - AFTER 4 ADAPTIVE STEPS LEVEL C - AFTER I HOUR OPERATION LEIiEL 0 - AFTE" 2.5 HOURS OPERATlO~ probability PERFORMANCE ~ - ~D ~ ~ ABeD ~ n I-r-- o Environment ~ _04 -04 I I I 1 I 7 (2 0) (;0) (:0) (;0) (:0) 8 (2 0) .02 .02 .02 -06 .02 .02 I (~o) .02 I I 1.- la I I (:0) (5~) .04 .02 I (:0) .06 (:~) probability Figure 5. Learning System Performance. length of time the IP decreased by a factor of approximately six. The improvement in IP for each different (eh e2) pair may also be seen from Fig. 5, which was plotted from computer type-out data as discussed in Appendix A. Note the IP scale in Fig. 5 was not normalized as are the contours in Fig. 4. It is noted that this particular performance index becomes zero as a ~ 00, b ~ 00, and does not have a particular minimum. Thus after sufficient operating time, the d 1 and d2 adjustments would simply reach the maximum values allowed for in the system design (100 and 1000 respectively). It appears that the IP is zero for b == -1 but this value 322 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 of b invalidates the derivation for the IP since Parseval's theorem is valid only for asymptotically stable systems. Fig. 5 is a plot of IP versus (eh e:!) pairs for the index of performance investigated. Four points are plotted for each (eh e2) pair corresponding to four different times in the learning process. Level A represents the IP measured before compensation. The particular sequence of (eh e2) pairs given in this test was such that the first twenty-five pairs seen by the system were all different (from left to right as plotted in Fig. 5). After all twenty-five pairs occurred once, the order of occurrence was no longer the same. Level B represents the IP for each pair after the first four adaptive steps for each (eh e2)' The first sixteen (eh e2) pairs seen by the system were compensated initially and information was stored. The last nine, in order of first appearance, had no information initially stored, and thus showed no improvement. Level C represents the IP after approximately one hour of running. Here it is seen that the system had determined the sixteen (eh e2) pairs occurring most frequently (most probable) and had continuously learned on them. The nine least probable pairs had not improved from their initial values. Level D represents the IP at the conclusion of the test for each pair. Here again, of the sixteen most probable, the ones with highest probability learned faster. Of course adaptation would normally be carried out on all (eh e2) pairs and not just on the 16 most probable. The learning system then operates as an adaptive system when a given (eh e2) pair or environment first occurs, but has the capability of utilizing past information about the best compensation parameter setting when a previously occurring environment reoccurs. In this case, given sufficient operating time, the learning system is capable of reducing the index of performance to the minimum possible value for the 16 most probable (eh e2) pairs (environmental conditions) even though the environment is changing so rapidly that an ordinary adaptive system would fail to improve the index of performance significantly. Concluding Rema'rks Several particular problems currently under investigation are the application of stochastic approximation techniques 1:i,H,lii to hill-climbing when the IP surface is disturbed by noise due to unmeasurable environmental parameters and the application of pattern recognition techniques to measurements of the IP surface in order to increase the rate of learning. Present studies are also concerned with methods of quantizing the environment parameters to yield efficient learning operation subject to the constraint of finite computer memory capacity. The principle of learning outlined in this paper, that is, partial hill-climbing of the IP surface at each occurrence of a particular environment and memorization of the best compensation found for that environment, seems to be a relatively simple idea; and yet, as illustrated by the example, it yields great improvement in the system performance over that for a simple adaptive system. It is felt that this concept of learning control is particularly applicable to process control. Acknowledgement The authors wish to thank Dr. J. E. Gibson for his stimulating discussions. This work is in part supported by the Research Contract AF AFOSR 62-351 and National Science Foundation Grant G-14609. APPENDIX Description of the Computer Program The flow diagrams shown in Figs. 6, 7, and 8 illustrate the system logic and timing. A more detailed examination follows: 1. The (eh e2) values were punched on cards and stored in memory at the beginning of the program. The program did not take advantage of this fact in determining the probability of each (eh e2) pair. 2. The type-out of results was controlled manually by the computer operator by means of a Program Switch. If the switch was on and a cycle of 200 (eh e2) values had been completed, the type-out was performed, except at the beginning of the program where type-out was performed after the first 100 (eh e2) values. A COMPCTER-SIMULATED ON-LINE E:JPERIMENT IN LEARNING CONTROL SYSTEMS Figure 6. Flow Diagram (Part I). Figure 7. Flow Diagram (Part II). 323 324 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 5. If (eb e2)i =1= (eb e2)i-h then memory was searched to see if el had ever occurred previously. Next e2 was checked for previous ocurrence. Then (e h e2) i was assigned an address . where information was stored concerning its probability and location of index of performance and compensation information. The probability was incremented next (actually the number of recorded occurrences for (eh e2) i was increased by one) . 6. At this point memory was organized so that only the sixteen most frequent (eh e2) .pairs had compensation information stored. If (eh e2) i had no information stored, then d 1 and d 2 were set to zero. CHANGE DIRECTION OF dj INCREMENT Figure 8. Flow Diagram (Part III). 3. When 105 (eh e2) values had occurred, the total number of recorded occurrences of each (eh e2) pair was divided by ten and a counter was reset to count the next 10 5 values. Then each new occurrence of a particular (eh e2) pair caused the number of recorded occurrences for that (eh e2) to be increased by one. Thus the more recent occurrences were weighted more heavily. 4. When a new pair, (eh e2), was selected, it was compared to the previous pair, (eh e2)i-l' If they were the same, the search procedure for (eh e2) and its information was bypassed, since the location of information for (eh e2L was the same as for (e h e2)i-l' . As shown in 8 below, an indicator was placed in memory for each (eh e2) pair showing which d j was operated on 1ast. Then the program would operate on the other d j when that (eh e2) pair occurred again. In order for the program to operate on the same d j when an (eh e2) pair occurred twice or more in a row, the indicator was changed when (eh e2)i was determined to be the same as (eh e2)i-l. 7. The following information was stored for the sixteen most probable (eh e2) pairs: a) whether d] or d2 was operated on most recently b) the value of d j (j == 1,.2) that resulted in the best (lowest) IP value c) the slope (direction of change) for d j (j == 1, 2) d) the sign of d j (j == 1,2) e) the best previous value of IP. 8. If information was stored for (e], e2) h the program next determined from an indicator which d j was operated on last. Assume this was d 1 • The stored value of d 1 was then set, and operations commenced on d2. The indicator was then set to show that the program acted on d2 last (see 4 above). Next, the slope was determined. a) If the slopE! was positive, the program added the standard increment, fj, d, to d 2 and the sum was compared with 9999, since this was the maximum setting on the digital potentiometer. If the sum was greater than 9999, then d 2 was set to 9999. If not d2 was set equal to the sum in question. b) If the slope was negative, and d2 was greater than fj,d, then fj,d was subtracted from d 2. If d 2 was less than fj, d, the sign of d 2 was changed and the magnitude of d2 was not changed. The sign of d j was made negative or positive, respectively, by switching an amplifier in or out of the feedback loop (see Fig. 2). If the sign was negative the amplifier was in, thus yielding a subtractive correction. A COMPUTER-SIMULATED ON-LINE EXPERIMENT IN LEARNING CONTROL SYSTEMS c) Note that the previous values of d 1 and d2 were left in memory. The new d j were stored later only if the new IP to be measured was lower than the previously stored value of the IP (see 13 below). 9. The proper values of e}, e2, d 1 and d2 were then set on the analog computer and the IP integrator was set for integration. 10. The step input was generated next, using a comparator on the GEDA. A delay followed, during which the IP was computed. At the end of the delay, the IP was measured and the IP integrator was disconnected and reset to zero. 11. If no information was stored for (et, e2)h the system had completed the cycle and the next (eh e2) pair was obtained. 12. When information was stored for (et, e2) h and if the measured IP was greater than the stored best previous IP, then the slope indicator was changed on dj , so that dj would be incremented in the opposite direction the next time the same (eh e2) pair occurred. If the slope of dj was changed two consecutive times, then the present measured value of IP was stored and d] and d2 were not changed in memory. This procedure was implemented to allow for the possibility that an erroneously low value of IP was stored due to any random noise pulses introduced into the system at some previous time. If the slope of dj had not changed twice consecutively, only the slope indicator was changed in memory and the system had completed the cycle. 13. If the measured value of IP was lower than the stored value, then the measured value, along with the present d 1 and d2 values, were placed in memory and the cycle was complete. References 1. J. K. HAWKINS, "Self-Organizing Systems -A Review and Commentary," Proc. of the IRE, Vol. 49, No.1, January, 1961. 325 4. 0.· G. SELFRIDGE, "Pandemonium: A Paradigm for Learning," Proceedings of the Symposium on Mechanization of Thought Processes, National Physics Laboratory, Teddington, England, Her Majesty's Stationery Office, London, Vol. I, pp. 513-531, 1959. 5. F. ROSENBLATT, "The Perceptron, A Theory of Statistical Separability in Cognitive Systems," Cornell Aeronautical LaDoratory, Tr. No. VG-1196-6-1, January, 1958. 6. B. WIDROW, "Pattern Recognition and Adaptive Control Symposium and Panel Discussion on Discrete and Adaptive Processes," JACC, June, 1962. 7. J. G. TRUXAL, "Adaptive Control," Proceedings of the International Federation of Automatic Control, 1963. 8. E. MISHKIN and L. BRAUN, "Adaptive Control Systems," McGraw-Hill, 1961. 9. G. K. KRUG and E. K. LETSKII, "A Learning Automaton of the Tabular Type," Automation and Remote Control, Vol. 22, No. 10, March, 1962. 10. K. S. Fu, "Learning Control Systems," COINS Symposium, June 17-18, 1963, Evanston, Illinois. 11. J. E. GIBSON, K. S. Fu. et aI., "Philosophy and State of the Art of Learning Control Systems," Report TR-EE63-7, CISL, Purdue University, November, 1963, AFOSR5144. 12. H. M. JAMES, N. B. NICHOLS, and R. S. PHILLIPS, "Theory of Servomechanisms," pp. 369-370, McGraw-Hill, 1947. 13. H. ROBBINS and S. MUNRO, "A Stochastic Approximation Method," Annals of Mathematical Statistics, Vol. 22, 1951, pp. 400407. 2. M. MINSKY, "Steps Toward Artificial Intelligence," Proc. of the IRE, Vol. 49, No.1, January, 1961. 14. J. KIEFER and J. WOLFOWITZ, "Stochastic Estimation of the Minimum of a Regression Function," Annals of Mathematical Statistics, Vol. 23, 1952, pp. 462-466. 3. D. GABOR, W. P. L. WILBY, and R. WOODCOCK, "A Universal Nonlinear Filter, Predictor and Simulator which Optimizes Itself by a Learning Process," lEE Proc., Vol. 108, Part B, 1961, p. 422. 15. H. J. KUSHNER, "Hill-Glimbing Methods for the Optimization of Multi-Parameter Noise Disturbed Systems," Trans. of ASME, Series D, Jour. of Basic Engineering, Vol. 85, No.2, June, 1963. A HEURISTIC PROGRAM TO SOLVE GEOMETRIC-ANALOGY PROBLEMS Thomas G. Evans Air Force Cambridge Research,Laboratories (OAR) Bedford, Massachusetts for College Freshmen of the American Council on Education). Furthermore, if one were required to make explicit the reasoning by which he arrived at his answer, prospects are good that the results would correspond closely to the description of its 'reasoning' produced by INTRODUCTION The purpose of this paper is to describe a program now in existence which is capable of solving a wide class of the so-called 'geometricanalogy' problems frequently encountered on intelligence tests. Each member of this class of problems consists of a set of labeled line drawings. The task to be performed can be concisely described by the question: 'figure A is to figure B as figure C is to which of the given answer figures?' For example, given the problem illus- A I . I I~I At this point, a large number of questions might reasonably be asked by the reader. Four, in particular, are: (i) vVhy were problems of this type chosen as subject matter? (ii) How does ANALOGY go about solving these problems? (iii) How competent is ANALOGY at its subject matter, especially in comparison to human performance? c B I ANALOGY. I ~ Figure 1. (iv) \Vhat has been learned in the construction of ANALOGY and what implications might this study have for the further'development of problem-solving programs in general? trated as Fig. 1, the geometric-analogy program (which we shall subsequently call ANALOGY, for brevity) selected the problem figure labeled 4 as its answer. It seems safe to say that most people would agree with ANALOGY's answer to this problem (which, incidentally, is taken from the 1942 edition of the Psychological Test The remainder of this paper constitutes an attempt to answer these questions in some detail. \Ve first deal with a variety of motivations for this investigation and attempt to place it in the context of other work in related areas. Next we turn to detailed consideration of the problem type and of the mechanism of the ANALOGY program. Finally, we present some answers to 327 328 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 the remaining two questions raised above. (A more detailed discussion of all these issues can be found in Ref. 1). M otivaUons and Background In our opinion ample general justification for the development and study of large heuristic problem-solving programs has been provided (both through argument and through example) by previous workers in this area. We shall not attempt to add to it. Given that one is interested in the construction of such programs, a number of reasons can be advanced for the choice of geometric-analogy problems as a suitable subject matter. Some of these are: (i) Problems of this type require elaborate processing of complex line. drawings: in particular, they require an analysis of each picture into parts and the determination and use of various relationships among these parts. This is an interesting problem per se and one which can reasonably be expected to be of great practical importance in the near future. (ii) The form of the problems requires one to find a transformation that takes figure A into figure B and takes figure C into exactly one of the answer figures. This situation provides a natural opportunity for trying out certain ideas about the use of explicit internal 'descriptions' (here, of both figures and transformations) in a problem-solving program. Furthermore, more speculatively, it presents an interesting paradigm of 'reasoning by analogy,' a capacity which may playa large role in far more sophisticated problem-solving programs in the future. (In Section 5 we discuss the possible relevance of ANALOGY to the introduction into problemsolving programs of more powerful learning mechanisms than have yet been achieved.) (iii) Problems of this type are widely regarded as requiring a considerable degree of intelligence for their solution and in fact are used as a touchstone of intelligence in various general intelligence tests used for college admission and other purposes. This suggests a non-trivial aspect of any attempt to mechanize their solution. We shaD now attempt very briefly to place ANALOGY in the context of earlier work in re- lated areas. Two aspects of ANALOGY must be considered: (i) ANALOGY contains a substantial amount of machinery for the processing of representations of line drawings, including decomposition into subfigures, calculation of relations between figures, and 'pattern-matching' computations. Thus we must relate it to other work in picture processing and pattern recognition. (ii) ANALOGY is a complex heuristic problem-solving program, containing an elaborate mechanism for finding and 'generalizing' transformation rules. Thus we must relate it to other work on the development of problem-solving programs. We turn first to the picture-processing aspect. The essential feature of the treatment of line drawings by ANALOGY is the construction, from relatively primitive input descriptions, of more 'abstract' descriptions of the problem figures in a form suitable for input to the rulefinding program. The fundamental programming technique underlying this method is the use of a list-processing language, in this case LISP,2,3 to represent and process the figures in question. Work in picture processing, for pattern-recognition purposes, involving some elements of description, is found in Grimsdale et al.;t Marill et al.,ri and Sherman/i among others. Sutherland 7 and Roberts R have used, for quite different purposes, internal representations of line drawings similar in some respects to those used in ANALOGY. Kirsch 9 has worked with complex line drawings primarily as a vehicle for programs involving the analysis of Englishlanguage sentences pertaining to such pictures. Hodes 10 and Canaday 11 have used LISP expressions for figure description in much the same way that we have, though the development of machinery for manipulating such descriptions was, of necessity, carried much further in ANALOGY. Evidently the first advocacy of 'scene description' ideas (for use in pattern recognition) occurs in Minsky.l:! To place ANALOGY with respect to other work with problem-solving programs, we shall simply list a number of developments in the construction of problem-solving programs which have influenced, in ageneral way, our approach to the design of ANALOGY. These include LT A HEURISTIC PROGRAM TO SOLVE GEOMETRIC-ANALOGY PROBLEMS 329 (the Logic Theorist) Ii! and, more recently, GPS (the General Problem Solver) 14 of Newell, Simon, and Shaw, the plane-geometry theoremprover Jr; of Gelernter and Rochester, and SAINT, the formal integration program of Slagle. w Summary of the Solution Process, with Example To exhibit as clearly as possible the entire process carried out by ANALOGY, we now sketch this process, then examine its operation on an example. The sample problem we shall be considering is shown as Fig. 2 (where the Pi's are not part of the problem figures but labels keying the corresponding parts of the figures to cases, including ,the example to be discussed below, was quite simple. It merely separated a problem figure into its connected subfigures; e.g., figure A of the above example consists of the three objects labeled PI, P2, and P3. It later became desirable to have a more sophisti- B A I Figure 3a. 2 3 4 5 ~~~!3Jrl Figure 3b. Figure 2. expressions we shall give below). Before treating the example, we shall summarize the entire solution process. Given a problem such as that above, ANALOGY proceeds as follows: First, the input descriptions of the figures are read. Currently these descriptions, given as LISP expressions in a format to be illustrated below, are hand-made; however, they could well be mechanically generated from scanner or lightpen input by a relatively straightforward, quite 'unintelligent' program embodying line-tracing techniques already described in the literature. The descriptions represent the figures in terms of straight line segments and arcs of circles Xto any desired accuracy, at the cost of longer and longer expressions). Examples of the descriptions are given below. The first step taken by ANALOGY is to decompose each problem figure into 'objects' (subfigures). The decomposition program originally written, which was sufficient to handle many cated decomposition program with, in particular, the capability of separating overlapped objects on appropriate cues. For example, suppose problem figure A is as in Fig. 3a and figure B is as in Fig. 3b. The decomposition program should be able to separate the single object of figure A into the triangle and rectangle on the basis that they appear in figure B, from which point the remaining mechanism of parts I and II could proceed with the problem. While a decomposition program of the full generality desirable has not yet been constructed, the most recent version of the program is capable, in particular, of finding all occurrences of an arbitrary simple closed figure x in an arbitrary connected figure y; for each such occurrence the program can, if required, separate y into two objects: that occurrence of x and the rest of y (described in the standard figure format-note that this 'editing' can be rather complex: connected figures can be split into non-connected parts, etc.). 330 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 The type of decomposition illustrated above might be called 'environmental,' in that, e.g., figure A is separated into subfigures on the information that these subfigures are present, already separated, in figure B. An interesting extension to the present part I of ANALOGY might be to incorporate some form of 'intrinsic' Figure 4a. decomposition in which 'most plausible' decompositions are generated according to Gestaltlike criteria of 'good figure.' Such an extension could widen the problem-solving scope of AN ALOGY considerably to include many cases where the appropriate subfigures do not appear already 'decomposed' among the problem figures. For example, suppose problem figures A and B are as shown in Figs. 4a and 4b, respec- o Figure 4b. tively. A decomposition into the square, triangle, and circle seems necessary to state a reasonable transformation rule. This example, incidentally, illustrates one potentially useful 'intrinsic' decomposition heuristic: roughly, choose decompositions into subfigures which have as much internal symmetry (in some precise sense) as possible. Next, the 'objects' generated from the decomposition process are given to a routine which calculates a specified set of properties of these objects and relations among them. The program is designed so that this set can be changed easily. As a sample of a relation-calculating subroutine, we cite one that calculates, for figure A of our example, that the object labeled P2 lies inside that labeled P3 and generates a corresponding expression (INSIDE P2 P3) to be added to the part I output description of figure A. The method used involves calculating all intersections with P3 of a line segment drawn from a point on P2 to the edge of the field (all figures are considered as drawn on a unit square). In this case P2 lies inside P3 since the number of such intersections is odd, namely one (and P3 is known to be a simple closed curveif it were not, the calculation just described would be performed for each closed curve contained in P3). To do this, a substantial repertoire of 'analytic geometry' routines is required for part I, to determine, for example, intersections of straight line segments and arcs of circles in all cases and combinations. Other relation routines available in part I calculate, for example, that in figure A of our example PI is above P2 and P3 and in figure B that P4 is to the left of P5. The principal business of part I, aside from decomposition and the property and relation calculations, is a set of 'similarity' calculations. Here, part I determines, for each appropriate pair of objects, all members from a certain class T of transformations which carry one object of the pair into the other. The elements of Tare compositions of Euclidean similarity transformations (rotation and uniform scale change) with horizontal and vertical reflections. Given descriptions of virtually any pair of arbitrary line-drawings x and y, the routines of part I will calculate the parameters of all instances of transformations from T that 'map' x into y. A HEURISTIC PROGRAM TO SOLVE GEOMETRIC-ANALOGY PROBLEMS More precisely, an acceptable 'map' is a member of T for which T (x) is congruent to y up to certain metric tolerances which are parameters in the corresponding programs. This routine is, in effect, a pattern-recognition program with built-in invariance under scale changes, rotations, and certain types of reflections. It consists essentially of a topological matching process, with metric comparisons being made between pairs of lines selected by the topological process. In Ref. 6 Sherman introduced some topological classification into a sequential decision tree program for the recognition of hand-printed letters, but the notion of systematically usi~g the topological information to determine which metric comparisons ~re to be made seems to be new. This type of organization for pattern recognition has its own advantages (e.g., flexibility-the metric parts can be changed easily with no effect on the overall structure) and difficulties (e.g., sensitivity to metrically small changes in a figure which affect the connectivity-but this sensitivity can be largely removed by suitable pre-processing). Incidentally, it may be worth noting that if we suppress the metric comparisons entirely we get a general, and reasonably efficient, topological equivalence algorithm for graphs (networks) . The set of techniques we have just been describing, based on the use of a list-processing language to perform processing of line drawings by manipulating their list-structured descriptions, is by no means limited in applicability to the uses to which we have put it in part I of ANALOGY. To the contrary, it is our view that the representation of line drawings used here and the corresponding processing routines form a suitable basis for the development of a quite powerful 'line-drawing-manipulation language' with potential usefulness in a wide variety of applications. Regardless of whether the present investigation turns out to have a measurable influence on the art of designing problem-solving programs, it seems probable that the principal short-range contribution of ANALOGY is in the picture-processing by-products just described. (Incidentally, these techniques were discussed briefly from an ANALOGY-independent point of view in Ref. 17.) 331 After the similarity information is computed for every required pair of objects, both within a problem figure and between figures, this information, together with the decomposition and property and relation information, is punched out on cards in a standard format for input to part II. (For a typical set of figures, the total output of part I, punched at up to 72 columns/ card, might come to 15 to 20 cards.) Part II is given these cards as input. Its final output is either the number of the solution figure or a statement that it failed to find an answer. Its first step is to generate a rule (or, more frequently, a number of alternate rules) transforming figure A into figure B. Such a rule specifies how the objects of figure A are removed, added to, or altered in their properties and their relations to other objects to generate figure B. Once this set of rule possibilities has been generated, the next task is to 'generalize' each rule just enough so that the resulting rules still take figure A into figure B and now take figure C into exactly one of the answer figures. More precisely, for each 'figure A ~ figure B' rule and for each answer figure, part II attempts to construct a 'common generalization' rule which both takes figure A into figure Band figure C into the answer figure in question. This process may produce a number of rules, some very weak in that virtually all the distinguishing detail has been 'washed out' by 'generalization.' Hence it is necessary at this point to pick the 'strongest' rule by some means. This entire process requires a complex mechanism for manipulating and testing the rules and deciding which of the several rule candidates, the results of different initial rules or of different 'generalizations,' is to be chosen. The principal method embodied in part II at present is able to deal quite generally with problems in which the numbers of parts added, removed, and matched in taking figure A into figure B are the same as the numbers of parts added, removed, and matched, respectively, in taking figure C into the answer figure. A substantial majority of the questions on the tests we have used are of this type, as is our present example; virtually all would be under a sufficiently elaborate decomposition process in part I; this restriction still permits a wide variety o-f transformation rules. It should be mentioned 332 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 that the methods of part II have been kept subject.;.matter free; no use is made of any geometric meaning of the properties and relations appearing in the input to part II. The more detailed workings of both parts I and II are best introduced through examining the process sketched above at work on our example. To convey some further feeling for the nature of the input to part I, we exhibit part of it, namely, the input description of figure A. The LISP expressions look like: (DOT (0.4 . O.S» (See «0.3 . 0.2) 0.0 (0.7 . 0.2) 0.0 (0.5 . 0.7) 0.0 (0.3.0.2») (see «0.4 . 0.3) 0.0 (0.6 . 0.3) 0.0 (0.6 . 0.4) 0.0 (0.4 . 0.4) 0.0 (0.4 . 0.3») ) The first line above corresponds to the dot (at coordinates x == 0.4 and y == O.S on the unit square; the coordinate pairs in the other expressions are interpreted analogously). The next two lines correspond to the triangle (See stands for simple closed curve. All connected figures are divided into three classes-dots (DOT), simple closed curves (SeC), and all the rest (REG). This is solely for reasons of programming convenience; no other use is made of this three-way classification). Each nonconnected figure is represented simply by a list of descriptions of its connected parts. A curve (which may consist of an arbitrary sequence of elements chosen from straight line segments and arcs of circles) is represented by a list in which coordinate pairs alternate with the curvatures of the line elements between (all curvatures are zero here since the lines in question are all straight). Similarly, the next two lines above correspond to the rectangle; the entire description of figure A is then a list of the descriptions of these three parts. The format corresponding to the non-SeC figures like the Z-shaped subfigure of figure e is similar though somewhat more complex; it looks like: (REG «VI V2 (0.0 (0.55 . 0.5) 0.0 (0~45 . 0.3) 0.0» (V2 VI (0.0 (0.45 . 0.3) 0.0 (0.55 . 0.5) 0.0) ) ) ) where VI and V2 are the two vertices (here, endpoints) of the figure. The coordinates of VI and V2 are given to part I in a separate list. They are VI == (0.45 . 0.5), V2 == (0.55 . 0.3). Here, the top-level list describes the connectivity by stating which vertices are connected to which and how often-sublists describe in detail the curves making these connections. (By vertex we mean either an endpoint of a curve or a point at which three or more curves come together.) The complete details of the input format are given in Ref. 1, along with many examples. When the input shown above corresponding to problem figure A and the corresponding inputs for the other seven figures are processed, the output from part I is, in its entirety, the ten LISP expressions shown below. For brevity, all similarity information concerning non-null reflections has been deleted. Also, we have replaced the actual arbitrary symbols generated internally by ANALOGY as names for the parts found by the decomposition program by the names PI, P2, etc., which appear as labels on our example figures above. The ten output expressions are: (1) «PI P2 P3) . «INSIDE P2 P3) (ABOVE PI P3) (ABOVE PI P2) ) ) (2) «P4 P5) . «LEFT P4 P5») (3) «P6 P7 PS) . «(INSIDE P7 P6) (ABOVE P8 P6) (ABOVE PS P7») (4) «P2 P4 «(1.0 . 0.0) . (N.N» «1.0. 3.14) . (N.N»» (P3 P5 « (1.0 . 0.0). (N.N»») (5) «PI PS «(1.0 .0.0) . (N.N»») (6) NIL (7) ( (P9 PIO PII) (PI2 PI3) (PI4 PI5) (PI6 PI7) (PIS) ) (S) ( «INSIDE PIO P9) ABOVE PII P9) (ABOVE PII PIO» «LEFT PI2 PI3» «(INSIDE PI5 PI4» «ABOVE PI7 PI6» NIL) (9) ( «P6 P9 « (1.0 . 0.0) . (N.N»» (P7 PIO « (1.0 . 0.0) . (N.N» «1.0 . -3.14) . (N.N»» (PS PII « (1.0 . 0.0) . (N.N»») A HEURISTIC PROGRAM TO SOLVE GEOMETRIC-ANALOGY PROBLEMS «P6 PI3 « (1.0 . 0.0) . (N.N»») (P7 PI2 « (1.0 . 0.0) . (N.N» «1.0 .-3.14) . (N.N»») «P6 PI4 « (1.0 . 0.0) . (N.N»» (P7 PI5 « (1.0 . 0.0) . (N.N» «1.0 . -3.14) . (N.N»») «P6 PI6 « (1.0. 0.0) . (N.N»» (P8 PI7 « (1.0 . 0.0) . (N.N»») «P7 PI8 « (1.0.0.0) . (N.N» -3.14) . (N.N.»») ) «1.0. (10) ( ( «PI P1I «(1.0.0.0) . (N.N»») NIL NIL «PI PI7 «(1.0 . 0.0) . (N.N»») NIL) . (NIL NIL NIL NIL NIL) ) To explain some of this: The first expression corresponds to figure A. It says figure A has been decomposed into three parts, which have been given the names PI, P2, and P3. Then we have a list of properties and relations and similarity information internal to figure A, namely, here, that P2 is inside P3, PI is above P2, and PI is above P3. The next two expressions give the corresponding information for figures B about Euclidean similarities between figure A and figure B. For example, P3 goes into P5 under a 'scale factor = 1, rotation angle = 0, and both reflections null' transformation. The next two expressions contain the corresponding information between figure A and figure C and between figure B and figure C, respectively. The seventh list is a five-element list of lists of the parts of the five answer figures; the eighth a five-element list of lists, one for each answer figure, giving their property, relation, and similarity information. The ninth is again a fiveelement list, each a 'similarity' list from figure C to one of the answer figures. The tenth, and last, expression is a dotted pair of expressions, the first again a five-element list, a 'similarity' list from figure A to each of the answer figures, the second the same from figure B to each of the answer figures. This brief description leaves certain loose ends, but it should provide a reasonably adeq,uate notion of what is done by part I in processing our sample problem. The ten expressions above are given as arguments to the top-level function of part II 333 (optimistically called solve). The basic method employed by solve, which suffices to do this problem, begins by matching the parts of figure A and those of figure B in all possible ways compatible with the similarity information. From this process, it concludes, in the case in question, that P2 ~ P4, P3 ~ P5, and PI is removed in going from A to B. (The machinery provided can also handle far more complicated cases, in which alternate matchings are possible and parts are both added and removed.) On the basis of this matching, a statement of a rule taking figure A into figure B is generated. It looks like: ( (REMOVE Al «ABOVE Al A3) (ABOVE Al A2) (SIM OB3 Al « (1.0 . 0.0) . (N.N») ») (MATCH A2 « (INSIDE A2 A3) (ABOVE Al A2) (SIM OB2 A2 « (1.0 . 0.0) . (N.N»») . «LEFT A2 A3) (SIM OB2 A2 « (1.0 . 0.0) . (N.N» «1.0 . 3.14) . (N.N»» (SIMTRAN « (1.0 . 0.0) . (N.N» «1.0 . 3.14) . (N.N) I»~»~) (MATCH A3 « (INSIDE A2 A3) (ABOVE Al A3) (SIM: OBI A3 « (1.0 . 0.0) . (N.N»») . «LEFT A2 A3) (SIM OBI A3 « (1.0 . 0.0) . (N.N»» (SIMTRAN « (1.0 . 0.0) . (N.N) I»~»~) ) The A's are used as 'variables' representing objects. The format is rather simple. For each object added, removed, or matched, there is a list of the properties, relations and similarity information pertaining to it. (In the case of a matched object, there are two such lists, one pertaining to its occurrence in figure A and the other to its occurrence in figure B.) There are two special devices; the (SIM OBI ... ) - form expressions give a means of comparing types of objects between, say, figure A and figure C; the other device is the lIse of the SIMTRAN expressions in the figure-B list for each matched object. This enables us to handle conveniently some additional situations which we shall omit from consideration, for brevity. They are treated in detail in Ref. 1. 334 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 The above rule expresses everything about figures A and B and their relationship that is used in the rest of the process. (The reader may verify that the rule does, in some sense, describe the transformation of figure A into figure B of our example.) Next, a similarity matching is carried out between figure C and each of the five answer figures. Matchings which do not correspond to the ones between figure A and figure B in numbers of parts added, removed, and matched, are discarded. If all are rej ected this method has failed and solve goes on to try a further method. In the present case, figures I and 5 are rejected on this basis. However, figures 2, 3, and 4 pass this test and are examined further, as follows. Choose an answer figure. For a given matching of figure C to the answer figure in question (and solve goes through all possible matchings compatible with similarity) we take each 'figure A -7 figure B' rule and attempt to fit it to the new case, making all matchings between the A's of the rule statement and the objects of figure C and the answer figures which are compatible with preserving add, remove, and match categories, then testing to see which information is preserved, thus getting a new, 'generalized' rule which fits both 'figure A -7 figure B' and 'figure C -7 the answer figure in question.' In our case, for each of the three possible answer figures we get two reduced rules in this way (since there are two possible pairings between A and C, namely, PI ~ P8, P2~P6, and P3 ~ P7, or PI ~ P8, P2 ~ P7, and P3 ~ P6). In some sense, each of these rules provides an answer. However, as pointed out earlier, we want a 'best' or 'strongest' rule, that is, the one that says the most or is the least alteration in the original 'figure A -7 figure B' rule and that still maps C onto exactly one answer figure. A simple device seems to approximate human opinion on this question rather well; we define a rather crude 'strength' function on the rules and sort them by this. If a rule is a clear winner in this test, the corresponding answer figure is chosen; if the test results in a tie, the entire method has failed and solve goes on to try something else. In our case, when the values for the six rules are computed, the winner is one of the rules corresponding to figure 2, so the program, like all humans so far consulted, chooses it as the answer. The rule chosen looks like this: ( (REMOVE Al «ABOVE Al A3) (ABOVE Al A2) (SIM OB3 Al « (1.0 . 0.0) . (N.N) ) ) ) » (MATCH A2 « (INSIDE A2 A3) (ABOVE Al A2» . «LEFT A2 A3) (SIMTRAN ( «1.0 . 0.0) . (N.N» «1.0. 3.14) . (N.N) ) ) ) ) ) ) (MATCH A3 « (INSIDE A2 A3) (ABOVE Al A3» . «LEFT A2 A3) (SIMTRAN «(1.0.0.0) . (N.N»»») Again, it is easy to check that this rule both takes figure A into figure B and figure C into figure 2, but not ~nto any of the other answer figures. Further Examples and Comments (a) Examples We first exhibit several additional examples of problems given to ANALOGY: (i) (See Fig. 5) A 00 Figure 5. Here the rule involves changes in the relations of the three parts. ANALOGY chose answer figure 3. (ii) (See Fig. 6) This case involves both addition and removal of objects. ANALOGY chose answer figure 2. (iii) (See Fig. 7) 335 A HEURISTIC PROGRAM TO SOLVE GEOMETRIC-ANALOGY PROBLEMS c B A ~ ~ I 2 3 4 c B OJ U [±J 5 ~~§]~~ I 2 3 4 []0[±JG~ Figure 6. Figure 8. c A A c B [§] I 2 :3 5 4 B 2 5 3 5 4 [QJ@]~GE9 Figure 7. Figure 9. Note that this case required the more powerful decomposition program. Here ANALOGY chose figure 3. (iv) (See Fig. 8) The rule here simply involved a rotation. AN ALOG Y chose figure 2. fore, the outer object is removed and the inner one enlarged. This illustrates some of the flexibility of the procedure and the dependence of the answer choice on the range of allowed answers as well as on A, B, and C. (v) Here is an example of a failure by ANAL0Gy to agree with the human consensus which favors figure 5. ANALOGY chose figure 3. (See Fig. 9) Here ANALOGY chose figure 3, using an extension of the part II techniques discussed above. This extension, employed after failure of the basic process, involves systematic substitution of certain specified relations (e.g., LEFT for ABOVE) for others in the part II input descriptions, thus making it possible for ANALOGY to relate the 'vertical' transformation taking A into B to the 'horizontal' transformation of C into 3. (vi) In the problem of Fig. 1, the large circle of answer figure 4 was replaced by a large square and the problem rerun. Again figure 4 was chosen but by a different rule. Now, instead of the inner object being removed, as be- (vii) (See Fig. 10) A B Figure 10. c 336 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1964 C01nparison with Human Performance We can only roughly compare the performance of ANALOGY with that of humans on geometric-analogy problems, since ANALOGY has not yet been given the complete set of such problems from any test for which scores are available. However, as some indication, we cite scores on the ACE tests based on a period of years including those editions of the test from which most of the problems on which AN ALOG Y was tested were selected. These scores are for a large population of college-preparatory students; the median score, on a test consisting of- 30 such questions, ranged from 17 for 9th grade to 20 for 12th grade. pur estimate is that, on the same tests, ANALOGY, as it currently exists, could solve between 15 and 20 problems. Given, in addition, certain changes (mostly in part I, e.g., a more powerful decomposition program and additional properties and relations) for which we have reasonably wellworked-out implementations in mind, AN ALOGY should be capable of perhaps 25 successful solutions. (b) (c) The Use of LISP The use of a list-processing language to construct the ANALOGY program appears to have been a suitable choice; most notably, its capability at handling intermediate expressions of unpredictable size and 'shape' (such as our figure descriptions and transformation rules) is of great value. We especially wish to praise LISP as a convenient and elegant language in which to write and debug complex programs. The ease of composition of routines, the highly mnemonic nature of the language, and the good tracing facilities all contribute greatly to effective program construction. In return for the use of such a language one pays a certain price in speed and storage space, which, in the case of ANALOGY, at least, was a very acceptable bargain, since the necessity of machine-language coding would have made the entire project unfeasible. Incidentally, the ANALOGY program (apparently the largest program written in LISP to date) is so large that parts I and II must occupy core separately. The consequent limited (and one-way) communication between the parts was a serious design constraint but proved to have some compensating advantages in simplicity. ANALOG Y and Pattern-Recognition in Problem-Solving Programs In this section we shall consider certain aspects of the design of problem-solving machines. To aid this discussion we shall specify (rather loosely) a subclass of problem-solving machines and carry out our discussion in terms of these though the ideas involved are by no means limited in applicability to this class. The machines we have in mind are typified by GPSl-l in that the problem to be solved by the machine is to transform one specified 'object' or 'situation' (whatever this may mean in a particular subject-matter context) into another by applying an appropriate sequence of transformations chosen from a class available to the machine. A wide variety of problems may be cast in this form (again see Ref. 14 or other discussions of GPS by the same authors). As in GPS, subgoals may be generated and attacked by such a machine and elaborate schemes of resource allocation may be required. However, these aspects do not concern us here. Our interest lies in the basic task of the machine; given a pair of 'objects,' it must choose an 'appropriate' transformation, i.e., one contributing to the goal of transforming one of the given 'objects' into the other. It is a widely-held view, with which we agree completely, that for a machine to be capable of highly intelligent behavior on a task of this kind, in a rich environment of objects and transformations (and, in particular, to be capable of learning at a level more advanced than that of present machines), the critical factor is that it have a good internal representation of both its subject matter ('objects') and its methods ('transformations'), as well as an elaborate set of 'pattern-recognition' techniques for matching transformations to object pairs. Probably this means a quite 'verbal' representation of both objects and transformations as expressions in suitable 'description languages.' Furthermore, these matching techniques must be represented in a form in which they themselves are capable of being improved as the machine gains experience. The central role which 'pattern-recognition' techniques must play in sophisticated problem-solving programs and the corresponding importance for effective learning of autonomous improvement in the perform- A HEURISTIC PROGRAM TO SOLVE GEOMETRIC-ANALOGY PROBLEMS ance of these techniques are well expressed in Minsky.I 2 There we find: In order not to try all possibilities a resourceful program must classify problem situations into categories associated with the domains of effectiveness of the machine's different methods. T~ese pattern-recognition methods must extract the heuristically significant features of the objects in question. Again from Ref. 12 we have: Again from 12 we have: In order to solve a new problem one uses what might be called the basic learning heu,ristic-first try using methods similar to those which have worked, in the past, on similar problems. Here, the problem is, of course, to have pattern-recognition techniques possessing, or able themselves to learn, criteria of 'similarity' appropriate to the subject matter in question. The 'fixed-length property-list' schemes (see Ref. 12) which characteristically have been used to perform this pattern-recognition task in current problem-solving programs have two principal defects which limit their extension to harder problems: (i) ""hile, in principie, given enough sufficiently elaborate properties, one can make arbitrarily fine discriminations, in practice a given set of properties will begin to fail rapidly as situations become more complex. In particular, for 'situations' which must be treated as consisting of interrelated parts, the 'global' nature of the scheme in question leaves it helpless. (ii) Such a scheme is very limited in its learning capabilities, since it has access to very little information about its component properties; in particular, it is incapable of "knowledgeably' modifying its tests or adding new ones-it can only modify the weightings given to the results of these tests in its 'decisions.' In view of the limitations of the 'propertylist' pattern-recognition scheme just mentioned, we can formulate some requirements for a pattern-recognition scheme suitable tc replace it as a 'transformation-selecting' mechanism. First, the scheme must have access to a representation of each 'object' in terms of a 'descriptive framework' for the subject matter in 337 question which is suitable in that useful relationships between 'objects' can be extracted relatively simply-from the corresponding representations. Furthermore, the transformationselecting rules of the pattern-recognition apparatus should themselves be expressed in a representation suitable for a 'learning mechanism' to revise the set of rules (i) by adding new rules and deleting those old ones which prove least useful as experience associates certain object pairs with certain transformations and (ii) by replacing a set of particular rules by a 'common generalization' rule again represented in the same language. Such f