One way to try to think about "the idea of Lisp" and the larger interesting 
issues, is to read "the Advice Taker" paper by John McCarthy (ca. 56-58 
"Programs With Common Sense") which is what got him thinking about interactive 
intelligent agents, and got him to start thinking about creating a programming 
language that such agents could be built in.

The context is that John was/is an excellent mathematician and this is one of 
his main perspectives for thinking about things.

So he wanted the agent to be able to reason.

He wanted to be able to reason about the agent.

He wanted to be able to reason about the programming language and its programs.

The agent operates in a world that has places and times and acquisition of new 
knowledge/state. So the reasoning has to be in a logical system where change 
happens, and this means that valid deductions at one time could be different if 
rededuced at some other time. However, he didn't want to violate the logic that 
worked earlier, etc.

He wanted a real mathematical apparatus (possibly a new one) that had 
desirable properties (including parsimony and compactness).

This led to several grand schemes that were all part of the same set of visions 
and insights.

Some of the best papers ever in CS were written by John (sometimes with 
collaborators) in the 60s. For example "Situations, Actions and Causal Laws" by 
John in 1963, which started off many of these lines of thought.

One of many good ones of these is the McCarthy & Hayes paper about "situation 
calculus" and its modal logic. This represents a minority view about how to 
view computations, reasoning, change, and race conditions. There were a few 
others around then that also had this POV (including -- for some of it -- the 
Simula inventors). This is also a summation paper with a very good references 
section that covers most of the good stuff being done in this area in the 60s. 

Lisp was just one part of larger more important ideas.

Another more trivial but telling point is that John did not like the use of S 
expressions for programming -- he invented them to have a way to represent 
collections and to serve as an internal form for interpretation. But as any 
decent mathematician would, he wanted to have a more readable notation for 
programming in and reading programs and learning to think in this more 
mathematical style. And he experimented with a number of these over the years.

Cheers,

Alan
_______________________________________________
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc

Reply via email to