- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch1–编译程序概论
张素琴,吕映芝,蒋维杜,戴桂兰编著
清华大学出版社;编译原理,何炎祥,华中理工大学,2000.10
编译原理,陈火旺等,国防工业出版社,2000.1
编译原理,蒋立源,西北工业大学,1999.9
;第一章 编译程序概论;§1.1 什么是编译程序;源程序;编译程序(编译器);汇编程序;源程序的加工过程;源程序;与编译程序相关的程序;编译程序的发展历史;编译程序的发展历史;§1.2 编译过程和编译程序的结构;§1.2.1 编译过程概述;1、词法分析(扫描器);举例:设有下面的PASCAL程序段
begin
var sum,first,count:real;
sum:=first+count*10
end.
通过词法分析,识别出如下的单词符号序列:
基本字: begin,var,real,end 标识符:sum,first,count
整数:10
界符:. 逗号:, 冒号::分号:; 赋值号::= 加号:+ 乘号:*
机内码为:id1:=id2+id3*10;2、语法分析;对应的语法树为:; 程序结构通常采用递归规则表示,也就是用来描述程序结构的规则。例如,定义表达式的规则、定义语句的规则。
表达式规则:
任何标识符是表达式。
任何常数(整常数、实常数)是表达式。
若表达式1和表达式2都是表达式,那么表达式1+表达式2表达式1*表达式2(表达式1)
都是表达式。; 定义语句的规则:
标识符:=表达式 是语句。
while (表达式) do 语句 和if (表达式) then 语句 else 语句都是语句。;3、语义分析;4、中间代码产生;4、中间代码产生;5、代码优化;6、目标代码生成;( * id3 10.0 t1 )
( + id2 t1 id1 );§1.2.2 编译程序的结构;2、表格与表格管理程序用途:登记源程序的各种信息和编译程序各阶段的进
展情况,如符号表。管理:构造、查找、或更新。
3、出错处理程序任务:发现并指出源程序中错误的性质和位置; 自动校正错误。;4、遍(pass): 对源程序或源程序的中间结果从头至尾扫描一次,并作有关的加工处理,生成新的中间结果或目标程序的处理过程。 一个阶段可以分为若干遍或
多个阶段合为一遍。
通常有一遍和多遍编译程序。;
词法分析→语法分析→语义分析与中间代码生成→优化→目标代码生成
;§1.3 编译程序的生成;表示:如果 A 机器有用 A 机器代码实现的 L1 语言到 A 机器代码的编译程序 P1,则可用 L1 语言实现 L2 语言到 A 语言的编译程序 P2,将 P2 经过 P1 编译后可得到用 A 机器代码实现的 L2 语言到 A 机器代码的编译程序 P3;§1.4 编译技术和软件工具;§1.4 编译技术和软件工具;动态测试器 -在源程序的适当位置插入某些信息,并用测试用例记录(显示语句或函数)程序运行时的实际路径.将运行结果与期望结果进行比较分析,帮助编程人员查找问题.
高级语言之间的转换工具
程序格式化工具
程序理解工具
对程序进行分析,确定模块间的调用关系,记录程序数据的静态属性和结构属性,并画出控制流程图,帮助用户理解程序。;1.5 程序设计语言范型;1.5 程序设计语言范型;函数式语言
注重程序所表示的功能,而不是一个语句接一个语句地执行。程序的开发过程是从前面已有的函数出发构造出更复杂的函数,对初始数据集进行操作,直至最后形成的函数可以用于从初始数据计算出最终结果。
语法形式:
functionn(…function2(function1(data))…)
例如: LISP; 基于规则(逻辑)的语言
检查条件,满足时则执行适当的动作。
语法形式:
条件 1-动作 1
条件 2-动作 2
……
条件 n-动作 n
例如:PROLOG
您可能关注的文档
- 9及10章应用及测设.ppt
- 9年思品教材分析.ppt
- 9年级上册的古诗词默写.ppt
- 9年级1模2009试卷讲评.ppt
- 9年级《中考满分作文例析》课件.ppt
- 9年1班学生守则.ppt
- 9年级下中考作文训练.ppt
- 9剪力墙结构设计实例–SATWE.ppt
- 9年1期物理《寒假作业》答案1–5节.ppt
- 9年级中考历史复习课件(世界现代史).ppt
- 云南医药健康职业学院《移动通信实验》2023-2024学年第一学期期末试卷.doc
- 北京航空航天大学北海学院《电子信息工程特别》2023-2024学年第一学期期末试卷.doc
- 2025年初中道德与法治八年级上册犯罪预防局:少年警戒线综合测试卷.docx
- 2025年初中道德与法治八年级上册诚信银行:信用资产增值计划综合测试卷.docx
- 2025年初中道德与法治九年级下册文化出海关:软实力综合测试卷.docx
- 2025年初中道德与法治九年级上册民主议事厅:全过程人民民主综合测试卷.docx
- 2025年初中道德与法治八年级下册诉讼实验室:司法程序解密综合测试卷.docx
- 2025年初中道德与法治八年级下册监察特派员:公权力监督指南综合测试卷.docx
- 2025年初中道德与法治七年级上册情绪拆弹专家:压力转化方程式综合测试卷.docx
- 2025年初中道德与法治九年级下册中国式现代化:蓝图解码综合测试卷.docx
文档评论(0)