"컴파일러"의 두 판 사이의 차이
choywoongkyu (토론 | 기여) (새 문서: '''컴파일러(Comfiler)'''란고급언어(사람이 구분하기 쉬운 언어)로 작성된 프로그램을 컴퓨터가 이해할 수 있는 기계어로 번역하는 것을...) |
잔글 (→같이 보기) |
||
(같은 사용자의 중간 판 2개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | '''컴파일러 | + | '''컴파일러'''(compiler)란 [[프로그래밍]] 과정에서 인간이 작성한 [[소스 코드]]를 [[컴퓨터]]가 이해할 수 있는 [[기계어]] 또는 [[바이트코드]]로 번역해 주는 [[프로그램]]을 말한다. '''처리기'''(processor)라고도 한다. 시스템에서 실행되는 [[객체]] 코드를 생성하는 컴파일러를 [[크로스 컴파일러]]라고 한다. |
+ | == 역사 == | ||
+ | 컴파일러(comfiler)라는 개념은 [[그레이스 호퍼]](Grace Hopper)가 "컴퓨터의 교육"(The Education of a Computer)이라는 제목의 보고서를 발표함으로서 최초로 정의되었다. 보고서에서 호퍼는 고급 [[프로그래밍 언어]]로 작성된 코드를 컴퓨터가 이해할 수 있는 이진(binary) 코드로 만들어 주는 기술을 소개해, 오늘날 컴파일러의 개념과 프로그래밍 코드의 해석방법을 정의했다. 호퍼는 자신이 "A-0"이라는 컴파일러를 직접 개발하기도 했다. | ||
− | == | + | == 구성 == |
− | + | 컴파일러는 총 3가지로 구성되어 있다. | |
+ | ;앞단 | ||
+ | 앞단 또는 프런트 엔드(front end)는 토큰화를 위한 어휘 분석(Lexing), 파스 트리 구성을 위한 구문 분석(Parsing), 중간 코드를 위한 의미 분석 등을 처리한다. | ||
− | + | ;가운데단 | |
− | + | 가운데단 또는 미들 엔드(middle end)는 중간 코드에 대해 프로그램의 분석과 최적화를 처리한다. | |
− | + | ;뒷단 | |
− | + | 뒷단 또는 백엔드(back end)는 각각의 [[CPU]] [[아키텍처]]에 대해 코드 최적화를 수행하며 최종 코드를 생성한다. | |
+ | == 같이 보기 == | ||
+ | * [[프로그램]] | ||
+ | * [[프로그래밍]] | ||
+ | * [[컴파일]] | ||
+ | * [[크로스 컴파일러]] | ||
+ | * [[기계어]] | ||
+ | * [[소스 코드]] | ||
− | + | [[분류:프로그램]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | [[분류: |
2018년 7월 17일 (화) 06:03 기준 최신판
컴파일러(compiler)란 프로그래밍 과정에서 인간이 작성한 소스 코드를 컴퓨터가 이해할 수 있는 기계어 또는 바이트코드로 번역해 주는 프로그램을 말한다. 처리기(processor)라고도 한다. 시스템에서 실행되는 객체 코드를 생성하는 컴파일러를 크로스 컴파일러라고 한다.
역사[편집]
컴파일러(comfiler)라는 개념은 그레이스 호퍼(Grace Hopper)가 "컴퓨터의 교육"(The Education of a Computer)이라는 제목의 보고서를 발표함으로서 최초로 정의되었다. 보고서에서 호퍼는 고급 프로그래밍 언어로 작성된 코드를 컴퓨터가 이해할 수 있는 이진(binary) 코드로 만들어 주는 기술을 소개해, 오늘날 컴파일러의 개념과 프로그래밍 코드의 해석방법을 정의했다. 호퍼는 자신이 "A-0"이라는 컴파일러를 직접 개발하기도 했다.
구성[편집]
컴파일러는 총 3가지로 구성되어 있다.
- 앞단
앞단 또는 프런트 엔드(front end)는 토큰화를 위한 어휘 분석(Lexing), 파스 트리 구성을 위한 구문 분석(Parsing), 중간 코드를 위한 의미 분석 등을 처리한다.
- 가운데단
가운데단 또는 미들 엔드(middle end)는 중간 코드에 대해 프로그램의 분석과 최적화를 처리한다.
- 뒷단
뒷단 또는 백엔드(back end)는 각각의 CPU 아키텍처에 대해 코드 최적화를 수행하며 최종 코드를 생성한다.