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

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

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

阅读全文

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

热点内容
国家反诈中心app为什么审核不过去 浏览:871
linuxwindows启动盘 浏览:811
百度贴吧app怎么看访客 浏览:435
javaio文件复制 浏览:405
app上海总部在什么楼里 浏览:371
格式化硬盘dos命令 浏览:494
红茶可以缓解压力 浏览:999
腾讯云怎么弄七十多一年云服务器 浏览:717
java按钮设置图片 浏览:866
php数字分页代码 浏览:793
旅游业程序员 浏览:401
区块链第三代加密数字资产 浏览:525
把播放清单放在云服务器上 浏览:879
phpppt下载 浏览:302
1929pdf 浏览:366
编译器是终端吗 浏览:541
pdf改b4 浏览:380
命令通道 浏览:710
pdf去 浏览:543
嵌入式编译器优化 浏览:127