计算机编译原理.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机编译原理 王海文 wanghaiwen@ 2005 本书结构 第一章 语言程序概述 第二章 文法与语言 第三章 词法分析 第四章 语法分析 第五章 编译程序的数据结构和符号表 第六章 语法制导翻译 第七章 编译程序 课程要求 基础理论:熟悉基于形式语言理论的编译程序构造原理和高级语言的实现原理。 基础知识:全面掌握词法分析、语法分析和语法制导翻译方法等计算机处理技术,了解高级语言中各种语言成分的实现方法。 基本技能:掌握计算机语言处理系统中各种通用的分析和翻译技术,以及自动生成系统的运用。 本课程的目的 构造编译器基本知识 编译的阶段和相关的活动 相关数据结构和算法 计算机科学中相关的基础理论 形式语言与自动机 进一步加深对软件开发的认识 第一章 概述 【课前思考】 ◇ 什么是编译程序? ◇ 编译过程和编译程序的结构? 【学习目标】 介绍语言翻译的基本概念 程序和语言 翻译和解释 介绍翻译的步骤和相关的活动 介绍编译器的开发方法 知 识 结 构 课前说明 基于形式语言理论中的有关概念来讨论编译实现问题。即 编译原理=形式语言理论+编译技术 本书主要内容涉及: 高级程序设计语言 形式语言理论的基本概念 构造编译程序的基本概念、原理和技术 基本观念 ——程序、语言 计算机、程序、语言 计算机接受指令,然后执行指令 指令组成的序列,称为程序 符合一定规则(文法)的程序的集合,称为语言 语法(形式) 语义(意义) //形式与意义之间的对应关系? 讨论:C语言与C语言程序之间的关系 基本观念 ——语言与程序 语言的作用 设计程序(选出特定的程序——构造程序) 程序的作用 由计算机执行 在人之间的交流想法,由于程序没有歧义 如何定义语言——本课程要学习的内容 以有限的规则,定义无限多的程序 。 基本观念 ——语言的多样性 语言的多样性 方便在特定领域的应用 交流障碍 解决方案 统一语言,一个梦想 没有个性的语言 语言的不断发展 翻译 基本观念——语言之间的翻译 对翻译的要求 保持程序的意义,即功能不变。 翻译的可能性 Church猜想与通用计算机(语言的等价性) ++、--、JNZ 翻译的策略——软件开发过程的策略 编译(整体翻译) 解释(逐句的翻译、执行) 程序的执行方式 高级语言程序通常采用两种方式执行:解释方式和翻译方式 解释方式:逐个语句地分析和执行,如Basic,Prolog 优点:易于查错 缺点:效率低,运行速度慢 翻译方式:对整个程序进行分析,翻译成等价机器语言程序后执行,如Pascal,Fortran,C 优点:只需分析和翻译一次, 缺点:在运行中发现的错误必须在源程序中查找 什么是编译程序? 定义:是一种语言转换系统 编译程序的功能 从功能上看,一个编译程序就是一个语言翻译程序。 源语言通常是一个高级语言,如FORTRAN,C 或Pascal。 目标语言通常是一个低级语言,如汇编或机器语言。 T形图 编译程序在计算机系统中的作用 编译系统是一种软件,一种系统软件。 软件:计算机系统中的程序及其文档。 系统软件:居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。和具体的应用领域无关,如编译系统和操作系统等。 语言处理系统:把软件语言书写的各种程序处理成可在计算机上执行的程序,如编译系统。 编译程序的组成结构 编译程序的结构 翻译之前的准备 必须了解的 源语言(翻译谁——输入) 目标语言(翻译成谁——输出) 翻译方法(如何实现翻译) 如何定义源语言和目标语言 程序的基本组成是字符,程序是一个字符串 由字符组成程序的方法 (1) 词法分析(Lexical analysis) 词法分析程序又称扫描程序。 是编译过程的第一个阶段,其任务是:读源程序的字符流、识别单词(如标识符、整数、界限符等),并转换成内部形式。 输入字符串(即源程序) 输出单词符号(最基本的语法单位) 。 词法分析举例 一个C源程序片段: int a; a=a+2; 词法分析后返回(如右图): (2) 语法分析(Syntax analysis) 语法分析 语法定义如何由单词符号组成更大的语法单位 输入单词符号 输出语法单位及其之间的关系,通常是语法树 表达语法规则的主要工具为上下文无关文法 id1:=id2+id3*10 的语法树 id1:=id2+id3*10的语法树的另一种形式 (3) 语义分析(Semantic analysis)和中间代码生成 语义分析和中间代码生成 分析(检查和计算)程序中各个语法单位的语义,翻译为中间代码形式。 输入语法单位及其之间的关系(语法树) 输出中间代码 表达语义规则的主要工具是属性文法 表达中间代码的主要工具是四元式 主要使用语法制导

文档评论(0)

***** + 关注
实名认证
文档贡献者

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档