编译引论
1编译程序:将源语言转换为另一种语言程序(低级语言)
2解释程序:不产生程序代码,对源程序进行逐条语言分析,执行得到运算结果
3编译的过程:词法分析---语法分析---语义分析产生中间代码---代码优化---生成目标代码
词法分析(LEX):你可以想象成一片英文,你把每一单词翻译出来。
语法分析(yacc):就是把单词以一定规则编排一下
语义分析产生中间代码:就像是把这些编排好的单词根据语义来简单的翻译成一篇文章
代码优化:把文章以普通话的标准来优化
目标代码:产生一片白话文
4.编译程序结构:除了上面的5种,还有表格管理程序和错误处理程序
表格管理程序:主要完成编译过程中的建表、查表、更新数据等有关表格的工作。
错误处理程序:就是把错误信息报告给用户。
5推导与规约
简单来说利用规则的右部代替左部就是推导,利用规则的左部代替右部。
6.遍:就是对源程序或源程序中间代码从头到尾扫描一次,并作相关加工处理,生成新的中间代码或目标代码。
7编译程序的前端和后端
编译前端通常包括词义分析、语法分析、语义分析及中间代码生成和部分的代码优化工作。
编译后端通常就包括后面的部分代码的优化和目标代码生成。
8编译程序的开发
通常就包括自展开技术、移植技术和自动化技术。
自展开技术:通过一系列的自展开途径而形成编译程序的过程
移植技术:简单来说利用A机器上已有的高级语言L来编写一个能在B机器代上运行的高级语言L编译程序。
自动化技术:这个是未来发展的趋势。比如人工自能。这里即是使用计算机来自动生成代码。

浙公网安备 33010602011771号