A program that produces a copy of its own source code as its output.