OS가 무엇인가을 정의하기 나름이기는 하나,,, 통념상 정의를 해보면 컴퓨터 하드웨어를 운영하기 위한 프로그램으로 정의 할 수 있고 이러한 프로그램은 최초에 어셈블리 또는 기계어로 작성되었을 것이므로 어셈블리 이상의 고차원 언어를 기계어로 번역하는 프로그램을 컴파일러라 한다면 컴파일러는 OS보다 한참이나 뒤에 나온 것이 겠지요.
인터넷을 찾아보니 아래와 같은 글이 있군요.
소프트웨어의 여명기
최초의 컴퓨터가 등장한지도 벌써 20년이 훌쩍 넘어버렸다. 오늘날의 PC에 비하면 초기의 컴퓨터들은 사뭇 다른 모습을 가지고 있었지만 그들도 소프트웨어와 하드웨어라는 큰 테두리 안에서 벗어날 수 없었다. 그러나, 초창기의 컴퓨터들은 다양한 소프트웨어들 덕택에 활동범위를 점차로 넓혀갈 수 있는 기반을 만들게 되었다.
글쓴이 : 정재형(dukerain@hwlab.com)
자료출처 : 하드웨어랩 - http://www.hwlab.com
날짜 : [2003-04-02 16:51:25]
|
현대적 의미의 프로그래밍 언어의 기초는 2차대전 패전국이었던 독일의 공학자 콘라드 주제(Konrad Zuse)에 의해서 이루어졌다. 당시 그의 발상은 매우 획기적이어서 30년이 지난 1972년에 가서야 빛을 보게 된다.
콘라드 주제는 1935년에서 1938년 사이에 Z-1,Z-2 컴퓨터를 개발하면서, 프로그래밍 언어에 대한 개념을 사용하였다. 승전국인 미국과 영국에서도 국수주의적인 프로그래밍의 한계를 깨닫기 시작했으며, 그 선두에 여성 과학자인 그레이스 머레이 호퍼(Grace Murray Hopper)가 있었다.
호퍼는 유니백에서 어떻게 하면 보다 나은 프로그래밍을 할 수 있을 것인가를 연구했는데, 그녀의 방식은 주제의 방식과 동일한 것으로 대수학에 쓰이는 용어를 이용해 기계에 입력하는 것이었다. 따라서 수학에 익숙한 사람들은 복잡한 이진법이나 8진법대신 자신들이 흔히 써왔던 수학기호들을 쓸 수 있게 된 것이었다.
1949년 호퍼는 최초의 원시 인터프리터인 숏코드(Short Code)를 개발하였다. 숏 코드는 이후 윌크스가 확장, 정리하여 어셈블러(Assembler)로 나타나게 된다. 어셈블러는 간단한 표현으로 된 기호를 하나씩 기계 명령으로 바꾸어 주는 일종의 번역기였다.
1952년 영국 출신의 애릭 글레니는 오토코드(Auto Code)라는 고급 랭귀지 번역기를 발표한다. 오토코드는 마크Ⅰ에서 사용된 최초의 컴파일러가 되었다. 숏코드와 달리 오토코드로 개발된 프로그램은 저장할 수 있었으며, 사용할 때마다 불러 쓰면 되었다. 서브루틴(sub routine)이라는 개념도 이때 생겨났다.
이후 호퍼는 오토코드를 개선한 최초의 컴파일러인 A-0 언어 번역시스템을 만들었으며,A-1, A-2로 개선하면서 Machmatic이라는 상품명으로 선전을 시작하였다. 그러나 그 때나 지금이나 수학에 대한 두려움 때문에 수학적 표현만으로는 일반 사람에게 친근한 컴파일러가 될 수 없었다.
호퍼와 그의 팀은 결국 플로매틱(Flow-Matic)이라는 상업용 컴파일러를 등장 시키게 되는데, 이것은 이후 폭발적으로 증가하는 프로그래밍언어 수요의 물고를 터놓게 된다. 그 후 IBM-701 컴퓨터에도 이와 유사한 스피드 코딩이라는 컴파일러가 개발된다.
|
|
|