Self-Reproducing Programs in Common Lisp

Self-Reproducing Programs in Common Lisp by Peter Norvig, 1990.

This paper reviews the classic self-reproducing expressions in Lisp, and presents some new ones that are unique to Common Lisp.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Parable ending

The ending to the parable on the last page of the paper can be found, for example, at


For people who are interested in Quines, there was a presentation at Eurocrypt last year with an actual application for them. David Naccache gave quite an interesting talk about Quines in time-constrained and space-constrained environments. The punchline is that in some applications you want to download code to a device, but you want to make sure that the device executes the code, rather than simulating it inside a sandbox. One way to do this is to ensure that you have "filled" the device completely so there is no room for an emulator. There is quite a cute method to do this using a quine here. I'd also considered them an entertaining piece of theory, so it was quite suprising to see a (fairly) real application for them.