[工学]编译原理课件第2章.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文档。上传文档
查看更多
[工学]编译原理课件第2章

总结 1、上下文无关文法的概念 2、最左/右推导、语法分析树 3、文法二义性 4、文法的分类 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章 高级语言及其语法描述 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,aa,bb,ba......} {a,b}+={a,b}{a,b}* ={a,b} {ε,a,b,ab,aa,bb,ba......} ={a,b,ab,aa,bb,ba......} {ab,b} {aa,bb}={abaa,abbb,baa,bbb} U V= ∑*= ∑+= 2.3程序语言的语法描述 一、上下文无关文法 1、定义: 文法:描述语言的语法结构的形式规则(即语法规则)。 上下文无关文法: 所定义的语法范畴(或语法单位)是完全独立 于这种范畴可能

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档