-
컴파일러(Compiler)
-
컴퓨터가 이해할 수 있는 기계어 코드로 변역해주는 역할
-
컴파일 프로그램은 대개 디스트에 저장,
-
컴파일러는 실행 시에 모든 문장을 먼저 구문적으로 하나씩 분해
-
다른 문장을 참조하는 경우 그 문장이 정확하게 참조될 수 있도록 여러번의 연속적인 상태에서 결과코드 생성
-
원시프로그램(Source program)을 기계어(Machine language)로 변환시켜 목적프로그램(Object program)으로 번역해주는 특수한 프로그램
-
목적파일을 실행파일로 바꾸기 위한 처리
-
실행파일이 운영체제의 요건에 맞도록 형태를 바꿈
-
스타트업(StartUp)이라는 추가코드 가져와야 함
-
링크(Link) : 목적파일에 실행파일로 만드는 동작
-
링커(Linker) : 링크를 해주는 프로그램
-
프로그램 작성되는 과정
-
빌드(Build) : 컴파일과 링크를 통해 실행파일을 만드는 과정
-
소스파일을 번역하여 곧바로 실행파일을 만들지 않고 목적파일을 거치는 이유
-
각 소스파일의 명령을 번역한 기계 코드를 가진 목적 파일의 연결하여 하나의 실행파일 생성
-
링크단계에서 이미 만들어진 라이브러리도 결합
-
인터프리터(Interpreter)
-
원시코드 명령문들을 한 번에 한 줄씩 읽어들여서 실행하는 프로그램
-
원시프로그램 문장들이 입력되면 인터프리터는 문장들의 기능을 정의하고 그 기능대로 수행됨
-
컴퓨터의 주기억장치에 저장된 프로그램이나 또는 많은 프로그램에서는 ROM 형태로 되어있음
-
목적프로그램에 의해서 수행되는 것보다 프로그램의 수행속도가 훨씬 느림
-
컴파일러와 인터프리터의 차이점
원시 프로그램 -> 컴파일러 -> 목적 프로그램
원시 프로그램-> 인터프리터 -> 실행 명령문
-
프로그램 수행 속도
-
메모리 할당
-
프로그램 저장 위치
-
사용분야
-
정리
-
|
비교단위 |
컴파일러 |
인터프리터 |
|
번역단위 |
프로그램 단위 번역 |
명령 줄 단위로 번역 |
|
수행과정 |
함께 번역, 함께 수행 |
줄 단위로 변역 수행 |
|
목적프로그램 |
번역 후 저장을 위해 필요 |
바로 수행하므로 불필요 |
|
효율성 |
효율성 좋음 |
효율성 떨어짐 |
|
기억장소 |
많이 필요 |
적게 필요 |
Posted by 초상큼발랄