形式语言里面的空if语句的基本形式是,到底有什么作用

您所在位置: &
&nbsp&&nbsp
第2章 形式语言的基本知.ppt 85页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
你可能关注的文档:
··········
··········
S→aSBE S→aBE BE→bE aB→ab
bE→be eE→ee
例:2型(上下文无关)文法
文法G[S]: S→AB
B→SA|1       
S→0A|1B|0
A→0A|1B|0S
标识符(字母开始的字母数字串)的有效长度是10 数字最多为14位 过程无参,可嵌套(最多三层)定义,可递归调用 变量的作用域同PASCAL 13个保留字:if, then, while, do, read, write, call, begin, end, const, var, procedure, odd
2型(上下文无关)文法
文法G[S]:
S→0A|1B A→1S|1 B→0S|0 该文法产生的语言为:L(G[S])={anbn|n≥1} (右线性)
其中 A、B∈ VN
3型语言:L3
又称正则语言 .
3型文法称为正则文法。它是对2型文法进行进一步限制。
左线性 和右线性文法是相互等价的
(左线性)
其中 A、B∈ VN
3型文法: G[I]: I → lT
例:3型文法 有关文法的实用限制 1、 若文法中有如U::=U的规则,则这就是有害规则,它会引 起二义性,而无任何用处。
例如存在U::=U, U::= a | b,则有两棵语法树: U a U U a 文法中不能含有有害规则和多余规则
2、 多余规则: (1)某条规则U::=u的左部非终结符U(U不是识别符号),不在任何其他规则右部出现,即所有的推导始终不会用到此规则。 (2)在推导句子的过程中,一旦使用了该规则,将推不出任何终结符号串。即该规则中含有推不出任何终结符号串的非终结符。
例如给定G[S],若其中关于U的规则只有如下一条:
该规则是多余规则。 若还有U::=a,则此规则 并非多余 若某文法中无有害规则或多余规则,则称该文法是压缩过的。 根据上述讨论,L0
L3 0型文法可以产生L0、L1、L2、L3,但2型文法只能产生L2,不能产生L1。 ∪ ∪ ∪ 2型文法 1型文法 0型文法 3型文法 四种文法之间的逐级“包含”关系 2型文法(不确定的下推自动机) 1型文法(不确定的界限自动机) 0型文法(图灵机) 3型文法(有限自动机)
形式语言与自动机 图灵机 2.5 PL/0编译程序概述 PL/0编译程序 pcode解释程序 PL/0源程序 pcode代码 PASCAL语言的子集,功能简单,结构清晰,可读性强,具备了一般高级语言的必备部分 PL/0语言的功能 (1)赋值语句; (2)语句串,即begin…end语句; (3)条件语句,即if语句; (4)循环语句,即while语句; (5)过程调用语句,即call语句; (6)输入语句,即read语句; (7)输出语句,即write语句。 语句类型 (1)常量说明(全局) (2)变量说明; (3)过程说明。 说明类型 数据类型 整型 &无符号整数&
&数字串& &数字&
&数字&&数字&
1 0 (6) ==& ==& (1) ==& (3) (5) ==& ==& (2)
当符号串已没有非终结符号时,推导就必须终止。因为 终结符不可能出现在规则左部,所以将在规则左部出现的符 号称为非终结符号。 例如:G[&无符号整数&]
(1) &无符号整数& → &数字串&
(2) &数字串& → &数字串& &数字&
(3) &数字串& →
正在加载中,请稍后...语言运用_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
还剩4页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢503 Service Temporarily Unavailable
503 Service Temporarily Unavailable形式语言里面的空语句,到底有什么作用?-CSDN论坛
数据结构与算法
形式语言里面的空语句,到底有什么作用?
在有些地方需要一个语句,但却又什么都不做。
if(!(限制条件))
{printf("*");}
if(限制条件)
{printf("*");}
#include&&stdio.h&
//计算字符串长度
int&Mystrlen(char&*pStr)
char&*ptr=pS
while&(&*ptr++&);&&&&&//空语句,不执行任何东西
return&ptr-pStr-1;
int&main()
char&str[64];
&&&&gets(str);
printf("len:%d\n",&Mystrlen(str));
题目似乎应该是:形式语言里的空产生式,到底有什么作用.
有些高级语言(像&C/C++&PASCAL)允许有"空语句",即:语句的字符个数是&0.
像&C&中的&if&语句中的&else&分支.
else&分支可有可无,即&下面的两句均是合法的:
if&(a&b)&c=1;
if&(a&b)&c=1;&else&c=2;
如果形式语言里没有空产生式,那么要求每个&if&语句均有&else&分支,岂不是太麻烦?
回复

我要回帖

更多关于 空语句有什么作用 的文章

 

随机推荐