LINEスタンプ制作代行サービス・LINEスタンプの作り方!

お電話でのお問い合わせ:03-6869-8600

stampfactory大百科事典

Lua

(ルア)は、リオデジャネイロ・カトリカ大学の、主としてDepartment of Computer Science(コンピュータ科学科)and・or Computer Graphics Technology Group (Tecgraf) に属する、Roberto Ierusalimschy, Waldemar Celes, Luiz Henrique de Figueiredo らによって設計開発されたスクリプト言語およびその処理系の実装である。手続き型言語として、また、プロトタイプベースのオブジェクト指向言語としても利用する事が出来、関数型言語、データ駆動型としての要素も併せ持っている。Luaという名前は、ポルトガル語の月に由来する。Luaは、C言語のホストプログラムに組み込まれることを目的に設計されており、高速な動作と、高い移植性、組み込みの容易さが特徴である。いったんバイトコードにコンパイルされ、Lua VMで実行される。LuaJITは The Computer Language Benchmarks Game によると、変数に型のないスクリプト言語では最速の言語・処理系である。の2011年6月版では10番目に人気なプログラミング言語である。2007年に人気が急上昇した。2009年2月の調査で、ゲーム開発者がイベントスクリプト等の内部処理に利用する言語として、最も利用例が多いと報告されるなど、はゲーム産業での利用が広がっている。MITライセンスのもと配布されているため商用プロダクトにも組み込みやすい点も高く評価されている。Luaの特徴としては、汎用性が高いが比較的容易に実装が可能である、というものである。実際のところLuaは、オブジェクト指向などといった他の要素としての働きを明白にはサポートしていないが、サポートしていない範囲においても容易に拡張が可能である。また前述のような、動作の高速性や優れた移植性なども大きな特徴である。文法的な特徴としては、Pascalによく似た構文を採用していること、コルーチン(協調的マルチタスク)のサポート、数値型は整数と浮動小数点数の区別がないこと、関数を変数として扱えることなどが挙げられる。Luaはいわゆる汎用スクリプト言語であり、特定の用途に限定されない性質を持つが、同じく汎用スクリプト言語である Perl、Python、Rubyと比較して高速に動作する。これはLuaの理念である、簡素、高効率、高移植性を目指した実装の産物である。また、Luaにおけるテーブル(連想配列)の実装はかなり最適化されており、特にキーに数値のみを使用した場合は、単純な配列としてさらに高速に動作するようになる。Lua 5.0以前はメモリ管理にマーク & スイープ方式のガベージコレクションが使用されていたが、Lua 5.1ではメモリ管理にインクリメンタル・ガベージコレクションが採用され、リアルタイム用途における性能の改善が図られている。なお、Pythonは参照カウント方式、Ruby は主にマーク・スイープ方式のガベージコレクションを採用しているが、ガベージコレクションの実装形態も Lua の高速動作および高リアルタイム性能に一役買っている。また、LuaをC++言語で記述されたホストプログラムへ組み込むための省力化ツールとして、tolua++、Luabind(5.2非対応)などが開発されている。また、LuajというJava仮想マシン向けの実装もある。これは、Lua 5.1相当の仕様をJavaで実装しなおしたものであり、Javaのクラスからバインダ無しでインスタンスを生成したりメソッドを呼び出したりすることが可能である。LuaのJITコンパイラである LuaJITがMike Pallにより開発されている。変数に型がないにもかかわらず、Javaよりも少し遅くなる程度の速度で動いている。静的単一代入などをつかった高度な最適化が行われており、バイトコードを実行する場合と比べて、数倍から数100倍の高速化が期待できる。LuaからC/C++の関数を呼び出すためには以下の方法を用いる。下記のコードはC/C++の関数をLua VMに登録し、Luaスクリプト側から呼び出している。逆に、C/C++からLua関数を呼び出す際にもスタック操作が必要となる。コルーチンは状態遷移を記述するのに便利である。LuaはPOSIXやECMAScript標準の正規表現とは異なる独自のカスタムパターンマッチングをサポートする。

出典:wikipedia

LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。