Erlang
概要
Erlangとは、並行処理を簡潔に記述することができる関数型プログラミング言語の一つ。スウェーデンの大手通信機器メーカー、エリクソン(Ericsson)社が開発したもので、現在ではオープンソースとして公開されている。基本的な文法や仕様は関数型言語となっており、処理を関数の組み合わせとして記述していく。実行時にインタプリタにより機械語に変換しながら同時に実行する処理系を基本とするが、コンパイラでネイティブコードを生成することもできる。
通信システムを制御するソフトウェアを開発するのが当初の目的だったこともあり、耐障害性やリアルタイム性を備え、稼働中のプログラムを停止せずに入れ替える仕組み(ホットスワップ)が採用されている。
Erlangの最大の特徴は並行処理で、独立した複数の命令の流れである「プロセス」(他の言語のスレッドにほぼ相当)を容易に生成、制御する仕様を備える。他の言語では複雑で困難になりがちな並行処理を簡潔、明瞭に記述することができ、大量のプロセスを生成しても軽快に動作させることができる。
各プロセスは非同期にメッセージを交換するプロセス間通信により連携し、メッセージとして文字や数値だけでなく、リストや関数などを送受信することもできる。他の機器で実行されているプロセスへもネットワークを通じてアクセスすることができ、同じ機器上のプロセスとまったく同じように通信することができる。
Erlangの最初のバージョンは1986年に同社によって開発され、1998年に仕様や処理系がオープンソースソフトウェアとして公開された。名称の由来は通信システムの研究で有名な19世紀デンマークの数学者アグナー・アーラン(Agner Erlang)と、「Ericsson Language」を縮めた略語のダブルミーニングとされる。汎用的な言語で様々な用途に用いることができるが、大規模な通信制御システムでの採用例が多い。
(2023.9.13更新)