- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第四章程序语言的设计;对于语言,根据语言句子的结构特点,可以定义一个产生该语言的文法。
使用文法作为语言的有穷描述,不仅可以描述出语言的结构特征,而且可以产生这个语言的所有句子。
文法是描述语言语法结构的形式规则。
通用,准确,易于理解,描述能力强
;文法G是一个四元式:
G=(VT,VN,S,P)
VT是有限字符的集合(字母表),元素称为字母或者终结符;
VN是有限字符的集合——非终结符集合,元素称为变量或者非终结符;
S∈VN,称为文法的开始符号;
P是产生式α→β的集合,其中:
; α∈(VT∪VN)+,至少包含一个非终结符;
β∈(VT∪VN)*
α→ε,称为空串产生式或者ε产生式;
第一个产生式的左边只能有一个符号,就是开始符号S;
其他产生式的左边可以是串。;α→β1
α→β2
…
α→βn
简化为:α→β1|β2|…|βn
其中:β1、β2、…、βn称为α的候选式
;描述文法,直接给出产生式集合即可。
例:算术表达式文法G
E→E+T|E-T|T
T→T*F|T/F|F
F→(E)|i
;根据产生式的不同特征,分为以下几类:
(1)0型文法(无限制文法PSG)
α→β
(2)1型文法(上下文有关文法CSG)
|α|=|β|(S→ε例外);1型文法产生式的标准形式
yAz→yωz
其中:A∈VN
y,z∈(VT∪VN)*
ω∈(VT∪VN)+
S→ε例外;(3)2型文法(上下文无关文法CFG)
A→β
(4)3型文法(正则文法RG,或右线性文法RLG)
A→u或A→wB
其中u?VT*,w?VT+
;文法G
α和β是集合(VT∪VN)上的串,
α=pvr,β=pur(p和r可能同时为ε)
而v→u是一个产生式,
则称α直接推导出β,
记为α?β,即pvr?pur;推导的实质:
推导是用产生式的右边替换产生式的左边。
推导的逆过程——规约:
归约是用产生式的左端替换产生式的右端,是推导的逆过程。
非终结符代表在推导的过程中可以被替代的符号,
终结符代表在推导的过程中不可以被替代的符号。;?;?;已知G(E)
E→E+E│E*E│(E)│i
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
;?;?;一个文法只能产生一个语言。
一个语言可以由多个不同的文法产生。
文???等价
两个文法G和G’
如果有L(G)=L(G’),则称G和G’等价。
;文法:
S→()
S→(S)
S→SS
产生语言:
L={ω|ω是括号匹配的串}
;文法:
S→0S
S→0
产生语言:
L={0n|n0};文法:
S→0S
S→ε
该文法产生语言:
L={0n|n≥0}
;文法:
S→aSb
S→ab
产生语言:
L={anbn|n0};文法:
S→aS
S→bS
S→ε
产生语言
L={a,b}*;字母表{a,b}上所有对称的非空串组成的语言(没有中心点)
构造文法产生该语言;aa和bb是最基本的句子。
如果S是句子,则aSa和bSb是句子
得到文法:
S→aa
S→bb
S→aSa
S→bSb;(1)文法
S→aSa
S→bSb
S→a
S→b
产生的语言是什么?;(2)文法
S→aSa
S→bSb
S→ε
产生的语言是什么?;产生语言L(G)={anbncn|n0}的文法:
S→aSBC
S→aBC
CB→BC
aB→ab
bB→bb
bC→bc
cC→cc;上述文法的后3个产生式
bB→bb
bC→bc
cC→cc
是否可以改为
B→b
C→c?;S→abc|aSBc
cB→Bc
aB→ab
bB→bb;补充文法G,使得L(G)={anbncn|n0}
S→aBSc
S→aBc
Ba→?
…;对一个句子/句型的推导过程不止一种,可以用一棵树来表示多种不同的推导,称为语法树(也称为推导树)。语法树可以表示一个句子/句型的语法结构的层次。
语法树是一棵倒置的树,结点是文法G的非终结符或终结符;根结点是文法的开始符;每个结点与其子结点都符合某个产生式的关系。
语法树的边缘:语法树的所有叶结点从左到右的连接。;对于文法
E→E+E│E*E│(E)│i
句子i+i*i的语法树为:
;句型/句子:语法树的边缘。
短语
您可能关注的文档
- 程序设计语言与编译ppt课件_0 课程简介.pptx
- 程序设计语言与编译ppt课件_6.2 词法分析器实例.pptx
- 程序设计语言与编译ppt课件_7.6 LR分析法.pptx
- 程序设计语言与编译ppt课件_7.2 回溯分析法.pptx
- 程序设计语言与编译ppt课件_7.1 语法分析概述.pptx
- 程序设计语言与编译ppt课件_4.1 程序设计语言的定义.pptx
- 程序设计语言与编译ppt课件_6.1 词法分析概述+单词的类别+单词的识别.pptx
- 程序设计语言与编译ppt课件_10.4 存储空间分配.pptx
- 程序设计语言与编译ppt课件_10.1 目标代码生成概述.pptx
- 程序设计语言与编译ppt课件_10.3 寄存器分配.pptx
- 2025年无人机低空医疗物资投放社会效益报告.docx
- 2025年再生塑料行业包装回收利用产业链重构研究.docx
- 《AI眼镜周边产品市场机遇:2025年终端销售与需求增长洞察》.docx
- 2025年坚果加工行业深加工技术突破与市场拓展策略报告.docx
- 2025年通信芯片行业技术竞争与未来趋势报告.docx
- 《2025年生鲜电商配送冷链事故分析与预防措施》.docx
- 《商业航天融资新趋势2025民营卫星企业资本涌入估值分析市场动态》.docx
- 2025年能源绿色健康行业创新技术与市场应用报告.docx
- 2025年无人机低空医疗救援通信方案分析报告.docx
- 2025年烹饪机器人行业市场集中度分析报告.docx
原创力文档


文档评论(0)