既然比较不同,先要了解两种语言的编译过程
首先看先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将我们本来在代码层做的一些封装工作转移到了编译后端阶段,使得语言更加简洁