导航:首页 > 源码编译 > 编译原理二进制整数正规表达式

编译原理二进制整数正规表达式

发布时间:2022-02-23 08:35:59

编译原理-用正则表达式表示下面的内容

(1)[a-z]
(2)^[24680]+$ 所有数字都为偶数 ^(?=[1-9])\d*[02468]$|^[02468]$ 所有偶数

(3)^(?=[a-zA-Z0-9]+).*@[^\.]+\.[a-z]+$

测试有效

㈡ (编译原理) 求下述文法对应正规式: S->0A|1B A->1S|1 B->0S|0

一、简单的推导思路
1、该文法的对应正规式为:[01|10]+
2、推导:
(1)首先,展开产生式S,可知S要么以0开头,要么以1开头;
(2)如果S按产生式S->0A展开,则S必以01开头,因为通过产生式A->1S|1可知,A必定是以1开头的;
(3)如果S按产生式S->1B展开,则S必以10开头,因为产生式B必定以0开头;
(4)综上,可知,S是以01或10开头的非终结符号;
(5)当A以产生式A->1展开或 B以B->0展开时,S将推导结束;
(6)当A以产生式A->1S展开或 B以B->0S展开时,产生式中的非终结符号S将重复(1)-(3)的推导步骤;
(7)综上所述,该文法的对应正规式为:[01|10]+。

二、联立方程组求解
假设非终结符号S、A、B都分别代表一个正规式,则正规文法的产生式集合所代表的就是关于正规式S、A、B的一个方程组。
我们将文法“|”符号替换为正规式“+”符号,可得,
S=0A+1B=0(1S+1)+1(0S+0)=01(S+ε)+10(S+ε)=(01+10)(S+ε)=(01+10)S+(01+10)。
根据方程X=rX+t有形如X=r*t的解论断,可得,
S=(01+10)*(01+10)=[01|10]+。

㈢ 编译原理:写出正规式包含奇数个1或奇数个0的二进制数串

((0*10*)(0*10*))*(0*10*) | ((1*01*)(1*01*))*(1*01*)
通过(AA)*A的方式保证表达式A出现奇数次,此处的A又可以替换成0*10*和1*01*表示只含一个1或0的任意二进制串。综合起来可以满足只出现奇数个1或奇数个0的要求

㈣ 编译原理的正规表达式问题:

我只晓得第三个,(0|1)*(0|1)(0|1)*。前面两个题目都买看懂。。。

㈤ 编译原理:用正则表达式写出被5整除的二进制数

初看这个问题简单,*([0|5])+

但是是二进制啊,NND 老子 从 0 ,5 ,10, ..30,...50 都写成二进制楞是没发现规律

估计是你们老师拿来整你们的吧? 让抄答案都没地方抄。

㈥ 编译原理中的正则表达式与正规表达式有什么区别

完全相同,是对regular expression的不同翻译

㈦ 编译原理与实践中正规表达式的问题

(aa|b)*
由连续两个a或一个b的任意序列组成的语言,比如aab,baaaabbbb.
(a|bb)*
连续两个b或一个a的任意序列。

正则语言里,|表示任选,有时也用+号。*号表示闭包--就是说任意组合。

㈧ 编译原理:c语言标识符的正则表达式

是缺了。这个只能匹配字母开头、字母数字组成的标示符

LZ可以自己加上,加在letter里

㈨ 编译原理中的正规表达式

0+表示至少有一个0
0+10表示010、0010、00010等情形
(0+10)*表示(0+10)的闭包

㈩ 编译原理这个正规表达式是怎么写出来的呀

主要就是后面的两个条件:

  1. 至少2个1,

  2. 任何2个1之间有偶数个0

abd都不满足第2条

阅读全文

与编译原理二进制整数正规表达式相关的资料

热点内容
新服务器怎么预约 浏览:676
电视台回看用什么app 浏览:375
怎么删除命令块 浏览:419
女程序员乳腺癌 浏览:996
吃牛排富家女倒追网络程序员 浏览:614
android红米调试 浏览:14
cad左手快捷键命令 浏览:752
sketchup快捷命令 浏览:790
编程程序员死亡之谜 浏览:296
qt编译64位dll 浏览:889
分治算法经典 浏览:956
pdfeditor软件 浏览:459
pc最准算法 浏览:727
mysql登录命令as 浏览:815
如何虚拟机中做游戏服务器配置 浏览:454
如何在手机上传app到小米盒子 浏览:755
解压按摩全身视频 浏览:118
如何打mc服务器 浏览:517
有什么比较好用的约游戏app 浏览:129
zip压缩包官方下载 浏览:260