Lua とは?

Lua

Lua最新情報

NRIのOpenStandiaが提供するLua最新情報

OSSの保守サポートサービスの内容はこちら OSSの導入については、こちらのフォームからお問い合わせ下さい\ OSS全般の事例紹介はこちら

更新日:2019-04-09

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」と書くのが正しい表記となります。

TOPに戻る

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ライセンスの元で配布されています。そのため、商用利用を含むどのような用途であっても完全に無償で使用することが出来ます。ただ、ダウンロードして使うだけです。

TOPに戻る

Luaの動作環境

標準Cコンパイラをもつ全てのプラットフォームで利用可能です。

  • Unix
  • Windows
  • モバイルデバイス(Android、iOS、BREW、Symbian、Windows Phoneなど)
  • 組み込み機器(ARMやRabbit、Lego MindStorms など)
  • IBMメインフレーム

TOPに戻る

類似の機能をもつOSS

インタプリタ型スクリプト言語としては、主に以下のものがあります。

  • Python
  • Perl
  • Ruby

Luaに関しては、他のスクリプト言語に比べて、高パフォーマンス、組み込み機器、ゲームなどにおいて、利用されるシーンが多いようです。ただし、他のスクリプト言語においても、パフォーマンス改善やJIT対応、組み込み用途のためのモジュールコンパクト化などが進められており、今後の動向が注目されます。

類似言語との詳細な比較に関しては、lua-users.org のページにまとめられているものがありますので、こちらのサイトをご参考ください。

Lua Comparison:
http://lua-users.org/wiki/LuaComparison

TOPに戻る

Luaのライセンス

Luaは、MITライセンスの元で配布されています。商用利用を含むどのような用途であっても完全に無償で使用することが出来ます。

TOPに戻る

Luaの公式サイト

https://www.lua.org/

TOPに戻る

Luaのダウンロードサイト

https://www.lua.org/download.html

TOPに戻る

Luaのサポート

NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

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

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • MongoDB
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • PostgreSQL
  • Apache Struts
  • Apache Kafka
  • Apache Hadoop
  • Apache Spark
  • Spring Framework
  • Apache Tomcat
  • Solr
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Dovecot
  • Pentaho
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO