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 だけで、スクリプト言語が動いてしまうのは凄いことなんじゃないですかね?(バイナリアンでは無いですが)

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


The reCAPTCHA verification period has expired. Please reload the page.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください