- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[编译原理.第二版.第3章文法和语法
第3章 文法和语言 教学要求:本章是编译原理课程的理论基础,要求理解文法、语言、规范推导、规范归约和短语、简单短语、句柄的基本概念;掌握语言的求解方法、文法的二义性的判断方法及句型的分析方法。 教学重点:上下文无关文法,语言定义 Mini_C 介 绍 Mini_C语言是在C语言的基础上定义的一种语言(C语言的子集),它的文法定义如下: 1 程序 ::= MAIN()语句块 2 语句块 ::= {变量声明列表语句串} | {语句串} 3 变量声明列表 ::= 变量声明列表变量声明|变量声明 4 变量声明 ::= 变量类型ID; 5 变量类型 ::= int | char | real 6 语句串 ::= 语句;|语句串语句; 7 语句 ::= 赋值语句 | 条件语句 | 循环语句 8 赋值语句 ::= ID=算术表达式 9 条件语句 ::= if (条件)语句块 | if (条件) 语句块else语句块 10循环语句 ::= while语句 | for 语句 11while语句 ::= while (条件)语句块 12for 语句 ::= for (赋值语句 ; 条件 ; 算术表达式)语句块 13条件 ::= 算术表达式关系运算符算术表达式 14关系运算符 ::= |=||=|==|!= 15算术表达式 ::= 算术表达式+项|算术表达式 - 项|项 3)语言 由文法G产生的所有句子组成的集合叫做文法G所成描述的语言,记为L(G)。 例3.3 文法G[S]: (1)S→dAB (2)A→aA (3)A→a (4)B→Bb (5)B→ε 例:构造生成语言L={ }的文法。 4)文法的等价 若L(G1)=L(G2),则称文法G1和G2是等价的。 五 文法的类型 (1)0型文法(短语文法):对任一产生式α→β,都有α∈(VN∪VT)+, β∈(VN∪VT)* (2)1型文法(上下文有关文法): 对任一产生式α→β,都有|β|≥|α|, 仅仅 S→ε除外。即α1Aα2→α1βα2(A在VN中,其他在V*中,β≠ε) (3)2型文法(上下文无关文法): 对任一产生式α→β,都有α∈VN , β∈(VN∪VT)* 即A→β(A在VN中,β在V*中,) (4)3型文法(正规文法):任一产生式α→β的形式都为A→aB或A→a,其中A∈VN ,B∈VN ,a∈VT 例:1型(上下文有关)文法 文法G[S]: S→aSBE S→aBE EB→BE aB→ab bB→bb bE→be eE→ee 例:2型(上下文无关)文法 文法G[S]: S→aB|bA A→a|aS|bAA B→b|bS|aBB 文法G[S]: S→0A|1B|0 A→0A|1B|0S B→1B|1|0 例:定义标识符的3型(正规)文法 文法G[I]: I → lT I → l T → lT T → dT T → l T → d 文法和语言 0型文法产生的语言称为0型语言 1型文法或上下文有关文法( CSG )产生的语言称为1型语言或上下文有关语言(CSL) 2型文法或上下文无关文法( CFG )产生的语言称为2型语言或上下文无关语言( CFL ) 3型文法或正则(正规)文法( RG )产生的语言称为3型语言或正则(正规)语言( RL ) 六 上下文无关文法及其语法树 上下文无关文法有足够的能力描述现今程序设计语言的语法结构。 算术表达式 语句 赋值语句 条件语句 循环语句 …… 1、语法树与推导 用于描述上下文无关文法的句型推导的直观方法 推导过程中施用产生式的顺序 2、最左(最右)推导: 在推导的任何一步α?β,其中α、β是句型,都是对α中的最左(右)非终结符进行替换。 最右推导被称为规范推导。 由规范推导所得的句型称为规范句型。 问题:一个句型是否对应唯一的一棵语法树? 例:G[E]: E → i E → E+E E → E*E E → (E) 3、二义文法 若一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的。或者,若一个文法存在某个句子有两个不同的最左(右)推导,则称这个文法是二义的。 产生某上下文无关语言的每一个文法都是二义的,则称此语言是先天二义的。 排除文法二义性的两种方法: (1)在语义上加些限制(如优先顺序和结合律)。 (2)重构无二义性的文法。 练习:有文法G[N]:
您可能关注的文档
- [通信大数据行业前景预测及投资战略研究报告.docx
- [通信工程学院2012篮球赛策划外联版.doc
- [编写完美简历061113.ppt
- [李清照词的艺术特点.doc
- [通信工程学年论文格式.doc
- [通信工程安全管理办法及监理规划培训教材.docx
- [李白诗歌中的情感色彩.doc
- [李白诗歌的思想特征.doc
- [通信工程职业规划书.doc
- [李红娇-思想政治工作的新思路、新方法.doc
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
文档评论(0)