微软最近开源了P语言,致力于在Linux、macOS和Windows上编写安全的异步事件驱动程序。

微软将P描述为一种领域特定语言,对异步系统的组件间通信进行建模,例如嵌入式、网络或分布式系统。P程序是通过有限状态机(finite state machine)来定义的,这些状态机会并发运行。每个状态机都有一个输入队列、状态、转换、机器本地存储,并且可以发送异步信息给其他状态机。在P中的基本操作要么是更新本地存储,发送消息,要么就是创建新的状态机。如下的代码片段展示了如何使用P来描述一个状态及其转换。除此之外,它还展现了如何发送消息或创建新的状态机:

...
start state Init {
    entry {
        server = new Server();
        raise SUCCESS;
    } on SUCCESS goto SendPing;
state SendPing {
    entry {
        send server, PING, this;
        raise SUCCESS;
    }
    on SUCCESS goto WaitPong;
}
...
 

最新文章

  1. OC-id、构造方法
  2. Oracle 管道化表函数
  3. Jquery和JS获取ul中li标签
  4. 请不要做浮躁的IT人
  5. a链接onclick="window.location.href=在ie6上面无法执行解决
  6. python实现web分页日志查看
  7. spring exception
  8. Python绘图与可视化
  9. go 语言图片像素点处理
  10. Unity3D编辑器扩展(四)——扩展自己的组件
  11. shell 关于字符切割 cut
  12. 作业20171102 alpha-review 成绩
  13. 打包egg
  14. Windows:C++11并发编程-条件变量(condition_variable)详解
  15. android 相机拍照后选择照片编辑,相片编辑界面直线形状会显示锯齿状
  16. 洛谷P1943 LocalMaxima_NOI导刊2009提高(1)(分段打表)
  17. 符号三角形_hdu_2510(深搜).java
  18. 009——数组(九) each list array_map array_walk array_walk_recursive
  19. ubuntu中下载sublime相关问题
  20. 图解SynchronousQueue原理详解-非公平模式

热门文章

  1. Go资源被墙最快解决方案
  2. Vue零碎总结
  3. [Oracle] - 使用32位 PLSQL(PL/SQL Developer)登陆64位Oracle失败之解决
  4. leetcode 2019.10.29 首次破百
  5. python实战项目 — 爬取中国票房网年度电影信息并保存在csv
  6. Android--Fragment嵌套的问题
  7. 解决git下载很慢的问题
  8. 立体像对空间前方交会-共线方程求解法(python实现)
  9. Map、FlatMap 和 Reduce
  10. [The 2019 Asia Yinchuan First Round Online Programming] D Take Your Seat