- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理 主讲老师:陈倩 Email:marchcq@163.com QQ办公室:8A405 Phone 课程介绍 课程内容 介绍编译器构造的一般原理和基本实现方法 介绍的理论知识:形式语言和自动机理论、语法制导的定义和属性文法等。 强调形式化描述技术。 强调对编译原理和技术的宏观理解,不把注意力分散到枝节算法,不偏向于某种源语言或目标机器。 课程介绍 学习目的 了解编译程序的实现原理和技术。 利用从本课程学习到的知识,增强编写和调试程序的能力。 学习的意义 对编程语言的设计和实现有深刻的理解,对和编程语言有关的理论(形式语言和自动机理论、类型论等)有所了解,对宏观上把握编程语言来说,起一个奠基的作用。 从软件工程看,编译器是一个很好的实例,所介绍的概念和技术能应用到一般的软件设计之中。本课程的学习有助于提高对这些语言的设计水平。 大多数程序员同时是简单语言的设计者,有助于提高对这些语言的设计水平。 在软件逆向工程、程序理解和软件安全等方面有着广泛的应用。 教材和参考书 教材: 《编译原理》, 清华大学出版社,张素琴、吕映芝等编著。 参考书: 《编译原理》,陈火旺,国防工业出版社 《编译原理及实践》,Louden, K.C. 冯博琴,冯岚等译; 机械工业出版社 《编译原理和技术》, 陈意云 , 中国科技大学出版社 《编译原理》,蒋立源,康慕宁主编; 西北工业大学出版社 相关习题解答 成绩考核方法 平时成绩30% 期末成绩70% 平时成绩 出勤率10% 作业10% 实验成绩10% 第一讲 引论 什么是编译程序 编译过程和编译程序的结构 解释程序和一些软件工具 程序设计语言范型 什么是编译程序? 语言翻译程序:把一种语言(源语言)书写的程序翻译成另一种等价的语言(目标语言)程序。 优点:计算机用户可以不用考虑与机器有关的烦琐细节,使程序员和程序设计专家独立于机器。 程序设计语言的典型处理过程 编译技术的历史 20世纪50年代早期:算术公式翻译成机器代码。 20世界50年代中期:FORTRAN等一批高级语言的出现。 20世纪50年代末:编译程序的自动生成工具。 编译程序从输入源程序到输出目标程序,可由下面几个部分来组成: 编译过程概述:词法分析 输入源程序,对构成源程序的字符串从左到右一个字符一个字符地进行扫描和分解,依据词法规则(或构词规则)识别出一个个的单词(单词符号或符号),转换成机器容易识别的内码形式。 单词:逻辑上紧密相连的一组字符,具有集体含义 内码用二元式(种别码,属性值)表示。 输入:字符串 输出:(种别码,属性值)——序对 属性值——单词的机内表示 是最初级的语法分析 编译过程概述:语法分析 根据语言的语法规则(文法规则),把单词符号串组成各类语法单位(语法范畴),如:表达式、语句、分程序、程序等。 输入:单词序列 输出:语法单位 语法规则写成Backus-Naur-Form(BNF)式,形式如下: A::=B|C 或 A?B|C 语法分析有两种方法: 推导(Derive)和归约(Reduce) 语法分析对说明语句填写符号表,一般语句构造 语法树 编译过程概述:语义分析 语义分析:审查源程序有无语义错误,为代码生成阶段收集类型信息。 任务: ① 分析语法成分的含义和用途, ② 应进行的运算和操作, ③ 同时进行相应的语义检查。 如:在说明语句中是否有矛盾的类型说明。 表达式中,类型不匹配。 过程调用中,实参和形参的配合。 依据:语义规则。 编译过程概述:中间代码生成 根据语义规则产生一种介于源语言与目标代码之间的一种中间代码。 中间代码是不依赖于机器但是又便于生成依赖于机器的目标代码的一种结构简单、含义明确的记号系统。 中间代码的特点 简单规范 机器无关 易于优化与转换 中间代码生成例子: 四元式(运算符,运算对象1,运算对象2,结果) 例:a=b+c*10 编译过程概述:代码优化 对前阶段产生的中间代码进行加工变换,以期在最后阶段能产生更为高效(省时间和空间)的目标代码。 主要依据是等价变换规则 优化主要包括: 删除公共子表达式、合并已知量、删除无用赋值、循环优化、算符规约等等 编译过程概述:目标代码生成 把中间代码变换成指定机器上的绝对指令代码或可重新定位的指令代码或汇编指令代码 与硬件系统功能部件的运用,机器指令的选择,各种数据类型变量的存储空间分配,寄存器和后援缓冲寄存器的调度等等有很大的关系 编译过程概述:表格与表格管理 编译程序在工作过程中需要保持一系列的表格,用以登记源程序的各类信息和编译各阶段的进展状况。 合理的设计和使用表格是编译程序构造的一个重要问题。 与编译的头三个阶段有
您可能关注的文档
最近下载
- 长庆原油常压蒸馏装置工艺设计 毕业论文.doc
- 品牌连锁酒店开业手册.pdf VIP
- Kolb学习风格问卷(KLSI-1984).PDF
- 丽江市宁蒗县牦牛坪复合光伏发电项目升压站工程环境影响报告表.docx VIP
- 03 小说阅读(教考衔接 分析文体特征 反套路因文设题)-2025年高考语文二轮复习之现代文阅读(全国通用)(解析版).docx
- 三年级下册信息技术苏科版6.2制作数字作品 第二课时(教案).docx VIP
- (仁爱科普2024版)英语七年级下册 Unit9语法讲解+练习(学生版+解析版).docx
- 高级统计学-统计学课件.ppt VIP
- 浅谈武装装备软件保障.docx VIP
- 美军武装装备软件保障研究.pdf VIP
文档评论(0)