《编译原理第一讲.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一讲 编译原理 刘国秀 计算机与信息工程学院 E-mail: liuxiu.03@163.com 本课程的地位 计算机专业的专业基础课 是软件技术基础 是计算机专业的学生必修的一门主干课 是本学科研究生入学考试的课程之一 作用 学习本课程的目的和任务 加深对程序设计语言的理解,提升自身的能力。 掌握编译的基本概念、基本原理及算法 。 将编译原理的理论和实践相结合。 平时成绩 其中:平时作业及上课表现(含实验报告): 10%: 实验成绩:20% 期末考试:70% 参考资料 编译原理 陈火旺等 第三版 国防工业出版社 编译原理 吕映芝 清华大学出版社 编译原理典型题解析与实战模拟 刘春林、王挺等 国防科技大学出版社 第一讲 编译程序概述 教学目标 1.掌握什么是编译程序、编译程序组成、编译过程。 2.理解编译程序的构造途径、解释程序、编译程序与程序设计环境 。 教学内容 2.1 什么是编译程序、编译程序组成、编译过程 2.2 编译程序的构造途径 2.3 解释程序 知识扩展 2.1 编译程序的组成 一、什么是编译程序 二、编译程序组成 三、编译过程概述 编译过程 编译程序的工作一般分为五个阶段: 词法分析 语法分析 语义分析和中间代码生成 优化 目标代码产生 功能:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词符号,并给出单词的类别、属性等。如基本字(begin、end、if、for、while等),标识符、常数、算符和界符(标点符号等等)。 依循的原则:词法规则 描述工具:正规式和有限自动机 例如,用C 语言编写的程序段如下: main( ) { float x=2,y=3,s; s=x+y*5; } 识别出的单词序列为表1-1所示 功能:根据词法分析部分提供的单词串,判断这一串单词能否构成正确的表达式或语句等高级程序设计语言中的语法成分并最终构成一个语法上正确的高级语言程序,也就是判断输入的源程序有没有语法错误。 例:上例 s=x+y*5 语法分析的任务就是识别出 x+y*5为算术表达式, 识别出上述整个符号串为赋值语句.倘若写成s+x=y*5就是错误的,不符合语法规则,必然报错。 依循的原则:语法规则 描述工具:上下文无关文法 语义分析功能:根据语言的定义来确定各语言成分的含义。 这一阶段有两项工作:首先对每种语法范畴进行静态语义审查(如是否定义,类型是否匹配等),若语义正确,进行另一方面的工作,即中间代码的翻译。??? ?例:A*B (检查A、B类型) 依循的原则:语义规则 描述工具:属性文法 中间代码:是介于高级语言语句和低级语言语句之间的一种独立于具体硬件的记号系统,它即有一定程度的抽象,又和低级语言十分接近,因此,转换成目标代码很容易。 常用中间代码:四元式、三元式、间接三元式、逆波兰记号和树形表示等。 例:赋值语句Z=(X+0.418)*Y/W;翻译成四元式形式的中间代码为: 算符 左操作数 右操作数 结果 (+, X, 0.418, T1) (*, T1, Y, T2) ( /, T2 W, Z ) 其中, T1和T2是编译期间引进的临时工作变量;第一个四元式意味着把X的值加上0.418存放于T1中;第二个四元式指将T1的值和Y的值相乘存于T2中;第三个四元式指将T2的值除以Y的值保留结果于Z中。 功能:对于前阶段产生的中间代码进行加工变换,以期在最后阶段产生更高效的目标代码。 依循的原则:程序的等价变换规则 优化的主要方面:公共子表达式的提取、循环优化、删除无用代码等。 功能:根据目标机的体系结构和指令系统等属性,把中间代码(或经优化的中间代码

文档评论(0)

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

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

1亿VIP精品文档

相关文档