프로그래밍/CS및OS
1. 컴파일러란?
데일리 백수
2025. 5. 14. 12:23
컴파일러란?
컴파일러(Compiler)는
고급 프로그래밍 언어(C, C++, Java 등)로 작성된 소스 코드를
컴퓨터가 이해할 수 있는 기계어(실행 가능한 코드)로 변환해주는 프로그램 또는 도구입니다.
역할 설명
문법 검사 | 코드에 문법 오류가 있는지 확인 (예: 세미콜론 빠짐 등) |
최적화 | 실행 속도 개선을 위해 내부 코드 구조를 최적화 |
코드 생성 | C/C++ → 어셈블리/기계어로 변환 |
오류 보고 | 어떤 줄에서 문제가 발생했는지 알려줌 |
파일 생성 | 최종적으로 실행 가능한 프로그램(.exe, a.out 등)을 생성 (링커와 함께) |
컴파일러 vs 인터프리터
작동 방식 | 전체 코드를 한 번에 번역 | 한 줄씩 읽고 즉시 실행 |
예시 언어 | C, C++, Java | Python, JavaScript |
실행 속도 | 빠름 (기계어로 변환됨) | 상대적으로 느림 |
실행 파일 | 생성됨 | 없음 |
컴파일러가 변환하는 대상
main.c | 실행 가능한 바이너리(exe, out) |
코드 | 기계어 코드 |
컴파일러가 없다면?
프로그래밍 언어로 작성한 코드가 절대 실행될 수 없습니다.
컴퓨터는 오직 기계어(0과 1로 구성된 명령어)만 실행할 수 있기 때문입니다.
작성한 코드가 실행 파일로 변환되지 않는다
int main() {
printf("Hello, world!");
return 0;
}
- 위 코드는 사람이 보기엔 문제없지만,
- 컴파일러 없이 main.exe 또는 a.out으로 변환되지 않음
- 결국 컴퓨터가 이해할 수 없는 상태 , 즉 실행이 불가능함