a和b至少有一个是偶数的c 语言表达式,编译原理 作业答案

《编译原理》第一次作业参考答案

一、下列正则表达式定义了什么语言(用尽可能简短的自然语言描述)?

1.b*(ab*ab*)*

所有含有偶数个a的由a和b组成的字符串.

2.c*a(a|c)*b(a|b|c)* | c*b(b|c)*a(a|b|c)*

答案一:所有至少含有1个a和1个b的由a,b和c组成的字符串.

答案二:所有含有子序列ab或子序列ba的由a,b和c组成的字符串.

说明:答案一要比答案二更好,因为用自然语言描述是为了便于和非专业的人员交流,而非专业人员很可能不知道什么是“子序列”,所以相比较而言,答案一要更“自然”.

二、设字母表∑={a,b},用正则表达式(只使用a,b, ,|,*,+,?)描述下列语言:

1.不包含子串ab的所有字符串.

b*a*

2.不包含子串abb的所有字符串.

b*(ab?)*

3.不包含子序列abb的所有字符串.

b*a*b?a*

注意:关于子串(substring)和子序列(subsequence)的区别可以参考课本第119页方框中的内容.

~\(≧▽≦)/~ ~\(≧▽≦)/~ ~\(≧▽≦)/~ ~\(≧▽≦)/~ ~\(≧▽≦)/~ ~\(≧▽≦)/~ ~\(≧▽≦)/~ ~\(≧▽≦)/~

《编译原理》第二次作业参考答案

一、考虑以下NFA:

9884767a1988f3d96a58646957eafa68.png

1.这一NFA接受什么语言(用自然语言描述)?

所有只含有字母a和b,并且a出现偶数次或b出现偶数次的字符串.

2.构造接受同一语言的DFA.

答案一(直接构造通常得到这一答案):

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值