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

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

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

阅读全文

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

热点内容
程序员桌面管理软件 浏览:985
绿洲平台app做任务在哪里 浏览:688
文档中加密的格式 浏览:518
androidgallery效果 浏览:256
make编译显示无法分配内存 浏览:64
可编程式机械定时器 浏览:115
浙江增值税发票安全服务器地址 浏览:572
河南农信app上身份证更新在哪里 浏览:735
战地1被服务器ban了怎么办 浏览:666
shell暂停命令 浏览:726
云服务器ecs更换可用区 浏览:325
菜鸟裹裹的加密有什么用 浏览:187
农商银行app账号是什么格式 浏览:979
liunx安装androidsdk 浏览:595
显卡云服务器对比知乎 浏览:179
怎么判断雨棚旁柱子是否加密 浏览:398
android挂号源码 浏览:397
买车有什么app可以查看车型 浏览:1002
如何保证公司服务器安全 浏览:586
如何在本地iis服务器写代码 浏览:939