Różnice
Różnice między wybraną wersją a wersją aktualną.
|
|
pl:prolog:pllib:npda [2019/06/27 15:50] |
pl:prolog:pllib:npda [2019/06/27 15:50] (aktualna) |
| ====== Npda ====== |
| {{tag>NPDA}} |
| ===== Description ===== |
| Specializing an NPDA |
| |
| |
| **Source**: The Art of Prolog |
| ===== Download ===== |
| Program source code: {{npda.pl}} |
| |
| ===== Listing ===== |
| <code prolog> |
| program(npda,[(accept(Xs1) :- initial(Q1), accept(Xs1,Q1,[ ])), |
| |
| (accept([_],Q2,S2) :- delta(Q2,_,S2,Q12,S12), |
| |
| accept(_,Q12,S12)), (accept([ ],_,[ ]) :- true)]). |
| |
| |
| |
| should_unfold(initial(_)). |
| |
| should_unfold(final(_)). |
| |
| should_unfold(delta(_,_,_,_,_)). |
| |
| |
| |
| should_fold(accept(Q,Xs,Q1),palindrome(Q,Xs,Q1)). |
| |
| should_fold(accept(Xs),palindrome(Xs)). |
| |
| |
| |
| % Program 18.4: Specializing an |
| |
| PDA |
| |
| </code> |
| ===== Comments ===== |
| |