자바 컴파일러
자바 컴파일러는 자바 프로그래밍 언어로 작성된 소스 코드를 자바 가상 머신(JVM)이 이해하고 실행할 수 있는 바이트코드(bytecode)로 변환하는 프로그램이다. 일반적으로 javac
라는 이름으로 제공되며, 자바 개발 키트(JDK)에 포함되어 있다.
자바 컴파일러의 주요 역할은 다음과 같다.
- 구문 분석 (Lexical Analysis & Parsing): 자바 소스 코드를 읽어 들여 어휘 분석과 구문 분석을 수행한다. 이 과정에서 코드의 문법적인 오류를 검출하고, 코드의 구조를 파악한다.
- 의미 분석 (Semantic Analysis): 코드의 의미를 분석하여 자료형 검사, 변수 선언 검사, 접근 제어 검사 등을 수행한다. 의미적으로 올바르지 않은 코드를 찾아 오류를 발생시킨다.
- 바이트코드 생성 (Bytecode Generation): 의미 분석을 마친 코드를 JVM에서 실행될 수 있는 바이트코드로 변환한다. 바이트코드는 플랫폼에 독립적인 특징을 가지며, JVM 위에서 실행되어 다양한 운영체제에서 동일한 결과를 보장한다.
- 최적화 (Optimization): 생성된 바이트코드를 최적화하여 실행 속도를 향상시킨다. (선택적인 과정)
자바 컴파일러는 자바 개발 과정에서 필수적인 도구이며, 컴파일 과정을 통해 소스 코드의 오류를 사전에 발견하고, JVM에서 실행 가능한 형태의 코드를 생성하여 자바 프로그램의 실행을 가능하게 한다. 자바의 "Write Once, Run Anywhere" (WORA) 철학을 구현하는 데 중요한 역할을 한다.