第二讲 编译原理基础 程序分析技术知识 研究生课件.pptVIP

第二讲 编译原理基础 程序分析技术知识 研究生课件.ppt

  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文档。上传文档
查看更多
第二讲 编译原理基础 程序分析技术知识 研究生课件.ppt

程序分析技术 第二讲 编译原理基础 大 纲 基本概念 正则表达式 自动机理论 文法概述 语法分析 自顶向下 自底向上 * 1 基本概念 字母表: ∑,元素的非空有穷集合。 符号串:由字母表中的符号组成的任何有穷序列。或者如下定义: 空符号串ε是?上的符号串 若x是?上的符号串,a是?的元素,则xa是?上的符号串 y是?上的符号串,当且仅当它可以由1和2导出 * 符号串的连接:设x和y均是字母表∑上的符号串,它们的连接是把y的所有符号顺序接在x的符号之后所得到的符号串。 符号串的方幂:设x是字母表∑上的符号串,把x自身连接n次得到的符号串z, 称作符号串x的n次幂,记作 z=xn ,特别地:x0=? 前缀和后缀:设x是字母表上的符号串,x=yz ,则y是x 的前缀,z 是x的后缀,特别是当z≠?时,y是x的真前缀;y≠ε时,z是x的真后缀。 子字符串:非空字符串 x ,删去它的前缀和后缀后所得到的字符串称为 x 的子字符串,简称子串。如果删去的前缀和后缀不同时为ε,则称该子串为真子串。 * 符号串集合:若集合A中的所有元素都是某字母表上的符号串,则称A为该字母表上的符号串集合。 符号串集合的乘积:设A、B 是两个符号串集合,AB表示A与B的乘积,则定义 AB={xy|(x∈A)∧(y∈B)} 符号串集合的方幂:设A是符号串集合,则称Ai 是符号串集合 A的方幂,其中i 是非负整数。 A0={?}, A1=A, A2=AA, …, An=AA… A 符号串集合的正闭包:A+=A1∪A2∪A3 … 符号串集合的星闭包:A*= A0∪A1∪A2∪A3 … * 3 自动机 定义:一个DFA是一个5元组(S,∑,δ,S0,F),其中S是状态集合,∑是字符集,δ是转换函数(转移函数)S×∑→S ,S0为初始状态S0∈S,F为终止状态集合,F?S。 两种表示形式 转换图 转换矩阵 * 3.1 自动机实例 确定有限状态自动机 M=({a, b}, {S, U, V, Q}, f, S, {Q}),其中f定义为: f (S, a)=U f (V, a)=U f (S, b)=V f (V, b)=Q f (U, a)=Q f (Q, a)=Q f (U, b)=V f (Q, b)=Q * 两种表示形式 S U V Q a U Q U Q b V V Q Q * S U Q V a a a a b b b b 3.2 词法分析 功能:读源程序的字符序列,逐个拼出单词,并构造相应的内部表示,同时检查源程序中的词法错误。 单词:所谓单词是指语言中具有独立含义的最小的语义单位。 Token:单词的内部表示。“程序语言的操作对象(只能)是该语言规定的各种数据。”编译程序是用某种程序语言书写的程序,其操作对象是一般程序中的各种语法单位。 * 单词的一种分类方法 * 识别常数的自动机 * A B E + 数字 - 数字 数字 C 数字 D 小数点 数字 注:未考虑前导0的情形 4 文法概述 文法能清晰地描述程序设计语言的语法构成,易于理解。 文法能构造有效的语法分析器,检查源程序是否符合语言规定的语法形式。 文法定义可以了解程序设计语言的结构,有利于将源程序转化为目标代码及检查出语法错误。 基于文法实现的语言易于扩展 * 4.1 文法定义 文法G定义为四元组(VT,VN,S,P) VT是有限的终极符集合 VN是有限的非终极符集合 S是开始符,S? VN P是产生式的集合,且具有下面的形式: ???,其中?,??(VT?VN)* * 4.2 文法分类 O型文法:也称为短语文法,其产生式具有形式: ?→?,其中?,??(VT?VN)*,并且?至少含一个非终极符 。 1型文法:也称为上下文相关文法。它是0型文法的特例,要求|?| ? |?| (S→?例外,但S不得出现于产生式右部)。 2型文法:也称为上下文无关文法。它是1型文法的特例,即要求产生式左部是一个非终极符: A→? 。 3型文法:也称为正则文法。它是2型文法的特例,即产生式的右部至多有两个符号,而且具有下面形式之一: A →a ,A →a B 其中A,B?VN ,a?VT 。 * 4.3 上下文无关文法 定义为四元组(VT,VN,S,P) VT是有限的终极符集合 VN是有限的非终极符集合 S是开始符,S? VN P是产生式的集合,且具有下面的形式: A?X1X2…Xn 其中A?VN,Xi?(VT?VN) ,右部可空。 * 4.4 文法相关概念 推导(直接推导):如果A??是一个产生式,则有?A????? ,其中?表示一步推导(用A →?)。这时称???是由?A?直接推导的。 ?的含义是,使用一

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档