2ab对应的c语言表达式是,编译原理 作业标准答案

这篇博客探讨了正则表达式在描述特定字符串语言时的应用,解释了如何用简洁的自然语言描述正则表达式所定义的语言,并区分了子串与子序列的概念。同时,针对给定的字母表,提供了不包含特定子串的字符串的正则表达式。此外,还涉及到了NFA,分析了一个NFA接受的语言特性,并提出了将其转换为DFA的方法。
摘要由CSDN通过智能技术生成

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

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

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:

8c10f389a2919cdad0a2544fa02b52ce.png

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值