페인트 얼룩 93%가 유효한 Perl 프로그램, SIGBOVIK 논문
- OCR로 페인트 얼룩 100장을 인식시킨 결과 93%가 유효한 Perl 프로그램으로 파싱됐고, 파싱되지 않은 7장은 논문에 예시로 실림.
- 유효 판정의 상당수는 Perl의 unquoted string 기능 때문임. ME 같은 문자열이 따옴표 없이도 문자열 ME로 평가되며, 다른 언어에서는 문법 오류가 남.
- 이 논문은 SIGBOVIK 2019(4월 1일, 피츠버그)에 채택됐고, 진짜 산출물이 섞였다는 이유로 Unwitting Participation Ribbon을 받음.
- 정오표에 따르면
lerzfijglpFiji-j는 숫자 0,;i;c;;#?z{;?;;fn':.;는 문자열 c,;E,'__'는 E__로 평가됨. - 해커뉴스에는 2019년, 2021년(431점), 2024년(515점) 등 여러 차례 다시 올라온 단골 소재임.
Hacker News 의견들
논문 PDF도 직접 읽어볼 만함. 'Figure -3' 캡션 같은 장난이 군데군데 숨어 있어서 웃기더라.
유효 판정의 대부분은 Perl의 unquoted string 때문임. ME라고만 적혀 있어도 문자열 ME로 평가되는 기능이라 다른 언어였으면 바로 문법 오류가 남. -w 켜면 미래 예약어랑 충돌할 거라는 경고까지 친절하게 나옴.
그러니까 폴록은 진작부터 펄 코드를 그리고 있었던 거네. Stone Roses 앨범 커버도 사실 펄 프로그램 아니냐는 소리 나올 만함.
2021년 스레드 맨 위에 있던 Master Foo 코안이 바이브코딩 시대에 다시 읽으니 느낌이 완전 다르더라.
자바 properties 파일도 비슷한 게, 유니코드 이스케이프만 안 틀리면 어떤 문자열이든 유효한 파일이 됨.
OCR 종류에 따라 결과가 갈리는데 랜덤 입력에 대한 베이스라인도 없으니 의미 없다고 봄.
베이스라인 이야기는 좀 핀트가 어긋난 듯. 이건 진지한 벤치마크가 아니라 4월 1일 논문이고, 요점은 펄이 얼마나 관대한가임.
펄 에러 퀴니도 소름 돋음. 'Illegal division by zero at /tmp/quine.pl line 1.' 이 줄을 그대로 파일에 쓰면 에러 메시지가 자기 자신을 출력한다고 함. 5.42.0에서 직접 확인해봤는데 슬래시로 시작하는 파일명이면 다 됨.
거꾸로 그림을 펄로 실행시키면 무슨 일이 벌어질지 궁금함. Obfuscated Perl Contest가 아직 있으면 거기 내면 두 마리 토끼를 잡을 텐데.
나도 펄로 코딩하던 시절이 좋았음. my $self = shift; 한 줄만 봐도 그때 생각이 남.
헤드라인만 봐도 사실임. 멘토가 얼굴로 키보드 굴려도 유효한 펄 프로그램이 나온다고 가르쳐줬음.
펄 가지고 아직도 놀리는 사람이 있다는 게 신기함. 죽었다고 생각했는데 다음 10년은 더 버틸 듯.