zoukankan      html  css  js  c++  java
  • javac 编译过程

    javac 编译过程
     javac编译过程
     

    一、解析与填充符号表:

    1.  语法、词法分析:

    a) 语法分析:将源代码字符流转换为标记(Token:编译过程最小元素)集合。

    b) 词法分析:根据标记序列构造抽象语法树(AST:用来描述程序代码语法结构的树形表示方式,每一个节点代表程序中的一个语法结构。

    2.  填充符号表:

    一组符号地址和符号信息组成的表格。

    二、注解处理器:

            插入式注解处理器,编译期间处理注解,读取,修改,删除语法树中的任意元素,编译器会根据修改与否,重新回到解析及符号表填充阶段进行处理。
      initProcessAnnotations,processAnnotation,doProcessing。

    三、语义分析,字节码生成(逻辑验证):

    1.  标注检查:

    包括变量使用前是否已声明,变量与赋值之间的数据类型是否匹配 +++ 常量折叠:int a = 1  + 2 ==> int a = 3

    2.  数据集控制流分析:

    包括,局部变量是否赋值,方法路径返回值验证,受检异常的正确处理。

    3.  解语法糖:

    泛型,装箱拆箱,for循环,条件编译等

    4.  字节码生成

    转换字节写磁盘。<init>()<cinit>()相关处理。

     

  • 相关阅读:
    20209/29
    2020/9/30
    2020/10/1
    ATM测试总结报告
    20201020 千锤百炼软工人
    20201024 千锤百炼软工人
    20201025 千锤百炼软工人
    20201023 千锤百炼软工人
    20201018 千锤百炼软工人
    20201022 千锤百炼软工人
  • 原文地址:https://www.cnblogs.com/niejunlei/p/7809282.html
Copyright © 2011-2022 走看看