是否有一种编程语言,您不必自己定义actor - 默认情况下,每个函数都只是作为一个单独的actor运行(如果有可用的可用内核,则可能意味着一个单独的线程)?
例如,这意味着如果我写的东西就像
那样简单v = fA(x) + fB(y)
然后可以在将结果总和分配给v。
之前同时计算fA和fB答案 0 :(得分:2)
我认为没有任何这种极端,因为上下文切换和通信开销太大了。
我能想到的最接近你要问的是数据并行编程,其中程序主要以与顺序版本相同的方式编写,但部分内容尽可能并行运行。
例子是Fortran中的循环矢量化和Haskell中的“par”魔术。
答案 1 :(得分:2)
Haskell的par
组合器允许您同时评估表达式(如果有可用的可用内核,这可能意味着在单独的线程中)。您所要做的就是:
x `par` y
将同时评估x
和y
,并返回y
的值。请注意,x
和y
可以是任意复杂程序。
答案 2 :(得分:1)
Joule是一种纯异步消息传递语言:
http://en.wikipedia.org/wiki/Joule_%28programming_language%29
http://www.erights.org/history/joule/MANUAL.BK5.pdf
ActorScript是纯粹的Actor消息传递语言,但似乎只作为规范存在: