程序设计语言编译原理(第三版)第2章.pptVIP

程序设计语言编译原理(第三版)第2章.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.3程序语言的语法描述 例:句子 i+i*i的最左推导过程 E E E E * E + i i i E E E E + E * i i i 最左推导 E?E+E?i+E  ?i+E*E?i+i*E  ?i+i*i E?E*E?E+E*E  ?i+E*E?i+i*E  ?i+i*i * 2.3程序语言的语法描述 最右推导 E E E E * E + i i i E E E E + E * i i i E?E+E?E+E*E  ?E+E*i?E+i*i  ?i+i*i E?E*E?E*i  ?E+E*i?E+i*i  ?i+i*i * 2.3程序语言的语法描述 注意: A、区分:文法的二义性——语言的二义性   二义文法G≠无二义文法G’  但L(G)=L(G’) 例如:G :E?E+E|E*E|(E)|i G’:E?T|E+T T?F|T*F F?(E)|i ?L(G)=L(G’) * B、二义问题是不可判定的: 即不存在一个算法,它能在有限步骤内,确切 的判定一个文法是否为二义的. 所能做的只是为无二义性寻找一组充分条件 2.3程序语言的语法描述 * 2.3程序语言的语法描述 三、形式语言 G=(VT ,VN ,S ,Ρ) 0型文法: ??? ?? (VN?VT)* ,至少有一个非终结符 任何产生式 ??? 均满足|?|≤ |?|; 仅S??例外,但S不得出现在任何产生式的右部。 1型文法: 短语文法 上下文有关文法 * 2.3程序语言的语法描述 2型文法: A??, A?VN , ??(VN? VT)* G的任何产生式为A??B或 A?? 其中??VT*,A、B ? VN 。 3型文法: G的任何产生式为A ?B ?或 A??, 其中??VT*,A、B ? VN 。 上下文无关文法 正规文法 右线性正规文法 左线性正规文法 * 第2章 高级语言及其语法描述 2.1 程序语言的定义 2.2 高级语言的一般特性(略) 2.3 程序语言的语法描述 * 2.1 程序语言的定义 自然语言与计算机语言的区别与联系: 计算机程序语言——一个记号系统, 类似于自然语言,由语法+语义定义 自然语言(1)人与人的通讯工具 (2)语义:由环境、背景知识、语气等决定 二义性(常有)——难以形式化 计算机语言 (1)计算机系统间、人机间通讯工具 (2)具有严格的语法、语义 ——易于形式化(严格) * 2.1 程序语言的定义 一、语法 一组规则,使用它可以形成和产生一个合式的程序,则这组规则称为语法。 定义了程序的形式结构,是判断输入字符串是否构成一个形式上(即合式)正确程序的依据。 词法规则——单词符号的形成规则,即规定了字母表中 哪样的字符串是一个单词符号。 单词符号——语言中具有独立意义的最基本结构。 语法规则——语法单位的形成规则,即规定了如何从单 词符号形成更大的结构(即语法单位)。 * 2.1 程序语言的定义 二、语义 1. 语义规则:一组规则,使用它可以定义一个程序的意义 。 离开语义,语言只不过是一堆符号的集合;在许多语言中有着形式上完全相同的语法单位,但含义却不尽相同。 2. 注意:阐明语义要比阐明语法难得多,现在还没有一   种公认的形式系统,借助于它可以自动地构造   出实用的编译程序。 本书?基于属性文法的语法制导翻译方法?较接近形式化 * 2.3程序语言的语法描述 基本概念 1. 有穷字母表。 ∑中的每个元素。 由∑中的符号所构成的一个有穷序列。 空字,不包含任何符号的序列。 ∑上的所有符号串的全体,包括ε。 注:区分: ε 、{ε}、Ф 空集Ф ={}:不含任何元素的集合 ∑: 符号: ∑上的符号串: ε: ∑*: * 2.3程序语言的语法描述 2.(连接)积:UV={αβ|α∈ U&β∈ V } U、V? ∑* UV不一定等于 VU, 但(UV)W=U(VW) Vn=VV…V V0 = {ε} V*=V0 ∪ V1 ∪ V2 ∪ V3 ∪ … V+=VV* n个 V的闭包 V的正则闭包 注:V*中的每个符号串都是由V中的符号串经有限次连接而成的。 * 例: ∑={a,b}, U={ab,b} V={aa,bb} {a,b}*={a,b}0 ∪{a,b}1 ∪{a,b}2 ∪...... ={ε,a,b,ab,

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档