컴파일러(Compiler)
컴파일러는 프로그래밍 언어로 작성된 소스 코드를 기계어(바이너리 코드)로 변환하는 프로그램입니다. 이 과정은 소스 코드를 CPU가 직접 실행할 수 있는 형태로 바꾸기 위한 필수 단계입니다. 컴파일러는 주로 정적 언어(예: C, C++, Java 등)에서 사용됩니다.
컴파일러의 주요 역할:
- 구문 분석: 소스 코드의 문법을 확인하고, 프로그램이 올바르게 작성되었는지 확인합니다.
- 어휘 분석: 코드에서 키워드, 변수, 연산자를 분리하여 분석합니다.
- 중간 코드 생성: 플랫폼 독립적인 중간 형태의 코드를 생성합니다.
- 최적화: 실행 속도를 높이기 위해 코드를 최적화합니다.
- 기계어 생성: 컴퓨터가 이해할 수 있는 바이너리 파일로 변환합니다.
예:
- C언어에서 사용하는 GCC (GNU Compiler Collection)
- Java에서 사용하는 javac
빌드(Build)
빌드는 소스 코드 파일을 실행 가능한 소프트웨어로 만드는 전체 과정을 의미합니다. 빌드 프로세스는 컴파일뿐 아니라 추가적인 작업도 포함합니다.
빌드 과정:
- 컴파일(Compile):
- 소스 코드를 기계어로 변환.
- 링킹(Linking):
- 여러 개의 객체 파일(Object Files)과 라이브러리를 하나의 실행 파일로 결합.
- 예: main.c와 utility.c를 하나의 실행 파일로 묶는 과정.
- 리소스 처리(Resource Handling):
- 이미지, 설정 파일 등 프로그램에서 사용하는 리소스를 포함.
- 패키징(Packaging):
- 완성된 파일을 배포 가능한 형태(예: .exe, .jar 등)로 묶음.
빌드 도구:
- Make: Makefile을 사용해 빌드 자동화.
- Gradle: Java, Kotlin 등에서 사용.
- Maven: Java 기반 프로젝트의 빌드 및 의존성 관리.
- CMake: 크로스 플랫폼 빌드 시스템.
댓글