Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10 5/3/83; site bbncca.ARPA
Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!decvax!bbncca!jr
From: jr@bbncca.ARPA (John Robinson)
Newsgroups: net.lang
Subject: Re: High-levelity
Message-ID: <1242@bbncca.ARPA>
Date: Fri, 4-Jan-85 00:24:01 EST
Article-I.D.: bbncca.1242
Posted: Fri Jan  4 00:24:01 1985
Date-Received: Sat, 5-Jan-85 02:08:54 EST
References: <235@gumby.UUCP> <96@mit-athena.ARPA> <237@gumby.UUCP>
Organization: Bolt, Beranek and Newman, Cambridge, Ma.
Lines: 51

Newsgroups: net.lang
Subject: Re: High-levelity
References: <235@gumby.UUCP> <96@mit-athena.ARPA> <237@gumby.UUCP>

gumby!g-frank's observations about provability vs expressive
consistency vs the predicate calculus reminds me of some observations
Doug Lenat made during a talk last fall.  He was reviewing the success
of his PhD work, a program which was able to, given a small set of
axioms about mathematics, discover interesting theorems by use of a
surprisingly small set of hueristics like "look for interesting members
of a set and explore their properties."  [I fail to do his entertaining
presentation of the system justice here.  Also, I {red-faced} forget
the name - its successor of sorts is EURISKO, a program that reasons
about whatever body of knowledge you choose to innoculate it with.  If
you're interested, start searching with the Sep84 Scientific American.]

At any rate, perhaps the most cogent observation about the success of
his program was that it drew a lot of its power from the similarity of
the subject area (mathematics and predicate calculus) to the language
it was programmed in (LISP).  In part, this is because one of the ways
it searched for interesting new facts was by "mutation" of the LISP
code itself.  But I think the observation is really deeper than that.

So there does seem to be a clustering of the ideas of ability to
{express, prove} things in a language and its {high-levelity, ease of
use}.  I think Jack Jansen's observations about precision (how many
different programs will 100 COBOL programmers write?) relate to this as
well - if the language has no straightforward way to express a given
problem, programmers will arrive at any number of different solutions,
most of which lose the original problem expression in the details,
whereas when the language is appropriate to the problem, the usual
solution will just jump out at everyone.  I might even venture an
opinion that an expert system done well may be the creation of an even
more closely-targeted formal language that focuses on an even more
limited area of knowledge.  (You must stretch the definition of
"language" a bit to account for the interactive nature of these tools).

So the comparisons yield different measures of success of different
languages which depend on the subject area attacked using the language.
Thus, LISP proves to be useful in expressing ideas in the predicate
calculus and mathematics in general, and perhaps the popularity of C
relates to its ability to express what really are machine-oriented
notions (addresses, loops) in a way that is divorced from a particular
machine language, yet almost as precise while including (like Fortran
or Pascal) a standard arithmetic expression notation.  Unfortunately,
this also means that the ease of use is intimately tied to the intended
area of application of the language; thus the inevitable differences of
opinion among programmers who work in different environments with
different languages of choice.

/jr