한글로 프로그래밍을 할 수 있다면?

 
컴퓨터가 영어권 문화에서 발명되었고, 그래서 프로그래밍 언어 역시 영어로 되어 있다는 것은 하나도 이상할 게 없는 것처럼 보인다. 그러나 '프로그래밍'이 "문제를 풀기 위해, 사람의 생각을 나타내는 작업'이라면 모국어가 아닌 프로그래밍 언어는 생각을 하는데 하나의 커다란 '장벽'이 될 수 있다.
만약에, 모든 구성 요소가 한글로 되어 있는 프로그래밍 언어가 있다면 어떨까? 그래서 개발자가 생각한 것을 한글로 적으면, 그게 그대로 프로그램이 되는 그런 마술 같은 언어가 있다면 참 편리하지 않을까? 이런 모토로 시작된 것이 1990년대 중반에 크게 돌풍을 일으켰던 '한글 프로그래밍 언어' 운동이었다.
이 대열에 제일 먼저 문을 연 것은 --논란의 여지가 없는 것도 아니지만-- 바로 '한글베이직', 이름하여 "한베"였다. 이 '한베'는 GW-BASIC의 지정어(keyword)를 한글로 바꾸어 놓았고, 변수 등의 대상물의 이름에 한글을 쓸 수 있도록 만들어졌다. 한때 이 '한베'를 이용해서 소프트웨어 경진대회까지 벌이게 되었으니, 실로 대단하다.
그러나 '한베'와 같이 기존 언어에서 지정어만 한글로 바꾼 것으로는 부족하다. 그래서 최대한 우리말로 써도 어색해지지 않도록 심혈을 기울여 만든 언어가 있으니, 그 언어가 바로 "씨앗"(seed)이다.
"열린 검색"으로 유명한 "엠파스"의 CEO인 박석봉 님께서 "나눔기술"이라는 회사에서 직접 설계하고, 컴파일러, 통합환경, 라이브러리를 구현하는데 참여한 언어이다.
1994년 4월 28일, 충무공탄신일에 정식판이 발표되었고, 이후 "나눔기술"에서 대략 2년여 동안의 지원을 해 준 언어인 "씨앗"은 "KT마크"를 획득할 만큼 그 성능이 무척 우수했다. 상용화된 국산 컴파일러로는 아마 최초가 아닐까 생각된다.
"씨앗"의 특징을 살펴보면...
1. 완벽한 통합환경(IDE)을 지향했다.
Turbo C 2.0을 모델로 하여 편집기, 번역기 등을 모두 합친 통합개발환경을 만들었고 상용화 하는데 성공했다.
2. 세심한 언어의 설계
'한베'와 같이 기존 언어에서 지정어만 한글로 바꾼 것이 아니라, 독자적인 문법을 가지는 당당한 "명령형 언어"를 목표로 설계했다. 이 과정에서 C, Pascal, Ada 등을 모델로 했기 때문에, 특히 C언어에서 사용되는 { } ++ -- /* */ 등의 기호를 빌려 와서 사용한 탓으로, "C언어를 한글판"이라는 오해를 많이 받기도 했다.
그러나 씨앗 언어 명세를 자세히 살펴보면, 초기화(initialization)를 담당하는 시작점() 과 뒷정리(finalization)를 담당하는 마무리() 라는 두 개의 절차(procedure)를 사용하여 단원(unit; module) 간의 결합성을 최소화 할 수 있었고, 하나의 단원을 '접속부'(interface section)와 '구현부'(implementation section)로 분리해 놓았다. 이 밖에 독특하면서도 상당히 현대적인 요소들을 많이 포함하고 있다.
3. 완벽한 한글 입출력 환경
씨앗은 한글 프로그래밍 언어이기 때문에 한글 입출력 환경을 완벽하게 구비하는 것이 우선이었다. 그 당시는 아직 Windows가 많이 보급되지 못한 상황이었으므로, "나눔기술"에서는 DOS에서 돌아가는 한글 환경을 개발했다. 이는 "한글 에뮬레이터"를 실행한 뒤 그 위에서 돌아가는 방식이 아니라, 그래픽을 사용하여 독자적인 한글 출력 시스템을 구축하고, 키보드를 직접 통재하여 한글의 자/모음을 완전히 처리하는 IME(Input Method Editor)를 갖고 있었다.
그 당시에는 이러한 현대적인 모델에 대한 대중들의 인식이 희박하여, RAM만 잡아먹는 골치 덩어리로 치부되었지만, 지금 생각해 보면 정말 감탄스러운 환경이다.
4. 방대한 라이브러리
35 개 이상의 기본 단원(standard unit)과 500 개 이상의 절차(procedure)로 이루어진 라이브러리는 그 당시 DOS용 컴파일러로는 기능의 부족함을 느끼지 못할 정도로 방대했다. 패키지 안에 포함된 '기본 단원 설명서'의 분량만도 1000 페이지를 넘었으니, "나눔기술"에서 씨앗에 얼마나 많은 공을 쏟았는지 짐작할 수 있게 만든다.
5. 독자적인 TUI 프레임워크 - "태극마당"
아직 GUI를 작성하기 어려웠던 DOS시절이지만, 씨앗은 TUI(Text UI)를 통해서 최대한 GUI와 비슷한 느낌을 줄 수 있도록 독자적인 어플리케이션 개발 프레임 워크를 만들었는데, 그것이 바로 "태극마당"이다. 이 안에서 창을 관리하고, 차림표(menu)를 만들고, 상태줄에 값을 출력하는 등 여러 가지 일을 하는 절차들이 준비되어 있었다. "씨앗"의 통합환경 자체도 "태극마당"을 토대로 만들어졌다.
6. 철저히 한글에 기초한 설계
0xABCDEF와 같은 16진수는 '0#가나다라마바'를 사용하도록 하였으며, <Ctrl><제어>, <Shift><윗글쇠>, <Alt><바꿈> 등 키의 명칭도 한글화했다.
또 "바탕글"(File) 메뉴를 열기 위해서 <Alt+F>를 누르는 것이 아니라 <Alt+ㄱ>을 누를 수 있도록 했는데, 독특한 것은 세벌식이나 두벌식 자판에 관계 없이 무조건 ''에 해당하는 키를 <Alt>와 함께 누르면 동작하는, 자연스러운 한글 명령체계를 가지고 있었다.
이제 이러한 특징을 가지는 한글 프로그래밍 언어 '씨앗'에 대한 글들을 올리겠다. 이 글들을 통해서 "한글 언어 씨앗"이 어떤 것이었으며, 이 언어가 어떤 특징을 가지고 있는지, 그리고 이 언어가 어떤 경위로 역사의 뒤안길로 사라져 갔는지를 알 수 있을 것이다.
지금으로부터 11년 전의 "한글 프로그래밍 언어 씨앗", 오늘, 한글날을 맞아 나의 마음을 뿌듯하게 하면서 그와 동시에 쓰리고 아프게 만든 한 알의 그 '씨앗'을 다시 한 번 꺼내서 나의 블로그에 기록해 두는 것은 그것만으로도 큰 의미가 있다고 하겠다.