Other Eliza-Like Programs
If you happen across open source Elizas (in any language), please send me links or code so that I can add them to this section.
The source for many of these can be found in the ELIZAGen github repo.
If you happen across open source Elizas (in any language), please send me links or code so that I can add them to this section.
The source for many of these can be found in the ELIZAGen github repo.
→ Daniel Temkin, author of the Entropy programming language concept, has written an ELIZA-like called "Drunk ELIZA", using Entropy-like data structures that decay over time. The idea is that the programmer is forced to approximate, "giving up precision and control as disorder sets in". This interesting idea leads to an extremely amusing ELIZA-like, that you can run directly on his site. The ELIZA part of Drunk ELIZA appears to be based (at its root) on Shrager's BASIC ELIZA, using tail-only transformations.
→ Brendan Bellina (bbellina@alumni.nd.edu, SilverWandSoftware) has created a wonderful and hysterically funny adaptation of Jeff Shrager's BASIC ELIZA in HyperCard -- late 20th-century programmable note card system from Apple. Amazingly, it runs on a platform called "infinitemac.org", "a collection of classic Macintosh and NeXT system releases and software, all easily accessible from the comfort of a (modern) web browser". Here's a video demo'ing it. Instructions on how to run it yourself are in the video notes. (I highly recommend trying it. The natural stupidity of ELIZA (esp. Shrager's version!) combined with :yoda mode and the voices absolutely kills!)
→ Brian Harvey (bh@berkeley.edu) published a very close adaptation of the original Eliza done in Berkeley Logo in volume 2 of his 1997: "Computer Science Logo Style" (MIT Press).
→ A 1975 Lisp ELIZA from The University of Pennsylvania Moore School of Electrical Engineering, contributed by Lori Levin. Interestingly, this ELIZA has the script programmed into the code, as opposed to most earlier ELIZAs that read a script. (Ed. note: Lori notes that she didn't write this code. We aren't sure who did, but this is very likely the ELIZA that I remember seeing as a Penn undergrad, as I knew Lori then, but this was well after I'd written my BASIC version, in 1973. -- Jeff)
→ Robert T . Duquet (1970) ELIZA in SNOBOL4
→ Christopher Drum <development@christopherdrum.com> has developed an Eliza in Lua for the popular fantasy console, Pico-8:
https://christopherdrum.itch.io/eliza8
→ Jim Bickford <jbickfo@gmail.com> created an Eliza version with his 10 year old son in Scratch: https://scratch.mit.edu/projects/312783504/
Here is a story about it: https://sites.google.com/view/eliza-your-own-ai-bot/home
→ Anthony Hay has built what he believes is an implementation in C++ of ELIZA that attempts to be as close to the original as possible: https://github.com/anthay/ELIZA It was
made to closely follow Joseph Weizenbaum’s description of his program given in his January 1966 Communications of the ACM paper. It is controlled by a script identical to the
one given in the appendix to that paper. When given the prompts that begin “Men are all alike” it gives back the identical responses and recreates the exact conversation from the
paper.
→ Steve Cherry's 1982 P-Lisp Eliza
[Okay, this is crazy: Cherry's version of Eliza appears in a book called "Learning Lisp", which was an imprint of the manual for an Apple ][ Lisp, written by Cherry, called PLisp. Cherry's Eliza seems mostly based upon Shrager's 1973/1977 BASIC Eliza. (It has essentially the same key and response structure as Shrager's, but has a priority system, a little like Cosell's. So it's not a direct translation, but is pretty close.) Shrager's Eliza had been ported to an Apple ][ at some point (probably many timess over by then!), so Cherry would definitely have had it close to hand. Anyway, so bear with me here now: Cherry's PLisp manual was actually a port of a Lisp textbook written by Shrager and a friend (Steve Bagley) in about 1979. (See the preface to Learning Lisp). HOWEVER, Shrager and Bagley's book didn't include an Eliza !! Cherry apparently added it for either the PLisp user's manual, or later for the imprinted book version of that manual. What this means is that Cherry, probably unknowingly, borrowed (fairly directly) Shrager's BASIC Eliza, which was itself borrowed (indirectly) by Shrager from a Lisp program, back into a different Lisp program to appear in a manual/book on Lisp originally co-authored by Shrager, who wrote the original (BASIC) Eliza that Cherry based his Lisp Eliza on ... Confusing enough for you!?]
You can try Steve's P-Lisp ELIZA here: https://archive.org/details/P-Lisp_v3.0.1
This video demos how to do it: https://youtu.be/OcJP45A5YCg
→ This amazing Eliza in gnuCOBOL was written by Arnold J. Trembley. It's a slightly indirect translation of Shrager's 1973/1977 BASIC version. The most amazing part of this (to
me) is that it was written in 2017! Mr. Trembley's web site contains links to gnuCOBOL compilers and other fun stuff.
→ TRS-80 Assembly Version (based on the CC Basic -- contributed 2015-11-22 by John D.): Cassette program An emulator that lets you just load the "cas" file directly The original instructions And here's a YouTube video of a real TRS-80 with the Voice Synthesizer, running Talking Eliza.
→ The disk image of Michael Wessel's German BASIC Eliza: https://cpcrulez.fr/applications_list_util-elisa.htm, which can be run using the CPC Emulator in Javascript running in the
Browser, here: http://cpcbox.com. (Choose configuration "464", Select the Eliza DSK file, extracted from above, use: "DRIVE A:", When the CPC boots up, enter "cat", Enter: RUN
"ELISA-NS")
→ Paco Willers had written a GO version of the classic BASIC Eliza, but his code is no longer available in its original location.
→ Tcl Eliza, possibly by Gerry Snyder (explicitly inspired by the BASIC version)
→ NLP-Addtion.com's Eliza Chat Bot in js(directly based on the BASIC version)
→ Eliza in Gawk by Juergen Kahrs (directly based on the BASIC version)
→ Benjamin Ryves's Eliza in TI-83/84 Plus Assembly (based on the BASIC version)
→ Charles Hayden's Eliza java applet (claims to be a faithful implementation of Weizenbaum's).
→ Peter Millican built a chatbot designer, called Elizabeth, while teaching Computing and Philosophy at Leeds. Here's the latest version: http://www.philocomp.net/ai/elizabeth.htm, and learning materials: http://www.philocomp.net/ai/elizlearn.htm.