예전의 GW-BASIC 을 기억하시는 분이라면, 가장 큰 특징 중 하나로 ‘행 번호’ 를 꼽으실 것이다. GWBasic 의 소스코드는 각 행마다 번호가 매겨져야 했는데, 주요한 이유는 두 가지였다. 하나는 별도의 텍스트 편집기가 아닌 커맨드 라인 형식의 IDE 에서 소스 코드를 한줄씩 작성해야 했던지라 특정 행을 수정하거나 추가하기 위해선 그 행을 지칭하는 번호를 사용할 필요가 있었기 때문이고, 두 번째는 바로 ‘GOTO’ 문 때문이었다.
기본적으로 BASIC 은 위에서부터 아래대로 한 라인씩 순서대로 처리를 하는데, ‘GOTO’ 문은 이런 흐름을 임의로 바꾸어 특정 라인으로 바로 점프시켜 버리는 역할을 한다. 이러한 무식하고 단순한 제어 방식을 프로그래밍 언어가 직접적으로 제공하는 것이 과연 옳은지에 대한 논쟁이 있었는데, 이를 정리하는 데 가장 큰 역할을 한 것이 바로 Edsger W. Dijkstra 의 ‘Go To Statement Considered Harmful‘ 이다.


