더북(TheBook)

3.8.2 goto를 사용하라

프로그래밍의 이론적인 전체 원리는 메모리, 기본 산술 연산, ifgoto 구문으로 요약할 수 있다. goto 구문은 프로그램 실행 중에 임의의 위치로 직접 이동할 때 사용한다. 이 구문을 따라가기는 어려우며, 에츠허르 데이크스트라가 ‘goto 구문은 해로운 것으로 간주된다’5라는 제목의 논문을 발표한 이후 goto 사용은 권장되지 않는다. 데이크스트라의 논문에 대해서는 많은 오해가 있는데, 제목에 대한 오해가 대표적이다. 데이크스트라는 자신의 논문 제목을 ‘goto 구문에 반대하는 사례’로 정했지만, 파스칼 언어의 발명가이자 그의 편집자였던 니클라우스 비르트가 제목을 바꿨다. 이로 인해 데이크스트라의 입장이 보다 공격적으로 비춰졌고, goto에 대항한 전쟁은 goto에 대한 마녀사냥으로 바뀌었다.

이 일은 모두 1980년대 이전에 일어났다. 프로그래밍 언어는 goto 구문의 기능을 다루는 새로운 구조를 만들 시간이 충분했다. for/while 루프, return/break/continue 구문, 심지어 예외(exceptions)도 이전에는 goto로만 가능했던 특정 시나리오를 해결하기 위해 개발됐다. 이전의 BASIC 프로그래머라면 원시적인 예외 처리 메커니즘이었던 유명한 오류 처리 구문인 ON ERROR GOTO를 기억할 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.