2011-12-17 9 views
5

¿Existe un lenguaje de programación en el que no tenga que definir actores usted mismo? Cada función solo se ejecuta como un actor independiente (lo que puede significar un hilo separado si hay núcleos libres disponibles) de forma predeterminada.¿Hay un lenguaje de programación donde cada función se ejecuta esencialmente como un actor separado?

Por ejemplo esto significa que si escribo algo tan simple como

v = fA(x) + fB(y) 

continuación, FA y FB podrían calcularse simultáneamente antes de que se le asigna la suma de sus resultados a v.

+0

http://en.wikipedia.org/wiki/Occam_%28programming_l anguage% 29 –

Respuesta

2

no lo hago Creo que hay algo así de extremo, ya que el cambio de contexto y la sobrecarga de comunicación serían demasiado grandes.

Lo más cerca que puedo pensar de lo que está preguntando es la programación de datos paralelos, donde el programa está escrito principalmente en el mismo estilo que una versión secuencial pero partes de él se ejecutan en paralelo siempre que sea posible.

Ejemplos de vectorización de bucle en Fortran y magia "par" en Haskell.

2

El combinador de Haskell par le permite evaluar expresiones al mismo tiempo (lo que puede significar en subprocesos separados si hay núcleos libres disponibles). Todo lo que tiene que hacer es:

x `par` y 

que evaluará x y y al mismo tiempo, y devolver el valor de y. Tenga en cuenta que x y y pueden ser programas de complejidad arbitraria.

Cuestiones relacionadas