Trace foward

[연재] 프로그래밍 언어 이야기 1 - 베이직

"프로그래밍 언어 이야기" 연재

-----

1989년, 그러니까 지금으로부터 정확히 20년 전이다. 동네에 컴퓨터 학원이 처음으로 문을 열었고, 나는 그곳에서 베이직(BASIC)을 처음 접했다. 개인용 컴퓨터는 아직 8비트 컴퓨터가 주류였고, 최소한의 컴퓨팅 자원을 필요로하는 베이직이 널리 사용되던 시기였다. 당시의 내 컴퓨터는 애플 IIe였는데, 메모리 용량이 아마 64KB였을 것이다.

베이직의 가장 큰 특징은 행번호였다. 프로그래머가 소스코드를 작성하면서 행마다 직접 번호를 매겨줘야 했다. 행번호가 필요했던 이유 중 하나는 텍스트 편집기가 없어서 코드를 수정할 일이 생기면 특정 행을 새로 입력해야 했기 때문이다.

] 10 PRINT "HELLO, WORLD"
] 20 END
] LIST
  10 PRINT "HELLO, WORLD"
  20 END
] 10 PRINT "HELLO, DAESAN"
] LIST
  10 PRINT "HELLO, DAESAN"
  20 END
] RUN
HELLO, DAESAN

당시 학원에서는 순서도(Flow Chart) 그리는걸 가르쳤는데, 소스코드 수정이 쉽지 않으니까 처음부터 설계를 잘하라는 의미였던 듯 하다. ㅎ

행번호로는 아무 숫자(정수)나 사용할 수 있는데, 보통 10 단위로 사용하는게 관례였다. 만약 나중에 새로운 코드를 추가하려면 여유치가 필요했기 때문이다. 행번호가 필요한 또다른 이유는 GOTO 문 때문이었다.

10 INPUT "ENTER A NUMBER", N
20 IF N = 1 THEN GOTO 40
30 IF N = 2 THEN GOTO 60
40 PRINT "YOU HAVE ENTERED ONE"
50 GOTO 70
60 PRINT "YOU HAVE ENTERED TWO"
70 END

위와 같이 GOTO 문에 의존해서 프로그램의 실행 플로우를 제어하는 프로그래밍 패러다임을 "비구조적 프로그래밍"이라 부른다. 프로그래밍의 초창기에는 프로그래밍 언어가 GOTO 문을 지원하는 것이 옳으냐 그르냐를 가지고 적지 않은 논쟁이 있었다고 한다. 이 논쟁에 종지부를 찍은 것이 그 유명한 에츠허르 데이크스트라의 "위험한 GOTO 문(Go To Statement Considered Harmful)" 에세이이다.

베이직은 GOTO 문과 같이 거의 어셈블리어 수준의 로우레벨적인 특성과 초보자도 익힐 수 있는 하이레벨 언어의 모습을 동시에 가진 프로그래밍 언어였다. 어찌됐든 잘 설계된 언어는 아니었고 베이직에 노출된 프로그래머는 뇌가 영영 망가진다는 악담도 있었다. 다행히 이름이 "초보"를 연상시키는 베이직(BASIC)라서 마초 성향이 강한 프로그래머들로서는 처음 프로그래밍을 배울때 한 번 거쳐가는 언어인 경우가 많았다.

베이직은 이후에 텍스트 편집기 기능을 지원하는 GW 베이직, 객체지향 프로그래밍을 지원하는 리얼 베이직, GUI 프로그래밍을 지원하는 비주얼 베이직 등으로 발전하게 된다.

트랙백 주소:
yuna  2009/4/27 오전 11:50
하하하 그러고보니 저도 이거 배웠어요.
goto 40 --> 이거 보다보니 생각남 :-0

LiFiDeA  2009/4/27 오후 9:52
잘 지내시죠? ^^

저는 QuickBasic이 생각나네요...

大山  2009/4/29 오전 9:19
@yuna: 앗, 유나님 프로그래밍도 하셨군요! 연락드린다 해놓고 제가 계속 좀 정신이 없었어요. 조만간 연락할게요~ ;)

@LiFiDeA: 그러게 베이직도 참 종류가 많아. 고등학교때 학교 컴퓨터에 QBasic이 깔려있었는데, 원래 베이직과는 신택스 차이가 많이 나더라구.

눈위를걷는법  2009/8/21 오후 5:43
어릴때 msx2(일명 아이큐 2000)이란 컴터를 가지고 있었는데, 컴퓨터학습이라는 책에 나온 코드 한줄한줄 치다가 실행 안되고 디시크 드라이버도 없어서 저장도 못하고 한 일주일 컴터 켜놨다가 뻗어버려서 울었던 기억이 나네요 ㅋ

大山  2009/9/10 오후 4:29
@눈위를걷는법: 맞아요, 그땐 디스크 없어서 발 동동 굴렀던 때가 있었죠. ㅎ 눈위를걷는법님 반갑습니다.

피부미인  2010/2/26 오후 10:16
반갑습니다. 저도 초등학교때 MSX BASIC 을 통해 처음 프로그래밍을 배웠죠. 이후 IBM 의 C 언어까지는 독학으로 했구요. 아마 비슷한 시대를 살아온 것 같네요. ^^

大山  2010/2/27 오전 0:42
@피부미인: 저는 애플 II였어서 MSX의 컬러 모니터, 게임팩을 부러워했던 기억이 나네요. :)

피부미인님 반갑습니다.