试探性建了一个小组:化学派
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 / 部分网址可能需要挂代理
- https://en.wikipedia.org/wiki/APL_(programming_language)
- https://en.wikipedia.org/wiki/Kenneth_E._Iverson
- 简明APL教程 https://tutorial.dyalog.com
- 论文TOT https://www.jsoftware.com/papers/tot.htm / ACM备用地址 / github存档
- https://www.jsoftware.com/papers/APL.htm
- KPARC - K programming language http://www.kparc.com
- J:PL - http://jsoftware.com
- Kdb+/q https://kx.com/discover/
- 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
Actor模型优于π-calculus,π-calculus强于λ?
CSP,π-calculus好像没什么区别。我认为Actor model一般优于CSP,λ-caculus、π-calculus需要同时存在。
CSP,π-calculus好像没什么区别。
@zaoqi π-calculus属于CSP的完善版,还是有区别的。
λ-caculus、π-calculus需要同时存在。
嗯,这个不冲突,λ还是很常用的,K就是结合了APL和λ。对比的用意,主要在于让知道λ但不知道 π-calculus的人,意识到它的存在。
π-calculus和APL有什么联系?
@zaoqi π-calculus和APL有什么联系?
π-calculus 和 erlang有关系,和APL貌似没关系。APL/Forth/Prolog/Erlang/Rust是我觉得比较有代表性的五门PL,所以时常拿来对照参考;其他常见PL,诸如C/C++/Python/Java等,最后都可以汇总到TypeScript这个集合里面。
参与者本已有限。
望具体问题/项目具体分析, 而非早早分组。
有兴趣的自然会跟进。