尚学堂【官网】-西安Java培训|c++培训|Android培训|安卓培训|java视频教程|软件工程师|-西安雁塔尚学堂计算机学校
常见问题  尚学堂首页新闻公告常见问题

Javac编译器的工作过程

www.xasxt.com 发布人:java  |  来自:本站  |  发布时间:2018-09-08 13:53:00  |  点击次数:1243

尚学堂Java培训

  javac的任务是将Java源代码语言先转化成JVM能够识别的一种语言,然后由JVM将JVM语言再转化成当前这个机器能够识别的机器语言。

  Javac主要有四个模块,分别是词法分析器、语法分析器、语义分析器、代码生成器。

  一、词法分析器

 

  当编译器要读取源代码,一个字节为一节地读进来,找出在这些字节中有那些是我们定义的语法关键词,这个步骤就是词法分析器。词法分析的结果就是从源代码中找出一些规范化的Token流。

  二、语法分析器

 

  找出Token流后,检查这些关键词组合在一起是不是符合java语言规范,就是语法分析,结果就是形成一个符合java语言规范的抽象语法树。

  三、语义分析器

 

  语义分析主要是把一些难懂的、复杂的语法转换成更加简单的语法。

  这个过程就是将语法分析后生成的抽象语法树在进行一些处理,如,给类增加默认的构造函数,检查变量在使用前是否经过初始化,将一些常量进行合并处理,检查操作变量类型是否匹配,检查所有的操作语句是否可达,检查checkedexception异常是否已经捕获或抛出,接触java的语法糖(如将java中foreach转换成for循环结构。)

  四、代码生成器

 

  最后一步是通过字节码生成器生成字节码,根据经过注解的抽象语法树生成字节码,结果也就是生成符合java虚拟机规范的字节码了。

  学习【Java】有困难需要培训可以加QQ3168098131交流咨询,每星期都有免费实战试听课等你来约。

尚学堂java培训

当前文:Javac编译器的工作过程
上一页:程序员如何去快速定位bug
下一页:尚学堂每日一练数据库相关题目
在线报名(*为必填项)