您的位置:首页 > 数据库

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

2014-03-24 22:44 267 查看
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→β的直接短语。一个句型的最左直接短语称为该句型的句柄。

本文法推导树如下:

S

/ |

( 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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐