マジセミドライブ

ウェビナー関連のニュースや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」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

ダウンロード

ダウンロードページ

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

この記事のタグ一覧

おすすめの記事

【OSS情報】WebベースAPI開発スイート「 Hoppscotch 」🌐

OSS情報

2024.07.04

【OSS情報】WebベースAPI開発スイート「 Hoppscotch 」🌐

「 Hoppscotch 」は、オープンソースのAPI開発エコシステムで、使いやすさとアクセシビリティを重視した軽量なWebベースのスイートです。無料版と有料版があり、PostmanやInsomniaの代替として利用可能です。

経営活動に活用できる 原価管理 を実現するには? 〜製造業の現実的な課題に向き合い、現場視点から改善する原価管理手法の必達プロセスをご紹介〜

ウェビナーまとめ

2024.05.15

経営活動に活用できる 原価管理 を実現するには? 〜製造業の現実的な課題に向き合い、現場視点から改善する原価管理手法の必達プロセスをご紹介〜

2024年3月12日に三菱電機ITソリューションズ株式会社とアットストリームパートナーズ合同会社の共催で、組立加工製造業向けのセミナー「なぜか高くなる原価を管理する 不確実性の時代を乗り切るためのコスト戦略とは」が開催されました。本セミナーでは、製造業における原価管理の現状と改善手法について深く掘り下げ、経営活動への具体的な活用方法を提示しました。今回は、その講演の要点をお伝えします。

【OSS情報】LLMトレーニング用ライブラリ「 GPT-NeoX 」📚

OSS情報

2024.07.18

【OSS情報】LLMトレーニング用ライブラリ「 GPT-NeoX 」📚

「 GPT-NeoX 」は、GPU上で大規模言語モデル(LLM)を効率的にトレーニングするためのライブラリです。NVIDIAのモデルを基に独自の最適化が加えられ、オートレグレッシブ言語モデルのトレーニング手法を集約しています。