Elixir (エリクサー) は並行処理の機能や関数型といった特徴を持つ、Erlangの仮想マシン (BEAM) 上で動作するコンピュータプログラミング言語である。ElixirはErlangで実装されているため、分散システム、耐障害性、ソフトリアルタイムシステム等の機能を使用することができるが、拡張機能として、マクロを使ったメタプログラミング、そしてポリモーフィズムなどのプログラミング・パラダイムもプロトコルを介して実装されている。

歴史

高い拡張性があり、Erlangの仮想環境上で動作するシステムを目標に、José Valimによって開発された。

特徴

  • Erlangの仮想環境 (BEAM) 上で動作する
  • Erlangの関数を呼び出せるため、Erlangのシステムにシームレスに統合できる
  • LISPのマクロと抽象構文木によるメタプログラミング
  • Clojureのようなプロトコルによるポリモーフィズム
  • ファーストクラス・ドキュメント
  • メッセージ交換アクターモデルによるシェアード・ナッシング・アーキテクチャを採用
  • 副作用が起こる循環構造の代わりに、再帰や高階関数に重点を置く
  • 構文は全て式として扱われる
  • 遅延評価と非同期処理
  • パターンマッチング
  • 標準でUTF-8ユニコードを採用

以下のサンプルはiexシェルまたはファイルに保存した上で elixir コマンドにて実行可能である。

Hello world
内包表記
パターンマッチング
モジュール
1000個のプロセスを順番に立ち上げ
非同期実行

参考文献

  • Dave Thomas:「プログラミングElixir」、オーム社、ISBN 978-4-274-21915-3(2016年8月19日)。
  • Dave Thomas:「プログラミングElixir」(第2版)、オーム社、ISBN 978-4-274-22637-3(2020年12月)。

外部リンク

  • 公式ウェブサイト (英語)
  • elixir - GitHub (英語)
  • Elixir - A modern approach to programming for the Erlang VM video presentation (英語)

Elixir的好IDE Dovov编程网

10th Anniversary of Elixir Language Questions & Answers Curiosum

an Elixir Programmer AIPowered Learning for Developers

Elixirとは?プログラミング言語を初心者にもわかりやすく解説 プログラミング入門

並行な混沌 祝「プログラミングElixir」刊行