AoGo汇编小站建于2002-7-25
国际域名:www.aogosoft.com
永久备用域名:aogo.yeah.net
首页刷新量:1910660
下载排行榜
90480
71707
57149
53611
38274
37627
35363
31208
30436
27323
26062
25146
作品发布 更多软件>>>
01336
00694
00773
01116
03433
03118
01962
04075
02949
02636
04711
04028
汇编知识 更多作品>>>
论坛精华贴子
汇编小技术库
请下载 MASMPlus >>>
友情链接 更多教程>>>
MengXP的汇编小站00782
CCG 论坛00434
驱动开发网03181
IT图书分享-书部落04473
标天软件(BTASM)04721
BOBO编程驿站※05879
天杀的Blog06424
BigFly Network05286
Begin05888
风里有梦的Blog08851
九芙蓉汇编站16605
中文编程O语言官方站14895
Win32ASM DirectX09353
一块三毛钱的主页18051
X86汇编站点37519
看雪学院30779
Smallwave的汇编主页32435
汇编病毒-无花果主页34512
老罗的缤纷天地32772
研砉程序园23670
罗云彬汇编乐园67346
欢迎汇编站点与我做链接
首页 MASMPlus 相关下载 程序发布 文章/教程 小技术库 代码例子 编程论坛 给我留言 在线管理
 
更新报告[2009-1-5]  报告总数:97
  果不出其然,正则引擎速度比别的引擎快很多,果然是有没考虑周全的地方啊!

  正则表达式引擎碰到了一个比较刺手的问题,就是后向引用的问题,因表达式匹配过程中,总是要尝试往前匹配,之后视情况回退(术语那个字打不出来),而在这些检测过程的匹配中,搜索指针会在嵌套中递增,之后返回的,只能是这一层,嵌套里面的组引用,不可能一直去检测它是否存在,现在的问题在于,引用组永远只有一个,就算使用限定符让这个表达式组匹配多次,最终只会是最后一次的结果,所以每次递归检测子表达式时,如何保留上一次的引用,就是个很麻烦的事。

  比如:
  123ABC    (注意有空格)
  
  (([A-Z])+|(\d+|\s+))+\w

   这个表达式搜索后,只匹配了123ABC,后面两个空格没有匹配,但是问题来了,上面的搜索,结果是,原本引用3 (\d+|\s+) 应该是123,因为后面分支匹配\s+时,最后的条件\w已经无法匹配,但是,分支在循环匹配时,\d+和\s+在同一个引用组里面,当尝试匹配到\s+时,会一直匹配直到碰到最后,因为没有\w,需要进行回退,但是我的代码设计过程中,并没有去记录分支的匹配引用,因为这是很不科学的,会让速度慢上好多,我想这估计就是为什么我的正则比其它通用正则速度快很多的原因,因为精确获得匹配组位置,每次检测都需要进行引用的修改,如果是嵌套的子表达式,还要包括子表达式里面的引用组,这样就让我很不爽了。

  精确引用功能,目前也完成了,但是速度比原来慢一倍还要多,尤其引用组很多的情况下,因为引用组是一个结构内存块,搜索过程中要一直重复访问引用数组,开销太大了,还是得想想其它办法,不知道有什么好办法没!

  搜了不少资料,写正则引擎的资料太少了,普通的资料我看看英文还行,这种针对性很强的资料,完全看不懂!郁闷,我猜想,是不是没有什么好办法能解决这个问题呢,去掉引用组的代码,我的引擎速度普遍比测试过的表达式快上2倍以上,但又不能肯定,毕竟这是我一个人在乱猜!因为其它的编辑器中正则搜索慢,也有可能是编辑类的内存结构不同而引起的,因为大部分编辑类都是行模式,就是每一行为一块的内存,而MASMPlus为了性能,采用的是整块内存编辑,搜索时不需要判断行的内存边界然后去预读。

  嗯,再看看吧。11号的车票,回家过年,就不方便上网了(新家电话都没装)。估计完全的正则引擎得到春节后。到时候让大家多测试测试,写这引擎,最大的感受就是,只要肯下时间和精力,总有办法解决问题的。嘿嘿!

  迟来的问候,各位兄弟,新年快乐!
更多报告>>>
站内更新  软件总数:74  作品总数:49  例子总数:27  文章总数:128  技巧总数:32
※2008-4-11 相关下载作者 Windows2000 内核源码函数文档 03174
※2007-12-27 相关下载作者 kmdKit 中文教程 01990
※2008-8-4 程序发布cjczjl IE 浏览器 01336
※2008-4-21 程序发布ncepubj 文件MD5验证工具 00694
※2008-12-15 文章教程Zoologist 见招拆招《Windows程序设计》(十二) 第二部分 00595
※2008-12-15 文章教程Zoologist 见招拆招《Windows程序设计》(十二) 00488
※2008-12-15 文章教程Dogukan 简易网页监控程序 00397
※2007-12-16 代码例子AoGo 编写自己的 Win32 标准列表控件 03075
※2005-8-17 代码例子ak47 读取3DS文件并显示3D模型 06749
※2005-4-10 代码例子AoGo 动态生成图形并重绘 08480
※2008-6-12 小技巧MengXP [MengXP小代码库] 汇编64位乘除法运算以及如何精确计算运行时间 01039
※2008-2-27 小技巧ham 关于32bit整数除法的快速实现 by ham 01378
※2007-12-26 小技巧sunbinjin 直接用汇编调用COM:用SpVoice朗读一个字符串,内详 02062
更多软件>>>
论坛更新  论坛总贴:81440  主贴总数:16917  今日贴数:2  今日主贴:2  精华贴子105
※ 2009-1-6 6:49:20菜鸟鸿
※ 2009-1-6 0:11:30twm1354
※ 2009-1-5 23:42:15_asm
※ 2009-1-5 22:42:52我爱汇编
2009-1-5 22:00:29ham
2009-1-5 21:59:04ham
※ 2009-1-5 17:51:01菜鸟鸿
※ 2009-1-5 11:10:28wklovebibi
※ 2009-1-4 18:57:27hhh2000
※ 2009-1-4 18:48:02催月泪
※ 2009-1-4 18:46:23电子管
※ 2009-1-4 17:35:05zoologist
2009-1-4 16:31:12Pauly
※ 2009-1-4 14:38:52wHt
2009-1-4 0:06:51wklovebibi
蓝色※表示有人回复  进入论坛>>>
 

粤ICP备05020195号,版权所有(C):AoGo E-Mail:webmaster@aogosoft.com