A code-phylogeny project treats ELIZA implementations like biological specimens and reconstructs their relationships from architecture rather than source text. Twenty-seven implementations (1965-2025, eight languages) were normalized and scored on a frozen vocabulary of 13 binary features - examples include rule-based pattern matching, keyword priority, synonym translation, backtracking matcher, segment storage, template reassembly and memory rules. A language model proposed candidate features that were then curated by hand; each specimen was converted into a character matrix, exported to NEXUS and analyzed under parsimony with PAUP, and resulting trees were drawn with Biopython. The pipeline, data (CSV, NEXUS, PAUP logs), code and all specimen sources are available in the ELIZAGen GitHub repository.
Results show a basal polytomy of “complete” ELIZAs - Weizenbaum’s 1965 MAD-SLIP, Cosell’s 1966 Lisp, several Lisp reconstructions, 1970 SNOBOL and B5500 Algol, a Java version and a 2021 C++ reconstruction cluster together, preserving the original architecture. A derived clade contains microcomputer-era BASICs and many Python/JavaScript simplifications that drop backtracking, memory and keyword priority, reflecting resource limits or pedagogical goals. Validation checks put byte-identical clones at zero branch length, a pattern‑matching file-utility nests inside the ELIZA clade (showing the features capture general pattern-matching), and an artistic feminist chatbot scores zero and sits as an outlier. The tree is presented as a map of textual tradition - preservation, adaptation and convergent reimplementation - rather than literal descent, and contributions of additional specimens are solicited.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.