Erlang(アーラン)。並行処理指向/分散処理指向の関数型プログラミング言語です。「多目的」「耐障害性」「無停止稼働(ホットスワップ)」などの特徴があります。

オープンソースの言語/Erlangとは

Erlang(アーラン)。並行処理指向/分散処理指向の関数型プログラミング言語です。「多目的」「耐障害性」「無停止稼働(ホットスワップ)」などの特徴があります。

基本情報

概要

Erlang(アーラン)とは、並行処理指向/分散処理指向の関数型プログラミング言語です。「多目的」「耐障害性」「無停止稼働(ホットスワップ)」などの特徴があります。

基本説明

通信システム制御用ソフトウェア開発のために開発されたプログラミング言語です。

「分散型」「スケーラブル」「耐障害性」「リアルタイム性」「無停止稼働(ホットスワップ)」などの特徴があります。

分散型ハイパフォーマンスアプリケーション構築などに向いている言語です。

経緯

スウェーデンの大手通信機器メーカー「エリクソン(Ericsson)社」が開発しました。

1998年、オープンソース公開されました。

「Erlang」の名前の由来は、数学者「Agner Erlang」と「Ericsson Language」のダブルミーニングとされています。

TOPに戻る

主な特徴

関数型言語

Erlangの基本的文法/仕様は関数型言語です。処理を関数の組み合わせとして記述します。「先行評価」「変数への代入は1回限り」「動的型付け」などの特徴があります。

関数型プログラミングのパラダイムは、個々のコード/ブロックが同じ入力値に対して一貫した出力値を生成します。関数の出力結果を容易に予測できるため、デバッグ/分析を容易に行えます。

「実行時にインタプリタにより機械語に変換しながら同時に実行する」処理系を基本とします。

Erlangは、論理型言語「Prolog」の影響を強く受けており、他のほとんどの言語とは大きくかけ離れています。そのため、多言語から参入しづらい面があります。

並行処理

並行処理は、Erlangの最大の特徴です。

独立した複数の命令の流れ(プロセス)を容易に生成/制御でき、複雑で困難な並行処理を簡潔/明瞭に記述できます。他の言語に対するアドバンテージです。

プロセス

Erlangが提供する「プロセス」は、OSのプロセス/スレッドとは異なり、Erlangの仮想マシン(VM)によって管理されるものです。

大量の「プロセス」を性能低下させずに生成できます。2000万個の「プロセス」を並行実行できることが示されています。

プロセス間通信(分散処理)

各プロセスはプロセス間通信により連携します。非共有/非同期にメッセージを交換できます。メッセージとして、文字/数値/リスト/関数などを扱えます。

他のマシンで実行されているプロセスへもネットワークを通じてアクセスできるため、分散した複数のプロセスを互いに連携できます。遠隔ノード上のプロセスとのプロセス間通信は、同じノード上のプロセスとのプロセス間通信とまったく同じように行われます。分散処理を容易に構築できます。

耐障害性(プロセスエラー処理)

Erlangの並行処理は、エラー処理の基本的な方法をサポートしています。

あるプロセスに異常が発生した場合、そのプロセスは手際良く終了し、そのプロセスを制御しているプロセスにメッセージを送信します。この仕組みにより、ソースコード保守性を高め、複雑性を低減できます。

並行プロセス内で発生した障害を特定して処理できるため、耐障害性の高いアプリケーションを構築できます。Erlangに付属するライブラリ「OTP」は、「99.9999999%(ナイン・ナイン)」の稼働率を誇ります。

TOPに戻る

同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Elixir」「GO言語」「Scala」など。

TOPに戻る

導入事例

Ericsson、Facebook、CouchDB、WhatsApp、楽天、ドワンゴなどでの採用実績があります。

他にも、大規模な通信制御システムなどで多くの採用例があります。

TOPに戻る

ライセンス情報

Erlangのライセンスは「Apache License」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

TOPに戻る

ダウンロード

ダウンロードページ

TOPに戻る

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

Erlang最新TOPICS

【PICKUP】関数型プログラミング言語とは?---メリットとデメリット、「Scala」「Erlang」「Haskell」(2017年09月30日 20:03)

関数型プログラミング言語について解説し、「Scala」「Erlang」「Haskell」について紹介している。 【解説テーマ】 ・関数型プログラミングとは ・関数型プログラミングのメリット  →数学的に書ける  →拡張性が高い  →副作用が少ない  →遅延評価 ・関数型プログラミングのデメリット  →環境に依存しやすい  →状態遷移の処理が書きにくい ・関数型言語の種類 ...

Erlang最新CLOSEUPコラム

イベント情報

無料資料プレゼント

AI技術の方向性と企業の活用シナリオ

講演資料を見るには、 プライバシーポリシーに同意して、送付先メールアドレスをご入力しご請求ください。

またご入力いただきました情報は、当該資料の作成・提供企業とも共有させていただき、当社及び各社のサービス、製品、セミナー、イベントなどのご案内に使用させていただきます。

本資料を見るには次の画面でアンケートに回答していただく必要があります。



  • 20171130-netapp サイド
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter