- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * 高级语言所写程序转换(翻译)成机器语言程序计算机才能执行 * 高级语言所写程序转换(翻译)成机器语言程序计算机才能执行 * * * * * * * * 如何执行一个源程序 边解释边执行-----解释程序边解释边执行源程序本身,不产生目标程序。 解释程序 源程序 输入数据 计算结果 什么是编译程序 * 编译原理 * 编译原理这门课程主要介绍设计和构造编译程序的基本原理和常用的技术和方法。 本章重点介绍编译程序的基本概念。 编译的过程 编译程序的结构 1.1 什么是编译程序 * 编译原理 * 翻译程序是指这样一个程序,它把一种语言(称作源语言)所写的程序(源程序)翻译成等价的另一种语言(称作目标语言)的程序(目标程序)。世界上第一个编译程序FORTRAN是在20世纪50年代中期研制成功的。花费了18年的时间。 高级语言程序 机器语言程序 翻译程序 * 编译原理 * 编译程序是一种翻译程序,它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。 源程序 高级语言程序 编译程序 目标程序 汇编语言或者机器语言程序 (*.C / *.PAS) (*.OBJ / *.EXE) * 编译原理 * 采用编译方式在计算机上执行用高级语言编写的程序,需分阶段进行。 第一种情况: 源程序 编 译 程 序 机器语言 目标程序 初始数据 运行系统 结果 编 译 阶 段 运 行 阶 段 高级语言 程序 * 编译原理 * 第二种情况: 源程序 编 译 程 序 机器 语言 目标 程序 初始数据 运行系统 结果 编 译 阶 段 运行阶段 汇 编 程 序 汇编 语言 目标 程序 汇 编 阶 段 高级语言 程序 1.2 编译程序的基本结构 * 编译原理 * 例:将英文句子 “I wish you success ”翻译成中文句子的大致过程是: 词法分析 语法分析 语义分析 修饰工作 翻译成文 * 编译原理 * 编译程序是将一种语言形式翻译成另一种语言形式,因此,其工作过程一般可划分为如下五个阶段: 词法分析 语法分析 语义分析和中间代码生成 代码优化 目标代码生成 * 编译原理 * float r,h,s; s = 2*3.1416 * r *(r+h); 例如 计算圆柱体表面积的程序 片断如下: A. 词法分析 * 编译原理 * 词法分析阶段的任务是对构成源程序的字符串从左到右进行扫描和分解,根据语言的词法规则,识别出一个一个具有独立意义的单词( 也称单词符号, 简称符号 )。 * 编译原理 * 词法规则是单词符号的形成规则,它规定了哪样的字符串构成一个单词符号。 float r,h,s; s = 2*3.1416*r*(h+r); 例如 * 编译原理 * 上述源程序通过词法分析识别出如下单词符号: 关键字 float 标识符 r、h、s 常数 3.1416、2 算符 * 、+ 界符 (、 )、 ;、 ,、= float r,h,s; s = 2*3.1416*r*(h+r); * * 练一练 sum=(10+20)*(num+square); 词法分析结果? 结果 (标识符,sum) (赋值号,=) (左括号, ( ) (整常数,10) (加号,+ ) (整常数,20) (右括号, ) ) (乘号,* ) (左括号, ( ) (标识符,num) (加号,+ ) (标识符,square) (右括号, ) ) (分号,; ) B. 语法分析 * 编译原理 * 语法分析的任务是在词法分析的基 础上, 根据语言的语法规则从单词符 号串中识别出各种语法单位 ( 如表 达式、说明、语句等 ) ,并进行语法 检查,即检查各种语法单位在语法结 构上的正确性。 * 编译原理 * 语言的语法规则规定了如何从单词符号形成语法单位,语法规则是语法单位的形成规则。 float r,h,s; s = 2*3.1416*r*(h+r); 例如 * 编译原理 * 单词符号串 s=2*3.1416 * r *(h+r)中,“s” 是变量,单词符号串 “2 * 3.1416 * r *(h+r)” 组合成表达式这样的语法单位 , 由变量=表达式构成赋值语句这样的语法单位。 * * 语法分析 sum=(10+20)*(num+
文档评论(0)