多范式声明式语言中的分布式编程
示例
为了展示分布式应用原语的使用,下面简化了一些示例,主要关注其通信结构。
名称服务器
这是一个客户端/服务器应用示例,服务器维护一个数据库,客户端可进行查询。这里实现了一个简单的名称服务器,它存储符号名称到数字的映射,能处理 “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
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



