(An exercise in software archaeology.)
This is a modernized transcription of the code from the appendix of Jake Beal's master's thesis (2002), which implements A Robust Algorithm for Bootstrapping Communications. In Jake Beal's PhD thesis (2007), Learning by Learning to Communicate, this algorithm is referred to as Communication Bootstrapping v1.0. A follow up by Jake Beal and Gerry Sussman is Engineered Robustness by Controlled Hallucinations.
Runs in Chez Scheme:
(load "main.scm")
(test (train))
Warning: the code does not work (yet), as there is not a single success after training. :(