1

私はErlangの俳優の非常に基本的な説明をまとめようとしています。可能な限り素人であると考えられていますが、理論やErlangの実装の重要な特徴を除外することはありません。Erlangの俳優の基本的な説明

アクター・モデルは俳優同時計算の普遍的なプリミティブとしてを扱い、並行計算の数学的モデルである:これは私の説明です。アクターは計算エンティティです。受信したメッセージに応答して、(1)有限数のメッセージを他のアクタに送信し、(2)有限数の新しいアクタを作成し、(3)受信した次のメッセージに使用される動作。

Erlangでは、各アクタは、仮想マシン内の別のプロセスであり、関数によって実装されています。プロセスは、互いにメッセージを送信して通信します。すべてのメッセージは明示的、追跡可能、安全です。メッセージはメールボックスで受信され、受信された順に格納されます。それらは、受信プロセスが読み出されるまでそこに格納されます。これを非同期メッセージパッシングといいます。

Blockquote

皆さんはどう思いますか?大丈夫ですか?私は何かを追加したり変更したりすべきですか?ありがとう。

+1

@ ElToro1966あなたはダイアグラムにメールボックスを追加することができますね。 – byaruhaf

答えて

1

私はあなたがアーランのプロセスと俳優を混同していないと自分自身を助けると思います。あなたはWikipediaのActorモデルの記述から始まり、Erlangプロセスについての記述をシームレスに開始することができます。 Actorモデルは数学的モデルであり、純粋なCまたはC++低レベル実装を含む多くの異なる方法で実装できます。一方、Erlangプロセスは、ネイティブシステムプロセスやスレッドを使用して可能になるよりもはるかに効果的に膨大な量のプロセスを並行して実行することを可能にする、軽量なプリエンプティブ言語機能です。彼らは数学的モデルの後にモデル化されるが、それはspecific requirementsに基づく設計決定であった。

私は、アクターモデルを数学モデルとして簡単に議論し、Erlangでどのように実装されているのか、Erlang特有の違いと特長を指摘すれば、より良くフィットすると思います。

+0

ジョー・アームストロングの論文全体を参考にしました。私はCh.2.4と3.4が手元の問題に関連していると思います。あなたの意見では、私は特に注意を払うべきことがありますか?ありがとう。 – ElToro1966

+1

ええ、2.4と3.4は良いスタートですが、また、2.2,2.3,2.5、そして3.10がErlangアプリケーションの要件を定めています。 Erlangがメッセージ指向言語である理由を説明する2.10および3-3.1。 Actorモデルではあまり必要とされていないErlangプロセスの必須部分であるリンクとモニタを記述する3.5.6と3.6。内部Erlangプロセスによる外部プロセスの表現を可能にする3.7。図4と図6は、OTPの動作を示しており、これはActorモデルの動作と比較できます。 Erlangのメッセージは順序付けられていますが(2.4.5)、Actorモデルではそうではありません。 – Amiramix

+0

私はArmstrongの論文の​​ほとんどを読んできましたが、俳優についての言及はまったくありません。さらに、Thesisと他の多くの情報源から明らかです(Armstrongの「Programming Erlang」やチュートリアル「Learn You Some Erlang for Great Good」(http://learnyousomeerlang.com)は良い場所です)、Erlang大部分はアクターモデルの哲学を実践していますが、Erlangのプロセスは、あなたが言うように、モデルとは異なる実践的な実装です。私はプロセスを説明することに固執してくれると思います:) – ElToro1966

関連する問題