14、多范式声明式语言中的分布式编程

多范式声明式语言中的分布式编程

示例

为了展示分布式应用原语的使用,下面简化了一些示例,主要关注其通信结构。

名称服务器

这是一个客户端/服务器应用示例,服务器维护一个数据库,客户端可进行查询。这里实现了一个简单的名称服务器,它存储符号名称到数字的映射,能处理 “PutName n i”(存储名称 n 和数字 i)和 “GetName n i”(获取名称 n 对应的数字 i)消息。

名称服务器的实现如下:

nameserver = openNamedPort "nameserver" >>= ns_loop \_->0
ns_loop n2i (GetName n i : ms) | i=:=(n2i n) = ns_loop n2i ms
ns_loop n2i (PutName n i : ms) = ns_loop new_n2i ms
where new_n2i m = if m==n then i else n2i m

ns_loop 的第一条规则中,变量 i 通过求解等式约束来实例化;第二条规则则将修改后的映射 new_n2i 传递给递归调用。

例如,在机器 medoc.cs.rwth.de 上运行 nameserver ,在连接互联网的机器上执行:

client "nameserver@medoc.cs.rwth.de" (PutName "talk
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值