第4章词法分析作业参考答案
编译原理-第4章 语法分析--习题答案

第4章语法分析习题答案1.判断(1)由于递归下降分析法比较简单,因此它要求文法不必是LL(1)文法。
(× )LL(1)文法。
(× )(3)任何LL(1)文法都是无二义性的。
(√)(4)存在一种算法,能判定任何上下文无关文法是否是LL(1) 文法。
(√)(× )(6)每一个SLR(1)文法都是LR(1)文法。
(√)(7)任何一个LR(1)文法,反之亦然。
(× )(8)由于LALR是在LR(1)基础上的改进方法,所以LALR(× )(9)所有LR分析器的总控程序都是一样的,只是分析表各有不同。
(√)(10)算符优先分析法很难完全避免将错误的句子得到正确的归约。
(√)2.文法G[E]:E→E+T|TT→T*F|FF→(E)|i试给出句型(E+F)*i的短语、简单短语、句柄和最左素短语。
答案:画出语法树,得到:短语: (E+F)*i ,(E+F) ,E+F ,F ,i简单短语: F ,i句柄: F最左素短语: E+F3.文法G[S]:S→SdT | TT→T<G | GG→(S) | a试给出句型(SdG)<a的短语、简单短语、句柄和最左素短语。
答案:画出语法树,得到:短语:(SdG)<a 、(SdG) 、SdG 、G 、a简单(直接)短语:G 、a句柄:G最左素短语:SdG4.对文法G[S]提取公共左因子进行改写,判断改写后的文法是否为LL(1)文法。
S→if E then S else SS→if E then SS→otherE→b答案:提取公共左因子;文法改写为:S→if E then S S'|otherS'→else S|E→bLL(1)文法判定:① 文法无左递归② First(S)={if,other}, First(S')={else, }First(E)={b}Follow(S)= Follow(S')={else,#}Follow(E)={then}First(if E then S S')∩First(other)=First(else S)∩First( )=③First(S')∩Follow(S')={else}不为空集故此文法不是LL(1)文法。
编译原理第4章习题答案

S-> S’ S’->(S)SS’| First( (S)SS’) = { ( } Follow(S)=Follow(S’)= { (, ),$ }
预测分析表
非终结符 S ( S->S’ ) S->S’ $ S->S’
S’
S’->(S)SS’
S’->
S’->
S’->
冲突
仔细分析后,发现该文法 S->S(S)S| 是二义性文法。 二义性文法不可能是LL(1)文法。 例如:( ) ( )
S->aS’ S’->aS’AS’|Ɛ A->+|*
First(S) = First(aS’)={a} First(S’)= First(aS’AS’) ∪ First(Ɛ)= {a} ∪{Ɛ}= {a, Ɛ} First(A) = { +,*}
Follow(S) ={$} 因为 S->aS’,所以把Follow(S)加入到Follow(S’)中。 因为 S’->aS’AS’的第一个S’ ,所以把First(AS’)={+,*}加入到Follow(S’)中。 因为 S’->aS’AS’的第二个S’ ,所以Follow(S)加入到Follow(S’)中。 所以,Follow(S’)= {$, +,*} 对 S’->aS’AS’的A ,当A后面的S’推导出非空时,把First(S’)-{Ɛ}={a}加入到Follow(A)中。 对 S’->aS’AS’的A ,当A后面的S’推导出空时,把Follow(S’)={$,+,*}加入到Follow(A)中。 所以,Follow(A)= {a, +,*,$} 对于S’->aS’AS’|Ɛ,因为First(aS’AS’) ∩Follow(S’)={a} ∩{$,+,*}=空集,所以没有冲突。 对于A->+|*,因为First(+) ∩First(*)={+} ∩{*}=空集,所以没有冲突。 所以该文法是LL(1)文法。
编译原理龙书第四章答案

编译原理龙书第四章答案编译原理是计算机科学中的一门基础课程,是用于教授计算机程序的设计、构建和优化的学科,常常被用于编写编译器和解释器。
在编译原理课程中,龙书(Compilers: Principles, Techniques, and Tools)是一本经典的教材,其中第四章主要讲述了词法分析器的设计和实现。
以下是第四章的答案,按照列表划分:1. 什么是词法分析器?词法分析器(Lexical Analyzer)是编译器的组成部分之一,它用于将程序中的字符序列转换为一系列单词或词法单元(Lexeme),以便后续的语法分析和语义分析使用。
2. 词法分析器的工作流程是什么?词法分析器的工作流程如下:(1)读入字符序列。
(2)将字符序列划分为一个个词法单元,或者检查字符序列是否合法。
(3)生成一个词法单元序列,并将其传递给语法分析器。
3. 词法单元的定义是什么?词法单元是编程语言中的一个基本单元,它是对代码中的一个单一概念进行编码的基本方式。
例如,在C语言中,词法单元包括关键字(如int,if,while等)、标识符(Identifier,即自定义变量名)、运算符和特殊符号等。
4. 有哪些方法可以实现词法分析器?可以使用正则表达式、自动机等方法实现词法分析器。
其中,正则表达式可以表示字符串的集合,因此可以将其用于识别单词类别;自动机是根据输入字符序列转换状态的一种计算模型,因此可以用于实现有限自动机(Deterministic Finite Automaton)和非确定有限自动机(Nondeterministic Finite Automaton)等。
5. DFA和NFA分别是什么?DFA和NFA都是有限自动机的一种,但在转换动作上有所不同。
DFA 是确定的有限自动机,即在状态转换时只有唯一的一个选择;而NFA 是非确定的有限自动机,即在状态转换时可以有多个选择。
6. DFA和NFA之间有什么关系?DFA和NFA虽然在转换动作上不同,但它们可以互相转化。
编译原理第二版课后习答案

《编译原理》课后习题答案第一章第 1 章引论第 1 题解释下列术语:(1)编译程序(2)源程序(3)目标程序(4)编译程序的前端(5)后端(6)遍答案:(1)编译程序:如果源语言为高级语言,目标语言为某台计算机上的汇编语言或机器语言,则此翻译程序称为编译程序。
(2)源程序:源语言编写的程序称为源程序。
(3)目标程序:目标语言书写的程序称为目标程序。
(4)编译程序的前端:它由这样一些阶段组成:这些阶段的工作主要依赖于源语言而与目标机无关。
通常前端包括词法分析、语法分析、语义分析和中间代码生成这些阶段,某些优化工作也可在前端做,也包括与前端每个阶段相关的出错处理工作和符号表管理等工作。
(5)后端:指那些依赖于目标机而一般不依赖源语言,只与中间代码有关的那些阶段,即目标代码生成,以及相关出错处理和符号表操作。
(6)遍:是对源程序或其等价的中间语言程序从头到尾扫视并完成规定任务的过程。
第 2 题一个典型的编译程序通常由哪些部分组成?各部分的主要功能是什么?并画出编译程序的总体结构图。
答案:一个典型的编译程序通常包含 8 个组成部分,它们是词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、中间代码优化程序、目标代码生成程序、表格管理程序和错误处理程序。
其各部分的主要功能简述如下。
词法分析程序:输人源程序,拼单词、检查单词和分析单词,输出单词的机表达形式。
语法分析程序:检查源程序中存在的形式语法错误,输出错误处理信息。
语义分析程序:进行语义检查和分析语义信息,并把分析的结果保存到各类语义信息表中。
中间代码生成程序:按照语义规则,将语法分析程序分析出的语法单位转换成一定形式的中间语言代码,如三元式或四元式。
中间代码优化程序:为了产生高质量的目标代码,对中间代码进行等价变换处理。
目标代码生成程序:将优化后的中间代码程序转换成目标代码程序。
表格管理程序:负责建立、填写和查找等一系列表格工作。
表格的作用是记录源程序的各类信息和编译各阶段的进展情况,编译的每个阶段所需信息多数都从表格中读取,产生的中间结果都记录在相应的表格中。
编译原理第4章答案

第四章 词法分析1.构造下列正规式相应的DFA :(1) 1(0|1)*101(2) 1(1010*| 1(010)*1)*0 (3) a((a|b)*|ab *a)*b (4) b((ab)*| bb)*ab 解:(1)1(0|1)*101对应的NFA 为下表由子集法将NFA 转换为DFA :(2)1(1010*| 1(010)*1)*0对应的NFA 为 10,1下表由子集法将NFA转换为DFA:(3)a((a|b)*|ab *a)*b (略) (4)b((ab)*| bb)*ab (略)2.已知NFA=({x,y,z},{0,1},M,{x},{z})其中:M(x,0)={z},M(y,0)={x,y},M(z,0)={x,z},M(x,1)={x}, M(y,1)=φ,M(z,1)={y},构造相应的DFA 。
解:根据题意有NFA 图如下下表由子集法将NFA 转换为DFA :0,1下面将该DFA最小化:(1)首先将它的状态集分成两个子集:P1={A,D,E},P2={B,C,F}(2)区分P2:由于F(F,1)=F(C,1)=E,F(F,0)=F并且F(C,0)=C,所以F,C等价。
由于F(B,0)=F(C,0)=C,F(B,1)=D,F(C,1)=E,而D,E不等价(见下步),从而B与C,F可以区分。
有P21={C,F},P22={B}。
(3)区分P1:由于A,E输入0到终态,而D输入0不到终态,所以D与A,E可以区分,有P11={A,E},P12={D}。
(4)由于F(A,0)=B,F(E,0)=F,而B,F不等价,所以A,E可以区分。
(5)综上所述,DFA可以区分为P={{A},{B},{D},{E},{C,F}}。
所以最小化的DFA如下:3.将图确定化:1101111解:下表由子集法将NFA 转换为DFA :4.把图的(a)和(b)分别确定化和最小化:(a) (b)解: (a):下表由子集法将NFA 转换为DFA :0,1a可得图(a1),由于F(A,b)=F(B,b)=C,并且F(A,a)=F(B,a)=B,所以A,B 等价,可将DFA 最小化,即:删除B ,将原来引向B 的引线引向与其等价的状态A ,有图(a2)。
编译原理第四章答案

编译原理第四章答案1. 介绍编译原理是计算机科学中一门重要的课程,它涵盖了编译器设计与实现的基本知识和技术。
本文将针对编译原理第四章的问题进行详细解答。
第四章主要讨论了词法分析的相关内容,包括正则表达式和有限自动机。
2. 正则表达式正则表达式是一种表示字符串模式的方法。
它由一些字符和操作符组成,用于描述一类字符序列的模式。
正则表达式通常用于文本搜索、匹配和替换操作中。
2.1 正则表达式的基本操作符正则表达式的基本操作符包括字符、连接、选择和重复。
•字符:可以是单个字符,例如a、b、c。
•连接:用于连接两个正则表达式,例如ab表示在字符串中同时出现a和b。
•选择:用于在多个正则表达式中选择一个,例如a|b表示字符串中可以是a或者b。
•重复:用于指定某个正则表达式的重复次数,例如a*表示a可以出现任意次数(包括 0 次)。
2.2 正则表达式的语法正则表达式的语法规则如下:•字符:表示一个字符。
•.:表示任意字符。
•[]:表示字符集合,匹配括号内的任意一个字符。
•[^]:表示字符集合的补集,匹配除了括号内的字符之外的任意字符。
•-:表示范围,例如[a-z]匹配任意小写字母。
•*:表示重复零次或多次。
•+:表示重复一次或多次。
•?:表示重复零次或一次。
•():表示分组。
2.3 正则表达式的应用正则表达式在编译原理中的应用非常广泛。
在词法分析中,正则表达式可以用来描述编程语言中的单词(token)和它们的模式。
编译器可以使用正则表达式作为词法分析器的输入,用于将源代码分解为不同的单词。
3. 有限自动机有限自动机(Finite Automaton,FA)是一种用于描述正则语言的理论模型。
它是一种数学模型,包括有限个状态和状态之间的转移。
根据输入的字符,自动机会从一个状态转移到另一个状态。
3.1 有限自动机的组成有限自动机由以下几个部分组成:•有限个状态:每个状态表示自动机在某个时刻的状态。
•输入符号集合:表示自动机接受的输入字符集合。
2-3-习题(含解答)
2-3 习题(含解答)目录第1章编译原理概述 (1)第2章PL/O编译程序的实现 (4)第3章文法和语言 (4)第4章词法分析 (13)第5章自顶向下语法分析方法 (28)第6章自底向上优先分析 (39)第7章LR分析 (42)第8章语法制导翻译和中间代码生成 (60)第9章符号表 (67)第10章目标程序运行时的存储组织 (70)第11章代码优化 (73)第12章代码生成 (76)综合练习一 (79)综合练习二 (84)综合练习三 (90)综合练习四 (95)综合练习五 (101)综合练习六 (107)第1章编译原理概述一、选择题1.一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括 (1) 。
其中, (2) 和代码优化部分不是每个编译程序都必需的。
词法分析器用于识别 (3) ,语法分析器则可以发现源程序中的 (4) 。
(1) A.模拟执行器 B.解释器 C.表格处理和出错处理 D.符号执行器(2) A.语法分析 B.中间代码生成 C.词法分析 D.目标代码生成(3) A.字符串 B.语句 C.单词 D.标识符(4) A.语义错误 B.语法和语义错误 C.错误并校正 D.语法错误2.程序语言的语言处理程序是一种 (1) 。
(2) 是两类程序语言处理程序,他们的主要区别在于 (3) 。
(1) A.系统软件 B.应用软件 C.实时系统 D.分布式系统(2) A.高级语言程序和低级语言程序 B.解释程序和编译程序C.编译程序和操作系统D.系统程序和应用程序(3) A.单用户与多用户的差别 B.对用户程序的查错能力C.机器执行效率D.是否生成目标代码3.汇编程序是将翻译成,编译程序是将翻译成。
A.汇编语言程序B.机器语言程序C.高级语言程序D. A 或者BE. A 或者CF. B或者C4.下面关于解释程序的描述正确的是。
(1) 解释程序的特点是处理程序时不产生目标代码(2) 解释程序适用于COBOL 和 FORTRAN 语言(3) 解释程序是为打开编译程序技术的僵局而开发的A. (1)(2)B. (1)C. (1)(2)(3)D.(2)(3)5.高级语言的语言处理程序分为解释程序和编译程序两种。
语言学第四章课后答案
语言学第四章课后答案1、“桌子”,“书包”都属于名词,这体现了语法的什么性质()。
[单选题] *A.抽象性(正确答案)B.递归性C.系统性D.稳定性答案解析:“桌子”、“书包”等词语,虽然意思不同,但根据某种共同特点——大都能受数量词的修饰,就可以建立“名词”这个类:这就是词的用法对语法单位类别的抽象。
这体现了语法的抽象性。
2、语法规则的“系统性”是指()。
[单选题] *A.对语言的结构和成分进行类的概括B.相同规则可在一个结构里重复使用C.语法规则之间可以相互推导和解释(正确答案)D.语法规则的发展变化过程十分缓慢答案解析:所谓“系统”,指的是语法规则具有推导性和解释性。
3、“三思而后行”在今天读来依旧朗朗上口,体现了语法的什么性质()。
[单选题] *A.抽象性B.递归性C.系统性D.稳定性(正确答案)答案解析:“三思而后行”这句话产生在古代,现在依旧适用,体现语法的稳定性。
4、下列不属于共时语法的是()。
[单选题] *A.现代汉语语法B.先秦汉语语法C.汉语语法的演化(正确答案)D.近代汉语语法答案解析:共时语法指的是从某一时期存在的语法现象横向地静态地研究语法。
因此A、B、D选项都属于共时语法。
汉语语法的演化属于历时语法的体现。
5、以下关于“教学语法和信息语法”的内容说法有误的一项是()。
[单选题] *A.这是根据语法研究的用途区分的语法B.教学语法研究的结果面对的是人,或者说这种语法系统要充分考虑人的特点C.信息语法也叫“计算机语法”D.语法规则体系,方便计算机处理信息。
其特点是精确可靠,定义和规则具有可推导性和可开发性(正确答案)答案解析:教学语法和信息语法是根据语法研究的用途区分的语法。
教学语法研究的结果面对的是人,或者说这种语法系统要充分考虑人的特点;信息语法也叫“计算机语法”,其研究结果服务的是机器,即建立一套可以自动识别和操作的语法规则体系,方便计算机处理信息。
其特点是精确可靠,定义和规则具有可推导性和可验证性。
第4 章作业答案
第4章 词法分析1.构造下列正规式相应的DFA.(1) 1(0|1) *101答案:1) 先构造NFA :2)将NFA 确定化: ∑ Q0 1 [X] X[A] A [A] A [A] A[A,B] B [A,B] B [A,C] C[A,B] B [A,C] C [A] A[A,B,Y] Y [A,B,Y] Y [A,C] C[A,B] B3) DFA:2. 已知NFA =({x,y,z },{0,1},M,{x},{z}),其中:M(x,0)={z},M(y,0)={x,y},,M(z,0)={x,z}, M(x,1)={x},M(y,1)=φ,M(z,1)={y},构造相应的DFA 。
答案:1 x zx y x,yz x,zy2) 转成NFA (这步可省): 1 1 1 0 0/1A X BY C3)确定化:∑0 1Q[x] X[z] A[x] X[z] [A][x,z] B[y] C [x,z] [B][x,z] B[x,y] E[y] C[x,y] E[x,y] E[x,y,z] F[x] X [x,y,z] [F][x,y,z] F[x,y] E4.将下图的(a)和(b)分别确定化和最小化:(a)确定化:∑a bQ[0] [0][0,1] 1[1] 2[0,1] [1][0,1] 1[1] 2[1] 2[0] 0最小化:≡0≡{0,1} {2}因为:{0,1}a={1} {0,1}b={2} 不能拆分≡1≡{0,1} {2}0,1二状态合并,得(b)因为自动机(b)已确定化,所以只做最小化:≡0≡{1,2,3,4,5} {0}因为{4}a={0} {1,2,3,5}a={1,2,3, 5}≡1≡{1,2,3,5} {4} {0}因为{1,5}b={4} {2,3}b={2,3}≡2≡{1, 5} {2,3} {4} {0}因为{2}a={1} {3}a={3}≡3≡{1, 5} {2} {3} {4} {0}因为{1, 5}a={1,5} {1, 5}b={4} 不能拆分≡4≡{1, 5} {2} {3} {4} {0}将{1, 5}合并得:5.构造一个DFA,它接收Σ={0,1}上所有满足如下条件的字符串:每个1 都有0 直接跟在右边。
语言学第四章习题(含答案)
第四章语法一、填空题1.时一般分为现在时、过去时和将来时。
2.划分词类的标准有功能、形态和概念意义三个。
3. 历时语法指的是从语法发展变化角度纵向地、动态地研究语法,研究的重点是某些语法现象在特定的时间过程中产生和消失的原因及规律。
4. 共时(描写)语法指的是从某一时期存在的语法现象角度横向地、静态地研究语法。
研究的重点是某一语法在特定空间范围内的语法表现形式和语法规则系统。
5. 个别语法指的是对个别语言语法的研究,它既包括研究一种语言的语法系统,也包括研究一种语言中与其他语言不同的语法特点,意义在于发现各种语言独特的语法现象。
6. 普遍语法指的是对人类语言的语法共性的研究,其意义在于发现人类语言中共有的语法机制。
7. 句子是由若干个词或词组按照一定规则组合成的,能表达相对完整的意义,前后有较大停顿并带有一定语气和句调的语言单位。
8. 语法规律指语法规则本身,也就是客观存在的语法,即人们说话时直觉和习惯上所遵守的某种语感。
9. 词类就是词在语法上的分类。
它指可以替换出现在语法结构某些共同组合位置上的词的类,即具有聚合关系的词的类。
10.特定的词类与词类的组合就构成了词组。
11.能够补足缺少的成分而构成主谓句,或者说需要一定的语境和上下文的补充才能表达完整意思的句子就是不完全主谓句,或叫做省略句。
12. 语法规则就是大家说话的时候必须遵守的习惯,不是语言学家规定的。
13.语法的组合规则和聚合规则构成一种语言的语法规则。
14.从形式上看,句子的最大特点是有语调。
15.句子按其语气可以分为陈述句、疑问句、祈使句、感叹句等不同的类型。
例如“他取得了优异的成绩”是陈述句。
16.从是否能独立充当句法结构成分的角度看,词可以分为实词和虚词两大类。
17.语法研究通常以词为界,词以上的规则叫句法,词以下的规则叫词法。
18.我们可以根据语素在词中的不同作用把它分成构词语素和变词语素两类。
19.一个词,除去它的词尾,就是它的词干。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章词法分析作业参考答案4.7练习(P72)
1.构造下列正规式相应的DFA:
(4) b((ab)*|bb)*ab
解:先将正规式转换为NFA,转换过程如下:
以下为最终所得的NFA图:
然后,将此NFA转换为DFA:
转换关系矩阵如下表:
所得DFA图如下:
最后,将此DFA化简后如下:
4、把图4.21(a)和(b)分别确定化和最小化:
(a)图【解】子集法:
重命名:
确定化的DFA为:
(b)图【解】
【解】
初始划分得Π0:终态组{0},非终态组{1,2,3,4,5}
对非终态组进行分割:
{1,2,3,4,5}a ={0,1,3,5}
而{0,1,3,5}既不属于{0},也不属于{1,2,3,4,5}
∵{4} a {0},所以得新划分
Π1:{0},{4},{1,2,3,5}
对{1,2,3,5}进行分割:
∵{1,5} b {4}
{2,3} b {1,2,3,5},故得新划分
Π2:{0},{4},{1, 5},{2,3}
{1, 5} a {1, 5}
{2,3} a {1,3},故状态2和状态3不等价,得新划分:
Π3:{0},{2},{3},{4},{1, 5}这是最后划分
最小DFA:
7.给文法G[S]:
S→aA|bQ
A→aA|bB|b
B→bD|aQ
Q→aQ|bD|b
D→bB|aA
E→aB|bF
F→bD|aE|b
构造相应的最小的DFA。
【解】首先,将正规式转换成NFA如下:
然后,将此NFA转换为DFA:
转换关系矩阵如下表:
所得DFA图如下:
化简后的最后划分为:T0={T0},T1={T1,T2},T3={T3,T4},T5={T5,T6},其中T3为终态。
最后,将此DFA化简后如下:
8.给出下述文法所对应的正规式:
S→0A|1B
A→1S|1
B→0S|0
【解】由题意得:
A=>1S|1,B=>0S|0 ,S→0A|1B,将A,B右端代入S的产生式得:S→0(1S|1)|1(0S|0)=01S|01|10S|10=(01|10)| (01|10)S
∴S→(01|10)| (01|10)S
∴S=(01|10)| (01|10)*
∴该文法所对应的正规式为:(01|10)| (01|10)*
9将图4.22的DFA最小化,并用正则式描述所识别的语言。
【解释】
初始划分得Π0:{6,7},{1,2,3,4,5}
{1,2}a={3,4} {1,2}b={2,4} {1,2}c,d=空
{3,4}a=空 {3,4}b={6,7} {3,4}c={3}
{5}a={4} {5}b=空 {5}d=空
{6,7}b={6} {6,7}a,d,c=空
最终划分为:1={1,2},2={3,4},3={5},4={6,7}
最小化DFA是:
正则式为:b*a(c*|(da)*)bb*
【本章其他作业参考答案】
1.构造正规式1(0|1)*101相应的DFA.
【答案】
先构造NFA
DFA:
3.将下图确定化:
【答案】
、QUZ为E、Z为F。
DFA:
5. .构造一个DFA,它接收Σ={0,1}上所有满足如下条件的字符串:每个1都有0直接跟在右边。
并给出该语言的正规式和正规文法。
【答案】
按题意相应的正规表达式是0*(0 | 10)*0*或0*( 100*)*0*
构造相应的DFA,首先构造NFA为
用子集法确定化
DFA:
可最小化,终态组为{1,2,4},非终态组为{3},{1,2,4}0 {1,2,4},{1,2, 4}1 {3},所以1,2,4为等价状态,可合并。
【补充】为下边所描述的串写正规式,字母表是 {a,b}.
a) 以ab 结尾的所有串
b) 包含偶数个b但不含a的所有串
c) 包含偶数个b且含任意数目a的所有串
d) 只包含一个a的所有串
e) 包含ab子串的所有串
f) 不包含ab子串的所有串
【答案】注意正规式不唯一
a) (a|b)*ab
b) (bb)*
c) (a*ba*ba*)*
d) b*ab*
e) (a|b)*ab(a|b)*
f) b*a*。