개발모음집

컴퓨터 과학 총론, 휴먼싸이언스, 이광수 외 3명 공역 Chapter 06 프로그래밍 언어 본문

Theory

컴퓨터 과학 총론, 휴먼싸이언스, 이광수 외 3명 공역 Chapter 06 프로그래밍 언어

void 2016. 6. 29. 18:48

6.1 역사적 고찰


기계어: 숫자들로 인코딩된 일련의 명령

디버깅: 버그를 찾아서 고치는 과정

식별자(=변수): 메모리 셀의 이름

어셈블러: 기호 표현을 기계어 명령으로 변환해주는 프로그램

어셈블리 언어: 프로그램 표현에 사용되는 기호 체계, 기계어에 비해 여러 이점, 하지만 프로그래밍 환경을 제공하기에는 많이 부족

어셈블리 언어 단점: 기계어에서 사용되는 것과 기본적으로 동일하다. 본질적으로 기계 종속적이다.

 또, 프로그래머가 숫자 형식을 사용해야 하는 것은 아니지만, 여전히 기계어의 단순한 단계들로 주어지는 틀에 맞추어 고쳐야 하므로 간단한 일이 아니다.


3세대 프로그래밍 언어: 특정 컴퓨터의 특성에 의존하지 않는 기계독립적이라는 점이 이전 세대의 언어들과 차별화된다. FORTRAN, COBOL

언어를 구현하기 위한 수단으로 컴파일러 대신 인터프리터라고 불리는 프로그램을 사용하기도 한다.


컴파일러: 고급 수준의 프리미티브들을 기계어 프로그램으로 번역해주는 번역기 프로그램을 개발하여 사용할 수 있다. 이러한 번역기는 2세대 언어를 위한 어셈블러와 비슷하지만, 하나의 고급 수준 프리미티브가 요청하는 활동을 수행하기 위해 여러 개의 기계어 명령을 조합해야 한다는 점에서 차이가 있다. 이러한 이유로 3세대 언어들을 위한 번역 프로그램을 흔히 컴파일러라고 부른다.


인터프리터: 컴파일러와 유사한 측면이 있지만, 컴파일러가 번역된 버전을 나중에 사용하기 위해 파일로 만드는 반면, 인터프리터는 번역하면서 실행한다는 점에서 차이가 있다. 즉, 인터프리터는 나중에 실행된 기계어 버전을 만드는 대신에 고급 수준 형태의 프로그램을 실제로 실행시킨다.