当前位置:首页 » 编程软件 » 如何编译中间代码

如何编译中间代码

发布时间: 2024-12-18 06:33:26

① 为什么要采用中间代码中间代码有哪几种形式(编译原理)

采用中间代码是把源程序映射成中间代码表示,再映射成目标代码的工作分在几个阶段进行,使编译算法更加清晰。中间代码有四种形式:

1、逆波兰表示

逆波兰表示又称后缀表示法,它是最简单的一种中间代码表示形式,早在编译程序出现之前,它就用于表示算术表达式。

2、四元式

四元式也是一种比较普遍采用的中间代码形式,

其形式为:(OP,ARG1,ARG2,RESULT)

3、三元式

三元式表示是与四元式类似的一种表示法,所不同的仅是三元式中没有表示运算结果的部分,凡要涉及到运算结果的均用三元式的位置或序号来代替。

4、树表示

树形表示是三元式的翻版。在树的表示中,树叶均为运算对象,即常量或变量,其他结点表示运算符。表达式的树形表示很容易实现:简单变量或常量的树就是该变量或常量自身。

(1)如何编译中间代码扩展阅读

中间语言的优点:

1、中间语言与具体机器特性无关,一种中间语言可以为生成多种不同型号的目标机的目标代码服务。

2、可对中间语言进行与机器无关的优化,有利于提高目标代码的质量。

对于中间语言,要求其不但与机器无关,而且有利于代码生成。

② llvm怎样将中间代码编译为可执行二进制文件

预编译。编译器将你的.c、.cpp源代码,通过解释其中的预编译指令,将源代码转换成相应的没有任何预编译指令的代码。

编译、优化。将上一步的代码编译成汇编指令,并作一定优化,形成对应的.s汇编代码
汇编。将.s文件汇编成机器码,形成对应的.o目标文件,此时是不可执行的二进制文件。生成对应的清单文件。为了连接需要,还会生成未定向符号表、导出符号表、地址重定向表等等。
连接。先根据对应的清单文件、连接文件及之间的调用关系,决定所有的目标文件及引用的库文件在最后可执行文件中的位置;然后做一些其他事情,比如根据符号表等将目标文件中的符号地址补全等等;最终得到可执行文件。
这只是我个人的简单理解,更详尽的解答都可以写成好几本书了=_=望采纳~

热点内容
linux遍历文件夹 发布:2024-12-18 08:47:36 浏览:940
魂师对决ios如何加安卓好友 发布:2024-12-18 08:42:03 浏览:590
rtmpandroid 发布:2024-12-18 08:38:48 浏览:388
我的世界设置服务器的世界出生点 发布:2024-12-18 08:38:11 浏览:709
sql统计条数据 发布:2024-12-18 08:38:09 浏览:31
linuxsvn查看 发布:2024-12-18 08:28:57 浏览:476
无线点餐系统源码 发布:2024-12-18 07:33:25 浏览:702
存储服务器主板 发布:2024-12-18 07:33:22 浏览:256
平衡车控制算法 发布:2024-12-18 07:31:21 浏览:157
javafile上传文件 发布:2024-12-18 07:13:17 浏览:350