John Backus
(미국 수학자, 컴퓨터프로그래머 1924~ )
1953년 최초의 고급 프로그래밍 언어 FORTRAN 발명 ...
1950년대에 컴퓨터를 사용하려면 상당한 수준의 전문성과 천재적인 머리, 그리고 참을성이 필요했다. 1953년 존배커스(John Backus)는 컴퓨터를 더 쉽게, 더 광범위하게 쓸 수 있도록 하기 위해 최초로 실용적인 고급 프로그래밍 언어를 개발하기 시작했다. 프로그래밍의 단순 작업을 못 견딜 만큼 싫어했던 그는 바로 그 이유 때문에 포트란 (FORTRAN) 을 만들었던 것이다. .......
1924년 미국 필라델피아에서 태어난 그는 1942년에 버지니아 대학에서 화학을 공부했다. 그러나 그는 수업을 자주 빼먹었기 때문에 첫 학기에 그만 학교에서 쫓겨나게 된다. 그리고 나서 1943년 육군에 징병돼 육군 병원에서 근무했다. 제대 후 수학에 재미를 느껴 콜럼비아 대학에서 수학을 전공하고, 1949년 학사학위를 받은데 이어 1950년에는 석사학위를 받았다. 1950년에 배커스는 IBM에 입사했는데. 그가 처음 입사할 때 만에도 컴퓨터에 대해 전혀 아는 바가 없었다. 배커스는 1년 동안 1952년 도입된 IBM 701용 어셈블리 언어 개발팀의 팀장이 됐다. 그는 또한 IBM 704를 설계하고 부동수소점과 인덱스 지정을 갖춘 하드웨어를 내장하는 작업을 했다........
포트란을 개발하게 된 이유는 프로그래밍과 디버깅에 들어가는 돈은 컴퓨터 가동 비용의 약 4분의 3을 차지하고 이 비율은 컴퓨터가 싸질수록 더 높아지기 때문이었다. 그래서 배커스는 1953년 실용적인 고급 프로그래밍 언어의 개발을 제안하는 편지를 그의 상사에게 보냈고, 상사의 회답은 대단히 희망적이었다. 배커스와 그의 팀은 비용에 크게 구애받지 않고 일을 시작하게 되었던 것이다. ..... 배커스와 그의 팀에게 핵심적이 문제는 언어의 설계가 아니라 효과적인 프로그램을 만들어내는 컴파일러의 설계였다. 그들은 과학자와 엔지니어들이 IBM 704에서 프로그램을 작성하는데 편리함을 느낄 수 있는 언어를 만들어내고자 했다. 그 후 3년의 시간이 흐르고 난 뒤인 1957년에 드디어 컴파일러가 완성됐다. 그것은 2500 라인의 기계어로 이뤄져 자기테이프에 수록돼 있었다. 처음에 배포된 프로그램은 많은 버그를 갖고 있었지만 그래도 성공적이었다. ..... 포트란이 나왔을 때 베커스팀은 그들이 참으로 배우기 쉬운 언어를 만들었다는 사실을 알게 되었다. 수학자와 과학자를 위해 특별히 주석이 첨부됐으며 그 후 상당히 오랜 시간동안 과학용 프로그램에 적합한 언어로 사용됐다. ... 베커스는 1959년에 알골(ALGOL) 언어를 설명한 주석서인 Backus Naur Form (BNF) 을 만들었다. 이것은 일련의 변수를 어떻게 배열하는가에 대해 반복적으로 설명한 것으로 수많은 다른 언어에 적용됐다. 그 후 수십 년 동안 연구하던 것은 거의 다 미완성으로 끝나고 말았지만 베커스의 노력은 오늘날의 쉬운 프로그래밍 환경을 만들어준 발판이 됐다. ............ (포트란을 만든 사람 : 존 배커스)
포트란 컴파일러의 개발은 당장 컴퓨터의 사용자 수준이 고졸 이상이면 충분하도록 되어 컴퓨터의 사용인구가 크게 늘어날 뿐만 아니라 일반 과학 발전에 크게 기여하는 현상이 발생하기 시작하였다. 일반 자연과학에서 풀리지 않던 문제들뿐만 아니라 푸는 데 지루한 시간을 요구하던 문제들이 순식간에 풀어지면서 자연과학은 이론에서 뿐만 아니라 그 운영에서 새로운 국면을 맞이하게 된 것이다. 아폴로계획 (Appolo plan) 에서 달나라까지 여행이 성공한 것은 바로 이 포트란의 힘이라고 볼 수 있는 좋은 예가 된다고 할 수 있다.
컴퓨터 이용자의 증가는 컴퓨터장비의 수요를 급격하게 늘이게 되어 각 대학이나 연구소에서는 서로 먼저 기계의 공급을 받기에 여념이 없게 되었고 컴퓨터 제작자들은 더 효율적이고 염가의 장비를 공급키 위하여 치열한 계기가 되었다. 즉 포트란 컴파일러의 개발은 컴퓨터과학과 컴퓨터산업이 발생하여 체계를 구성하고 발전하게 한 기폭제라고 볼 수 있을 정도이다. 포트란 컴파일러의 개발은 학계에 비상한 관심을 던졌을 뿐 아니라 새로운 프로그래밍언어의 발생을 자극하여 수없이 많은 프로그래밍언어들이 우후죽순처럼 솟아나게 하여 새로운 혼란을 맞게 하였다.
학계에서는 전세계의 컴퓨터과학자들이 모여 대책을 논의한 결과 가장 표준이 되며 공동적인 언어를 개발하는 데 의견의 일치를 보게 되었는데 이것이 「알골 60」의 개발계획이었다. 「베커스」는 이 언어의 표현을 모두 수학적인 방법으로 표현하면서 문법과 구조를 정의한 바 있는데 이것이 BNF (Backus Normal Form) 라고 하는 유명한 참조언어 (reference language) 로서 언어의 소통이 어려운 각국의 학자들 간에 통용되는 언어로 이용하게 되었다.
그는 Emil Post 의 논문에서 이 개념을 찾았다고 하지만, 이 개념이 프로그래밍언어에 소개되면서 실용적인 면에서 위력을 발휘하게 된 셈이다. 프로그래밍언어도 자연언어와 같이 문법을 갖게 되었으며, 더구나 수학적인 완전한 문법을 갖게 되어 언어의 구조가 분명하게 되었을 뿐 아니라 수학적인 개념이 컴파일하는 기술에 자동이론을 활용할 수 있어 짧은 시간과 적은 노력으로 완성하는 혜택을 누릴 수 있게 되었다.
BNF 의 개념은 자연언어에도 적용이 가능하다는 이론과 더불어 자연언어의 처리가 컴퓨터로 될 수 있음을 시사하면서 앞으로 컴퓨터가 자연언어에도 관여할 수 있는 길을 튼 셈이다. 만일 컴퓨터가 자연언어를 이해한다면 컴퓨터 자신도 지능을 가질 수 있는 계기가 되지 않겠나 생각할 수도 있다 ........... (김영택)
term :
John Backus 컴퓨터 (Computer) 언어 (Language) Backus Naur Form (BNF) 자연어처리 (Natural Language Processing) 프로그래밍 (Programming)
site :
paper :
존 베커스 (John Backus) : 김영택
video :
Oral History of John Backus : ComputerHistory : John Backus, 2006/09/05
Interview with John Backus : engineeringhistory : John Backus, 2014/01/29
Life and Work of Dr. John Backus : Persistent Systems : Abhijat Vichare, 2006/09/05
FORTRAN - A Turning Point in History : Kolby Nottingham : John Backus, 2012/12/10