Quine
프로그래밍에서,
윌러드 밴 오먼 콰인의 이름을 따서 자기 자신의 소스 코드를 출력하는 프로그램을 콰인이라고 한다. 초보 프로그래머에게는 상당히 난이도가 있는 프로그램이다. 또한, 수학적으로 연구할 건덕지가 있는 꽤 복잡한 프로그램이다.
예를 들어 아래는
C로 짠 콰인이다.
#include <stdio.h>
char S[] = "#include <stdio.h>%cchar S[] = %c%s%c;%cint main() { printf(S, 10, 34, S, 34, 10); return 0; }";
int main() { printf(S, 10, 34, S, 34, 10); return 0; }
다음은
Python을 이용한 콰인이다.
n='n=%r\nprint(n%%n)'
print(n%n)
파일 입출력을 이용할 수도 있다. 다만 이는 콰인으로 인정하지 않는 경우가 많다.
import sys
f = open(__file__,'r')
print(f.read())
f.close()
아무 것도 담겨있지 않아도 콰인의 정의를 만족하긴 한다. 실행이 가능하다면. 이 '빈 코드 콰인'은 1994년
International Obfuscated C Code Contest (IOCCC)에서 "최악의 규정 악용상"을 수상했다(...) 심사위원은 "이 코드는 유효한 C 코드가 아니지만 유효하지 않은 C 코드도 아니다"라는 알쏭달쏭한 평을 했다(...)
IOCCC2019에서 그냥 실행하면 컴파일 에러를 일으키지만 gdb컴파일러의 디버깅툴로 덤프한 backtrace 한줄당 한문자씩 아스키 코드를 남기는 방식으로 콰인을 구현한 프로그램이 제출된 적이 있다.
# [각주]
이 문서의 내용 중 전체 또는 일부는
문서의
r119 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}}에서 가져왔습니다.
이전 역사 보러 가기 이 문서의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
- [ 펼치기 · 접기 ]
문서의
r119 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
이 문서의 내용 중 전체 또는 일부는
문서의
r52 판{{{#!wiki style="display: inline; display: 4;"
,
4번 문단}}}에서 가져왔습니다.
이전 역사 보러 가기 이 문서의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
- [ 펼치기 · 접기 ]
문서의
r52 판{{{#!wiki style="display: inline; display: 4;"
,
4번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
문서의
r 판{{{#!wiki style="display: inline; display: none;"
,
번 문단}}} (
이전 역사)
이 문서의 내용 중 전체 또는 일부는 2023-12-21 02:25:14에 나무위키
콰인(프로그래밍) 문서에서 가져왔습니다.