컴파일러
- 고수준 언어를 저수준 언어로번역
- 제품으로 판매될 때
- 프로그램이 반복적으로 사용될 때
- 명령이 복잡할 때
인터프리터
- 소스 프로그램을 실행
- 한 번 쓰고 버릴 때
- 실행 속도가 무의미할 때
Compilation
- a 기계에서 c프로그램을 a 기계로 컴파일
- 컴파일할 수 있다.
Cross compilation
Two stage compilation
추상머신
- 플랫폼에 의존하지 않아도 된다.
- 테스트, 디버깅 유용
Interpretive compilers
- 소스 프로그램을 중간 언어로 번역
- 인터프리터가 목적 프로그램 실행
- 중간언어는 기계 코드와 소스 코드 사이의 수준
Bootstrapping
- 언어에 대한 컴파일러를 자체 언어로 구현해 플랫폼에 대한 의존도를 낮춤
- 첫 번째 컴파일러를 어떻게 만들까
Full bootstrap
- 새 컴파일러를 처음부터 만들 때 필요
- 다른 언어에 대한 의존성 제거
Half bootstrap
- 먼저 해당 기계로 컴파일한 후 다른 기계로 크로스 컴파일