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