A Lisp Interpreter Implemented in Conway's Game of Life (2021)

https://news.ycombinator.com/rss Hits: 3
Summary

Lisp in Life is a Lisp interpreter implemented in Conway鈥檚 Game of Life. The entire pattern is viewable on the browser here. To the best of my knowledge, this is the first time a high-level programming language was interpreted in Conway鈥檚 Game of Life. Running Lisp on the Game of Life Lisp is a language with a simple and elegant design, having an extensive ability to express sophisticated ideas as simple programs. Notably, the powerful feature of macros could be used to modify the language鈥檚 syntax to write programs in a highly flexible way. For example, macros can be used to introduce new programming paradigms to the language, as demonstrated in object-oriented-like.lisp (which can actually be evaluated by the interpreter, although complex programs take quite a long time to finish running), where a structure and syntax similar to classes in Object Oriented Programming is constructed. Despite the expressibility of Lisp, it is the world鈥檚 second oldest high-level programming language introduced in 1958, only to be preceded by Fortran. Conway鈥檚 Game of Life is a cellular automaton proposed in 1970. Despite it having a very simple set of rules, it is known to be Turing Complete. Lisp in Life demonstrates this fact in a rather straightforward way. How can simple systems allow human thoughts to be articulated and be expanded? With the expressibility of Lisp and the basis of Conway鈥檚 Game of Life, Lisp in Life provides an answer to this question. Input and Output The Lisp program is provided by editing certain cells within the pattern to represent the ASCII-encoding of the Lisp program. The pattern directly reads this text and evaluates the results. You can also load your own Lisp program into the pattern and run it. The standard output is written at the bottom end of the RAM module, which can be easily located and directly examined in a Game of Life viewer. The Lisp implementation supports lexical closures and macros, allowing one to write Lisp programs in a Lisp-like ta...

First seen: 2025-12-13 16:51

Last seen: 2025-12-13 18:52