关于Kotlin和java的编译过程异同的分析
2017-06-09 10:26
399 查看
既然比较不同,先要了解两种语言的编译过程
首先看先Kotlin的编译过程,推荐如下链接:
http://shinelw.com/2017/03/19/kotlin-compiler-process-analysis/
接下来看下大家比较熟悉的Java的编译过程,推荐如下链接:
http://blog.csdn.net/cutesource/article/details/5904542
关于两者的编译速度,可以参考以下文章:
原文:https://medium.com/keepsafe-engineering/kotlin-vs-java-compilation-speed-e6c174b39b5d
译文:http://www.oschina.net/news/79604/kotlin-vs-java
看了文章以后大家应该会了解一下两者的区别了
我自己的总结如下:
两者的编译过程大致:
1词法分析
2语法分析
3语义分析
4中间代码生成
5目标代码生成
区别在于Kotlin与Java相比重要的细节在编译后端(目标代码生成)环节。
Kotlin编译器在目标代码生成环节做了很多类似于Java封装的事情,
比如自动生成Getter/Setter代码的生成、Companion转变成静态类、修改类属性为final不可继承(open修饰即可继承)等等工作。
Kotlin将我们本来在代码层做的一些封装工作转移到了编译后端阶段,使得语言更加简洁
首先看先Kotlin的编译过程,推荐如下链接:
http://shinelw.com/2017/03/19/kotlin-compiler-process-analysis/
接下来看下大家比较熟悉的Java的编译过程,推荐如下链接:
http://blog.csdn.net/cutesource/article/details/5904542
关于两者的编译速度,可以参考以下文章:
原文:https://medium.com/keepsafe-engineering/kotlin-vs-java-compilation-speed-e6c174b39b5d
译文:http://www.oschina.net/news/79604/kotlin-vs-java
看了文章以后大家应该会了解一下两者的区别了
我自己的总结如下:
两者的编译过程大致:
1词法分析
2语法分析
3语义分析
4中间代码生成
5目标代码生成
区别在于Kotlin与Java相比重要的细节在编译后端(目标代码生成)环节。
Kotlin编译器在目标代码生成环节做了很多类似于Java封装的事情,
比如自动生成Getter/Setter代码的生成、Companion转变成静态类、修改类属性为final不可继承(open修饰即可继承)等等工作。
Kotlin将我们本来在代码层做的一些封装工作转移到了编译后端阶段,使得语言更加简洁
相关文章推荐
- 关于java编译过程中的bug说明
- 关于java从编译成class文件到加载再到初始化过程解析
- Java编译与执行过程分析
- C C++ Java C# JS编译、执行过程的原理入门分析
- 关于s5pv210的配置、编译过程中相关文件的分析(Makefile、config.mk、mkconfig)
- 关于Java中几种方法块的执行过程分析
- 《Kotlin 程序设计》第七章 Kotlin 编译过程分析
- Java编译和运行过程中的编码问题
- Java编译和运行过程中的编码问题
- 关于JAVA 中使用 log4j 的过程
- 关于Java编程的中文问题的几条分析原则
- 关于Java编程的中文问题的几条分析原则
- java源代码分析----jvm.dll装载过程
- 实现分析sql语句执行过程和编译时间的方法
- 对java基础数据类型在运算过程中的自动转换的一些分析
- 关于《对某代码编译检查系统的分析》
- 关于Basic程序解释器及编译原理的简单化(1)---Basic器的语法分析及主要代码
- java编译中汉字问题的分析及解决
- 关于Basic程序解释器及编译原理的简单化(1)--词法分析和代数式求值