単語記事: Lua

編集  

Luaとは、スクリプト言語のひとつ。ポルトガル語では「」という意味を表す。C/C++/java/VB.netなど、他の言で組まれたプログラムに組み込んで使うことができる。2014年1月6日Luaバージョンは5.2.3となっている。

概要

この言の設計における基本的なコンセプトは、言そのものに多くの機を実現するのではなく、様々な機を実現するための少数の仕掛けをつくることでした。たとえば、 Luaは純オブジェクト指向ではありませんが、クラスや継承といった仕組みを実現できるのです。 むやみに多くの概念を導入することなく、簡素な言のままで拡を可にしたそれらの仕掛はLuaの際だった特徴です。

何に使われてるの?

Luaプログラムに組み込み読み込ませるだけで使え、さらに独自のAPIを親プログラム側から提供することができることから、あとから容易に機を追加・変更する(したい)ことが多いプログラムによく用いられる。ゲーム開発などでも、システムの根幹は高速な言で作り、頻繁に調整されるシナリオなどはLuaで構築するといった使い方で利用されている。ちなみにLua単体でも動く。

ニコニコではに次の用途で使用されている。

Hello world

print("Hello world")

C/C++とLuaとのやり取り

Luaスクリプトlua_Stateという構造体ポインタ関数に持たせることでluaを解釈させることができる。たとえばLuaからC言語関数を呼び出す場合は基本的に以下のようにする。またLua関数クラスを簡単に開するにはLuabind、tolua++、SWIGを使えば可になる。

int l_add(lua_State* L)
{
    int top = lua_gettop(L); /* Luaスタックの数を取得 */
    int ret = 0; /* 結果の格納用変数 */
    for(int i = 0; i < top; i++){ /* スタックの数だけを繰り返す。 */
        ret += (int)lua_tonumber(L, i+1); /*retと加算 */

    }
    lua_settop(L, 0); /*スタック削除 */
    lua_pushnumber(L, ret); /* 加算した結果を戻り値としてLuaスタックにプッシュ */

    return 1; /* 戻り値の数 */
}

EmuLua

エミュレータLuaクリプトの機を付け加えたものを「EmuLua」と呼ぶ。これはDeHackEd氏が最初にSnes9xに搭載して以来、Gens、VitualBoy Advance、FCEUX、FinalBurn AlphaDeSmuME(いずれもre-recording版)などにも搭載されたものである。EmuLuaに使われているLuaバージョンは5.1。

詳しいことはTAS用エミュレータの機能紹介 - 悟茶辞苑ッをご覧ください。

関連動画



関連商品

関連コミュニティ

luaに関するニコニコミュニティを紹介してください。

関連項目

外部リンク


【スポンサーリンク】

携帯版URL:
http://dic.nicomoba.jp/k/a/lua
ページ番号: 4169160 リビジョン番号: 1953149
読み:ルア
初版作成日: 09/09/27 14:42 ◆ 最終更新日: 14/01/06 19:36
編集内容についての説明/コメント: スクリプト講座へのリンクが編集ページヘのリンクになってしまっていたので修正orz
記事編集 / 編集履歴を閲覧
このエントリーをはてなブックマークに追加

この記事の掲示板に最近描かれたお絵カキコ

お絵カキコがありません

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

Luaについて語るスレ

13 : ななしのよっしん :2013/03/04(月) 15:26:42 ID: SsZOsvguGQ
シンプルだが強
ライブラリが少ねえ〜って人はRubyPythonを使おう
14 : ななしのよっしん :2014/01/06(月) 19:39:01 ID: 9IDvjWbc4+
ちょいちょい編集させてもらいました
15 : ななしのよっしん :2014/04/11(金) 13:46:45 ID: qwnMXC34xq
ROのホムンクルスを動かすAIってコレで書かれてなかったっけ
16 : ななしのよっしん :2014/09/09(火) 18:20:30 ID: UB0z7IZoo4
>>15
そうそう
あれで初めてLuaに触れたなぁ
17 : ななしのよっしん :2014/11/03(月) 02:00:52 ID: fdF12QvXgd
オブジェクト指向ぽいことも出来るしが深い
しかもがないくせに軽い
18 : ななしのよっしん :2014/12/20(土) 22:26:56 ID: aMHeu6hDfN
Cインターフェースがなにげにすごく使いやすいのもポイント。組み込み前提で作られているだけはある。
19 : ななしのよっしん :2015/03/22(日) 16:41:48 ID: 9IDvjWbc4+
LuaJITクソいことで有名。
最近はLuaが動くSDカードFlashAirIIIなんてのも出ている。
20 : ななしのよっしん :2015/04/02(木) 22:44:57 ID: 9IDvjWbc4+
Lua動くSDカード
>>sm25937825
21 : ななしのよっしん :2017/03/10(金) 15:13:08 ID: gSWjyKiKt1
とても書き易いのでプログラム入門にお勧めしたい。

ただ、scratchのようにスプライトLuaで動かせるアプリなりウェブサービスなりが有れば良いのだけれど。
22 : ななしのよっしん :2017/05/13(土) 18:49:41 ID: y8l1lJzliK
LuaJITTeX 良いぞよ。
ニコニコニューストピックス
電ファミwiki
  JASRAC許諾番号: 9013388001Y45123
  NexTone許諾番号: ID000001829