Lua 勉強日記(1)
Lua とは
Cのホストプログラムに組み込まれることを目的に設計されており、高速な動作と、高い移植性、組み込みの容易さが特徴である。
Lua – Wikipedia
Luaの処理系はスクリプト言語としては非常に高い性能を持っている。「Computer Language Shootout」というベンチマークサイトにおいて、LuaはPythonやPerl、PHPを凌ぐ位置にランクインされている。
[Think IT] 第2回:言語開発者が目標にするパフォーマンス「Lua」 (1/3)
構文は、最近の言語のいいとこ取りをした感じで、お洒落だと思います(個人的主観)。エラー処理(try … catch … finally …)が無かったり、真面目なOOPをサポートしていなかったりしますが、この辺を切り捨てるあたりにセンスを感じます。(この辺で、Luaをやってみようという人が減るんじゃないかと思いますが、漢らしいです。)
あと、LuaからCの関数を呼んだり、CからLuaの関数を呼ぶことが簡単にできる仕組みが用意されているので、Cによる拡張が用意(関数追加など)らしいです。
環境
うまく書けたら、会社の社内ブログっぽいところに書こうと思うので、環境は、Windowsで試していきます。
ダウンロード
Luaのサイトから、LuaのWindows用バイナリをダウンロードします。
http://luaforge.net/frs/download.php/3134/lua5_1_3_Win32_bin.zip
ダウンロードしたファイルを展開すると、8個のファイルしか含まれていません。
C:\somewhere>dir /b lua5_1_3_Win32_bin
bin2c5.1.exe
lua5.1.dll
lua5.1.exe
lua51.dll
luac5.1.exe
Microsoft.VC80.CRT.manifest
msvcr80.dll
wlua5.1.exe
スクリプトの実行には、lua5.1.exe と lua5.1.dll があればいいようです。
luac5.1.exe は、どうやら中間言語へのコンパイラのようです。java でいうところの javac のようなもの。
(これを使えば、構文解析のための時間も短縮することができるということか?)
実行
今回は Lua というものを理解するために、最小限の構成で動かしてみたいと思います。
任意のディレクトリを作成し、そこにlua5.1.exe と lua5.1.dll を格納します。
同じディレクトリに、hello.lua(以下のファイル)を作成します。(おきまりの)
hello.lua
print("hello")
コマンドプロンプトを開いて、作成したディレクトリに移動して、hello.lua を実行します。
実行結果
C:\lua_example>lua5.1.exe hello.lua hello
44KB の lua5.1.exe と 160KB の lua5.1.3.dll だけで、スクリプト言語が動いてしまうのは凄いことなんじゃないですかね?(バイナリアンでは無いですが)