今注目のニュース
滝沢カレン、カバンの中身を公開し話題に 「普通は持ち歩かない」
あの任侠漫画家が一念発起で“萌え”を追究 「何枚も描く!それで見えてくるものがある」
「顔しか取り柄がない私。仕事でほめられたい」 美人過ぎる新入社員の投稿が大炎上 専門家に聞いた

Lua単語

ルア

  • 2
  • 0
掲示板をみる(24)
  • twitter
  • facebook
  • はてな
  • LINE
  • ほめる(2)
  •  
  •  
  •  
  •  
  • その他

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 AdvanceFCEUX、FinalBurn AlphaDeSmuME(いずれもre-recording版)などにも搭載されたものである。EmuLuaに使われているLuaのバージョンは5.1。

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

関連動画



関連商品

関連コミュニティ

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

関連項目

外部リンク

掲示板

  • 22ななしのよっしん

    2017/05/13(土) 18:49:41 ID: y8l1lJzliK

    LuaJITTeX 良いぞよ。

  • 23ななしのよっしん

    2018/01/27(土) 16:23:00 ID: RtER2lXYQT

    iOS脱獄TweakにAutotouchってマクロTweakがあってそれで知った.なんか書いてて楽しいんだよね

  • 24ななしのよっしん

    2018/03/21(水) 03:09:02 ID: 916Ewo7No8

    FireAlpaca、MedibangPaintで使えるmdiapp系のスクリプトブラシもこれだよね

急上昇ワード

最終更新:2019/12/08(日) 18:00

ほめられた記事

最終更新:2019/12/08(日) 18:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP