컴퓨터를 망가뜨린 자기지시적 문장의 역설
‘이 문장은 거짓이다’
자기지시적 문장(self-referential sentence)이라는 개념은 언어학과 철학, 논리학에서 자주 다뤄지며, 그 문장의 내용이 스스로를 직접 언급하거나 참조하는 문장이다.
쉽게 말해서 이런 문장은 자신의 속성이나 상태를 설명하는 동시에, 그 문장 자체를 지칭한다. 또한 자기지시적 문장 중 일부는 논리적인 역설을 야기하며, 단순히 참과 거짓으로 구분하는 방식이 모든 문장에 통용하기 어렵다는 점과 현대 논리학의 한계를 시사한다.
몇 가지 예시를 살펴보자.
i) ‘이 문장은 거짓이다’
ii) ‘이 문장은 네 글자로 이루어져 있다’
i)의 예문은 '거짓말쟁이 역설'로 잘 알려져 있다. 이 문장은 논리적인 역설을 야기하는 자기지시적 문장의 대표적인 사례이다.
만약 i)의 예문이 참이라면 문장이 주장하는 대로 거짓이 되어야 하고, 문장이 거짓이라면 문장이 참이 되어야 한다. 참과 거짓이라는 성질은 양립할 수 없기 때문에, 이 문장에서는 언제나 결과적으로 패러독스가 발생한다.
ii)의 예문은 스스로의 길이를 지적한다. 만약 이 문장이 실제로 네 글자로 되어 있었다면 문장은 스스로를 참조하는 것이 되고, 그렇지 않다면 ii)는 거짓인 문장이 된다.
이처럼 자기지시적 문장은 스스로의 내용을 검토하는 성질을 가진다.
그렇다면 패러독스를 발생시키는 자기지시적 문장을, 만약 컴퓨터에 적용하면 어떻게 될까?
복잡한 소프트웨어에서 자기지시적 코드나 역설적 명령을 내리는 경우, 시스템이 무한 루프에 빠지거나 비정상적인 상태가 될 수 있다.
실제로 2010년대에 등장한 다양한 소프트웨어 버그 사례들 중에는 자기지시적 코드가 문제를 일으킨 경우가 있었다. 당시에 웹 서버나 데이터베이스 시스템에서 자기지시적 문장이 오류를 유발했고, 이로 인해 서비스 중단과 크래시가 발생했던 사태가 있다.
자기지시적 문장은 언어와 논리의 한계를 탐구하는 데 적지 않은 영향을 미치고 있다. 이러한 문장들의 패러독스는 현대 논리학이 고수하고 있는 논리적 시스템의 완전성과 일관성에 대한 의문점을 제시하며, 현재의 논리학, 수학, 철학 분야에서 중요한 역할을 한다.