프로그래밍/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)
코드 기계어 코드

 

컴파일러가 없다면?

프로그래밍 언어로 작성한 코드가 절대 실행될 없습니다.

컴퓨터는 오직 기계어(01구성된 명령어)실행할 있기 때문입니다.

 

작성한 코드가 실행 파일로 변환되지 않는다

int main() {
    printf("Hello, world!");
    return 0;
}

 

  • 코드는 사람이 보기엔 문제없지만,
  • 컴파일러 없이 main.exe 또는 a.out으로 변환되지 않음
  • 결국 컴퓨터가 이해할 없는 상태 , 즉 실행이 불가능함