文章目录
- 1.编译原理
- 2.基于LLVM的编译原理简明教程
1.编译原理
Java语言
- Java结合了编译和解释的过程,我们写的 Java 源文件首先被编译成 字节码(bytecode),字节码是一种中间码,它通常被看成是可执行的二进制文件。
- 再由 Java 虚拟机对字节码解释执行。这样,在一台机器上编译的字节码就能够在其他机器上解释执行,这种体现了 Java 语言的平台无关性。
- 为了提高编译速度,Java 中有一种 just-in-time,JIT,即时编译器会一边编译一边执行。
- 一个源文件程序可能被划分为多个模块,并存放在多个文件中,还需要把文件链接在一起,所以,除了编译器之外,还需要一种能链接文件的部件参与,预处理器(preprossor) 是做这件事情的。
- 预处理器经过预处理后会作为输入传递给编译器,编译器对源程序进行编译,编译完成后生成汇编代码,作为汇编器的输入传递给汇编器,汇编器进行汇编处理转换为机器代码,注意这个时候还不是目标代码,还要经过链接器与系统库函数进行链接,最后由加载器把目标代码加载到内存中执行
编译器的典型结构
- 如下图所示
2.基于LLVM的编译原理简明教程
- 参考:基于LLVM的编译原理简明教程 (1) - 写编译器越来越容易了,为什么编译原理被称为龙书?