【发布时间】:2010-06-08 01:28:29
【问题描述】:
我一直在自学通过Learn Prolog Now!,现在正在学习定从句语法。我在实践会议的一项任务中遇到了一些困难。 The task 阅读:
形式语言anb2mc2mdn由以下形式的所有字符串组成: 一个完整的 as 块,后面是一个完整的 bs 块,然后是一个完整的 cs 块,然后是一个完整的 bs 块ds,使得 a 和 d 块的长度完全相同,而 c 和 d 块的长度也完全相同,并且分别由偶数个 c 和 d 组成。比如ε、abbccd、aaabbbbccccddd都属于anb2mc2mdn。编写一个生成这种语言的 DCG。
我能够编写生成 andn、b2mc2m 和甚至 anb2m 和 c2mdn... 但我似乎无法加入所有将这些规则转化为 anb2mc2mdn。以下是我可以生成andn和b2mc2m的规则。
s1 --> [].
s1 --> a,s1,d.
a --> [a].
d --> [d].
s2 --> [].
s2 --> c,c,s2,d,d.
c --> [c].
d --> [d].
anb2mc2mdn真的是CFG吗,能写吗仅使用课程中所教内容的 DCG(没有额外的参数或代码等)?如果是这样,任何人都可以为我提供一些指导,我可以如何加入这些,以便我可以解决给定的任务?
【问题讨论】: