网站大量收购独家精品文档,联系QQ:2885784924

第01讲-编译原理-课程简介PPT课件.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理和技术 Principles of Compiling;编译原理课程在计算机科学技术中的地位:;本讲纲要;课 程 简 介;课 程 简 介;课 程 简 介;课 程 简 介;课 程 简 介;课 程 简 介;课 程 简 介----要求;课 程 简 介;课 程 简 介;if (c == 5) then … if (c = 5) then…;课 程 简 介;课 程 简 介;普通计算器;课 程 简 介;各种数据库查询语言及专家系统;在x86/Linux工作站上,以下两个结构的size分别是20和16,为什么不一样? typedef struct _a{ typedef struct _b{ char c1; char c1; long i; char c2; char c2; long i; double f; double f; }a; }b;;typedef struct _a{ typedef struct _b{ char c1; char c1; long l; char c2; char c2; long l; double f; double f; }a; }b;;typedef struct _a{ typedef struct _b{ char c1; char c1; long l; char c2; char c2; long l; double f; double f; }a; }b;;;;;类型;本讲纲要;编辑器;BASIC年代的解释器 功能:它将高级语言的源程序翻译成一种中间语言程序,然后对中间语言程序进行解释执行 在那个年代,编译和解释两个功能是合在一个程序中,该程序被称为解释器 Java年代的解释器 解释器的上述两个功能分在两个程序中 前一个叫做编译器,它把源程序翻译成一种叫做字节码的中间语言程序 后一个叫做解释器,它对字节码程序进行解释执行;编译器和解释器的区别;编译器和解释器的区别;编译器和解释器的区别;编译器和解释器的区别;编译器和解释器的区别;第一章 引论;编程语言演义;编程语言演义;编程语言演义;编程语言演义;编译器功能;词法分析器 ;第一章 引 论;遍;遍;遍;遍;遍;遍;遍(趟): 一遍或一趟:是指编译程序在编译时刻把源程序或源程序的等价物(中间程序)从头到尾扫描一遍并转换成另一紧邻的等价物的全过程。 单遍扫描与多遍扫描:每一遍的扫视可完成上述一个阶段或多个阶段的工作。每一遍的输入都是上一遍的输出,第一遍的输入是源程序正文,最后一遍的输出是目标代码。 单遍与多遍的比较: 遍数多:编译器结构清晰,但时间效率不高 遍数少:编译速度快,但对机器的内存要???高 遍数的确定:主要因素是源程序和机器(目标机)的特征。;符号表 ;任何一个标识符都是表达式; 任何一个数都是表达式; 如果e1和e2都是表达式,那么 ? e1 + e2 ? e1 * e2 ? (e1) 也都是表达式;语法分析器;语义分析器;词法分析器 ;中间代码生成器;代码优化器;temp1 := id3 * 60.0 id1 := id2 + temp1;词法分析器 ;词法分析器 ;词法分析器 ;前端和后端: 把编译过程分成前端和后端两部分 前端:只依赖于源程序,独立于目标机器 (生成中间代码) 后端:依赖于目标机器,与源程序无关,只与中间语言有关(从中间代码生成目标代码) 好处:提高开发编译器的效率 取一个编译器的前端,重写它的后端以产生同一源语言在另一机器上的编译器 不同的前端使用同一个后端,从而得到一个机器上的几个编译器(采用同一中间语言);源程序;高级语言的实现 高级编程语言易于编程,但程序运行较慢 低级语言编程时可实施更有效的控制方式,得到更有效的代码,但难编写、易出错、难维护 流行编程语言的大多数演变都是朝着提高抽象级别的方向 每一轮编程语言新特征的出现都刺激编译器优化的新研究;程序翻译 二进制翻译 编译器技术可用于把一种机器的二进制代码翻译成另一种机器的代码,以运行原先为别的指令集编译的代码 数据库查询解释器 数据库查询由一些谓词组成,这些谓词由包含关系运算的布尔表达式组成,可以被解释执行,也可以被编译成搜索数据库的命令;提高软件开发效率的工具 源于编译器中代码优化技术的程序分析一直在改进软件开发效率 类型检查 类型检查是一种捕捉程序中前后不一致的成熟而有效的技术 边界检查 数据流分析技术可用来定位缓冲区溢出 内存管理 自动的内存管理删除内存泄漏等内存

文档评论(0)

pandon + 关注
官方认证
内容提供者

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

认证主体阳春市鑫淼网络科技有限公司
IP属地广东
统一社会信用代码/组织机构代码
91441781MA52GF540R

1亿VIP精品文档

相关文档