A Few Comments... An Answer to "Why?"
I started programming as a freshman engineering student at the University of Houston in January, 1971 on a Univac 1108. Over the next five years, I managed to also get access to the on-campus IBM 360/44, an HP2100 buried in the bowels of the engineering building, and even traded for some time on an SDS Sigma 7. I eventually managed to graduate in the Summer of 1975 -- even with all of these distractions -- with a BS-Electrical Engineering, BA-Mathematics, and with a Minor in Russian Studies. I mostly put myself through school doing contract programming work for various professors. Almost 20-years later, I went back to school and got an MBA at the University of Denver in 1992.
In those fairly early days, beginning programmers learned FORTRAN IV. After a short while, I realized that something much more interesting called assembly language existed -- which I happily migrated to on the Univac which had a very nice machine instruction set. In the spring of 1972, I stumbled across a book called The LISP 1.5 Programmers Manual, by McCarthy, et. al., in the university library and discovered that some very interesting things could be done in LISP. I somehow learned that a professor at the University of Minnesota had recently built a LISP 1.5 system for the Univac -- it arrived from Eric Norman on tape a couple of weeks after I sent a letter requesting a copy and I had it up and alive on the Univac within a few days. I spent quite a bit of time over the next several years, along with my good friend James Newton Record, happily dissecting and modifying the internals (in assembly, of course) of the 1108 LISP system and have played around inside various LISP systems ever since -- including building a Common LISP subset (50,000 lines of 68K assembly) for a real-time robotics application in 1983-1985 that used the Henry Baker Incremental Collector. In recent years, among other things, I have built a lot of database and other software for Macintosh machines; large amounts of embedded realtime process control and communications applications for robotics, kidney dialysis machines, etc.; and, more recently, over the last ten years or so, I have been building Windows 95/98/NT/2000/XP & Friends crypto-based applications.
I have always been quite interested about the earliest days of LISP on the IBM 704/709/7090/7094 where it was invented by John McCarthy, Paul Abrahams, Daniel Edwards, Timothy Hart, Michael Levin, and others. Unfortunately, I was born about ten years too late to have actually worked with a 7090 or 7094 -- much less a 709 (the vacuum tube predecessor). So to learn a bit about the '94, I have rummaged around and have found as much reference material on the series that I could -- this current web page is the result of boiling down almost 1000 pages of occasionally :-) conflicting material -- mostly during business travel on airplanes. I think that I have a fairly clear understanding of the machine -- it was actually quite nice for its time.
Over the past several years in my scanty spare time, I have been trying to track down a copy of some version of the original source code for LISP/7090 -- and have finally found one that is complete (Thank You Timothy Hart!). During my quest, I have learned a number of interesting things about the early days of LISP: (a) The very first version actually ran on the IBM 704 at MIT -- the idea of LISP running inside an enormous pile of vacuum tubes boggles the mind (at least mine -- however, look here for a slightly less interesting other example of vacuum tube technology of the same era); (b) Apparently, later, there was no 'official' version of the source code -- things were a bit more cumbersome in those days -- rather, as LISP evolved with enhancements and bug fixes, raw binary patches were applied to the original LISP binary load tape (patches on top of patches is how it has been described to me by Richard Greenblatt).
My long-term plan for this web site is for it to eventually evolve into as comprehensive a page as possible that deals with the technical details of the earliest days of LISP -- with source code of the assembly and (hopefully -- anyone have it?) the LISP for the compiler; remembrances by the early LISP pioneers and users; hopefully source code for several of the early now-classic LISP systems; and, of course, some interesting photos. I expect this effort to continue over several years and hope to make the page as comprehensive and as accurate as possible. I have started this effort by becoming more familiar with the 7090/94 architecture and assembly language so that I can understand and document the actual LISP system source code -- which will soon be online.
I believe that the earliest LISP system is a true historical artifact -- so many fundamental software concepts were created, directly and indirectly, by the invention of LISP. It is clear to me that a patent office examiner would have stamped many patent applications, if they had been filed, as No Prior Art. I strongly believe that the system should be preserved for posterity. By putting a version of it on the web, it and its detailed technical and anecdotal history should live essentially forever...
I certainly welcome inputs and comments regarding this on-going project.
Rocky Mountains, Colorado USA at ~8,000 feet (~2,450 meters) above sea level.
http://www.frobenius.com/jack.htm -- Last Revision: 11 April 2007
Copyright © 1996 - 2013 Jack Harper (unless otherwise noted)