I’ve made in C++ what I think is an accurate simulation of the original ELIZA. It is a console application that takes as input the original format script file, which looks like a series of S-expressions, and then waits for the user to type a line of text before responding with a line of text of its own.
I made this before the ELIZA source code had been found, and wrote about it in part 1.
Part 2 describes changes I made after the ELIZA source code was found.
Part 3 is about the HASH function, now that too has been found.
In a footnote I document trying to recreate the PARRY/DOCTOR conversation from RFC439.
My son Max Hay and I recreated ELIZA in JavaScript here. Try it here.
I added serial I/O to run ELIZA on an ASR 33 teletype.
I helped show that 1966 CACM ELIZA is Turing complete. There are several Turing machine ELIZA scripts here.
There is a huge collection of ELIZA-related information at Jeff Shrager's elizagen.org.
Along with Jeff and others I am contributing to a book about ELIZA. The website is findingeliza.org.
Note that the whole of ELIZA is in the one file eliza.cpp (unless you wish to also use the serial I/O code mentioned above).
POSIX (e.g. macOS) (I used Apple clang version 15.0.0 that came with Xcode):
clang++ -std=c++20 -pedantic -o eliza eliza.cpp
./eliza
Windows (I used Microsoft Visual Studio 2019 Community Edition Command Prompt):
cl /EHsc /W4 /std:c++20 eliza.cpp
eliza