考数据库系统会用到的一些计算方法和题目整理(5)

1、文法G[Z]: Z->U0|V1  U->Z1|1  V->Z0|0 对应的正规式是:()

计算思路: Z->U0 => Z->Z10   ;Z->V1 和V->Z0 => Z->Z01, 得出正规式为 (10|01)+

2、语言L={Am Bn| m≥0,n≥2}的正规表达式是:()

计算思路:n≥2,因此正规表达式应该是 A*BB B*

3、假设某程序语言的文法如下: 
S→a|b|(T) 
T→TdS|S 
其中,VT={a,b,d,(,));VN={S,T},S是开始符号。考察该文法,句型(Sd(T)db)是S的一个()。 
其中()是最左素短语,()是该句型的直接短语。()是短语

A:①最左推导 ②最右推导 ③规范推导 ④推导?
B:①S ②b ③(T) ④Sd(T)?
C:①S ②b ③(T) ④Sd(T)?
D:①S ②S,(T),b?
③S,(T),TdS,b ④(Sd(T)db)?
E:①(Sd(T)db) ②d(T) ③Td ④Sd(T)d?

计算思路:解答本题要搞清楚基本概念,下面具体分析各个问题。

先来看问题A。最左(右)推导:任何一步推导过程σ→β(其中σ、β是句型)都是对σ中的最左(最右)非终结符进行替换,这种推导为最左(最右)推导。在形式语言中,最右推导常被称为规范推导。
题中的句型(Sd(T)db)的第一步肯定是由S→(T)→(TdS)得出的。按照最左推导的规则(Tds)→(TdSdS)→(SdSdS),最终不可能推出原来的句型。
按照最右推导的规则(Tds)→(Tdb)→(Td(T)db),最终不可能推出原先的句型。
最后可以看出句型(Sd(T)db)是由一般推导推出的,步骤如下:
S→(T)→(Tds)→(Tdb)→(Td(T)db)→(Sd(T)db)
所以正确答案是④。
再来看问题B~E。来文法,S是文法的开始符号,αβδ是文法G的一个句型。如果有S→αAδ,且A→β,则称β是句型αβδ相对于非终符A的短语。特别是如有Aβ,则称β是句型αβδ相对于规则A→β的直接短语。一个句型的最左直接短语称为该句型的句柄。
本文法推导树如下:

/ | 
( T ) 
/ | 
T d S 
/ | | 
T d S b 
| /| 
S ( T )

所以,S是句型相对于规则T→S的直接短语,也是最左直接短语(句柄)。(T)是句型相对于规则S→(T)的直接短语,对于问题B,选择①是正确的。
素短语是一个短语,它至少包含一个终结符,并除自身外不包含其他的素短语。所以,问题C的答案③正确。
d是句型相对于规则S→d的直接短语,则问题D的答案②正确。
由推导树可知,无论如何,无法由S推导出d(T)、Td或Sd(T)d,所以问题E的答案①正确。

原文请参考http://blog.csdn.net/shuijinglianyi/article/details/2096222 和http://blog.itpub.net/9460545/viewspace-1001987/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值