1. 首页
  2. 考试认证
  3. 其它
  4. Protocols 用于描述和实现通信协议的DSL

Protocols 用于描述和实现通信协议的DSL

上传者: 2024-10-20 12:29:58上传 ZIP文件 70.24KB 热度 20次

协议用于描述和实现通信协议的DSL。例如,给定两方 “A”“B”,其中 “A”“B” 发送字符串并接收整数返回的协议可以描述如下:

aToB : Protocol ['A, 'B] () aToB = do 'A ==> 'B | String 'B ==> 'A | Int Done

Protocol xs t 类型描述了双方 xs 之间的通信协议,最终返回 t 类型的东西。符号 'A ==> 'B | t 'A ==> 'B | t 表示 A 方向 B 方发送类型为 t 的值。

B 双方 A 实现方式如下

a : Agent IO aToB 'A ['B := bchan] [STDIO] () a = do sendTo 'B \"Hello\" answer <- recvFrom 'B putStrLn (show answer)

下载地址
用户评论