program-in-chinese/overview

试探性建了一个小组:化学派

Closed this issue · 10 comments

https://github.com/orgs/program-in-chinese/teams/chp

只是想方便交流,没有搞分裂的意思。

  • 以APL/组合子逻辑为宗旨,致力于解开冯诺依曼约束
  • 不提倡lisp之流括号风格,不讲究纯函数式
  • 认为Actor模型优于CSP,π-calculus强于λ
  • 实事求是,奉行实用主义原则

组名向当年造化学汉字的前辈致敬

ps: 对外昵称,中文编程社区/化学系/有机化学小组/和高能物理研究所

不好意思,请问一下,APL是什么意思 ?
CSP 是 command sequence programm 的简写吗?

@bldght

APL是什么意思 ?

APL 是一门比较古老的上世纪六七十年代的编程语言,最初全称为A programming language;因擅长处理矩阵,又被称作Array Processing Language。APL最早不是一门PL,而是K. Iverson发明的一套数学notation。具体**可参见其图灵奖论文:Notation as a Tool of Thought/NTT/TOT

一般说APL都是特指原始论文版的APL,如果说APL一族的话,则包括:APL2、A+、J、K、Kdb+/q 等衍生PL。其中J和Kdb+/q属于衍生里面比较有代表性,且较为实用的分支。另外APL也有许多方言,其中Dyalog APL是一家英国公司的商用解决方案,也是方言里面实用性和覆盖面最大的一家(以前是IBM的APL2最广,早期IBM5100上自带APL和BASIC两种环境)。

J属于K. Iverson钦定的一个分支方案,用来弥补APL对特殊字符集的强依赖,使用ASCII码表的基本字符做元素组合,有点类似把字符当偏旁部首来用;功能相比APL是更多了,但是可读性也变差了。

K属于另一个分支,即核心**是把APL跟λ语法做lambda语法做结合。其目前的商用解决方案是Kdb+/q。Q是K针对数据操作的扩充DSL,能兼容部分SQL语法。

CSP 是 command sequence programm 的简写吗?

这里的CSP是一种并发模型 Communicating Sequential Processes 的缩写。一般Lisp/FP系的PL都用这种模型,比如Haskell、 Clojure、Go等等。与之对应的还有个思路完全不同的模型叫Actor model,使用Actor模型的PL有:erlang/elixir,Rust等。

另外,关于command sequence programming,应该说大部分PL都是这种顺序型的,只是APL和Forth这两种的sequential方式与主流的OOP/FP有很大差别。真正比较非顺序型的PL目前也只有erlang/elixir和datalog/miniKanren这类逻辑编程的比较实用。

ref / 部分网址可能需要挂代理

  1. https://en.wikipedia.org/wiki/APL_(programming_language)
  2. https://en.wikipedia.org/wiki/Kenneth_E._Iverson
  3. 简明APL教程 https://tutorial.dyalog.com
  4. 论文TOT https://www.jsoftware.com/papers/tot.htm / ACM备用地址 / github存档
  5. https://www.jsoftware.com/papers/APL.htm
  6. KPARC - K programming language http://www.kparc.com
  7. J:PL - http://jsoftware.com
  8. Kdb+/q https://kx.com/discover/
  9. Q for Mortals - Kx Systems > http://code.kx.com/q4m3/

a. https://en.wikipedia.org/wiki/Communicating_sequential_processes
b. https://en.wikipedia.org/wiki/Actor_model
c. https://en.wikipedia.org/wiki/Lambda_calculus
d. https://en.wikipedia.org/wiki/Π-calculus

ref:else

zaoqi commented

Actor模型优于π-calculus,π-calculus强于λ?

@zaoqi Actor模型优于π-calculus,π-calculus强于λ?

个人观点,Actor model优于CSP,π-calculus强于λ-caculus。当然大部分玩过erlang的应该都认同这两个观点,比如 @bhuztez

zaoqi commented

CSP,π-calculus好像没什么区别。我认为Actor model一般优于CSP,λ-caculus、π-calculus需要同时存在。

CSP,π-calculus好像没什么区别。

@zaoqi π-calculus属于CSP的完善版,还是有区别的。

λ-caculus、π-calculus需要同时存在。

嗯,这个不冲突,λ还是很常用的,K就是结合了APL和λ。对比的用意,主要在于让知道λ但不知道 π-calculus的人,意识到它的存在。

zaoqi commented

π-calculus和APL有什么联系?

@zaoqi π-calculus和APL有什么联系?

π-calculus 和 erlang有关系,和APL貌似没关系。APL/Forth/Prolog/Erlang/Rust是我觉得比较有代表性的五门PL,所以时常拿来对照参考;其他常见PL,诸如C/C++/Python/Java等,最后都可以汇总到TypeScript这个集合里面。

在豆瓣找到一个APL小组
image

参与者本已有限。
望具体问题/项目具体分析, 而非早早分组。
有兴趣的自然会跟进。