컴파일러: 두 판 사이의 차이
내용 삭제됨 내용 추가됨
19번째 줄:
=== 목적코드가 실행되는 방법 ===
컴파일러가 실행되는 컴퓨터나 운영체제가 컴파일러의 목적코드가 실행될 컴퓨터나 운영체제와 같은 경우 네이티브 컴파일러(native compiler)라고 한다. 반면에 크로스 컴파일러(cross compiler)는 다른 컴퓨터나 운영체제에서 실행되도록 제작된다. [[임베디드 시스템]] 등 소프트웨어 개발에 충분한 환경을 갖추지 못한 환경에서 동작할 프로그램을 만들기 위해 사용된다.▼
컴파일러가 실행되는 컴퓨터나 운영체제가 컴파일러의 목적코드가 실행될 컴퓨터나 운영체제와 같은 경우 네이티브 컴파일러(native compiler 또는 hosted compiler)라고 한다.
네이티브 컴파일러 예:
* [[마이크로소프트 윈도]]용 응용프로그램 개발하기 [[마이크로소프트 비주얼 스튜디오|비주얼 스튜디오]]로 컴파일하면 실행파일(exe 파일) 생성한다.
* [[리눅스]]용 응용프로그램 개발하기 위해 x86용 gcc를 사용하면 리눅스 실행파일이 생성된다.
▲
크로스 컴파일러 예 :
* 리눅스(x86)에서 ARM용 임베디드 시스템용 프로그램이나 커널을 개발하기 위해 ARM용 gcc을 사용하면 ARM 코드의 실행파일이 생성된다.
* 마이크로소프트 윈도에서 8051, AVR, PIC등의 시스템 프로그램을 개발하기 위해 해당 컴파일러를 사용하면 해당 CPU의 코드가 생성된다.
====자바====
또한 [[가상 머신]]에서 동작할 프로그램을 만드는 컴파일러도 있다. 이 경우 일반적으로 출력물이 가상 머신을 위해 제작된 [[바이트코드]] 형태의 기계어가 되므로 바이트코드 컴파일러라고 부른다.
|