충분히 쌓여가는
Compiler 컴파일러 본문
Compiler 컴파일러
- 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램
- 프로그래밍 언어의 소스 코드 를 기계 코드, 바이트 코드 또는 다른 프로그래밍 언어로 변환하는 특수 프로그램
- 컴파일러는 소스 코드를 기계 코드나 바이트코드가 아닌 다른 고급 프로그래밍 언어로 변환할 수 있음
- 일부 컴파일러는 소스 코드를 기계 코드나 바이트코드가 아닌 다른 고급 프로그래밍 언어로 변환
Compiler의 역사
- 초기 컴퓨터 프로그램들은 어셈블리어로 작성됨
- 서로 다른 CPU 아키텍처가 등장할 때마다 매번 똑같은 프로그램을 서로 다른 어셈블리어로 작성하는 비용이 커짐 -> 고급 프로그래밍 언어의 필요성이 대두됨(초기 컴퓨터 하드웨어의 메모리 크기가 너무 작아, 컴파일러의 등장에 기술적 장애물이 됨)
- 1950년대 초부터 기계어에 독립적인 최초의 고급 프로그래밍 언어가 나타났고, 실험적인 컴파일러들이 등장하기 시작
- 세계 최초의 컴파일러는 1952년 그레이스 호퍼가 개발한 프로그래밍 언어 A-0를 기계어로 번역하는 컴파일러
Compiler 작동
Compiler 기능
- 고급언어를 직접 기계어 코드로 변환
- 자바의 경우 바이트 코드로 변환한다. 중간단계의 코드를 생성하고 이것을 해석해서 실행( 다양한 마이크로프로세서에서 실행되도록 하는 철학을 가지고 개발되었기 때문에 바이트 코드를 가지고 해석을 해서 실행하는 방식)
- C/C++언어와 같은 고급언어는 직접 기계어 코드로 변환
- 마이크로프로세서(CPU)는 각각 다른 기계어 코드를 가지고 있기 때문에 같은 고급언어라도 다른 기계어 코드를 생성해야 함
정리
- 프로그램을 컴퓨터로 실행하는 과정은 여러 가지 활동들을 포함함
- 프로그램은 자바와 같은 적절한 프로그래밍 언어로 작성되어야 함
- 우리는 작성한 프로그램을 이해하지만 컴퓨터는 이해하지 못함 -> 컴퓨터가 이해할 수 있는 기계어(Machine Language)로 바꿔야 함 -> 이때 변환을 수행하는 소프트웨어가 Compiler
- 컴파일러는 한 프로그래밍 언어로 작성된 원시 프로그램(source code)을 기계어로 된 목적 프로그램(object code)로 바꿈
- 즉, 컴파일러는 원시 프로그램을 기계어로 된 목적 프로그램으로 바꿔줌
참고자료
Eye on Tech, What is Source Code and What Does it Do?
위키백과, 컴파일러
이충기. 『문제 해결을 위한 자바 프로그래밍』. 생능출판, 2017. 20쪽
'IT > Computer Science' 카테고리의 다른 글
SOLID 5가지 설계 원칙 (2) | 2023.01.10 |
---|---|
Design Pattern 디자인 패턴 (1) | 2023.01.09 |
Session 기반 인증 | Token 기반 인증 (0) | 2023.01.06 |
GPU(Graphic Processing Unit) (0) | 2023.01.05 |
IPv4와 IPv6 (0) | 2023.01.05 |