원문 캡처 · github.com
원문 캡처 · github.com

프로그래밍 언어에서 조건문의 마지막 선택지로 쓰이는 else는 1958년 독일어로 작성된 제안서를 영어로 급히 번역하는 과정에서 생겼을 가능성이 있다. 다만 원본 독일어 문서는 남아 있지 않아 정확한 유래는 확인할 수 없다.

초기 컴퓨터는 계산 결과에 따라 다음에 실행할 명령을 바꾸는 기능을 갖췄고, 이후 프로그래밍 언어들은 조건에 따라 실행 흐름을 바꾸는 방법을 발전시켰다. 초기 Fortran의 if는 계산 결과가 음수·0·양수인지에 따라 세 곳으로 이동했다. Flow-Matic은 비교 결과가 조건에 맞지 않는 경우를 otherwise라고 불렀다.

1958년 표준 언어를 만들기 위해 미국과 독일의 컴퓨팅 단체가 각각 제안서를 냈다. 독일 측 제안은 불리언 조건에 따라 실행을 제어하는 방식을 도입했고, 별도의 case 형식에서 다른 조건이 모두 해당하지 않을 때 쓰는 단어로 else를 처음 사용했다. 제안서에는 독일어로 먼저 작성한 뒤 영어로 급히 번역했다고 적혀 있다. 영상의 발표자는 이 단어가 독일어 표현을 오래된 영어 단어로 옮긴 결과일 가능성이 있다고 보지만, 원문을 확인할 수 없어 추정이라고 선을 긋는다.

else가 널리 쓰이는 조건문 형태로 자리 잡은 과정에는 여러 언어의 제안과 수정이 이어졌다. 1959년 말 클라우스 자멜손(Klaus Samelson)은 Algol의 두 조건문 형식을 하나로 정리하면서 if가 거짓일 때 실행할 else 절을 추가했다. 이듬해 Algol 60 보고서에는 if-then-else 형식이 실렸고, 이후 대부분의 프로그래밍 언어가 이를 따랐다.

다만 모든 언어가 else라는 단어를 받아들인 것은 아니다. 크리스토퍼 스트래치(Christopher Strachey)는 CPL에서 else를 “무지하고 틀린 영어”라고 여기고 or를 쓰자고 제안했지만, 그 표현은 널리 퍼지지 않았다. MAD는 else 대신 otherwise를 사용했다.

영상과 참고 자료: