マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Erlang

【OSS情報アーカイブ】Erlang

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「Erlang」とは

基本情報

概要

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

基本説明

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

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

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

経緯

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

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

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

主な特徴

関数型言語

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

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

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

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

並行処理

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

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

プロセス

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

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

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

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

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

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

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

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

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

同様製品

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

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

導入事例

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

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

ライセンス情報

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

ダウンロード

ダウンロードページ

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

この記事のタグ一覧

おすすめの記事

【ChatGPT探訪】GPT-4V「 画像解析機能 」🔍

ChatGPT探訪

2023.11.10

【ChatGPT探訪】GPT-4V「 画像解析機能 」🔍

ChatGPT4の「 画像解析機能 」について、 画像読み込み機能チェックを実施してみました🔍 「請求書不備チェック」は便利なのですが、 クローズドGPTを使いたくなります🤔 さまざまな用途に活用できる可能性を感じました🌟 いろいろ分析してくれるので、 試してみてください👍

【ChatGPT探訪】ビルトイン画像生成AI「 DALL·E 3 」🖼️

ChatGPT探訪

2023.10.27

【ChatGPT探訪】ビルトイン画像生成AI「 DALL·E 3 」🖼️

ChatGPTに統合されている画像生成AI「 DALL·E 3 」について、 いろいろいじりつつ🔍 各種画像生成チェックを実施してみました🎨 商用利用OKの💼 「日常的に使える画像生成ツール」として活用できそう😊 という感じになりました。 Bing経由でも無料で使えるので🆓 試してみてください👍

AIツール関連 記事リストポータル

AIツール

2023.10.05

AIツール関連 記事リストポータル

AI 関連の記事をまとめたポータルページです。