[알아봅시다] 에이다 러브레이스와 Ada

  • 프린트
  • 페이스북
  • 트위터
  • 카카오스토리
시대를 앞서간 최초의 프로그래머

100년후 미국방부 개발언어로 부활
앨런 튜링 등 후대과학자에 영향
말년에 경마 우승확률 계산기계 실패
Ada언어는 90년대까지 선보여



시인 바이런의 딸로 태어나
발명가 베비지의 후원자 겸 동료로
루프, 서브루틴 개념과 IF 구문 고안
현대 프로그램 개념 만들고 활용 예언
표준 프로그래밍언어 'Ada'로 명명
이름 주인처럼 쓸쓸하게 잊혀져…

`세계 최초의 프로그래머는 누구인가?' 이 논쟁에서 가장 강력한 후보로 손꼽히는 사람은 19세기의 에이다 러브레이스(Ada Lovelace)입니다. 대체 그녀가 누구이기에 사람들이 그녀를 최초의 프로그래머로 생각하는 것일까요?

에이다는 1815년 영국의 낭만파 시인 바이런의 딸로 태어났습니다. 귀족가문에서 자란 그녀는 수준 높은 가정교육을 받는데 특히 수학에 남다른 재능을 보입니다. 하지만 19살에 러브레이스 백작과 결혼 후 자신의 재능을 발휘할 기회를 얻지 못합니다. 그러던 중 영국의 발명가 찰스 베비지(Charles Babbage, 1791~1871)의 발명품 소개회에 참석한 것이 그녀의 운명을 바꿉니다. 찰스 베비지와의 만남 이후 에이다는 그의 후원자 겸 동료가 됩니다. 에이다의 관심을 끌었던 것은 베비지의 차분기관(Difference Engine)과 해석기관(Analytical Engine)이었습니다. 차분기관은 로그와 삼각함수를 계산할 수 있는 계산기였고 해석기관은 모든 종류의 계산을 가능하게 하는 계산기계였습니다. (해석기관은 일부분만 제작되었음)

에이다는 베비지와 함께 해석기관에 대해 연구한 내용을 바탕으로 책 `베비지의 해석기관에 대한 분석'을 출판합니다. 이 책에서 에이다는 해석기관의 프로그램 개념을 설명하며 같은 공식을 반복하는 루프(loop), 사용한 공식을 다시 사용하는 서브루틴(subroutine), 구문을 뛰어넘어 실행하는 점프(jump)의 개념과 조건식 IF구문을 고안해 냅니다. 또 프로그램을 통해 음악을 작곡하거나 그림을 그리는 일도 가능할 것으로 예견합니다. 즉 그녀는 19세기에 현대 프로그램의 개념을 만든 것은 물론 그 활용까지도 예언한 것입니다. 이 생각은 후세에 앨런 튜링 등 과학자들에게 영향을 주었고 때문에 많은 사람들이 그녀를 최초의 프로그래머로 생각하고 있습니다.

그러나 시대를 앞서간 여인의 운명은 순탄치 않았습니다. 그녀는 도박에 빠져 많은 재산을 탕진합니다. 또 베비지와 경마 우승 확률을 계산하는 기계제작을 시도하지만 실패합니다. 결국 그녀는 경제적, 정신적 어려움 속에 자궁암이라는 불행이 겹쳐 36살 젊은 나이에 죽고 맙니다. 그녀의 이름이 세상에 다시 알려진 것은 100년이 훨씬 지난 후였습니다.

1974년 미 국방부가 발주하는 프로젝트에 서로 다른 프로그래밍 언어들이 사용되었고, 그들 중 어떤 것도 표준화되지 않았습니다. 이런 언어들의 난립은 응용 소프트웨어 개발과 유지보수 비용을 높였습니다.

결국 미 국방부는 1975년 HOLWG(High Order Language Working Group)을 결성, 프로그래밍 언어 개발에 착수합니다. 200여 명의 연구원들의 연구를 통해 미 국방부는 자신들이 필요한 언어의 조건을 확인하고 경쟁계약을 통한 언어설계 방식을 택합니다. 그 결과 프랑스의 씨 하니웰/불(Cii Honeywell/Bull)사가 파스칼 언어를 기반으로 설계한 언어가 채택됩니다.

이 언어의 이름은 에이다를 기리고자 Ada로 결정됩니다. 프로그래밍 언어 Ada를 통해 에이다의 이름을 기억하게 된 것입니다.

이 언어의 설계 방침은 어떤 프로그램도 기술할 수 있도록 했기 때문에 언어의 사양이 대규모입니다. 또 병렬처리나 프로그램의 모듈분할, 예외처리, 다양한 데이터 표현 등이 포함되어 강력하고 광범위한 기능을 갖습니다. 특히 대규모 프로그램 개발과 유지보수를 쉽게 하기 위해 각종의 선언에 의해 프로그램의 사양을 명시하도록 한 것이 특징입니다.

미 국방부는 초기 버전인 Ada83을 발표했고 90년대에는 Ada95를 선보입니다. 하지만 에이다의 말년처럼 Ada의 모습도 쓸쓸했습니다. Ada는 C++ 등 경쟁언어들의 등장과 전문가들이 아니면 사용하기 어려운 점 때문에 사람들의 관심에서 멀어져갔고 현재는 널리 사용되지 않고 있습니다.

강진규기자 kjk@

추천기사



가장 많이 본 기사

스타 포토