Java—了解编译原理 (前端编译)

Posted 一朵花花

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java—了解编译原理 (前端编译)相关的知识,希望对你有一定的参考价值。


Java前端编译

把Java源码文件编译成class文件的过程:. java → . class

1.词法分析

词法分析阶段是编译过程的第一个阶段
这个阶段的任务是将代码中的语句分割成一个一个的字符,从左到右一个字符一个字符地读入源程序,将字符序列转换为标记序列 (Token序列)
但是:词法分析器通常不会关心标记之间的关系 (语法分析的范畴)

2.语法分析

用词法分析产生的字符,构造一棵"语法树",即:将单词序列组合成各类语法短语,如"程序",“语句”,“表达式” 等,语法分析程序通过遍历"语法树"来检测源程序在结构上是否正确

3.语义分析

代码优化阶段,编译过程的一个逻辑阶段
语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息,其中一个重要部分就是类型检查

4.生成中间代码

在Java中,由 javac 按照 Java 语言的语法对源文件进行检测,是否违反语法规范
若符合,则按照字节码文件规范生成相对应的字节码文件,而这个字节码文件就是一种中间代码

字节码文件,有统一的格式

前端编译优缺点:

优点缺点
阶段的优化是指程序编码方面的对代码运行效率几乎没有任何优化措施
编译成的 class 文件可以直接给JVM解释器解释执行,省去编译时间,加快启动速度解释执行效率较低,所以需要结合下面的JIT编译

Java后端编译

通过Java虚拟机 (JVM) 内置的即时编译器 (Just In Time Compiler,JIT编译器);在运行时把Class文件字节码编译成本地机器码的过程

这个后面在进行详细讲解~~

以上是关于Java—了解编译原理 (前端编译)的主要内容,如果未能解决你的问题,请参考以下文章

大前端开发者需要了解的基础编译原理和语言知识

Java三种编译方式

前端工程师为什么要学习编译原理?

夯实基础,编译器原理前端部分浅析

了解编译原理(2019.9.4)

编译原理 模块二