액터 모델이 Erlang보다 오래되었지만 Erlang의 디자이너는 Erlang을 디자인 한 후에 만 액터 모델에 대해 배웠으므로 약간의 차이가 예상됩니다.
Carl Hewitt는 스몰 토크의 의미를 전달하는 메시지를 기반으로 액터 모델을 만들었습니다. Alan Kay는 스몰 토크의 의미를 전달하는 메시지를 PLANNER의 목표 중심 평가에 기반을 두었습니다.
PLANNER는 Prolog의 선구자였습니다. Erlang은 원래 언어가 아니라 Prolog에서 내결함성 분산 프로그래밍을위한 라이브러리로 시작하여 나중에 Prolog의 영향을 받아 자체 언어가되기 전에 Prolog의 방언으로 발전했습니다. 또한 원래 Erlang 인터프리터는 Prolog로 작성되었습니다.
따라서 Erlang의 프로세스, OO의 오브젝트 및 액터 모델의 액터 간의 유사점은 우연의 일치와 다릅니다.
Erlang은 여러 계층의 언어로, 각 계층은 하위 계층의 상위 집합입니다. 가장 작은 레이어는 Functional Erlang 입니다. 이것은 바인딩 / 평등 대신 통합과 같이 Prolog에서 상속 된 일부 추가 기능이있는 표준 기능 언어입니다. 프로세스 와 메시지 를 추가 하면 Concurrent Erlang이 발생 합니다. 원격 프로세스를 처리하면 분산 된 Erlang 을 얻게됩니다 됩니다. 이제 OTP에서 일부 라이브러리 및 디자인 패턴을 추가하면 내결함성이있는 Erlang이 있습니다.
프로세스는 액터입니다. (그 또한 객체입니다.) 내부 프로세스 는 액터 기반이 아니라 기능적입니다. OTP의 도구와 패턴을 사용하여 구성된 내결함성 Erlang 시스템의 구조는 종종 객체 지향적입니다.
따라서, 당신이보고있는 규모에 달려 있습니다.
일반적인 대형 Erlang 시스템에는 기능 프로그래밍을 사용하여 메시지 전달 행위자가 구현 된 객체 지향 아키텍처가 있습니다. OTP라고 부르는 것은 server
객체와 밀접한 관련이 있으며 server
프로세스 (액터)로 구성되며 프로세스는 내부적으로 함수를 사용합니다.
일반적으로 순수한 액터 언어가 연구를 떠난 것으로는 믿지 않습니다. 도대체 Carl Hewitt의 PLASMA ( 원래의 Actor Language)가 구현 된 것인지조차 모른다 .