prolog
Mysterium
这个作者很懒,什么都没留下…
展开
-
Prolog 模拟 Turing Machine
既然写了PDA Parser,干脆再写个TM Parser。 TM Parser 最麻烦的地方在于对整个TM的定义,就是An Example下面的部分。因此我只选了一个正则的简单语言来作为例子。 %%2013-01-28 %% Turing Machine Parser %% Author : Mysterium %%% Turing machine parser %%% sp原创 2013-01-28 10:58:41 · 548 阅读 · 0 评论 -
Prolog 模拟 PDA
在http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/contents.html上有一个prolog的DFA parser,于是通读理解以后,模仿着写了一个PDA parser。 PDA(pushdown automata)是接受上下文无关语言的装置,这里我使用了一个例子,其生成的语言为{a,b}上的回文。 %2013-01-27原创 2013-01-27 18:41:03 · 718 阅读 · 0 评论 -
Prolog 最长公共子序列 LCS 问题
Prolog 解决这一类递归问题实在是极为简洁。 %% LCS max(A,B,M) :- A > B,M is A. max(A,B,M) :- A = lcs([],[],0). lcs([],_,0). lcs(_,[],0). lcs(X,X,1). lcs([A|R1],[A|R2],N) :- lcs(R1,R2,N1), N is N1+1原创 2013-01-27 20:41:02 · 509 阅读 · 0 评论 -
prolog : Grammar and Parsing
今天意外发现,prolog原来有parsing macro,这样用它来做文法分析就更方便了,写起来很直观,就跟过去学的计算理论里面的写法一模一样。 譬如有文法 S->aST. S->e. T->aSb. T->c. 借助parsing macro 只需要写如下代码: s原创 2013-02-09 14:50:57 · 480 阅读 · 0 评论