- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Part1编译原理课程概述
编译原理课程概述
课程教材及教学内容介绍
教材名称:编译原理(Compilers Principles, Techniques, and Tools)
主编:Alfred V.Aho, Ravi Sethi, Jeffrey D.Ullman,李建中,姜守旭译
出版社:机械工业出版社
出版时间:2003年8月
主要参考资料:
《编译原理》,清华大学出版社,吕映芝、张素琴、蒋维杜编著
《程序设计语言编译原理(第3版)》,国防工业出版社,陈火旺等编著
《编译器工程》——《Design a Compiler》,机械工业出版社,Keith D.Cooper、Linda Torczon著;冯速译
教学内容及其相应的课时数:
编译原理概论——1.5
高级语言和文法——2.5
词法分析——6
自顶向下语法分析方法——4
自底向上语法分析法——8
语法制导翻译——6
中间代码生成——4
类型检查——4
符号表——2
运行时环境——4
代码优化——3
并行编译基础——3
从讲授的课时来看,其中第4、5部分讲述的语法分析方法是本课程的重点。其余的各章重点我们会在各章的讲述中依次提到。
Part1编译原理概论
编译器构造法的研究目的
什么是编译程序
我们用一种T形图来表示源语言S,目标语言T和编译程序实现语言之间的关系,如图:
思考,如果A机器上已有一个用A机器代码实现的某高级语言L1的编译程序,则我们可以用L1语言编写另一种高级语言L2的编译程序,把写好的L2编译程序经过L1编译程序编译后就可以得到A及其代码实现的L2编译程序。
思考,如何使用“移植”的方法利用A机器上已有的高级语言L编写一个能在B机器上运行的高级语言L的编译程序。
好的编译器是计算机科学的缩影
包含大量的技术:贪婪算法(寄存器分配)、启发式搜索技术(列表调度)、图形算法(死码消除)、动态规划(指令筛选)、有穷自动机和下推自动机(扫描和语法分析)、不动点算法(数据流分析)
处理复杂的问题:动态分配、同步、命名、局部化、存储器分层管理、管道调度
提供完整的解决方案:有机的结合算法、软件体系结构和软件工程的各种理论,对棘手问题给出综合性的解答方案。
一个语言处理系统(编译系统)举例
预处理器—产生编译器的输入
宏处理:宏的定义和引用
文件包含:把头文件包含到程序的正文中。
“理性”预处理器:把现代控制流和数据结构化机制添加到比较老式的语言中。
语言扩充:通过大量的内部宏定义来增强语言的能力
汇编器—对编译器的输出进行后期加工
装配连接编辑器—完成程序的装入和连接编辑两项功能
装入过程包括读入可重定位及其代码,修改可重定位地址,并将修改后的指令和数据放到内存中适当的位置
连接编辑器允许我们将多个可重定位代码的文件组成一个程序。
编译器的基本原则
编译器是工程对象,是具有独特目标的大型软件系统,两个设计原则必须遵守
不违背原义:编译器必须保持被编译程序的含义不变、这一原则是编译器设计者与编译器用户之间的契约的核心
实用性原则:编译器必须用某种明确的方式改进输入程序、例如代码优化等对输入程序的改进
编译器应有的性质
速度(Speed)
空间(Space)
反馈(Feedback)
调试(Debugging)
编译时效率(Compile-Time Efficiency)
编译器的应用模型
分析-综合模型
分析部分将源程序切分成一些基本块并形成源程序的中间表示
词法分析
语法分析
语义分析
综合部分把源程序的中间表示转化为所需的目标程序,需要一些特定的技术
符号表管理
错误检测与报告
中间代码生成
代码优化
代码生成
编译器的应用模型
内容提要
编译器构造法的研究目的
编译器的结构
编译的基本原则
编译器应有的性质
编译器的应用模型
编译过程综述
概括和展望
词法分析
词法分析也叫线性分析和扫描。
从左到右的读构成源程序的字符流,分组为多个记号。
语法分析
词法分析也叫层次分析,把源程序的记号进一步分组,产生被编译器用于生成代码的语法短语。
程序的语法结构常常需要递归
上下文无关文法是递归规则的一种形式化,可以指导语法分析
由于词法分析不要求递归,因此我们通常不明确的界定词法分析和语法分析的界限。也就是说,我们将词法分析程序当成语法分析程序调用的一个子程序。
语法分析(续)
语义分析
语义分析阶段检测程序的语义错误,收集代码生成阶段要用到的类型信息
利用语法分析阶段确定的层次结构来识别表达式和语句中的操作符和操作数
语义分析的一个重要组成部分是类型检查
语义分析只是一些简单的,可以用一定规则描述的语义信息,而无法判断程序表达的含义是否符合要求的
语义分析(续)
内容提要
编译器构造法的研究目的
编译器的结构
编译的基本原则
编译器应有的性质
编译器的应用模型
编译过程综述
概括和展望
I
S
您可能关注的文档
- Page 1 研究生工作党委开展深入学习实践科学发展观活动简报第11 期 1.pdf
- Page 1 第 十 期 四川省绵阳市盐亭县工商行政管理局编 2008 年7 月8 日.pdf
- Page 1 第1 页共5 页 研发中心 研发中心 研发中心 研发中心 晨会报告.pdf
- Page 1 策略周刊 市场研究部 总第22 期 2008 年10 月20 日 谁制造了.pdf
- Page 1 策略周刊 市场研究部 总第32 期 2008 年12 月29 日 中国消费.pdf
- Page 1 编号 2007 年度“省级精品课程” 申报表 申报单位 安徽工业大学.pdf
- Page 1 编号: 03A1201-04 日期: 921002 送测产品: Netask 企业e.pdf
- Page 1 网秦防盗卫士用户手册 httpwww.netqin.com 网秦防盗卫士用户.pdf
- Page 1 美联储出恶手投资者如何应对 策略周刊 市场研究部 总第43 期.pdf
- Page 1 行业点评 市场研究部 2008 年09 月12 日星期五 CPI 超预期下滑.pdf
最近下载
- 泵组安装工程检验批质量验收记录(石油化工).docx VIP
- 下肢深静脉血栓形成治疗知情同意书.doc
- 抗结核药所致药物性肝损伤诊疗和处置课件.ppt
- GBT 29712-2023 焊缝无损检测 超声检测 验收等级.pdf
- 云会计在中小企业会计信息化中的应用研究-以思汇服饰有限公司应用“云会计”案例分析.docx VIP
- 2021年-有答案-河北省石家庄市新华区五年级(下)期末数学试卷.pdf
- 非物质文化遗产扎染.pptx VIP
- 纳米SiO2在涂料中的应用研究进展.docx
- 【基恩士】LR-W500(C) 使用说明书 (简体中文).pdf
- Q OKAM 1020044-2017_路面养护车 企业标准.pdf
文档评论(0)