第01章编译概述.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第01章编译概述

编译原理基础 刘 伟 liuwei165@ 教材 《编译原理及实现》 作者:孙悦红 大学本科计算机 专业应用型规划教材 清华大学出版社 学时与参考教材 学时:54学时 参考教材: [1] 陈火旺、刘春林等编著,《程序设计语言编译原理》,国防工业出版社。 [2] 张素琴、吕映芝等编著,《编译原理》,清华大学出版社。 [3] 陈意云等编著,《编译原理》,高等教育出版社 。 …… 成绩评定 平时成绩 30% 出勤率 课后作业 实验(编译器) 期末考试 70% 作业 课后题: 第1、2、3、4、7、10章全部课后习题 第5章:1、2、3小题 第6章:1小题 编译器程序 1、词法分析器 2、DFA程序(有穷自动机) 3、语法分析器(递归下降、LL1、LR) 4、翻译器 程序语言中涉及编译的一些问题? 第一章 编译概述 1.1 程序设计语言 1.2 编译程序 1.3 编译程序的组成 1.4 编译程序的结构 1.5 编译程序的前后处理器 1.6 TEST语言和编译器 什么是“编译”? 把高级语言程序翻译成等价的低级语言程序。 学习本课程的目的 加深对程序设计语言的理解,提升自身的能力 掌握编译程序的基本结构,掌握常用的编译技术和方法 将编译原理的理论和方法应用于一般的软件设计中 如: 词法分析中的字符串匹配技术可以应用于文本编辑程序、信息检索、通讯程序、模式识别中 上下文无关文法和语法制导的翻译可以用于分析表达式,写打字程序,绘图程序等小系统 代码优化技术更可以用于自己的结构化程序中,用于改进性能、优化已有的程序等 主要内容 编译概述(编译组成、总体结构) 文法和语言(文法、推导、句型、归约、语法树) 词法分析(词法分析、正规表达式、正规文法、NFA、DFA) 语法分析(自顶向下:递归下降分析、LL(1);自底向上:LR分析法) 语义制导翻译(属性文法翻译、语法制导翻译) 运行环境(符号表管理、存储分配) 语义分析和代码生成 代码优化 1.1 程序设计语言 机器语言(Machine Language) 0、1代码 汇编语言(Assemble Language) 0、1代码与助记符:更接近于计算机硬件指令系统的工作 高级语言(High Level Language) 定义数据、描述算法(程序) 如:C、FORTRAN、PASCAL、C++、JAVA、SQL(数据定义、数据操作) 1.2 翻译程序 编译到被执行的过程 1、编译程序的目标程序是机器语言(编译方式) 编译到被执行的过程 2、编译程序的目标程序是汇编语言(编译方式) 编译到被执行的过程 3、从源程序的编译到执行只有一个阶段——解释执行阶段(解释方式) 1.3 编译程序的组成 按照编译程序的执行过程和所完成的任务,编译分成前后两个阶段:分析阶段和综合阶段。 对比 翻译外文资料: 1、能识别出句子中的一个单词(词法分析); 2、分析句子的语法结构(语法分析); 3、根据句子的含义进行初步翻译(语义分析); 4、对译文进行修饰(代码优化); 5、写出最后的译文(目标代码生成)。 1.3.1 词法分析 词法分析又称扫描器。 任务:根据词法规则分析和识别单词 例如:a=10+c*20 例 res=fact *(term1+term2); 对比 中文句子划分 “我们是一家人” “我是大学生” “叔叔亲了我妈妈也亲了我” 1.3.2 语法分析程序 编译程序的核心 任务:根据语法规则(即语言的文法),分析并识别出各种语法成分(如表达式、语句、函数等),并进行语法正确性检查。 表达式: a=10+c*20 1.3.3 语义分析及中间代码生成程序 任务:依据语义规则对识别出的各种语法成分析其含义,并进行初步翻译,生成中间代码。 表达式:a=10+c*20 1.3.4 代码优化 任务:对中间代码进行加工变换,以得到高质量的目标代码 1.3.5 目标代码生成 任务:把中间代码变换成特定机器上的低级语言代码 目标代码的形式可以是绝对指令代码、可重定位的机器指令代码或汇编指令代码。 1.3.6 符号表管理 填表:把源程序中的信息和编译过程中所产生的信息登记在表格中 查表:在随后的编译过程中同时又要不断的查找这些表格中的信息 1.3.7 错误处理 诊察错误,并能报告用户错误性质和位置 出错处理能力的优劣是衡量编译程序质量好坏的一个重要指标 典型的编译程序具有7个逻辑部分 1.4 编译程序的结构 1.4.1 单遍编译程序 单遍编译程序只对源程序进行一遍扫描,就完成编译的各

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档