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

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

发布时间: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条

阅读全文

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

热点内容
程序员电脑桌多宽 浏览:612
莱阳到青岛源码 浏览:385
php显示星期几 浏览:169
phpfun 浏览:868
wdcpphp安装路径 浏览:112
python拼音多音字 浏览:501
发动机压缩比951 浏览:473
androidnetfilter 浏览:559
ci隐藏indexphp 浏览:439
视频外发加密软件限次数播放 浏览:680
刺激战场轻量服怎么换服务器 浏览:492
一般买书上什么app 浏览:220
php开发框架2017 浏览:69
电脑控制单片机 浏览:626
ios15如何修改app名称 浏览:862
linuxphp安装mysql数据库 浏览:271
程序员怎么锻炼身体 浏览:102
电表服务器断开是什么意思 浏览:810
华为服务器的许可id怎么找 浏览:89
程序员吃鸡比赛 浏览:890