- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
19 重要性 计算机专业的专业基础必修课之一 软件技术基础 计算机专业的学生必修的一门主干课 作用 编译原理介绍了如何将高级程序设计语言变换成计算机硬件所能识别的机器语言,以便计算机进行处理。 它的理论基础坚实,其形式化系统不仅应用于编译技术,还大量应用于人工智能、多媒体技术及数据库等领域。 主要应用领域 编译器的设计 一般的软件设计 基本要求 对编译程序的整体结构有非常清晰的了解 熟练掌握词法分析和语法分析的基本原理及其理论基础 熟练掌握词法和语法分析的常用方法并初步了解其自动生成技术 熟悉编译中各种符号表的构造和应用 具有初步的分析和设计编译程序的能力 学习方法 认真听课,认真理解书中的基本概念、基本原理和基本算法 弄懂书中的例题和习题 在看书时或理解例题时,一定要画出相应的细节变化过程,通过画图来加深理解 在理解的基础上记忆 理论结合实践 先修课程 要求先学习以下课程 1.程序设计C语言 高级语言是编译程序的源语言,高级语言的数据类型、结构、表达式、语句、程序结构、参数传递方式和存储管理方法直接影响编译程序的实现。 2.汇编程序设计 汇编语言是编译程序的目的语言,汇编语言的指令形式、寄存器、变址器以及寻址方式与编译程序代码生成直接有关。 3.算法与数据结构 编译程序将对高级语言描述的数据类型进行组织和管理,编译过程中编译程序将对符号表进行组织、管理和查找,大量使用到数据结构的基本知识和算法。 4.操作系统 编译程序将对中间代码和目标代码进行存储空间的分配和管理,使用到了操作系统的基本知识和管理算法。 5.离散数学 编译原理建立在形式语言与自动机的理论基础上,在编译程序的实现上大量应用了离散数学的知识,如集合,关系,逻辑,图论等。 最好学习过或同时学习以下课程 1.软件工程 掌握大型程序设计以及工程化的软件生产方法。 2.形式语言与自动机 相当于本课程中词法分析与语法分析的理论基础。 知识结构 课程成绩评定 平时成绩(30%) (考勤20、 书面作业30、平时测验30、态度与提问20) 期末考试(70%) 第一章 引论 学习目标: 掌握:编译的各个阶段 理解:编译程序的概念 了解:编译程序的结构和组合 1.1 什么是编译程序 1.计算机语言的层次 2.编译程序(compiler) 将用高级语言(如FORTRAN,PASCAL或C)书写的程序翻译成等价的低级语言程序(如汇编语言或机器语言),这种翻译程序称为编译程序(compiler)。 编译程序的输入对象称为源程序(Source program) 输出对象称为目标程序 (Targer or Object program) 在计算机上如何执行一个高级语言程序? 把高级语言程序翻译成机器语言程序 运行所得的机器语言程序求得计算结果 4.编译程序的发展 第一个编译程序的出现:20世纪50年代早期,主要将算术公式翻译成机器代码 20世纪50年代中期,一批编译系统程序开发成功 20世纪50年代末,开始研究编译程序的自动生成工具 20世纪60年代,研究使用自展技术并行编译技术 所谓编译过程是指将高级语言程序翻译为等价的目标程序的过程。 翻译和编译工作的比较 3.编译程序的工作 词法分析 语法分析 语义分析和中间代码生成 代码优化 目标代码生成 Void jisuan( ) { int y,c,d; float x,a,b; x=a+b*50; y=c+)d*(x+b; } 识别右边程序中的单词 a:=b+c*60 经语法分析得到的语法树 (3)语义分析及中间代码的生成 主要的途径有两个:通过编译程序和解释程序 编译阶段和运行阶段存储结构 编译时 运行时 四元式 其中t1、t2、t3为编译程序引入的临时工作单元 例:y = x + r * 6 y t3 = (4) t3 x t2 + (3) t2 t1 r * (2) t1 -- 6 inttoreal (1) 结果 运算对象2 运算对象1 运算符 任务:对中间代码进行加工变换,以得到高质量的目标代码 (4)代码优化 y t3 = (4) t3 x t2 + (3) t2 t1 r * (2) t1 -- 6 Inttoreal (1) 结果 右运算对象 左运算对象 运算符 y x t1 + (2) t1 6.0 r * (1) 结
文档评论(0)