GitHub - faiface/par-lang: Par (♭) 是一种实验性的并发编程语言。它是将线性逻辑的表达能力付诸实践的一次尝试。

Par 是一种表达性强、并发且完全的语言

  • 具有线性类型和对偶性:可通过DiscordDiscussions交流提问分享想法,支持可通过GitHub Sponsors,Rust cratePar可用于实际编程,包含会话类型及对多客户端的非确定性处理,有相关截图。
  • 开始使用语言参考:包含语言及其类型系统的完整指南,YouTube 上有稍旧版本的直播教程,运行游乐场需安装 Rust 和 Cargo,进行git clonecdcargo run操作。
  • 示例:可在交互式游乐场打开示例并操作函数。
  • 特性

    • 表达性强:对偶性给每个概念两个方面,带来丰富的组合性,Par 包含多种一流结构类型,如对偶类型、函数、选择类型等,一些特殊语法自然得出,如用生成器语法构造列表。
    • 并发:自动并行执行,基于线性逻辑语义易并行执行,仅数据依赖强制顺序执行,可编译为交互组合子,有结构化并发的会话类型,如描述石头剪刀布玩家行为的类型。
    • 完全性:无崩溃,无死锁,几乎无无限循环,通过begin/loop检查递归的良基性,迭代类型可构造潜在无限对象无危险。
  • 理论背景:基于线性逻辑,解释为会话类型,语言基于 CP 过程语言,程序与线性逻辑证明一一对应。
  • 待办事项:处于早期开发阶段,缺少基本特性如字符串和数字、可复制数据类型、外部 I/O 实现,还有高级特性如非确定性、特质/类型类。
  • 欢迎加入帮助:项目仍有很多工作,若感兴趣可加入Discord
阅读 19
0 条评论