クワイン (プログラミング)
クワイン（）は、コンピュータープログラムの一種で、自身のソースコードと完全に同じ文字列を出力するプログラムである。娯楽として、プログラマーが任意のプログラミング言語でのクワインを書いたり、最短クワインを書いたりすることがある。クワインをプログラムを出力するプログラムだと見なせば、クワインのプログラミングはメタプログラミングの一種である。
要件の直感的な説明からは、いくつかのチート的な解がある。例えば、入力をそのまま出力するだけのプログラム（Unixではcodice_1というプログラムが利用される）の入力を、そのプログラムのソースファイルとするとか、いくつかのプログラミング言語（の処理系）は空のソースコードを受け取って、何も行わない、という動作をするので、それを利用する手もある。そのような空のプログラムがIOCCCで「規則のはなはだしい悪用」賞を受賞したこともある。以上のようなプログラムはいずれも通常、この問題を解いたものとはみなされない。
クワインという名称は、自己参照の研究について業績を残した哲学者ウィラード・ヴァン・オーマン・クワイン（1908-2000）に由来し、命名したのはダグラス・ホフスタッターでそれほど古いことではないため、古い文献では自己複製・自己再生成などといった表現で呼ばれていることがある。(プログラミング言語ではない)言語的には次の一文で表されるクワインのパラドックスと、同様の構造を持っている。