javac 컴 파일 원리 진급
자바 의 컴 파일 링 4 대 과정 에 대해 서 는 "자바 c 컴 파일 원리 초기 단계" 에서 대충 알 고 있 습 니 다.더 나 아가, 우 리 는 자바 c 소스 코드 측면 에서 자바 의 컴 파일 과정 을 다시 토론 합 니 다.
1. javac 소스 코드: 소스 코드 는 OpenJDK 7: com. sun. tools. javac. main. JavaCompiler 에서 추출 합 니 다.
initProcessAnnotations(processors); line:821
// These method calls must be chained to avoid memory leaks
delegateCompiler =
processAnnotations( // ( ( 、 (Compil....)))
enterTrees(stopIfError(CompileState.PARSE, parseFiles(sourceFileObjects))),
classnames);
delegateCompiler.compile2();
delegateCompiler.close();
elapsed_msec = delegateCompiler.elapsed_msec;
case BY_TODO:
while (!todo.isEmpty())
generate(desugar(flow(attribute(todo.remove()))));
// ( ( ( (todo.remove()))))
우 리 는 컴 파일 집행 의 순 서 를 알 수 있다. 1. 품사, 문법 분석.2. 기호 표 에 출력 합 니 다.3. 주해 처 리 를 실시한다.4. 표시.5. 데이터 흐름 분석.6. 해어 법 사탕.7. 바이트 코드 생 성.
1. 어법 문법 분석:
어법, 문법 을 분석 한 후에 문법 트 리 가 형성 된다.
그리고 그 후에 컴 파일 러 는 자바 소스 코드 를 조작 하지 않 고 후속 작업 은 모두 문법 트 리 를 대상 으로 한다.
2 - 6. 모든 과정 은 의미 분석 기 에 포 함 될 수 있다.
의미 분석 은 서로 다른 의 미 를 대상 으로 각자 의 유형 으로 해당 하 는 정 보 를 처리 하 는 것 으로 전편 에서 이미 언급 한 바 있다.그럼 헤 어 짐 은 어떻게 되 는 겁 니까?
1) 기호 표 채 우기: com. sun. tools. javac. comp. Enter
enterTrees () 방법.기호 표 는 동일성 을 가지 지 않 고 질서 있 는 기호 표, 나무 모양 기호 표, 스 택 구조 기호 표 등 이 있 을 수 있다.
2) 주해 프로세서: com.sun.tools.javac.procession.JavacProcessingEnvironment
주해 기능 은 JDK 1.5 이후 에 나타 나 는 것 으로 그 자체 가 운행 기간 에 만 작용 한다.JDK 1.6 에 서 는 컴 파일 러 에서 주 해 를 처리 하기 위해 삽입 식 주해 처리 API 를 제공 합 니 다.
이 API 들 은 주 해 를 해석 하고 주해 에 따라 문법 트 리 를 다 르 게 수정 합 니 다.즉, 모든 주해 의 역할 은 컴 파일 기간 에 나타난다.
문법 트 리 를 조작 하 는 것 이다.
3) 레이 블 과 데이터 흐름 분석 은 앞에서 상세 하 게 설명 했다.
4) 해어 법 당: 사실은 자바 언어 를 포장 하고 철거 하 는 것 이다.
예 를 들 어 foreach 순환 분해, 본질은 for 순환, 자동 분해 와 포장, 일반적인 해석 등 이다.
7. 바이트 코드 생 성
앞에서 생 성 된 각종 정 보 를 수식 하고 추가 한 후에 디스크 에 기록 합 니 다.어떻게 수식 하고 추가 합 니까: 인 스 턴 스 구조 기 () 와 클래스 구조 기 () 생 성
。이 두 가 지 는 클 라 스 파일 을 읽 을 때 나 자바 p 명령 을 이용 하여 바이트 코드 를 분석 할 때 더 많은 연결 방법 을 볼 수 있 습 니 다.바로 이때, javac 컴 파일 러
늘 어 난 거 야.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 기초 - 빠 른 정렬 알고리즘 자바 구현R. Hoare 가 1962 년 에 제기 했다.2 알고리즘 사상.한 번 의 정렬 을 통 해 정렬 할 데 이 터 를 독립 된 두 부분 으로 나 누 었 습 니 다. 그 다음 에 이 방법 에 따라 이 두 부분의 데 이 터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.