컴파일러: 두 판 사이의 차이

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