项目主页: https://inet.run
源代码: https://github.com/cicada-lang/inet
中文文档: https://readonly.link/articles/https://cdn.inet.cic.run/docs/articles/反应网编程.md
语言基于一个令人耳目一新的计算模型,叫做 Interaction Nets (反应网)。
欢迎大家分享给正在学计算机的朋友 :)
也许可以拓展对计算模型的理解。
1
sora2blue 2023-09-05 09:11:46 +08:00
看起来像是用可视化的方式抽象计算的过程,然后找出其中可以并行的计算?
`(cons :tail) ` `'A List`,这很 lisp |
2
MstMoonshine 2023-09-05 12:50:02 +08:00 via iPhone
有点像物理学用的 tensor network ,区别是 tensor network 只支持 linear operation
|
3
xieyuheng OP @sora2blue 其实可视化不是重点,原论文中 Lafont 都没写可是化的程序,只是简单画图介绍。
重点是,这个计算模型中,任何一步计算都可以相互独立地进行, 因此非常适合用并行计算的方式来实现。 ( lisp 和 scheme 是咱刻在 DNA 里的东西,哈哈哈) |
4
xieyuheng OP @MstMoonshine 确实,我第一次看到这个论文的时候,也联想到了很多。不得不说 Lafont 这个论文确实有点东西的。
另外,如果大家感兴趣的话,我的代码仓库里有论文原文: https://github.com/cicada-lang/inet/tree/master/docs/references/papers 还有一本书,里面介绍了很多计算模型(包括 iNet ): https://github.com/cicada-lang/inet/tree/master/docs/references/books |
5
MstMoonshine 2023-09-08 12:01:15 +08:00 via iPhone
|
6
xieyuheng OP @MstMoonshine
iNet 好像确实和范畴论的 string diagram 是相关的。 另外你这个 wiki 里有一节 In quantum computation , 怪不得 HN 上有人会提到。 |
7
MstMoonshine 2023-09-08 12:27:41 +08:00 via iPhone
@xieyuheng 本质上是用 function composition 的结合律。我也一直在想类似的方案对 pure functions 计算进行更激进的并行处理(有 side effect 的 function 没有结合律,所以必定是 imperative 的,没办法并行)
|
8
MstMoonshine 2023-09-08 12:29:05 +08:00 via iPhone
@xieyuheng 是的,很强的即视感,不过你 list 的俩 paper 是用 type system 的语言写的,没有使用 categorical 的方式写,应该有等价转换的方式
|
9
MstMoonshine 2023-09-08 12:31:07 +08:00 via iPhone
@xieyuheng 另外 quantum circuit 跟我上次提到的 tensor network 要更接近一些,因为它们都支持 linear operation 。quantum circuit 除了 linear 还得是 unitary 的。
|
10
xieyuheng OP @MstMoonshine 另外,如果你用 telegram 的话,我有一个讨论程序语言设计的群,欢迎加入: https://t.me/CicadaLanguageCN
|
11
xieyuheng OP 换成了类似 JavaScript 的语法: https://www.v2ex.com/t/976572
|