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

如何编译中间代码

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

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

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

1、逆波兰表示

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

2、四元式

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

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

3、三元式

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

4、树表示

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

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

中间语言的优点:

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

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

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

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

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

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

热点内容
linux出口ip 发布:2025-09-18 17:51:57 浏览:934
androidbitmap使用 发布:2025-09-18 17:49:20 浏览:227
数字日期加密 发布:2025-09-18 17:43:46 浏览:492
网吧电脑显示未连接上桌面服务器 发布:2025-09-18 17:37:17 浏览:690
电脑压缩文件怎么解压 发布:2025-09-18 17:27:59 浏览:380
数据库数据类型表 发布:2025-09-18 17:11:56 浏览:24
java如何生产执行bat脚本 发布:2025-09-18 16:53:25 浏览:554
湖北的服务器地址是多少 发布:2025-09-18 16:51:09 浏览:485
神龙激活失败缺少脚本 发布:2025-09-18 16:51:08 浏览:661
探探换手机号如何改密码 发布:2025-09-18 16:50:59 浏览:68