第01章 编译原理概述.pptVIP

  • 3
  • 0
  • 约7.99千字
  • 约 58页
  • 2017-11-26 发布于湖北
  • 举报
第01章 编译原理概述

编译原理基础 教材 《编译原理及实现》 作者:孙悦红 大学本科计算机 专业应用型规划教材 清华大学出版社 学时与参考教材 学分:3 学时:48 参考教材: [1] 陈火旺、刘春林等编著,《程序设计语言编译原理》,国防工业出版社。 [2] 张素琴、吕映芝等编著,《编译原理》,清华大学出版社。 [3] 陈意云等编著,《编译原理》,高等教育出版社 。 …… 成绩评定 平时成绩 30% 出勤率 课后作业 课程设计(编译器) 期末考试 70% 作业 课后题: 第1、2、3、4、7、10章全部课后习题 第5章:1、2、3小题 第6章:1小题 课程设计 程序语言中涉及编译的一些问题? 第一章 编译概述 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 单遍编译程序 单遍编译程序只对源程序进行一遍扫描,就完成编译的各项任务,产生目标代码。在单遍编译程序中,不产生中间代码,往往以语法分析程序为中心,词法分析和语义分析作为语法分析的子程序。 1

文档评论(0)

1亿VIP精品文档

相关文档