- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理及实现技术 计算机科学与技术学院 2012.9-2013.1 自我介绍 张睿,男,33岁,已婚,博士,现任软件新技术梯队讲师。 研究方向: 知识表示、语义网、访问控制、自动推理 联系方式:rui@ 课程内容 介绍编译器 基本构造原理 基本实现方法 基本处理技术 介绍理论知识 形式语言 自动机理论 强调 形式化描述技术 抽象思想 强调 对编译原理宏观理解 对编译处理技术的宏观理解 课程意义 掌握编译程序的构造原理和实现技术。 深入对程序设计语言的理解;(片面vs全面) 提高软件开发能力;(同一功能的不同实现) 提高元级程序设计能力;(编译器的设计实现) 增强形式化、抽象化能力;(问题形式化) 编译技术的广泛的应用。 嵌入式系统(受限资源利用) ERP二次开发(三分之一需要修改) 冗余代码分析(变量调用、闲置函数) 第一章 编译引论 程序设计语言 程序设计环境中的编译器 编译程序的结构 编译程序的设计与实现 1 程序设计语言与编译程序 程序语言的发展 高级语言的实现方式 1.1 程序设计语言的发展 机器语言:能够被计算机的硬件系统直接执行的指令程序,如“0001000101”。 汇编语言:将硬件指令用一些助记符表示,即符号化的机器语言,如“ADD,MOV”。 高级语言:从程序员的角度出发,对汇编语言进一步抽象,使用便于理解的“自然语言”表述。 机器语言 汇编语言 高级语言 翻译程序Translator 1.2 高级语言的实现方式 汇编程序Assembler 编译程序Compiler 1.2.1 解释方式 解释方式:接受用程序语言(源语言)编写的程序(源程序),然后直接解释执行源程序。解释器相当于源程序的抽象执行机,是语言的实现系统。 解释程序 源程序 输入数据 计算结果 (*.bas/*.java) 1.2.2 编译方式 编译方式:源语言为高级语言,目标语言是低级语言(汇编或机器语言)的翻译程序。 源程序 目标程序 (*.C/*.PAS) (*.OBJ/*.EXE) 编译程序 1.2.3 转换方式 转换方式:将A语言程序转换为B语言程序,用B语言已有的编译器去编译执行。(同级程序设计语言) 编译、解释 A语言程序 转换程序 B语言程序 源程序 目标程序 (*.C/*.PAS) (*.OBJ/*.EXE) 解释程序 源程序 输入数据 计算结果 (*.bas/*.java) A语言程序 转换程序 编译程序 B语言程序 2 编译程序和程序设计环境 典型IDE 编译器在IDE中的位置 编辑器:除了一般文本编辑器的功能外,还可具有对正在编辑的文本进行分析、提示,能自动地提供关键字和与其匹配的关键字 等功能。 预处理器:工作包括删除源程序中的注释、执行宏替换以及包含文件的嵌入等。 编译器——简约而不简单 连接程序:将不同的目标文件中编译或汇编的代码集中到一个可执行文件中,并将目标和标准库函数的代码以及计算机的操作系统提供的资源连接在一起。 装入程序:把程序加载到内存储器中,以便执行。 调试程序:检查编译了的程序中的错误。 3 编译程序的逻辑结构 编译器的结构 各组成部分的功用 实例 编译器 3.1 编译程序的逻辑结构图 词法分析 语法分析 语义分析 源程序 中间代码生成 中间代码优化 目标代码生成 目标程序 出错处理 表格管理 词法分析Lexical Analysis(Scanner/Tokenizer) 扫描源程序的字符串,依循语言的词法规则,识别每一个有集体含义的子串,并将其表示成所谓的机内表示记号形式(Token)。 语法分析 Syntax Analysis(Parser)依据语言的语法规则,将单词的Token序列分解成各类语法短语(可表示为语法树),确定整个输入串是否构成一个语法上正确的程序。 语义分析 Semantic Analysis 检查源程序有无语义错误,为代码生成阶段收集信息。(类型检查、强制类型转换、下标越界检查等) 中间代码生成 Intermediate Code Generation 将源程序转换成一种称为中间代码的内部表示形式。中间代码是一种简单的、含义明确的记号系统,例如四元式(运算符,对象1,对象2,结果)。 中间代码优化 Code Optimization 变换或改造中间代码,生成的目标代码更为高效,即节省时间和空间。 目标代码生成 Target Code Generation 中间代码变换为特定机器上的绝对指令代码,或可重定位的指令代码或汇编指令代码。 表格管理 Table Management 为了合理的管理(构造、查找、更新……)表格(符号
您可能关注的文档
最近下载
- 2024版房屋抵押贷款合同范本.docx VIP
- 基于反作用飞轮和磁力矩器的卫星姿态控制系统分析-analysis of satellite attitude control system based on reaction flywheel and magnetic torque device.docx VIP
- 地贫筛查中的血红蛋白电泳.pptx VIP
- 光电开关HPX-AG系列使用说明书.PDF VIP
- 精神科患者风险的管理.pptx VIP
- 保护女职工权益知识竞赛题库50题(答案).docx VIP
- 盖板涵施工监理细则.pdf VIP
- 迅达3300调试汇总.doc VIP
- (高清版)B-T 19843-2022 工业通风机 射流风机性能试验.pdf VIP
- 冰美人淘宝直播数据复盘.xlsx VIP
文档评论(0)