- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
为什么要学习编译原理 程序设计语言是计算机软件专业的重要核心 学习编程的历程: C语言--汇编语言--数据结构 为什么要学习编译原理 必修主干课程,操作系统和编译系统构成程序设计者与计算机之间的基本界面。 通过学习该课程,掌握编译的基本理论、常用的编译技术,了解编译过程及编译系统结构和机理。能运用所学技术解决实际问题,能独立编写一个小型编译系统。 此外,通过学习编译原理可以更好地理解程序语言的内部机制,从而更好地理解和运用程序设计语言。能运用编译程序构造的原理和技术完成相关软件工具的设计和开发工作。 为什么要学习编译原理 计算机软件学科理论与实践相结合的典范。 在学习过程中既要注重该领域在理论上取得的完美结论,也要注重这些理论在实际中的应用。 李冬梅,施海虎,《编译原理》,人民邮电出版社 教学内容 1.1.程序的翻译 1.2. 编译程序的组成 1.3. 编译程序构造 1.4. 编译技术的应用及发展 低级语言(Low level Language) 字位码、机器语言、汇编语言 特点:与特定的机器有关,功效高,但使用复杂、繁 琐、费时、易出错 高级语言 -- Fortran、Pascal、C 语言等 特点:不依赖具体机器,移植性好、对用户要求低、易使用、易维护等。 源程序的编译和运行 编译或汇编阶段 运行阶段 工作过程 “编译-解释执行”系统 所谓编译过程是指将高级语言程序翻译为等价的目标程序的过程。 翻译和编译工作的比较 并行编译技术 目的:提高并行计算机体系结构的性能,超大规模计算的日益增长的需求 两种实现方法 利用重构技术将串行程序并行化 直接编写并行程序 交叉编译技术 任务:对中间代码进行加工变换,以得到高质量的目标代码 四、代码优化 y t3 = (4) t3 x t2 + (3) t2 t1 r * (2) t1 -- 6 Inttoreal (1) 结果 右运算对象 左运算对象 运算符 y x t1 + (2) t1 6.0 r * (1) 结果 右运算对象 左运算对象 运算符 t1 -- 6 inttoreal (1) y t3 = (4) 例:y = x + r * 6 有关术语 代码优化(Intermediate code optimization) The optimizer accepts input in the intermediate representation and output a version still in the intermediate representation .In this phase,the compiler attempts to produce the smallest,fastest and most efficient running result by applying various techniques. 五、目标代码生成 任务:把中间代码变换成特定机器上的低级语言代码 mov r, R1 mul #6.0, R1 mov x, R2 add R1, R2 mov R2, y y x t1 + (2) t1 6.0 r * (1) 结果 右运算对象 左运算对象 运算符 目标代码 生成程序 代码优化 程序 语义分析 生成中间 代码 语法分析 程序 词法分析 程序 编译过程小结 S.P O.P 按逻辑功能不同,可将编译过程划分为五个基本阶 段,与此相对应,我们将实现整个编译过程的编译程序划 分为五个逻辑阶段(即五个逻辑子过程)。 每个阶段中都要有: 符号表管理和错误处理 诊察错误,并能报告用户错误性质和位置 出错处理能力的优劣是衡量编译程序质量好坏的一个重要指标。 填表:把源程序中的信息和编译过程中所产生的信息登记在表格中 查表:在随后的编译过程中同时又要不断的查找这些表格中的信息 符号表管理 错误处理 编译程序的逻辑结构 典型的编译程序具有7个逻辑部分 S.P O.P 语义分析及生成中间代码程序 代码生成程序 代码优化程序 语法分析程序 词法分析程序 错 误 处 理 符 号 表 管 理 根据编译程序各部分功能,将编译程序分成前端和后端 前端:通常将与源程序有关的编译部分称为前端。 词法分析、语法分析、语义分析、中间代码生成 ---分析部分 特点:与源语言有关 后端:与目标机有关的部分称为后端。 代码优化、代码生成 ---综合部分 特
您可能关注的文档
- 边做边学——Photoshop+corelDRAW综合实训教程 教学课件 作者 江新顺 08.ppt
- 边做边学——Photoshop+corelDRAW综合实训教程 教学课件 作者 江新顺 09.ppt
- 边做边学——Photoshop+corelDRAW综合实训教程 教学课件 作者 江新顺 10.ppt
- 边做边学——Photoshop+corelDRAW综合实训教程 教学课件 作者 江新顺 11.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 01.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 02.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 03.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 04.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 05.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 06.ppt
- CNAS-CL63-2017 司法鉴定-法庭科学机构能力认可准则在声像资料鉴定领域的应用说明.docx
- 12J7-3 河北《内装修-吊顶》.docx
- 12N2 河北省12系列建筑标准设计图集 燃气(油)供热锅炉房工程.docx
- 内蒙古 12S8 排水工程 DBJ03-22-2014.docx
- 山西省 12S10 12系列建筑标准设计 管道支架、吊架.docx
- 16J601-木门窗标准图集.docx
- 12J8 河北省12系列《 楼梯》.docx
- CNAS-GL37 2015 校准和测量能力(CMC)表示指南.docx
- CNAS-RL02-2016 能力验证规则.docx
- 津02SJ601 PVC塑料门窗标准.docx
文档评论(0)