Java
[JVM 밑바닥까지 파헤치기] 10-1. 프런트엔드 컴파일과 최적화: 프런트엔드 컴파일
noahkim_
2024. 12. 24. 04:17
저우즈밍 님의 "JVM 밑바닥까지 파헤치기" 책을 정리한 포스팅 입니다
1. 프런트엔드 컴파일
- java 파일을 class 파일(bytecode)로 변환하는 작업
javac
- 프런트엔드 컴파일러
- jdk 6부터 표준 자바 클래스 라이브러리에 포함됨 (이전에는 tools.jar에 존재하였음)
- 최적화 작업이 수행되지 않음
컴파일 과정
- 준비
- 플러그인 애너테이션 처리기들을 초기화함
- 구문 분석
- 토큰화
- 추상 구문 트리 생성
- 심벌 테이블 생성
- 심벌 주소, 심벌 정보가 기입됨
- 애노테이선 처리
- 플러그인 애노테이션 처리기를 사용하여 처리함
- 바이트코드 생성
- 문법 검사
- 제어 흐름 분석
- 편의 문법 제거