Why Programming Is a Glorious Medium for Expressing Poorly Understood Solutions (1967)

WHY PROGRAMMING IS A GOOD MEDIUM FOR EXPRESSING POORLY UNDERSTOOD AND SLOPPILY­FORMULATED IDEAS Marvin Minsky MIT This is a slightly revised version of a chapter published in Design and...

WHY
PROGRAMMING IS A GOOD MEDIUM FOR EXPRESSING POORLY UNDERSTOOD AND SLOPPILY­FORMULATED
IDEAS

Marvin
Minsky

MIT

That is a rather revised model of a chapter published in
Create and Planning II — Pc methods in Create and Communication
, (Martin Krampen and Peter Seitz,
eds.), Visible Committee Books, Hastings Home Publishers, Fresh York, 1967.

There is a most standard, frequent perception that computers can
place easiest what they’re programmed to place. This incorrect perception is essentially based completely on a
confusion between develop and say material. A inflexible grammar need no longer place for precision
in describing processes. The programmer must be very staunch in following the
computer grammar, nonetheless the say material he wants to be expressed remains free. The
grammar is inflexible thanks to the programmer who makes exhaust of it, no longer thanks to the computer.
The programmer would now not even have to be staunch in his comprise concepts‑he can also unbiased appreciate a
vary of acceptable computer answers in concepts and may per chance be say material if the
computer’s answers place no longer step out of this vary. The programmer would now not appreciate
to fixate the computer with particular processes. In a vary of uncertainty he
can also unbiased search files from the computer to generate unusual procedures, or he can also unbiased suggest concepts of
selection and offers the computer advice about which decisions to place. Thus,
computers place no longer have to be programmed with extremely certain and staunch
formulations of what’s to be executed, or the valid approach to place it.

=====

The argument supplied here is no longer particularly about
“develop,” nonetheless about the normal ask of what we are succesful of fetch computers
to lend a hand us place. For a ramification of reasons, it’s veteran to underestimate the
possibilities. To commence up, I are making an strive to warn in opposition to the pitfall of accepting the
it appears to be like “life like” positions taken by many these that mediate they
understand the project. Science‑fiction writers, scientists of all descriptions,
economic forecasters, psychologists, and even logicians characterize us in most cases, and place
it a convincing myth, that computers will in no scheme basically mediate. “We must
no longer descend into anthropomorphic ways of alive to about machines; they place easiest
what their programs impart; they can’t be normal or inventive.”
We have got all heard these views, and
most of us accept them.

It’s miles simple to acquire why a humanist will are making an strive to
rhapsodize about the obscurity of belief processes, for there may per chance be a actually easy non
sequitur
between
that obscurity and the desired an anthropomorphic strong level. But this is rarely basically
the non sequitur
significant
here. The fallacy below discussion is the frequent superstition that we cannot
write a pc program to place something except one has an especially certain,
staunch system of what’s to be done, and precisely the valid approach to place it. This
superstition is propagated no longer no longer up to as much by scientists—and even by
“computer scientists”—as by humanists.

What we’re told, about the barriers of computers,
in most cases takes this traditional develop: “A pc can no longer impact. It may per chance well well place easiest
precisely what it’s told. Unless a process is formulated with ideal precision,
you cannot place a pc place it.” Now here’s perfectly correct in one
sense, and it’s absolutely incorrect in one more. Before explaining why, it’s
attention-grabbing to repeat that ‑ prolonged earlier than computers ‑ the same change into said of the
Devil: he may per chance easiest seem like inventive.

In the September 1966 exclaim of Scientific American, I talked about three programs: one is
the checkers program of Samuel, which plays at the master stage. One other is
the ANALOGY program of Evans, which does very neatly on certain intelligence‑take a look at
concerns of recognizing analogous relatives between geometric figures. The
third is this technique “STUDENT” of Bobrow, which takes excessive college
algebra “myth” concerns given in English:

Mary is twice as extinct as Ann change into when Mary change into as extinct as
Ann is now. If Mary is 24 years extinct, how extinct is Ann?

and solves some, nonetheless no longer all of them. In that article I change into
alive to about concerns of going extra, to lengthen such work in the direction
of more versatile traditional intelligence. But for my motive here, they can back
as enough examples even of their display conceal negate, for whereas tiny in what
they can deal with, they already place enough to confound the extinct relaxed
superstitions.

The extinct peep is that a program is “nothing nonetheless” a
negate of inflexible concepts for precisely what to place in every project. That is indeed a
priceless level of peep for reassuring inexperienced persons at programming, or for inspecting
the programs written by inexperienced persons. Nonetheless, for more superior processes, whereas
“perfectly” correct in one sense, it’s miles also as correct to assert that
“properties are nothing nonetheless arrangements of constructing materials” or
“books are merely prolonged strings of words.” Indeed, a review of my
Scientific American article (in Pc Reviews 8, 1, Jan. 1967) asserts that
these programs are fabricated from “dictionary lookup routines, sequences of
search and comparison functions, and form-merge form operations.”

LOGIC AND CONSISTENCY

Let me
commence up by discussing one amongst the skeptical attitudes that is derived from some
statements of true logicians and irascible philosophers. We are told that certain
theorems about proving the self‑consistency of logical methods appreciate the
final result: “It’s not doubtless to mechanize utterly the approach of
discovery and due to this truth folks will consistently appreciate the advantage over
machines.” I am obvious virtually every reader has heard of Godel’s theorem, and
most appreciate heard of this alleged final result. But here’s no longer a logical
final result, for it’s essentially based completely on a slipshod technical oversight. If relevant
at all to the exclaim‑fixing ask, Godel’s theorem applies strictly easiest
to perfectly self‑constant logical methods. Folks are no longer this constant,
and there may per chance be rarely any motive whatever why we are succesful of also unbiased level-headed feel constrained to develop our
machines alongside such lines. As one more we are succesful of, and already place, develop machines that
can tolerate contradictory factual assertions. To place this, we now appreciate to add
selection concepts for resolving contradictions, priority hierarchies for deciding on
between incompatible statements, and the worship. A easy example of this form of
map is described in Bertram Raphael’s 1964 MIT PhD dissertation. Right here is an
example of a dialog with that program:

à       EVERY
BOY IS A PERSON


(I UNDERSTAND)


à       A
FINGER IS PART OF A HAND


(I UNDERSTAND)


à       EACH
PERSON HAS TWO HANDS


THE ABOVE SENTENCE IS AMBIGUOUS •• PLEASE REPHRASE IT)


à       THERE
ARE TWO HANDS ON EACH PERSON


(I UNDERSTAND)


à       HOW
MANY FINGERS DOES JOHN HAVE?


(I DON’T KNOW WHETHER FINGER IS PART OF JOHN)


à       JOHN
IS A BOY


(I UNDERSTAND)


à       HOW
MANY FINGERS DOES JOHN HAVE?


(HOW MANY FINGERS PER HAND?)


à       EVERY
HAND HAS 5 FINGERS)


(I UNDERSTAND)


à       HOW
MANY FINGERS DOES JOHN HAVE?


(THE ANSWER IS 10)


à       HOW
MANY AUTOMOBILES DOES JOHN HAVE?


THE ABOVE SENTENCE IS AMBIGUOUS. PLEASE RE-PHRASE IT)


à       WHO
IS PRESIDENT OF THE UNITED STATES?)


(STATEMENT FORM NOT RECOGNIZED)


à       THE
B0Y IS JUST TO THE LEFT OF THE TABLE


(G02840 IS A TABLE)


(I UNDERSTAND)


à       THE
LAMP IS JUST TO THE LEFT OF THE TABLE


(G02841 IS A LAMP)


(THE ABOVE STATEMENT IS IMPOSSIBLE)


à       THE
TABLE IS TO THE RIGHT OF THE CHAIR


(G02842 IS A CHAIR)


(I UNDERSTAND)


à       WHAT
IS THE RELATIVE POSITION OF A PERSON?


(THE LEFT-TO-RIGHT ORDER IS AS FOLLOWS)


(CHAIR BOY TABLE))

Raphael’s
files‑collecting, ask‑answering system shows the scheme it offers better
priority to particular info after they war with traditional concepts. This
“Exception Precept” is, obviously, a rather easy‑minded approach to
resolve contradictions, and it may per chance probably also very neatly be easiest aged when there may per chance be a transparent
distinction in stage of generality between the statements. After they’re on the
same stage, this technique merely rejects the later commentary, as considered here:

à       THERE
ARE 5 FINGERS ON EVERY HAND)

(I UNDERSTAND)

à       THERE
ARE TWO HANDS ON A PERSON

(I UNDERSTAND)

à       A
BOY IS A PERSON

(I UNDERSTAND)

à       TOM
IS A BOY

(I UNDERSTAND)

à       DICK
IS A BOY

(I UNDERSTAND)

à       HARRY
IS A BOY

(I UNDERSTAND)

à       TOM
HAS NINE FINGERS

(THE ABOVE SENTENCE IS AMBIGUOUS •• BUT I ASSUME (HAS)
MEANS (HAS AS PARTS))

(I UNDERSTAND)

à       DICK
HAS ONE HAND

(THE ABOVE SENTENCE IS AMBIGUOUS •• BUT I ASSUME (HAS)
MEANS (HAS AS PARTS))

(I UNDERSTAND)

à       HOW
MANY FINGERS DOES TOM HAVE?

(THE ANSWER IS 9)

à       HON
MANY FINGERS DOES DICK HAVE?

(THE ANSWER IS 5)

à       HOW
MANY FINGERS DOES HARRY HAVE?

(THE ANSWER IS 10)

à       HOW
MANY FINGERS DOES JOE HAVE?

(I DON’T KNOW WHETHER FINGER IS PART OF JOE)

But of
direction Raphael may per chance appreciate written every other priority rule. Incidentally, the
program’s commentary, “The above sentence is ambiguous…” concerns
the chance that the observe “has” may per chance suggest both “has as a
part” or “owns. ” Raphael’s program in most cases guesses accurately
by a peep of whether or no longer the entities in ask are already identified to comprise issues,
or to be parts of issues, etc. I will characterize this later in more part.
Raphael’s demonstration that such “contextual” decisions can also very neatly be
programmed, illustrates a more traditional level, or rather, shows a clear and
healthier perspective toward programs than the “nothing nonetheless” approach.
We’re going to due to this truth are attempting to demonstrate a majority of these better ways to mediate
programs.

(1) A
PROGRAM AS A SEQUENCE OF INSTRUCTIONS TO BE OBEYED.

The most
traditional and easy‑minded peep is that a pc program is a sequence of
certain-cut operations to be performed on some files. Let’s comprise shut a easy example
of a program: insist that X is a bunch given as enter:

START: SET
R = 1

LOOP:    SET
S = X/R

SET T=R+S

SET R = T/2

SET U = R x R

SET V = X – U

IF |V| > .001, GO TO LOOP

ELSE PRINT V

This program (attributed to Isaac
Newton) will compute an approximation to the square root of X. At every line in
this technique it’s perfectly certain what is the current situation of issues, and
what is to be done next. With out a doubt, it requires a mathematical prognosis, to
demonstrate that the sequence of instances so developed will lastly result in an
acceptable value of R, and close the computation.’ So there may per chance be rarely any huge
injury in thinking of these statements as a sequence of steps. The “GO
TO” instruction can also very neatly be regarded as to be a clean‑abbreviation for several
more copies of the “main loop.” With out a doubt, till the prognosis is
made, one can also unbiased level-headed mediate this technique as an expression of a priceless nonetheless poorly
understood view.

(2) A
PROGRAM AS A COURT OF LAW

In
Raphael’s program, it must be determined whether or no longer “has” means
“owns” or “has as parts” when an announcement of the develop
“x has y” is encountered:

à     JOHN
IS A PERSON)

(I UNDERSTAND)

à     DICK
IS A PERSON)

(I UNDERSTAND)

à     A
CHAIN IS PART OF A BICYCLE

(I UNDERSTAND)

à     THE
POWER-SAW HAS A CHAIN

(THE ABOVE SENTENCE IS AMBIGUOUS •• BUT I ASSUME (HAS)
MEANS (HAS AS PARTS))

(I UNDERSTAND)

à     JOHN
OWNS A CHAIN

(I UNDERSTAND)

à     DICK
HAS A CHAIR

(THE ABOVE SENTENCE IS AMBIGUOUS •• BUT I ASSUME (HAS)
MEANS (HAS AS PARTS))

à     THE
CUCKOO-CLOCK HAS A CHAIN

(THE ABOVE SENTENCE IS AMBIGUOUS •• PLEASE REPHRASE IT)

The
exclaim, when acknowledged, is transmitted to a little bit of this technique that is ready
to review all that has came about earlier than. This sub‑program makes its chance on
the following foundation:

(1) Is y already identified to be part
of some thing more? Or is y a member of some negate whose members are identified to
be parts of something?

(2) Is y identified to be owned by
something, or is it a member of some negate whose members are identified to be owned by
something?

(3) If precisely one amongst (1) or (2)
is correct, place the selection in the corresponding direction. If neither holds, give
up and search files from for more files. If every are correct, then comprise shut into story the extra
possibilities at (4) below. (Thus this technique makes exhaust of proof about how previously
got files has been incorporated into its “mannequin” of the
world.)

(4) If we fetch to this level, then y is identified already to
be fascinated by being part of something and in being owned and we need a finer
take a look at.

Let U1 and U2 be the “something” or the
“some negate” that every person is conscious of exists, respectively, in the answers to
questions (1) and (2). These depend upon‑ y. We now search files from: is x a member of, or a
arena of U1 or U2? If neither, we give up. If one, we resolve
the corresponding result‑”part of” or “owns.” If every, we
again give up and search files from for more files. As Raphael says:

“These criteria are easy, yet they’re enough
to enable this technique to place quite cheap decisions about the intended
motive in various sentences of the ambiguous observe “has.” With out a doubt,
this technique can also very neatly be fooled into making mistakes, e.g., in case the sentence,
“Dick has a series,” had been supplied earlier than the sentence,
“John owns a series,” in the above dialogue. Nonetheless, a human being
uncovered to a brand unusual observe in a the same project would place a the same error. The
level here is that it’s feasible to automatically resolve ambiguities in
sentence which implies by referring to the descriptions of the words in the sentence‑descriptions
which is able to automatically be created via factual prior publicity to unambiguous
sentences.”

Thus, this technique is recommended to are attempting to roam making an try though
its sequence of prior files, to rating whether or no longer x and y are related, if at
all, more closely in one or the opposite direction. This “part” of this technique
is easiest conceived of as a exiguous trial court, or as an proof‑collecting and
proof-weighing draw. It’s no longer true to mediate it as a draw
straight within a pre‑specified sequence of exclaim fixing, nonetheless rather as an
allure court to consult with when this technique encounters an inconsistency or
ambiguity. Now after we write a huge program, with many such courts, every
succesful if significant of calling upon others for lend a hand, it becomes meaningless to
mediate this technique as a “sequence.” Even though the programmer
himself has acknowledged the “apt” concepts which permit such
“appeals,” he can also unbiased appreciate easiest a extremely incomplete figuring out of when
and where all the scheme via this technique’s operation these procedures will name
on every other. And for a say “court,” he has easiest a sketchy
view of easiest doubtless the most instances that will negate off it to be known as upon. In
rapid, as soon as past the newbie stage, programmers place no longer merely write ‘sequences
of directions’. As one more, they write for the people of exiguous societies
or processes. For are attempting as we are succesful of also unbiased, we veritably can completely envision, upfront, all
the details of their interactions. For that, after all, is why we need
computers.

(3) A PROGRAM AS A COLLECTION OF
STATEMENTS OF ADVICE

The gigantic illusion shared no longer easiest by all alarmed
humanists nonetheless also by most computer “consultants,” that programming is an
inherently staunch and inflexible medium of expression, is essentially based completely on an elementary
confusion between develop and say material. If poets had been required to write in items of
fourteen lines, it will probably perhaps no longer place them more staunch; if composers needed to make exhaust of all
twelve tones, it will probably perhaps no longer constrain the final kinds; if designers needed to make exhaust of
easiest fourth characterize surfaces no ‑one would see it much! It’s silly, then,
to rating such unanimity about how the rather stiff grammar of (the older)
programming language makes for precision in describing processes. It’s
perfectly correct that it’s doubtless you’ll perhaps presumably also unbiased can appreciate to be very staunch on your computer grammar
(syntax) to fetch your program to speed at all. No spelling or punctuation errors
are allowed! But it absolutely’s perfectly incorrect that this makes it’s doubtless you’ll perhaps presumably also unbiased appreciate a staunch view
of what your program will place. In FORTRAN, while you will worship your program to name upon
some already written draw, it’s doubtless you’ll perhaps presumably also unbiased appreciate to make exhaust of 1 in all the mounted kinds worship
“GO TO.” You cannot impart “USE,” or “PROCEED ON TO,”
etc., so the syntax is stiff. But, it’s doubtless you’ll perhaps presumably also “GO TO” virtually the leisure,
so the say material is free.

A worse fallacy is to take hold of that such stiffness is on story of
of the computer! It’s miles thanks to the programmers who specified the language! In
Bobrow’s STUDENT program, it’s doubtless you’ll perhaps presumably form as soon as and for all, while you wish,
“USE ALWAYS MEANS GO TO” and in easy instances it will probably perhaps then enable
you to make exhaust of “USE” as a replace of “GO T0.” That is, obviously, a
trivial example of flexibility, nonetheless it’s miles a level that virtually all of us place no longer
worship: FORTRAN’s stiffness is, if the leisure, derived
from the stiffness superstition, no longer
an instance of some stiffness truth!

For an example of a recent system with more flexibility, a
programming language known as PILOT, developed by Warren Teitelman (Ph.D.
dissertation, MIT, 1966), enables the programmer to place adjustments every in
his programs and in the language itself, by exterior statements in the (current
model of) the language. We’re going to in most cases mediate these as “advice”
in negate of as “program,” on story of they’re written at recurring instances, and
are in most cases conditionally applied in default instances, or as a final result of
outdated advice. An example is the following
typed in whereas growing a program to
clear up concerns worship the neatly‑identified “missionaries and cannibals”
predicament ‑ the one with the boat that holds easiest two of us, etc:

Show development, if m is a member of aspect‑1 and m is a
member of aspect‑2 and (countq aspect‑1 m) is no longer equal to (countq aspect‑1 c), then
stop.
(An earlier
sequence of advice statements to the enter system has been aged to form
the fairly humanoid enter syntax.)

This map is a heuristic search that tries various
arrangements and moves, and prefers these that place “development” toward
getting the of us all the scheme via the river. Teitelman writes the elementary program first.
However the missionaries fetch eaten, and the above “advice” says to
“adjust the event‑measuring part of this technique to reject moves that
inch away unequal numbers of missionaries and cannibals on the perimeters of the
river.” As Teitelman says:

This offers the absorbing prerequisites to PROGRESS. It’s no longer
enough to merely depend and compare, on story of when the total cannibals are
on one aspect without a missionaries, they place outnumber the missionaries 3 to 0.
Nonetheless, no one gets eaten.

The level, nonetheless, is no longer in the comfort of syntax
restrictions, nonetheless in the advice‑worship personality of the modification apt made in
this technique. The “characterize development” commentary can also very neatly be made with out vivid
a good deal about how “development” works already or where it lies in the
“program.” It may per chance well well also unbiased already be tormented by other advice, and one may per chance
no longer appreciate a transparent view of when the unusual advice will be aged and when it will doubtless be
unnoticed. One other goal can also unbiased had been modified so that, in certain
instances, “development” can also unbiased no longer fetch to evaluate the project at all,
and any individual may per chance fetch eaten anyway. If that came about, the outsider would are attempting to
bet why.

He would appreciate the alternate choices (1) of completely figuring out
the current program and “basically fixing” the pains, or (2) of
entering anew advice commentary describing what he imagines to be the sinful
project and telling this technique no longer to roam the missionary into the negate
of being eaten. When a program grows in vitality by an evolution of partly‑understood
patches and fixes, the programmer begins to lose be conscious of inner details and
can no longer predict what’s going to happen—and begins to hope as a replace of know,
looking out at this technique as if it had been an person of unpredictable habits.

That is already correct in some huge programs, nonetheless as we enter
the abilities of more than one‑console computers, it may per chance probably rapidly be a long way more acute. With
time‑sharing, huge heuristic programs will be developed and modified by
several programmers, every testing them on varied examples from varied
consoles and inserting advice independently. This map will develop in
effectiveness, nonetheless no one amongst the programmers will understand all of it. (Of
direction, this can also unbiased no longer consistently place success‑the interactions may per chance place it fetch
worse, and no one can also very neatly be ready to repair it again!) Now we peep the staunch pains
with statements worship “it easiest does what its programmer told it to
place.” There is no longer basically anybody programmer.

LATITUDE OF EXPRESSION AND
SPECIFICITY OF IDEAS

At last we come to the ask of what to place after we need
to write a program nonetheless our view of what’s to be done, or the valid approach to place it, is
incompletely specified. The non sequitur
that set everyone off about this exclaim is terribly
easy:

Vital Premise: If I write a program it may per chance probably place something
particular, for every program does something obvious.

Minor Premise: My view is vague. I place no longer need any
particular result in concepts.

Conclusion: Ergo, this technique can also unbiased no longer place what I need.

So, everyone thinks, programs are no longer expressive of vague
concepts.

There are basically two fallacies. First, it’s miles no longer basically enough to
impart that one would now not appreciate a say result in concepts. As one more, one has an
(sick-defined) vary of acceptable performances, and may per chance be delighted if the
machine’s performance lies in the vary. The wider the vary, then, the wider
is one’s latitude in specifying this technique. This is rarely basically basically nullified,
even when one writes down particular words or directions, for one is level-headed
free to treat that program to illustrate. In this sense, one may per chance comprise shut into story
a say written-down myth to illustrate of the principle that that level-headed can also unbiased
remain indefinite in the author’s concepts.

This can also unbiased sound worship an evasion, and partly it’s. The
2nd fallacy turns around the assertion that I with out a doubt appreciate to jot down a
particular process. In every arena of uncertainty 1 am at liberty to specify
(as a replace of particular procedures) draw‑mills, selection concepts,
courts of advice relating decisions, etc. So the habits can appreciate large ranges‑it
need in no scheme twice follow the same lines, it may per chance probably also very neatly be made to quilt roughly the
same latitude of tolerance that lies in the author’s concepts.

At this level there can also very neatly be a closing objection: does it lie
precisely over this vary? Take note, I am no longer announcing that programming is a actually easy
approach to categorical poorly defined concepts! To comprise shut relieve of the unsurpassed
flexibility of this medium requires clean talent‑technical, intellectual,
and esthetic. To constrain the habits of a program precisely to a vary can also unbiased
be very laborious, apt as a author will need some talent to categorical apt a definite
stage of ambiguity. A pc is worship a violin. You presumably can also imagine a novice
making an try first a phonograph after which a violin. The latter, he says, sounds
dreadful. That is the argument we now appreciate heard from our humanists and most of our
computer scientists. Pc programs are true, they impart, for particular
applications, nonetheless they place no longer seem like versatile. Neither is a violin, or a typewriter, till
you be taught to make exhaust of it.

Learn More

Categories
Internet of Things
No Comment

Leave a Reply

*

*

RELATED BY