javac 컴 파일 원리 진급

컴 파일 원리 초기 단계:http://blog.csdn.net/dhcao1112/article/details/78336250
자바 의 컴 파일 링 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 컴 파일 러
늘 어 난 거 야.

좋은 웹페이지 즐겨찾기