美文网首页
JavaWeb系列读书笔记(三)Java编译原理

JavaWeb系列读书笔记(三)Java编译原理

作者: shaclow | 来源:发表于2018-07-22 14:45 被阅读0次

    Javac是一种编译器,编译器简单来说就是个翻译器,将一种语言翻译成另外一种语言,往往是将高级的语言翻译成对机器友好的底层语言。但是不同机器之间有差别,为了实现在各机器能识别语言,这个工作交个JVM来完成。而Javac得任务就是将Java源码转化为JVM能识别得语言。

    Java源码(.java)->Javac->Java字节码(.class 二进制)->JVM->当前机器能识别得机器语言

    Javac的过程

    1.源码
    2.Token流(词法分析)
    3.语法树(语法分析)
    4.注解语法树(语义分析)
    5.字节码(代码生成)

    词法分析:

    Javac的接口类是com.sun.tools.javac.parser.Lexer 默认实现类为 xxxxx.Scanner
    Scanner会逐个读取Java源文件的单个字符,然后解析出符合Java语言规范的Token序列

    语法分析:
    将token流更加结构化成为一个语法树

    语义分析
    对语法树进一步细化,去掉无用代码,变量自动转化,代码检查,去除语法糖等

    代码生成
    遍历语法树,生成最终的字节码

    相关文章

      网友评论

          本文标题:JavaWeb系列读书笔记(三)Java编译原理

          本文链接:https://www.haomeiwen.com/subject/dnylmftx.html