- 1、本文档共75页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译系统原 理;§2.1 字母表和符号串
§2.2 文法
§2.3 推导
§2.4 句型和句子
§2.5 语言
§2.6 递归规则与递归定义
§2.7 短语、简单短语和句柄
§2.8 语法树
§2.9 子树与短语
§2.10 由树构造推导过程
§2.11 文法的二义性
§2.12 有关文法的实用限制
§2.13 文法和语言的分类;语言的组成;语言定义的方法;§2.1 字母表和符号串;§2.1 字母表和符号串;§2.1 字母表和符号串;§2.1 字母表和符号串;§2.1 字母表和符号串;§2.1 字母表和符号串;§2.1 字母表和符号串;§2.1 字母表和符号串;6. 字符串A与B的乘积:设A和B为符号串集合,则
A与B的乘积定义为AB =?xy|x?A且y?B?;7.符号串的幂运算:即把x重复写n次,记为z=xn。
;8. 集合的幂运算:设A为符号串集合,则A的幂运算定义为A0 = {ε},A1 =A,A2 = AA,…,An = AAn-1 = An-1 A x (n0)
;9. 字符串集合的正闭包:设A为集合,
则 A+=A1∪A2∪…∪An,n1;10. 字符串集合的闭包(星闭包):设A为集合,
则 A*=A0∪A1∪A2∪…∪An,n≥0; 若A为某语言的基本字符集
A={a,b,……z,0,1,……,9, +,-,×,_/, ( , ), =……}
B为单词集
B ={begin, end, if, then, …,标识符,常量,……}
则B ? A* 。
语言的句子是定义在B上的符号串。
若令C为句子集合,则C ? B * , 程序? C;§2.2 文法;2.语法规则
通过建立一组规则(产生式),来描述句子的语法结构。
规定用“::=”表示“由…组成”或“定义为…”。;3.由产生式推导句子
推导方法:从一个要识别的符号开始推导,即用相应产生式的右部来替代产生式的左部,每次仅用一条产生式去进行推导。;句子 ? 主语谓语;4.语法树; 定义: 文法G[S]定义为一个四元组,
G[S]=(Vn,Vt,P,Z)
Vn :非终结符号集
Vt :终结符号集
P:产生式或规则的集合
Z:开始符号(识别符号) , S∈VN; 2型文法:上下文无关文法。产生式的左部都
是非终结符,右部是终结符和非终结符组成
的有穷符号串。这样只需给出产生式集合,
并指定识别符即可。;例 2-1 形式化描述P14页文法
文法G=(Vn,Vt,P,Z)
Vn = { 句子,主语,谓语,冠词,名词,动词,直接宾语 }
Vt ={ the,ate,banana,monkey}
P:
Z:句子;句子::=主语谓语
主语::=代词|名词
代词 ::=你|我|他
名词::= 王民|大学生|工人|英语
谓语::=动词直接宾语
动词::=是|学习
直接宾语::=代词|名词;无符号整数 → 数字串 ;
数字串 → 数字串 数字 ;
数字串 → 数字 ;
数字 →0;
数字 →1;
…………
数字 →9; ;(1)元符号“|”,表示或,用于具有相同左部的一系列规则。例如:
数字 →0;
数字 →1;
…………
数字 →9;;(2)元符号“”和“”,用于括起由中文字组成的非终结符或由多个字母组成的符号。例如:
数字,monkey;(4)元符号“[”和“]”,[t]表示其中的符号串t可有可无。例如:
if语句→if布尔表达式then语句[else语句]; α→β是文法G的产生式,现有符号串xαy,其中xy是该文法的任意符号串(可为空),推导就是利用α→β ,将xαy 中α替换为β。 xαy ? xβy,称xαy直接推导(产生) xβy ,也称xβy直接归约到xαy 。
;例2:文法G[S]: S→0S1, S→01
有直接推导S?0S1 ; 若存在直接推导序列
w0 ?w1 ?... ?wn,(n0)
+
则记为w0 ? wn ,称w0推导出(产生) wn ,或
wn归 约到w0 。
;例: G[N]: N→ND|D
D→0|1|2|3|4|5|6|7|8|9
N?ND?NDD?ND9?N09?D09?109 ;例:
S ?0S1
文档评论(0)