![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 76
simonblack
这个作者很懒,什么都没留下…
展开
-
一个简单LR编译器的C++实现
今天看到wiki上说手动编写LR编译器非常困难,一般都是由生成器自动生成。就想试一把,找了一个最简单的上下文无关文法,写了个小程序。可能因为我选的文法太简单了吧,发现写LR编译器也没有那么困难。接下来准备挑战一个相对比较复杂的编程语言。 文法:G = (V,E,R,S)V = {S,+}E = {1,a}R = { S->S+S S->1 S->a}S原创 2009-10-21 20:46:00 · 938 阅读 · 0 评论 -
一个Aho-Corasick算法的C++实现
介绍:Aho Corasick算法,简单的说就是用来在一个“大字符串”中查找精确匹配的某些“小字符串”的,发明者是Alfred V. Aho和Margaret J. Corasick。(向两位前辈致敬,orz)这个算法的牛逼之处在于,只需要一次遍历便可以找出所有匹配的“小字符串”,因此算法复杂度为O(n+m+z)。而一个普通的匹配算法可能需要O(n+km)。n = 所有“小字符串”的累原创 2009-10-30 00:14:00 · 1190 阅读 · 0 评论