- 1、本文档共67页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大连理工学编译原理课件
* * * * 符号表:这是因为程序是上下文相关的,而我们通常采用的是上下文无关文法。 * * * * * * * * * 2。根据编译程序在完成翻译任务过程中需要对源程序或其中间等价物扫描的遍数,可把编译程序分为单遍扫描和多遍扫描的编译程序。 3。一般说来,一个多遍的编译程序可以较之一遍的编译程序少占内存(因一遍完成后,它所占的存储空间大部分释放)。遍数多一点,整个编译程序的逻辑结构可能清晰些,但遍数多即意味着增加读写中间文件的次数,时间较多,显然比一遍的编译要慢。 比如源语言的结构直接影响编译的遍的划分:如有些语言允许名字的说明出现在名字的使用之后(如ALGOL68),那么在看到名字说明之前是不便为包含该名字的表达式生成代码的,对于此语言的编译至少需要两遍。 * * * 数据流分析推导的是数据沿着程序执行路径流动的信息 * * 1.2 编译器技术的应用 提高软件开发效率的工具 源于编译器中代码优化技术的程序分析一直在 类型检查 类型检查是一种捕捉程序中前后不一致的成熟而有效的技术 改进软件开发效率 边界检查 数据流分析技术可用来定位缓冲区溢出 内存管理 自动的内存管理删除内存泄漏等内存管理错误 编译技术的应用 语法制导的结构化编辑器 程序格式化工具 软件测试工具 程序理解工具 高级语言的翻译工具 等等。 小结 编译原理的内容及学习意义 翻译器、编译器的定义 编译器的阶段划分及前端、后端的概念 “遍” 的概念 作业 习题1:1.1, 1.2(编译器与解释器的区别是什么) 每周第一次课交作业! * * 系统软件,专业基础课 * 1.本课程介绍编译器构造的一般原理和基本实现方法,主要介绍编译器的各个阶段:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。反映直至20世纪末的一些重要成果,如有关类型制导的编译思想。 2.本课程在介绍命令式程序设计语言实现技术的同时,强调一些相关的理论知识,如形式语言和自动机理论、语法制导的定义和属性文法、类型论等。它们是计算机专业理论知识的重要一部分,在本书中结合应用来介绍这些知识,有助于学生较快领会和掌握。 3.本课程强调形式化描述技术,并以语法制导定义作为翻译的主要描述工具。 4.本课程强调对编译原理和技术在宏观上的理解,而不把读者的注意力分散到一些枝节的算法上,如计算开始符号集合和后继符号集合的算法,回填技术等。作为原理性的教材,本书介绍基本的理论和方法,而不偏向于某种源语言或目标机器。 * * * * * 虽然只有少数人从事构造或维护程序设计语言的编译器,但是本课程对本科生来说是一门重要课程。 1.本课程能使学生对编程语言的设计和实现有深刻的理解,对和编程语言有关的理论(形式语言和自动机理论、类型论等)有所了解,对宏观上把握编程语言来说,起一个奠基的作用。 2.对软件工程来说,编译器是一个很好的实例(基本设计、模块划分等),也是本科期间能碰到的唯一的大型例子,学生从本课程的学习也能了解到软件工程中的一些技术(如基于事件驱动的编程)。本课程所介绍的概念和技术能应用到一般的软件设计之中。 3.大多数程序员同时是语言的设计者,虽然是一些简单的语言(如输入输出),本课程的学习有助于提高对这些语言的设计水平。 4.编译技术在软件逆向工程、程序理解和软件安全等方面有着广泛的应用 软件逆向工程:以另外一种形式创建系统同一层次的表示或者更高层次的抽象, 应用:技术仿造、软件维护。 程序理解:通过分析、抽象和一般化来获取软件知识的演绎过程。(1)基于机器代码和中间代码层的理解,需要借助于反汇编和反编译技术;(2)基于源代码的理解;(3)基于语法层的理解,程序分段、程序切片和程序分析等技术就是其中的最典型代表;(4)基于程序语义层的理解,模式匹配、格局识别(plan recognition)、概念赋值(concept assigned)和概念分析(concept analysis)等都是进行语义级的软件理解和分析技术。 软件安全:满足安全策略。基本安全策略:类性安全、控制流安全和内存安全。还有信息流安全。用到词法、语法和语义分析、类性系统和类性检查、控制流分析和数据流分析等。编译器将走向类型制导的编译器。 美国的名牌大学:都有编程语言和编译器方面的课程,80%有这方面的研究。国内对这方面的人才需求将增加。 * 虽然只有少数人从事构造或维护程序设计语言的编译器,但是本课程对本科生来说是一门重要课程。 1.本课程能使学生对编程语言的设计和实现有深刻的理解,对和编程语言有关的理论(形式语言和自动机理论、类型论等)有所了解,对宏观上把握编程语言来说,起一个奠基的作用。 2.对软件工程来说,编译器是一个很好的实例(基
您可能关注的文档
最近下载
- 工程造价专业技术工作总结范文(精选10篇).docx VIP
- 基坑土方开挖及外运工程施工组织设计.docx VIP
- 12BJ1-1 工程做法(华北标BJ系列图集).doc VIP
- JBT 7538-2016 管道用篮式过滤器.pdf VIP
- 安全生产高处作业.docx VIP
- 新解读《GB_T 23722-2009起重机 司机(操作员)、吊装工、指挥人员和评审员的资格要求》最新解读.docx VIP
- (中级)装饰美工技能鉴定理论考试题库(含答案).docx VIP
- 小流域水土流失治理服务方案.doc VIP
- 大型球铁铸件浇冒口设计原理.pdf VIP
- 福建省莆田市南门集团2023年小升初数学试卷(含答案).docx VIP
文档评论(0)