第1讲--基础知识PPT.ppt

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

编译原理课件; 第一讲 引论;§1.课程介绍;二、课程性质:专业基础课,必修 编译程序出现于上世纪50年代后期(第一个高级语言Fortran,1958年) 60年代~70年代是研究高峰期 60年代中期开始在高校中开设课程 80年代开始作为计算机科学与技术专业的必修基础课程;C/C++程序设计;四、学习该课程的意义 编译程序是计算机系统不可缺少的重要组成部分 对程序设计语言的设计与实现能有更深刻的理解 对程序设计语言有关理论有所了解 从宏观上把握程序设计语言—掌握了编译原理后,就不能再说:“某语言未学过,所以不会” 有助于快速理解、定位和解决程序调试与运行中出现的问题;编译方法与技术有着广泛应用 安全技术、程序理解、软件逆向工程、应用软件与软件工具开发、软件测试与验证等 编译课程蕴含着计算学科中解决问题的思路、抽象和方法,这些与高等数学一样,使你“享用一辈子” 课程所涉及的内容至今非常活跃 自然语言的翻译 软件移植 网络安全 形式化方法 形式语义学等; 鉴于以上所述,作为计算机科学与技术专业的学生必须学习和掌握编译原理这门课程,当然由于其综合性、处理问题的复杂性等,学习起来有一定难度,这就需要艰苦奋斗的精神和良好的学习方法;五、学习方法 编译程序的构造是一个庞大而复杂的系统工程,无论是概念还是理论、方法,对初学者来说许多都是新的,学习起来会感到困难大一些,这一点必须有充分认识,为此建议学习方法上注意以下几点:;课前预习,课堂认真听讲,课后复习加深理解,特别要经常有意识地将前后内容联系起来融会贯通。 因为编译程序是一个庞大的程序系统,讲解过程必须“分而治之”(这也是人们处理复杂问题的基本方法),这就要求大家在学习过程中,始终以处理过程为主线,把前后联系起来考虑。;理论联系实际——亲自动手,构造一个演示性编译程序,至少要完成扫描器和语法分析器,以及语法制导翻译产生中间代码(课程设计) 认真完成作业,进一步巩固并加深理解所学知识 特别要下功夫认真学习如何从实际问题进行抽象并形式化,最终建立实际问题的模型(上升为理性认识),并借助模???进一步设计实现,这将对你能力的提高大有益处;六、参考书;§2.编译程序概述;应用级;输入 ;这是GCC的例子;CompilerPrinciples;二、与编译程序相关的程序 本讲义只介绍编译程序(器)构造的基本原理、方法与技术,但在一个完整的语言开发(或称程序设计)环境中,除了编译器这一主要工具外,还需要其他一些工具,如编辑器、连接器、装入程序等。 现代计算机系统常将这些相互独立的程序设计工具集成起来,构成一个集成化的程序开发环境,以提高程序设计效率和程序的质量。如Turbo C、Visual C++(Visual Studio)、Eclipse 等都是集成化的程序设计环境。;一个典型的语言处理系统;三、编译过程与编译程序结构 1.编译过程: 输入 输出 (高级语言源程序) (低级语言目标程序) 编译程序工作过程如下: 识别出一个个的单词 分析句子的语法结构 分析句子的语义并进行初步翻译 对初步翻译进行优化 整理出目标程序 对以上过程进一步整理可得如下编译程序结构总框:;2.编译程序总框:;3.五个阶段简介 第一阶段:词法分析——依据语言构词规则,识别出一个个单词(符号) ◇单词种类 保留字:for if while 算符:+ - × / 界符: , ;() { } 标识符:a1 a2 pi 常数:9 1024 4.8 6E6; ◇词法分析工作由词法分析器(或称扫描器)完成。 ◇扫描器输出为等长度的单词符号(二元式)流。 ◇例:;第二阶段:语法分析——依据语言的语法规则,把扫描器提供的单词符号串分解成各种语法单位(范畴),如“短语”、“子句”、“句子”乃至“程序”。同时进行语法检查,以确定输入串是否正确,该工作是由语法分析器完成的。 ;第三阶段:语义分析与中间代码产生——针对各类不同的语法范畴,按语言的语义规则进行语义分析和初步翻译工作,产生某种中间语言形式的中间代码(即一种结构简单,含义明确的记号系统)。 该阶段工作通常包括两个方面的工作: ◇对每种语法范畴进行静态语义检查,包括: 变量是否定义过 类型是否正确 是否用了0作除数 … …;将语法范畴翻译成某种形式的中间代码,如四元式:;第四阶段:优化——对前阶段产生的中间代码进行加工变换,以期在最后阶段能产生出高效(节省时、空)的目标代码,这一任务是由优化器来完成的 根据优化的范围不同,可分为: 局部优化,循环

文档评论(0)

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

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

1亿VIP精品文档

相关文档