编译原理西安交通大学(冯博琴)第三章上下文无关文法.ppt

编译原理西安交通大学(冯博琴)第三章上下文无关文法.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序语言的语法描述与分析 目的: 语言的语法结构的形式描述 从形式描述中,研究语法分析器的构造 (算符优先分析法和递归子程序分析法) 第一页,共三十页。 本章内容 引言 -文法 文法与语言 -上下文无关文法 -推导与语言 语法树与二义性 第三章 上下文无关文法 (context-free grammar) 第二页,共三十页。 文法(grammar) 问题: 如何描述语言 定义: 文法是描述语言的语法结构的形式规则(即语法规则 ) 目的: 解决语言的有穷说明问题,包含对语法的描述,但 却不表达任何语义 一、引言 第三页,共三十页。 1、文法的描述应达到要求: 2、文法分类:分为四类(0、1、2、3型文法),对应四类语言; 与程序语言语法有关的是上下文无关文法 形式上严格、准确; 易于理解; 具有较强的描述能力; 有利于句子的分析和翻译,构造语法分析器 第四页,共三十页。 3、上下文无关文法的特点: 它所定义的语法范畴(或语法单位)是完全独立于这种范畴可能出现的环境的 说明 上下文无关文法只能描述一部分语言,但已足够 描述现今的程序设计语言 自然语言要用其他的文法来描述 第五页,共三十页。 二、文法与语言 1、 一个上下文无关文法G是一个四元式(VT,VN,S, P ),其中: VT:是非空有限集,它的每个元素是终结符号; VN:是非空有限集,它的每个元素是非终结符号; VT∩VN=Φ; VT∪VN=V; P :产生式集合(有限),每个产生式形式是 { P-α| P∈VN, α∈(VT∪VN)*,S至少一次为P }; S:S∈VN,称为开始符号; 第六页,共三十页。 例1、 考虑下面的算术表达式的文法及语言 VT: id + - * / ↑ ( ) VN: 表达式、运算符 S: 表达式 P: 表达式 -表达式 运算符 表达式 表达式 -(表达式) 表达式 - -表达式 表达式 - id 运算符 - +| -| * |/|↑ 得到 文法G1(E): E -EAE|( E )| -E |id A - + |-|*|/|↑ 第七页,共三十页。 该文法的: VN是出现P的左部所有符号集合 V是P的所有符号 ∴VT = V \ VN S是该文法所定义的句子名字 ∴写出了P ,就能找出其它三元素 由此可见,文法G1(E)所定义的语言是上述算术表达式, 如:id+id,id*(id+id) 等 它表达了简单算术表达式由id用A连接起来 第八页,共三十页。 2、从此可见 终结符:是用以组成语言中的串的基本符号,与程序语言中“单词”是同义语; 如:表达式id+(id)*( - id)中,+、-、*、/、↑、id均为终结符 非终结符:是标记某种串的集合的特定符号,与“语法变量”、“语法范畴”是同义词; 如:表达式、运算符都表示一个串的集合 第九页,共三十页。 该语法范畴叫“句子”,在程序语言中叫“程序” 语言的句子是由一串VN定义,到最后才是一串VT 开始符号:一个VN,标记感兴趣的语法范畴。其它非终结符用以定义其它的串集,这有助于定义该语言,也有助于为它处理的语言提供一个分层的结构; 第十页,共三十页。 产生式:规定由终结符和别的语法范畴组成一个新的语法范畴的办法; 结构:非终结符 - 一串非终结符和终结符 如:A -α A - α ↓ ↓ 左部符号 右部候选式 VN α=X1X2…Xn,Xi∈V 第十一页,共三十页。 3、习惯记号 VN: 大写字母A、B、C、S等 VT: 小写字母,0~9,+、- 等运算符, 标点,分界符,黑体字母串id、if X、Y、Z: 文法符号,或VN或VT一个符号 u、v、 w…z: VT中串 α、β、γ: 文法符号串∈(VT∪VN)* S: 开始符号,第一个产生式中出现 -: 定义为(元语言符号) |: 或(元语言符号) 第十二页,共三十页。 有穷条产生式,产生无穷集,要求产生式必须递归 定义算术表达式,用了两条浓缩的产生式,一般定 义一个语言的产生式是很复杂的 对递归的算术表达式的产生式,进行反复推导产生 表达式语言 问题:表达式语言无穷,如何定义? 第十三页,共三十页。 4、推导与语言 问题:用文法如何定义一个语言? 思路:从S出发,反复使用P,对非终结符替换展开,最后得到全由终结符串组成的一个串 涉及到:替换-推导-句型-句子-语言 第十四页,共三十页。 ②推导:如两个串u0、un,存在一个串序列 u0 u1 … u

文档评论(0)

虾虾教育 + 关注
官方认证
内容提供者

有问题请私信!谢谢啦 资料均为网络收集与整理,收费仅为整理费用,如有侵权,请私信,立马删除

版权声明书
用户编号:8012026075000021
认证主体重庆皮皮猪科技有限公司
IP属地重庆
统一社会信用代码/组织机构代码
91500113MA61PRPQ02

1亿VIP精品文档

相关文档