2011-12-17 2 views
5

액터를 직접 정의 할 필요가없는 프로그래밍 언어가 있습니까? 모든 기능은 기본적으로 별도의 액터 (사용 가능한 코어가있을 경우 별도의 스레드를 의미 할 수 있음)로 실행됩니다.모든 기능이 본질적으로 별도의 액터로 실행되는 프로그래밍 언어가 있습니까?

예를 들어 그것은 즉, 나는

v = fA(x) + fB(y) 

자신의 합이 V에 할당되기 전에 다음 각각 fA와 fB의 동시에 계산 될 수있다.

+0

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

답변

2

같은 간단한을 작성하는 경우 난 몰라 컨텍스트 전환 및 통신 오버 헤드가 너무 클 것이므로이 극단적 인 사항이 있다고 생각하십시오.

내가 생각하는 가장 가까운 것은 데이터 병렬 프로그래밍입니다. 프로그램은 대부분 순차 버전과 동일한 스타일로 작성되지만 가능한 한 병렬로 실행됩니다.

예를 들어 포트란의 루프 벡터화와 하스켈의 "파"마술이 있습니다.

2

하스켈의 par 결합자를 사용하면 표현식을 동시에 평가할 수 있습니다 (사용 가능한 코어가있을 경우 별도의 스레드를 의미 할 수 있음). 당신이 할 수있는 일은 다음과 같습니다

x `par` y 

가 어느 동시에 xy을 평가하고, y의 값을 반환합니다. xy은 임의의 복잡성을 갖는 프로그램 일 수 있습니다.

관련 문제