| 1234567891011121314151617181920212223242526272829303132333435363738394041 | 
							- May 2001
 
- (I wrote this article to help myself understand exactly
 
- what McCarthy discovered.  You don't need to know this stuff
 
- to program in Lisp, but it should be helpful to 
 
- anyone who wants to
 
- understand the essence of Lisp  both in the sense of its
 
- origins and its semantic core.  The fact that it has such a core
 
- is one of Lisp's distinguishing features, and the reason why,
 
- unlike other languages, Lisp has dialects.)In 1960, John 
 
- McCarthy published a remarkable paper in
 
- which he did for programming something like what Euclid did for
 
- geometry. He showed how, given a handful of simple
 
- operators and a notation for functions, you can
 
- build a whole programming language.
 
- He called this language Lisp, for "List Processing,"
 
- because one of his key ideas was to use a simple
 
- data structure called a list for both
 
- code and data.It's worth understanding what McCarthy discovered, not
 
- just as a landmark in the history of computers, but as
 
- a model for what programming is tending to become in
 
- our own time.  It seems to me that there have been
 
- two really clean, consistent models of programming so
 
- far: the C model and the Lisp model.
 
- These two seem points of high ground, with swampy lowlands
 
- between them.  As computers have grown more powerful,
 
- the new languages being developed have been moving
 
- steadily toward the Lisp model.  A popular recipe
 
- for new programming languages in the past 20 years 
 
- has been to take the C model of computing and add to
 
- it, piecemeal, parts taken from the Lisp model,
 
- like runtime typing and garbage collection.In this article I'm going to try to explain in the
 
- simplest possible terms what McCarthy discovered.
 
- The point is not just to learn about an interesting
 
- theoretical result someone figured out forty years ago,
 
- but to show where languages are heading.
 
- The unusual thing about Lisp  in fact, the defining
 
- quality of Lisp  is that it can be written in
 
- itself.  To understand what McCarthy meant by this,
 
- we're going to retrace his steps, with his mathematical
 
- notation translated into running Common Lisp code.
 
 
  |