Joseph Weizenbaum's Original ELIZA
Anthony Hay has started to transcribe the core code, here, and I started a translation, based on Anthony's transcription, here. Anthony has also created an annotated version of the core code, here. If others would like to participate in either transcribing or translating the code, let me know and I'll add it to the site and/or link to yours. (Or, I guess, since it's open source, feel free not to let me know, but it'd be great if you made your work public.)
20220705: ELIZA Code Discovery Featured on CoRecursive Podcast
Adam Gordon Bell who creates the CoRecursive Podcast recently interviewed Jeff Shrager (founder of ElizaGen.org) about the discovery of the ELIZA code. He did a great job of turning what started out as two hours of making our work fascinating and mysterious!
For fun, here's a short list of mostly minor errors that we've noticed:
Adam confused UPenn with Penn state at one point, but mostly got it right. [This is a common confusion!]
Jeff called the author of the educational version of ELIZA "Paul Howard". His name is really "Paul Hayward".
Adam says at one point that Bernie Cosell worked at Raytheon, and at another point that he worked at BBN. Bernie worked at BBN at the time of the events under discussion; BBN was acquired by Raytheon much later.
Jeff calls one of the missing functions "MATCH"; it's actually "YMATCH".
Adam says that SLIP was written in MAD. Actually, SLIP was what we would now call a package that added list processing functionality to MAD.
Jeff claims that MAD weirdly allows you to abbreviate "END" as "E'D". It's true that MAD permits this sort of abbreviation, but there is no "END" keyword; Jeff appears to be referring to the abbreviation "E'L" which is used where conditional blocks end, and so could me misinterpreted as an abbreviation for "END", but it's really an abbreviation for "End Conditional". (Not that that make the language any less weird!)
Adam calls the ENIAC "the first general purpose electric computer". ENIAC actually stands for "Electronic Numerical Integrator and Computer", so it was probable the first general purpose ELECTRONIC computer. (I know -- picky picky picky! :-)
Adam implies that ELIZAGen.Org can AUTOMATICALLY tell you something about ELIZA lineages. Would that it were so! There are some notes here and there about what came from what, but the problem that I set out to work on -- building a phylogeny of ELIZA implementations (whether manually or automatically) -- hasn't been achieved. (If you want to work on this problem, lmk!)
Adam implies that Anthony Hay started working on his C++ ELIZA in order to understand the rediscovered MAD-SLIP code. Actually, Anthony had been working on his version for some time before he and Jeff even met. It's true that he improved his version based on the discovered code, and that he was instrumental in understanding what the discovered code did. [Jeff did not make this clear in the interview.]
At the very beginning, Jeff says that in a party of philosophers, he'd probably be a linguist. In fact, Jeff has very little reason to fairly call himself a linguist; it would have made much more sense to call himself a molecular biologist in that setting.)
Jeff hypothesizes that Bernie Cosell's ELIZA would have been written "at BBN in Maclisp, I guess would be… Well, it was BBN LISP at the time." This is a bit confused (and confusing). Both MacLisp and BBN Lisp were forks from PDP-6 Lisp 1.5, but whatever BBN used at the time (mid 1960s), it apparently wasn't called BBN Lisp until the early 1970s. These details are just messily confusing, and irrelevant. Let's just say that it was written at BBN in some non-MacLisp branch of Lisp 1.5, whatever it was called at the time at the time. (Note that Bernie's original code is over on the "Commony Know ELIZA Clones" page on this site!)
Adam says: "everybody thought ELIZA was written in LISP [bacuase] Snippets of it were published in the original paper, and they looked like LISP S-expressions". This is slightly misleading. The "snippets" Adam is referring to is the DOCTOR conversation driver script, which is published in full in the CACM paper, and, indeed, looks exactly like a Lisp s-expression. And this almost certainly had a part to play in folks thinking that ELIZA was written in Lisp. However, that's not a snippet of ELIZA; it's the ELIZA conversation driver script.
There is a tiny confusion about Geoff Hinton, who was indeed a newly-minted assistant professor at CMU when Jeff Shrager was a grad student. In the next sentence, however, Adam lumps Hinton together with Simon, Newell, etc. saying "This group, they were the leaders of symbolic AI, what we now call GOFAI. Good old fashioned AI. " Obviously this is an unintentional mis-classification; Hinton is definitely not among the leaders of GOFAI; he's one of the leaders of the neo-connectionism, which is the antithesis of GOFAI.
Jeff implies that Simon won his Nobel based on the work that he and Newell did on proving mathematical theorems. This is a gross (and unintentional) minimization of Simon and Newell's contribution to cognitive science and AI (as well as economics, which is what Simon won the Nobel for). If one had to put a shorthand description to what they were working on it would be "human problem-solving", not mathematical theorem-proving!
Speaking of which, it is implied the Simon and Newell were Jeff's advisors at CMU. They were indeed among his advisors, but his committee chair was David Klahr, who built computational models of child development, and the committee included developmental psychologist Bob Siegler, and cognitive scientist John Anderson.
In the outro, Adam makes an interesting connection, point out that Ron Garret, who was interviewed on a previous CoRecursive, helped Jeff "retrieve an old LISP version [of ELIZA] from an Apple II floppy." It's true that Ron did this quite amazing piece of vintage hacking, but he did it well before Jeff was collecting ELIZAs, so the causality didn't work in the implied direction; Ron didn't do it on Jeff's behalf.
On 2014-12-20, Jeff Barnett provided this interesting historical note about the original ELIZA:
The original Eliza was moved to the ANFS Q32 at SDC (one of the (D)ARPA block grant sites) in the mid 1960's. The programmer responsible was John Burger who was involved with many early AI efforts. Somehow, John talked to one of the Playboy writers and the next thing we knew, there was an article in Playboy much to Weizenbaum's and everybody else's horror. We got all sorts of calls from therapists who read the article and wanted to contribute their "expertise" to make the program better. Eventually we prepared a stock letter and phone script to put off all of this free consulting.
The crisis passed when the unstoppable John Burger invited a husband and wife, both psychology profs at UCLA, to visit SDC and see the Doctor in action. I was assigned damage control and about lost it when both visitors laughed and kept saying the program was perfect! Finally, one of them caught their breath and finished the sentence: "This program is perfect to show our students just exactly how NOT to do Rogerian* therapy. *I think Rogerian was the term used but it's been a while.
A little latter [sic] we were involved in the (D)ARPA Speech Understanding Research (SUR) Program and some of the group was there all hours of day and night. Spouses and significant others tended to visit particularly in the crazy night hours and kept getting in our way. We would amuse them by letting them use Eliza on the Q32 Time Sharing System. One day, the Q32 became unavailable in those off hours for a long period of time. We had a Raytheon 704 computer in the speech lab that I thought we could use to keep visitors happy some of the time. So one weekend I wrote an interpretive Lisp system for the 704 and debugged it the next Monday. The sole purpose of this Lisp was to support Eliza. Someone else adopted the Q32 version to run on the new 704 Lisp. So in less than a week, while doing our normal work, we had a new Lisp system running Eliza and keeping visitors happy while we did our research.
The 704 Eliza system, with quite a different script, was used to generate a conversation with a user about the status of a computer. The dialogue was very similar to one with a human playing the part of a voice recognition and response system where the lines are noisy. The human and Eliza dialogues were included/discussed in A. Newell, et al., "Speech Understanding Systems; Final Report of a Study Group," Published for Artificial Intelligence by North-Holland/ American Elsevier (1973). The content of that report was all generated in the late 1960s but not published immediately.
The web site, http://www.softwarepreservation.org/projects/LISP/, has a little more information about the Raytheon 704 Lisp. The SUR program was partially funded and on-going by 1970.
[Ed. note: I think that this is the Playboy article referred to: http://blog.modernmechanix.com/computers-their-scope-today/ -- Jeff@20210619)