网站大量收购独家精品文档,联系QQ:2885784924

编译器原则语法和语言.ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译器原则语法和语言

第二章 文法和语言;第2章 文法和语言;2.1 文法的直观表示;形式语言:只考虑语法而不考虑语义的符号语言。 每种语言具有两个可识别的特性 语言的形式 与该形式相关联的意义 “形式”指语言的所有规则,描述出现什么符号串 语言可以看成在一个基本符号集上定义的,按一定规则构成的基本符号串组成的所有集合。 形式语言理论是对符号串集合的表示法、结构及其特性的研究,是程序设计语言语法分析研究的基础。;表达语言时,一般无法穷尽语言的所有句子,常用规则加以描述 例:汉语句子的构成规则:   〈句子〉∷=〈主语〉〈谓语〉   〈主语〉∷=〈代词〉|〈名词〉   〈代词〉∷= 我 | 你 | 他   〈名词〉∷= 王明 | 大学生 | 工人 | 英语   〈谓语〉∷=〈动词〉〈直接宾语〉   〈动词〉∷= 是 | 学习   〈直接宾语〉∷=〈代词〉|〈名词〉 ;推导:“我是大学生” 是汉语的一个句子 〈句子〉? 〈主语〉 〈谓语〉 ? 〈代词〉〈谓语〉 ?我〈谓语〉 ?我〈动词〉〈直接宾语〉 ? 我是〈直接宾语〉 ?我是〈名词〉 ?我是大学生 ;2.2 符号与符号串;符号串:由字母表中的符号构成的任何有穷序列称为符号串。符号串中的符号是有顺序的。;符号串s的头(前缀)和尾(后缀) : 如果s=xy是一符号串,那么x是s的头,y是s的尾。若x是非空,则y是固有尾;若y非空,则x是固有头。 前缀:移走符号串s尾部的零个或多个符号得到的串。 如:设s=abc,那么s的前缀是ε,a,ab,abc 后缀:移走符号串s头部的零个或多个符号得到的串。 如:s =abc的后缀是ε,c,bc,abc,s的固有尾是ε,c,bc。 ;符号串s的子串: 从s中删去任何前缀或后缀得到的串. 如:bc是符号串abc的一个子串. 对符号串s, s和ε两者都是符号串s的前缀、后缀和子串。 符号串s的真前缀,真后缀,真子串: 任何非空符号串 x,是s的前缀,后缀或子串,并且 s ? x ;2.符号串的运算 (1)符号串相等: 符号串x,y,如果两者诸符号依次相等,则两符号串相等。 (2)符号串的长度:符号串中包含符号的个数。 |abc|=3;| ? |=0; (3)符号串的连结: x=abc,y=def 则xy=abcdef;yx=defabc; xy yx ? x=x ? =x; ;(4)符号串集合的乘积: 设A、B为两个符号串集合,其乘积为AB={xy|x ?A,y?B}; 例:A={aa,bb},B={cc,dd},则 AB={aacc,aadd,bbcc,bbdd} {? }A=A {? }=A; (5)空集: 不含任何元素的集合称为空集。记为?; 对任何集合A:A ?= ?A= ?; 注意: ?? ? ;(6)符号串的方幂: x是字母表上的符号串,则x的幂运算为: x0= ? ; x1= x; x2= xx;… xn= xn-1x=x xn-1 (n0) xn表示n个x相连结。 eg:x=ok;则 x0= ? ; x1= ok; x2= okok; … (7)符号串集合的方幂: A为符号串集合,则A的幂运算为: A0={?}; A1=A; A2=AA;... An= An-1A=AAn-1;(n0) A={aa,bb},则A0={?}; A1={aa,bb}; A2=AA={aaaa,aabb,bbaa,bbbb};...;(8)符号串集合的闭包和正闭包 集合A的闭包表示为A*(亦称为自反闭包或星闭包)定义为: A*=A0? A1? A2? A3? …=?Ak, k?0 正闭包表示为A+具体定义为 A+=A1? A2? A3? …=?Ak, k?1 由定义可以看到A*= A0 ? A+ ;3、语言 (1)由一组符号所构成的集合。即: 字母表?上的每个语言是?*的一个子集。 例如:字母表Σ={a,b},Σ*={ε,a,b,aa,ab,ba,bb,aaa,aab,…} 集合{ab,aabb,aaabbb,…,anbn,…} 或表示为{w|w∈Σ*且w=anbn,n≥1}为字母表?上的一个语言。 集合{a,aa,aaa,…} 或表示为{w|w∈Σ*,且w=an,n≥1} 为字母表?上的一个语言。 (2) ?ε?是一个语言。 (3) ?即? ?是一个语言。;2.3 文法和语言的形式定义;一、规则(重写规则、产生

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档