是否存在一种编程语言,其中每个函数本质上都是作为单独的参与者运行的?



是否有一种编程语言,你不必自己定义actor -每个函数只是作为一个单独的actor运行(这可能意味着一个单独的线程,如果有可用的空闲内核)默认情况下?

例如,它意味着如果我写一些像

这样简单的东西
v = fA(x) + fB(y)

则fA和fB可以同时计算,然后将其结果和赋值给v。

我不认为有这么极端的事情,因为上下文切换和通信开销太大了。

我能想到的最接近你所问的是数据并行编程,其中程序主要以与顺序版本相同的风格编写,但它的部分内容可能并行运行。

示例是Fortran中的循环向量化和Haskell中的"par"魔法。

Haskell的par组合子允许您并发地计算表达式(如果有可用的空闲内核,这可能意味着在单独的线程中)。你所要做的就是:

x `par` y

将同时计算xy,并返回y的值。注意xy可以是任意复杂度的程序。

焦耳是一种纯异步消息传递语言:

http://en.wikipedia.org/wiki/Joule_%28programming_language%29

http://www.erights.org/history/joule/MANUAL.BK5.pdf

ActorScript是一种纯Actor消息传递语言,但似乎只作为规范存在:

http://arxiv.org/abs/1008.2748

最新更新