順番が前後してましたが、Luaの紹介をしたいと思います。
構文的特徴は次回にするとして、今回は言語を取り巻く環境を書きます。
LuaはLLに属する動的型付け言語です。
単独で使う言語としては弱いですが、他のプログラムに組み込んで使うことが想定されていて
高速で動作、移植性が高い、言語の拡張性も高いという事が言われているようです。
特にC/C++との親和性は良く、tolua++というツールを使うと
LuaからCの関数を呼び出したり変数を参照するコード(グルーコード)が自動的に生成できます。
いわば、C/C++の一部の関数をLuaというインタープリターに置き換えるわけです。
C++のクラスにも対応していて、LuaにC++のクラスのインスタンスを渡し、Luaがクラスのメンバ関数を呼び出したり。
Luaからそのクラスの実体を宣言する事もできます。
Cだけではなく、.NET用にLuaForgeがあり、C#からもLua使うことができます。
低資源の環境にも強くて、PSPやDSで動くLuaというものもあります。
PSPだと、LuaPlayerというものもあり、Luaを使ってPSPで動くゲームが作れます。
難点は、もともとCに組み込んで使う言語なのに、Cとは似ても似つかない構文を採用しています。
たとえば、for ~do [処理] end と、ネストに中括弧を用いませんし、コメントも--で始まる行となっています。
正直、私もこの構文は好きではありません。
しかし、自作スクリプトを作るよりはLuaを使った方がいいでしょう。
実際に利用例もあり、ゲームに組み込まれていることが多いです。
ラグナロクオンラインのホムンクルススクリプトとして採用されているので知っている人もいるかもしれません。
スクリプトのままではなく、中間コードに変換することもできるのも便利です。
そういえば、[Android]Android on PSPがあったをみて導入してみたのですが、これにもLuaが使われているようですね。
Android自体はエラーが出て起動しなかったんですけど…。
参考リンク [Lua言語の紹介] [Lua - Wikipedia]