Erlang
Erlangの主な特長は、並行処理のサポートである。 Erlangにおける並行処理は、複数の「プロセス」を生成し、それらの間で通信を行うための、簡潔で強力な機能群によって支えられている。 なお、Erlangが提供する「プロセス」は、オペレーティングシステムが提供するプロセスやスレッドとは異なり、Erlangの仮想機械(VM)によって管理される。 「プロセス」の生成オーバーヘッドは約300ワード程度に抑えられており、大量の「プロセス」を、性能を低下させずに生成できる。 あるベンチマークでは2000万個の「プロセス」を並行実行できることが示された。
これ以降の記述ではErlangにおける「プロセス」を括弧無しで言及する。
Erlangにおけるプロセス間の通信は、非共有かつ非同期のメッセージ転送システムによって行われる。 Erlangのプロセスは全てそれぞれの「メールボックス」をもつ。 メールボックスには他のプロセスから受信したメッセージが格納される。 その後、メールボックスに格納されたメッセージがメールボックスを所有するプロセスによって処理される。 そのときErlangのプロセスはメッセージを得るためにreceiveという基本操作を行う。 メッセージを得る過程ではパターンマッチングが行われる。 まずメッセージ制御ルーティンが1番目のメッセージに対して各パターンがマッチするかどうか調べる。