Luaの概要
Luaは強力で、効率的で、軽量で、組み込みが可能なスクリプト言語です。手続き型プログラミング、オブジェクト指向プログラミング、関数型プログラミング、データ駆動型プログラミングなどの様々なプログラミング手法をサポートします。 Luaは動的型付け言語であり、レジスタベースの仮想マシンでバイトコードを解釈して動作します。インクリメンタルGCによる自動メモリ管理機能を持っており、設定やスクリプトプログラミング、迅速なプロトタイプに最適です。 Luaは、ブラジルのリオデジャネイロのPontifical Catholic大学のPUC-Rioチーム(Roberto Ierusalimschy、Waldemar Celes、Luiz Henrique de Figueiredo)により設計、実装および管理が行われています。PUC-RioのComputer Graphics Technology GroupであったTecgrafによって生み出され、現在はPUC-RioのComputer Science学科の研究室であるLabLuaにより運営されています。 「Lua」(発音は LOO-ah) とはポルトガル語で「月」を意味します。頭文字でも省略形でもなく名詞です。「LUA」と書くと別の意味に取られることがあるので、このプログラミング言語の「Lua」のことを指す場合は、先頭を大文字にしてその他は小文字で「Lua」と書くのが正しい表記となります。
Luaの特徴
実証済みで堅牢 | Luaは多くの産業アプリケーション(AdobeのPhotoshop、Lightrootなど)、組み込みシステム(ブラジルのデジタルTVのミドルウェアであるGingaなど)やゲーム(World of Warcraft や Angry Birdsなど)で使われています。特に最近ではゲームのスクリプト言語として人気が高いです。しっかりとしたリファレンスマニュアルがあり、書籍も豊富です。初期リリースから25年以上が経過し、2007年のHOPL(History of Programming Languages Conference) IIIで特集され、Game Developers MagazineでFront Line Award 2011を獲得しています。 |
---|---|
高パフォーマンス | 多くのベンチマークではインタプリタ型スクリプト言語の中で最も高速な言語はLuaであると示しています。また、ベンチマークに特化して早いというだけではなく、実社会においても高速であることが示されています。 より高いパフォーマンスが必要な場合には、JIT(just-in-time)コンパイラを使ったLuaの独自実装であるLuaJITも提供されています。 |
移植性 | Luaはで小さなパッケージで配布されており、標準Cコンパイラをもつ全てのプラットフォームですぐにビルドできます。UnixやWindows、モバイルデバイス(Android、iOS、BREW、Symbian、Windows Phoneなど)、組み込み機器(ARMやRabbit、Lego MindStorms など)、IBMメインフレームなどでも動作します。 |
組み込み可能 | Luaは高速な言語エンジンなので、アプリケーションへ簡単に組み込めます。他の言語で書かれたコードに統合可能なAPIが提供されています。 つまり、他の言語で書かれたライブラリを使ってLuaを拡張することや、Luaを使って他の言語のプログラムを拡張することが可能です。CやC++だけでなく、Java、C#、Smalltalk、Fortran、Ada、Erlang、PerlやRubyのようなその他のスクリプト言語でさえ拡張することができます。また、WebサーバソフトウェアのNginxでは、初期段階のバージョン0.7で組み込み可能な拡張言語としてLuaを採用しています。さらにApache-Webサーバでも、バージョン2.4から、Luaを拡張言語として利用できるようにmod_luaモジュールとして提供しています。 |
メタ・メカニズム | Luaの設計における基本的なコンセプトは、言語自体で直接機能の中核を提供するのではなく、機能を実装するためのメタ・メカニズムを提供する点にあります。たとえば、Luaは純粋なオブジェクト指向型言語ではありませんが、クラスの実装や継承をするためのメタ・メカニズムを提供しています。Luaのメタ・メカニズムはコンセプトの効率化をもたらし、サイズを小さく保ちます。 |
コンパクト | アプリケーションにLuaを追加しても、サイズはほとんど占有しません。Lua 5.3.4のソースコードとドキュメントを含んだtarアーカイブは圧縮されて297Kで、展開しても1.1Mほどです。ソースコードはC言語で約24,000行程度です。たとえば、64bitのLinux上でビルドされたLuaインタプリタは246K、Luaライブラリは421Kほどです。 |
オープンソース | Luaは無料のオープンソースソフトウェアであり、非常に自由なライセンスとして知られるMITライセンスの元で配布されています。そのため、商用利用を含むどのような用途であっても完全に無償で使用することが出来ます。ただ、ダウンロードして使うだけです。 |
Luaの動作環境
標準Cコンパイラをもつ全てのプラットフォームで利用可能です。
- Unix
- Windows
- モバイルデバイス(Android、iOS、BREW、Symbian、Windows Phoneなど)
- 組み込み機器(ARMやRabbit、Lego MindStorms など)
- IBMメインフレーム
類似の機能をもつOSS
インタプリタ型スクリプト言語としては、主に以下のものがあります。
- Python
- Perl
- Ruby
Luaに関しては、他のスクリプト言語に比べて、高パフォーマンス、組み込み機器、ゲームなどにおいて、利用されるシーンが多いようです。ただし、他のスクリプト言語においても、パフォーマンス改善やJIT対応、組み込み用途のためのモジュールコンパクト化などが進められており、今後の動向が注目されます。 類似言語との詳細な比較に関しては、lua-users.org のページにまとめられているものがありますので、こちらのサイトをご参考ください。 Lua Comparison: http://lua-users.org/wiki/LuaComparison
Luaのライセンス
Luaは、MITライセンスの元で配布されています。商用利用を含むどのような用途であっても完全に無償で使用することが出来ます。
Luaの公式サイト
Luaのダウンロードサイト
https://www.lua.org/download.html
Luaのサポート
NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。