第1章 编译程序概论(lly)3.ppt

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

编译原理 教材:编译原理 张素琴 吕映芝 清华大学出版社 参考教材:编译原理(第2版) 蒋立源 西北工业大学出版社 主讲教师: 刘立月 Office: 创新西楼-405(软件理论教研室) E_mail: lly_nwpu@163.com 教学内容及学时分配 教学内容及学时分配 课程成绩评定 平时成绩(30%) (考勤20、 书面作业30、上机练习30、态度与提问20 ) 期末考试(70%) 第1章 编译程序概论 考查重点: 编译程序? 编译程序与解释程序的根本区别? 编译程序各部分的功能? 编译程序的逻辑结构 1.1 什么是编译程序 3、解释程序 定义: 一个源程序的解释程序是这样一个程序,它以源语言书写的程序作为输入,但不产生目标程序,而是边解释边执行源程序本身。 源语言:BASIC、LISP等 4、翻译程序:把一种语言(源语言)书写的程序翻译成另一种语言(目标语言)等价的程序。 汇编程序:源语言程序为汇编语言;目标语言为机器语言的翻译程序。 (区别:汇编语言程序与汇编程序) 编译程序:源语言程序为高级语言,而目标语言为低级语言(汇编语言或机器语言)的翻译程序。 1. 2 编译过程概述 1、编译程序的组成 例:一段英文翻译为中文时,通常经过以下步骤: 编译程序的逻辑结构 绝对地址的机器指令代码 这种代码可以立即执行。 汇编语言形式的目标程序 这种代码还需要汇编程序汇编之后才能运行。 模块结构的机器指令(可重定位的指令代码) 这种代码在运行前必须借助于一个连接装配程序把各个目标模块连接在一起,装入内存中,使之成为一个可以运行的绝对地址的机器指令代码程序。 错误的种类: 语法错误 语法错误是指源程序中有不符合语法(或词法)规则的错误,它们可在词法分析或语法分析时检测出来。 语义错误 语义错误是指源程序中不符合语义规则的错误,这些错误一般在语义分析时检测出来,有的要在运行时才能检测出来。 1.最重要的是符号表 2.信息表的结构 1. 5 编译程序的生成 1、编译程序的设计目标 目标程序小,执行速度快。 编译程序小,执行速度快。 诊断能力强,可靠性强。 可移植性,可扩充性。 2、编译器的生成 合理的方法是用另一种语言来编写编译器,而使用该种语言的编译器早已存在了。 (1) LEX: 自动产生词法分析器 1.源语言 对被编译的语言要深刻理解其结构(语法)和含义(语义) 。 2.目标语言 假定目标语言是机器语言,那么,就必须搞清楚硬件的系统结构和操作系统的功能。 3.编译方法 把一种语言程序翻译为另一种语言程序的方法很多,但必须准确地掌握一二。 * (56学时:44+12) 计算机语言 低级语言 高级语言:如PASCAL,C等 机器语言 汇编语言 (唯一能被计算机执行的) 2、执行高级语言或汇编语言的步骤: (1)把高级语言程序或汇编语言程序转换成计算机所能理解的语言程序—机器语言程序 。 转换的办法:解释、翻译 (2)运行所得的机器语言程序得到计算结果 1、计算机语言的分类 解释程序 源程序 输入数据 计算结果 边解释边执行 编译程序 高级语言程序 (源程序) 低级语言程序 (目标程序) 思考: 翻译与编译的关系? 解释与编译的主要区别是? 编译程序 运行系统 目标程序 输入数据 计算结果 源程序 需预处理的源程序 预处理程序 源程序 编译程序 汇编程序 装配/连接编辑程序 目标汇编程序 可再装配的机器代码 绝对机器代码 可再装配目标文件 5、高级语言程序的处理过程 (目标程序:汇编语言) 识别句子中的一个个单词; ? 词法分析 分析句子的语法结构; ? 语法分析 分析句子的含义; ? 语义分析 进行初步翻译; ? 中间代码生成 对译文进行修饰; ? 中间代码优化 写出最后的译文。 ? 目标代码生成 词法分析程序 语法分析程序 语义分析程序 中间代码生成 代码优化程序 目标代码生成 信 息 表 管 理 程 序 错 误 检 查 程 序 源程序 单词符号 中间代码 中间代码 中间代码 语法单位 目标代码 功能:从左到右读入源程序的每个字符,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(逻辑上紧密相连的一组字符,具有集体含义。如:标识符、保留字(关键字)、算符、界符等)。 例. 某源程序片断如下: begin var sum , first , count : real ;

文档评论(0)

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

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

1亿VIP精品文档

相关文档