确定子句文法 练习与实践环节

本文介绍了使用Prolog的DCG(Definite Clause Grammar)进行形式语言的练习和实践,涉及将DCG规则转化为普通Prolog规则,以及编写生成特定语言的DCG,包括even语言、anb2mc2mdn语言和命题逻辑语言。通过键盘练习和跟踪,展示DCG在处理语言表达式的高效性和易理解性。
摘要由CSDN通过智能技术生成

转载自:https://mp.weixin.qq.com/s/PqjUQHSDy90KqX-tCugSuA

练习

 

练习7.1。假设我们正在使用以下DCG:

 

s --> foo,bar,wiggle.

foo --> [choo].

foo --> foo,foo.

bar --> mar,zar.

mar --> me,my.

me --> [i].

my --> [am].

zar --> blar,car.

blar --> [a].

car --> [train].

wiggle --> [toot].

wiggle --> wiggle,wiggle.

 

写下与这些DCG规则相对应的普通Prolog规则。 Prolog对查询s(X,[])的前三个响应是什么?

 

练习7.2  形式语言anbn − {ǫ}由anbn中的所有字符串组成,除了空字符串。编写生成这种语言的DCG。

 

练习7.3  假设anb2n是形式语言,它包含以下所有形式的字符串:长度为n的连续块,其后是长度为2n的bs的连续块,除此之外没有其他内容,例如abb,aabbbb和aaabbbbbb属于anb2n ,空字符串也是如此。编写生成这种语言的DCG。

 

实践环节

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值