Warning : Undefined variable $type in /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php on line 3
Warning : "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/users/1/sub.jp-asate/web/wiki/includes/json/FormatJson.php on line 297
Warning : Trying to access array offset on value of type bool in /home/users/1/sub.jp-asate/web/wiki/includes/Setup.php on line 660
Warning : session_name(): Session name cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/Setup.php on line 834
Warning : ini_set(): Session ini settings cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/session/PHPSessionHandler.php on line 126
Warning : ini_set(): Session ini settings cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/session/PHPSessionHandler.php on line 127
Warning : session_cache_limiter(): Session cache limiter cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/session/PHPSessionHandler.php on line 133
Warning : session_set_save_handler(): Session save handler cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/session/PHPSessionHandler.php on line 140
Warning : "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/users/1/sub.jp-asate/web/wiki/languages/LanguageConverter.php on line 773
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/Feed.php on line 294
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/Feed.php on line 300
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/WebResponse.php on line 46
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/WebResponse.php on line 46
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/WebResponse.php on line 46
http:///mymemo.xyz/wiki/api.php?action=feedcontributions&user=210.251.91.153&feedformat=atom
miniwiki - 利用者の投稿記録 [ja]
2024-05-04T05:47:31Z
利用者の投稿記録
MediaWiki 1.31.0
Lua
2018-07-26T22:02:32Z
<p>210.251.91.153: /* 挿入ソート */</p>
<hr />
<div>{{WikipediaPage|ウィキペディアにおけるLuaの利用は[[Wikipedia:Lua]]をご覧ください。}}<br />
{{Otheruses|'''プログラミング言語'''|生命の祖先|共通祖先}}<br />
<br />
{{Infobox プログラミング言語<br />
|名前=Lua<br />
|ロゴ=[[File:Lua-logo-nolabel.svg|128px]]<br />
|file ext=<code>lua</code><br />
|パラダイム=[[マルチパラダイムプログラミング言語|マルチパラダイム]]<br />
|設計者=[[TeCGraf]]<br />
|latest release version=5.3.4 <ref>[https://www.lua.org/ftp/ Lua:download area]</ref><br />
|latest release date={{start date and age|2017|1|12}}<br />
|latest preview version=<br />
|latest preview date=<br />
|typing=[[ダック・タイピング]]<br />
|implementations=Lua、[https://luajit.org/ LuaJIT]、[https://github.com/neopallium/llvm-lua LLVM-Lua]、[https://github.com/lua-alchemy/lua-alchemy Lua Alchemy]<br />
|dialects=<br />
|influenced by=<br />
|influenced=<br />
|programming language=<br />
|operating system=[[クロスプラットフォーム]]<br />
|ライセンス=[[MIT License]] (5.0以降)<br />
|ウェブサイト=[https://www.lua.org/ www.lua.org]<br />
|wikibooks=<br />
}}<br />
{{Infobox Software<br />
|名称=LuaJIT<br />
|ロゴ=<br />
|スクリーンショット=<br />
|説明文=<br />
|開発者=Mike Pall<br />
|開発元=<br />
|初版=<br />
|最新版=2.0.4<br />
|最新版発表日={{release_date|2015|5|14}}<br />
|最新評価版=2.1.0-beta2<br />
|最新評価版発表日={{release_date|2016|3|3}}<br />
|プログラミング言語=[[C言語]]<br />
|対応OS=[[Linux]]、[[Microsoft Windows|Windows]]、[[macOS]]、*BSDなど<br />
|エンジン=<br />
|対応プラットフォーム=<br />
|サイズ=<br />
|対応言語=Lua<br />
|サポート状況=開発中<br />
|種別=<br />
|ライセンス=[[MIT License]]<br />
|公式サイト=[http://luajit.org/ luajit.org]<br />
}}<br />
<br />
{{lang|pt|'''Lua'''}}(ルア)は、[[リオデジャネイロ]]・[[カトリカ大学]]の、主としてDepartment of Computer Science([[コンピュータ科学]]科)and・or Computer Graphics Technology Group (Tecgraf) に属する、Roberto Ierusalimschy, Waldemar Celes, Luiz Henrique de Figueiredo らによって設計開発された[[スクリプト言語]]およびその処理系の実装である。<br />
<br />
[[手続き型プログラミング|手続き型言語]]として、また、[[プロトタイプベース]]の[[オブジェクト指向言語]]としても利用することができ、[[関数型言語]]、データ駆動型としての要素も併せ持っている。<br />
<br />
Luaという名前は、[[ポルトガル語]]の[[月]]に由来する。<br />
<br />
==概要==<br />
Luaは、[[C言語]]のホストプログラムに組み込まれることを目的に設計されており、高速な動作と、高い移植性、組み込みの容易さが特徴である。いったん[[バイトコード]]にコンパイルされ、Lua VMで実行される。'''LuaJIT'''は The Computer Language Benchmarks Game によると、変数に型のないスクリプト言語では最速の言語・処理系である<ref name="benchgame">[http://shootout.alioth.debian.org/u64/which-programming-languages-are-fastest.php x64 Ubuntu:Intel&reg;Q6600&reg;one core Computer Language Benchmarks Game]</ref>。<br />
<br />
{{仮リンク|TIOBE Programming Community Index|en|TIOBE Programming Community Index}}の2011年{{0}}6月版では10番目に人気なプログラミング言語である<ref>[http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html TIOBE Programming Community Index]</ref>。2007年に人気が急上昇した<ref>[http://www.tiobe.com/index.php/paperinfo/tpci/Lua.html The Lua Programming Language - TIOBE Software:The Coding Standards Company]</ref>。2009年{{0}}2月の調査で、ゲーム開発者がイベントスクリプト等の内部処理に利用する言語として、最も利用例が多いと報告されるなど、{{いつ範囲|近年|date=2015年10月}}はゲーム産業での利用が広がっている<ref>[http://www.satori.org/2009/03/the-engine-survey-general-results/ Satori » The Engine Survey:General results]</ref>。<br />
<br />
[[MIT License|MITライセンス]]のもと配布されているため商用プロダクトにも組み込みやすい点も高く評価されている。<br />
<br />
==特徴==<br />
Luaの特徴としては、汎用性が高いが比較的容易に実装が可能である、というものである。実際のところLuaは、オブジェクト指向などといった他の要素としての働きを明白にはサポートしていないが、サポートしていない範囲においても容易に拡張が可能である。また前述のような、動作の高速性や優れた移植性なども大きな特徴である。<br />
<br />
文法的な特徴としては、[[Pascal]]によく似た構文を採用していること、[[コルーチン]]([[マルチタスク#ノンプリエンプティブ・マルチタスク|協調的マルチタスク]])のサポート、数値型は[[整数]]と[[浮動小数点数]]の区別がないこと、関数を変数として扱えることなどが挙げられる。<br />
<br />
Luaはいわゆる[[スクリプト言語#汎用動的言語|汎用スクリプト言語]]であり、特定の用途に限定されない性質を持つが、同じく汎用スクリプト言語である [[Perl]]、[[Python]]、[[Ruby]]と比較して高速に動作する。これはLuaの理念である、簡素、高効率、高移植性を目指した実装の産物である。また、Luaにおけるテーブル([[連想配列]])の実装はかなり最適化されており、特にキーに数値のみを使用した場合は、単純な配列としてさらに高速に動作するようになる。<br />
<br />
Lua 5.0以前はメモリ管理にマーク & スイープ方式の[[ガベージコレクション]]が使用されていたが、Lua 5.1ではメモリ管理にインクリメンタル・ガベージコレクションが採用され、リアルタイム用途における性能の改善が図られている。ガベージコレクションの実装形態も Lua の高速動作および高リアルタイム性能に一役買っている。<br />
<br />
また、Luaを[[C++]]言語で記述されたホストプログラムへ組み込むための省力化ツールとして、<br />
[[tolua++]]<ref>{{Cite web|author=Ariel Manzur|date=2009-02-16|url=http://www.codenix.com/~tolua/|title=toLua++ - binding c/c++ code to lua|language=英語|accessdate=2013-04-02|quote=[[MIT License]]}}</ref>、[[Luabind]](5.2非対応)<ref>{{Cite web|date=2007-04-01|url=http://www.rasterbar.com/products/luabind.html|title=luabind|work=Products|publisher=Rasterbar Software|language=英語|accessdate=2013-04-02|quote=[[MIT License]]}}</ref>などが開発されている。<br />
<br />
また、Luajという[[Java仮想マシン]]向けの実装もある。これは、Lua 5.1相当の仕様をJavaで実装しなおしたものであり、Javaのクラスからバインダ無しでインスタンスを生成したりメソッドを呼び出したりすることが可能である。<br />
<br />
==LuaJIT==<br />
Luaの[[実行時コンパイラ|JITコンパイラ]]である LuaJITがMike Pallにより開発されている。変数に型がないにもかかわらず、Javaよりも少し遅くなる程度の速度で動いている<ref name="benchgame"/>。[[静的単一代入]]などをつかった高度な最適化が行われており、バイトコードを実行する場合と比べて、数倍から数100倍の高速化が期待できる<ref>http://luajit.org/performance.html</ref>。<br />
<br />
==Lua の歴史==<br />
===Lua===<br />
*1993年{{0}}7月28日 - Lua 1.0 リリース。<br />
*1995年{{0}}2月{{0}}7日 - Lua 2.1 リリース。<br />
*1997年{{0}}7月{{0}}1日 - Lua 3.0 リリース。<br />
*2000年11月{{0}}6日 - Lua 4.0 リリース。<br />
*2003年{{0}}4月11日 - Lua 5.0 リリース。MITライセンスの採用。<br />
*2006年{{0}}2月21日 - Lua 5.1 リリース。インクリメンタルGCの採用。<br />
*2008年{{0}}8月22日 - Lua 5.1.4 リリース。<br />
*2010年{{0}}5月14日 - Lua 5.1.4-2 リリース。<br />
*2011年12月16日 - Lua 5.2.0 リリース。[[ビット演算]]ライブラリをサポート。<br />
*2012年{{0}}6月14日 - Lua 5.2.1 リリース。<br />
*2013年{{0}}3月27日 - Lua 5.2.2 リリース。<br />
*2013年12月{{0}}7日 - Lua 5.2.3 リリース。<br />
*2015年{{0}}1月{{0}}6日 - Lua 5.3.0 リリース。整数型およびビット演算子のサポートなど。<br />
<br />
===LuaJIT===<br />
*2005年{{0}}9月{{0}}8日 - LuaJIT 1.0.3 リリース。最初の公開版。<br />
*2006年{{0}}3月13日 - LuaJIT 1.1.0 リリース。Lua 5.1対応。<br />
*2006年{{0}}6月24日 - LuaJIT 1.1.2 リリース。<br />
*2007年{{0}}5月24日 - LuaJIT 1.1.3 リリース。<br />
*2008年{{0}}2月{{0}}5日 - LuaJIT 1.1.4 リリース。<br />
*2008年10月25日 - LuaJIT 1.1.5 リリース。<br />
*2010年{{0}}3月28日 - LuaJIT 1.1.6 リリース。<br />
*2011年{{0}}5月{{0}}5日 - LuaJIT 1.1.7 リリース。<br />
*2012年{{0}}4月16日 - LuaJIT 1.1.8 リリース。<br />
*2012年11月{{0}}8日 - LuaJIT 2.0.0 リリース。<br />
*2013年{{0}}2月19日 - LuaJIT 2.0.1 リリース。<br />
*2013年{{0}}6月{{0}}3日 - LuaJIT 2.0.2 リリース。<br />
*2014年{{0}}3月12日 - LuaJIT 2.0.3 リリース。<br />
<br />
== コード例 ==<br />
=== Hello World ===<br />
<source lang="lua"><br />
print("Hello World")<br />
</source><br />
<br />
===[[挿入ソート]]===<br />
<source lang="lua"><br />
-- `--´から行末までコメント<br />
a = {5, 3, 1, 4, 2} -- `{´と`}´はテーブルコンストラクタ<br />
for i = 2, #a do -- `#´は長さ演算子であり、`#a´はテーブルaのサイズ(ここでは5)を返す<br />
for j = i, 2, -1 do<br />
if a[j - 1] <= a[j] then break end<br />
a[j], a[j - 1] = a[j - 1], a[j]<br />
end<br />
end<br />
</source><br />
<br />
=== コルーチン ===<br />
コルーチンは状態遷移を記述するのに便利である。<br />
<source lang="lua"><br />
-- Lua コルーチンによって非同期の状態遷移を同期的に記述する例。<br />
<br />
-- 1を返している間は動作を続行中。0を返すと動作を完了。<br />
function doAction()<br />
-- 4フレーム分だけ左へ移動。<br />
for i = 1, 4, 1 do<br />
print("Move Left " .. i)<br />
coroutine.yield(1)<br />
end<br />
-- 1フレーム分だけ一時停止。<br />
print("Pause")<br />
coroutine.yield(1)<br />
-- 3フレーム分だけ右へ移動。<br />
for i = 1, 3, 1 do<br />
print("Move Right " .. i)<br />
coroutine.yield(1)<br />
end<br />
print("End")<br />
return 0<br />
end<br />
<br />
doActionAsync = coroutine.wrap(doAction)<br />
<br />
-- コルーチンの動作テスト。<br />
-- 実際にはフレームごとに1回だけ呼び出す。<br />
while doActionAsync() ~= 0 do<br />
end<br />
</source><br />
<br />
=== 正規表現 ===<br />
Luaは[[POSIX]]や[[ECMAScript]]標準の[[正規表現]]とは異なる独自のカスタムパターンマッチングをサポートする<ref>[https://www.ibm.com/developerworks/jp/linux/library/l-embed-lua/ スクリプト化可能なアプリケーションに Lua を組み込む]</ref>。<br />
<source lang="lua"><br />
local myTable = {<br />
"Gnome,160,30",<br />
"Sylph,100,70",<br />
"Salamander,200,20",<br />
"Ondine,140,60",<br />
}<br />
for i = 1, #myTable do<br />
local name, hp, mp = string.match(myTable[i], "([^,]+)%,([^,]+)%,(.+)")<br />
print(string.format("Name = %q, HP = %d, MP = %d", name, tonumber(hp), tonumber(mp)))<br />
end<br />
</source><br />
<br />
== Lua と C/C++ の相互運用 ==<br />
LuaからC/C++の関数を呼び出すためには以下の方法を用いる。下記のコードはC/C++の関数をLua VMに登録し、Luaスクリプト側から呼び出している。<br />
<source lang="cpp"><br />
#include <stdio.h><br />
#include <stdlib.h><br />
#include <lua.h><br />
#include <lauxlib.h><br />
<br />
int my_add (lua_State *L)<br />
{<br />
int const x = (int) lua_tonumber (L, 1) ; // 第1引数の取得。<br />
int const y = (int) lua_tonumber (L, 2) ; // 第2引数の取得。<br />
lua_settop (L, 0) ; // スタックのクリア。<br />
int const ret = x + y ; // C/C++ 側での演算。<br />
lua_pushnumber (L, ret) ; // 返却値をプッシュ。<br />
return 1 ;<br />
}<br />
<br />
int main (int argc, char* argv [])<br />
{<br />
lua_State *L = luaL_newstate () ; // Lua VM の初期化。<br />
luaL_openlibs (L) ; // Lua の標準ライブラリを使えるようにする。<br />
lua_register (L, "my_add", my_add) ; // Lua VM に C/C++ 関数を登録。<br />
if (luaL_dostring (L, "print(my_add(5, 3))")) // Lua スクリプトを実行。<br />
{<br />
lua_close (L) ; // Lua VM を閉じる。<br />
return EXIT_FAILURE ; // エラー終了。<br />
}<br />
lua_close (L) ;<br />
return EXIT_SUCCESS ;<br />
}<br />
</source><br />
逆に、C/C++からLua関数を呼び出す際にもスタック操作が必要となる。<br />
<source lang="cpp"><br />
#include <stdio.h><br />
#include <stdlib.h><br />
#include <lua.h><br />
#include <lauxlib.h><br />
<br />
int main (int argc, char *argv[])<br />
{<br />
lua_State *L = luaL_newstate () ; // Lua VM の初期化。<br />
if (luaL_dostring (L, "function add_func(x, y) return x + y end")) // Lua スクリプトを実行。<br />
{<br />
lua_close (L) ; // Lua VM を閉じる。<br />
return EXIT_FAILURE ; // エラー終了。<br />
}<br />
lua_getglobal (L, "add_func") ; // Lua のグローバルオブジェクトである「add_func」を取得し、スタックに積む。<br />
lua_pushinteger (L, 5) ; // 整数値の「5」を Lua スタックにプッシュ。<br />
lua_pushinteger (L, 3) ; // 整数値の「3」を Lua スタックにプッシュ。<br />
lua_call (L, 2, 1) ; // Lua 側で実装した add_func 関数を呼び出す。引数の数は2、結果の数は1。<br />
printf ("Result: %d\n", lua_tointeger(L, -1)) ; // 結果を表示。<br />
lua_close (L) ;<br />
return EXIT_SUCCESS ;<br />
}<br />
</source><br />
<br />
=== C++の定義関数を呼び出す場合 ===<br />
[https://github.com/ThePhD/sol2 Sol2]というC++用のバイディングツールを使うと 上記で書いたことが簡単に実装できる([[C++11]]と[[:en:C++14]]の規格に沿って作られているので自然なバインドが可能になる)。<br />
<source lang="cpp"><br />
#include <iostream><br />
#include <sol.hpp><br />
<br />
int add(int x, int y)<br />
{<br />
return x + y;<br />
}<br />
<br />
int main()<br />
{<br />
// Luaの初期化<br />
sol::state lua;<br />
<br />
// Luaの標準ライブラリをすべて開く<br />
lua.open_libraries(sol::lib::base, sol::lib::coroutine, sol::lib::debug, sol::lib::debug,<br />
sol::lib::io, sol::lib::math, sol::lib::os, <br />
sol::lib::package, sol::lib::string, sol::lib::table, sol::lib::utf8);<br />
<br />
// Luaに C/C++の定義関数を登録<br />
lua["add"] = add;<br />
<br />
// Luaスクリプトの読み込み<br />
try {<br />
lua.safe_script_file("test.lua");<br />
}catch(sol::error& e){<br />
std::cout << e.what() << std::endl;<br />
} <br />
}<br />
</source><br />
これを呼び出す Lua側<br />
<source lang="lua"><br />
print(add(100,200)) -- 「300」と表示される<br />
</source><br />
=== Luaの定義関数をC++から呼び出す場合 ===<br />
以下のような Luaの定義関数を C/C++から呼び出すのも 先述した Luaから呼び出す関数と同じように呼び出すことができる。<br />
<source lang="lua"><br />
function add(a, b)<br />
return a + b<br />
end<br />
</source><br />
このLuaの定義関数 add をC++から呼び出すプログラムは以下のようになる。<br />
<source lang="cpp"><br />
#include <iostream><br />
#include <sol.hpp><br />
<br />
int main()<br />
{<br />
// Luaの初期化<br />
sol::state lua;<br />
<br />
// Luaの標準ライブラリをすべて開く<br />
lua.open_libraries(sol::lib::base, sol::lib::coroutine, sol::lib::debug, sol::lib::debug,<br />
sol::lib::io, sol::lib::math, sol::lib::os, <br />
sol::lib::package, sol::lib::string, sol::lib::table, sol::lib::utf8);<br />
<br />
// Luaスクリプトの読み込み<br />
try {<br />
lua.safe_script_file("test.lua");<br />
}catch(sol::error& e){<br />
std::cout << e.what() << std::endl;<br />
}<br />
<br />
// Luaの定義関数を呼び出す<br />
sol::function_result ret = lua["add"](100, 200);<br />
<br />
// 結果を表示する<br />
std::cout << ret.get<int>() << std::endl;<br />
}<br />
</source><br />
<br />
==Luaを採用している製品==<br />
{{出典の明記|date=2015年10月|section=1}}<br />
===ゲーム===<br />
*[[Blue Mars]]<br />
*[[CRYSIS]]<br />
*[[Far Cry]]<br />
*[[Factorio]]<br />
*[[From the depths]]<br />
*[[Garry's MOD]]<br />
*[[Lost Wind]]<br />
*[[RagnarokOnline]]<br />
*[[Roblox]]<br />
*[[Xenepic Online Revo]]<br />
*[[ソニック・ザ・ヘッジホッグ (2006年のゲーム)]]<br />
*[[ソニック ワールドアドベンチャー]](北米版のタイトルは[[Sonic Unleashed]])<br />
*[[ティアーズ・トゥ・ティアラ 花冠の大地]]<br />
*[[THE IDOLM@STER 2]]<br />
*Warhammer Online:Age of Reckoning<br />
*[[World of Warcraft]]<br />
*[[カンパニー・オブ・ヒーローズ]]<br />
*[[GRAVITY DAZE]]<br />
*ニンテンドークラシックミニ ファミリーコンピューター (エミュレータシステム kachikachi のゲーム選択画面で使用)<br />
*[[ファンタシースターオンライン2|PHANTASY STAR ONLINE 2]]<br />
*[[ファイナルファンタジーXIV]]<ref>[http://game.watch.impress.co.jp/docs/interview/20121122_573208.html 「FFXIV:新生エオルゼア」プロデューサー吉田直樹氏インタビュー]</ref><br />
*[[ドラゴンクエストX 目覚めし五つの種族 オンライン|ドラゴンクエストX]]<ref>WEB+DB PRESS Vol.90 特集2 ドラゴンクエストX開発ノウハウ大公開 国民的RPGオンライン化へのチャレンジ</ref><br />
<br />
===ゲーム以外===<br />
*[[3DMLW]]プラグイン<br />
*[[Adobe Photoshop Lightroom]]<br />
*[[Aegisub]]<br />
*[[Anime Studio]]<br />
*Apache mod_lua<br />
*Asterisk extensions.lua<br />
*[[AviUtl]]<br />
*Computercraft - [[Minecraft]]の[[MOD]]<br />
*[[FlashAir]] - [[無線LAN]]機能を搭載した[[東芝]]製SDHC[[メモリーカード]]<ref>[https://flashair-developers.com/ja/documents/api/lua/ FlashAir Developers - ドキュメント - APIガイド - Lua機能]</ref><br />
*FLOW - 設定に使われている <ref>{{Cite web|title=darts/flow|accessdate=2013-09-20|url=http://darts.jaxa.jp/planet/tools/flow/}}</ref><br />
*[[MediaWiki]]([[mediawikiwiki:Extension:Scribunto|Scribunto]]拡張により)<br />
*[[MySQL Proxy]]<br />
*[[Nginx]]<br />
*[[nmap]]<br />
*OpenResty<ref>{{Cite web|title=Components - OpenResty|accessdate=2013-09-20|url=http://openresty.org/#Components}}</ref><br />
*[[OpenWrt]]<br />
*osm2pgsql - [[OpenStreetMap]] のデータを[[PostGIS]]に読み込むユーティリティ<ref>{{Cite web|title=Osm2pgsql - OpenStreetMap Wiki|accessdate=2013-09-20|url=http://wiki.openstreetmap.org/wiki/Osm2pgsql}}</ref><br />
*[[Redis]]<br />
*[[RigidChips]]<br />
*[[Renoise]]<br />
*[[Strata 3D]]<br />
*[[Tachyon]]<br />
*TileMan<ref>{{Cite web|title=TileMan|accessdate=2013-09-20|url=https://github.com/osmfj/tileman}}</ref><br />
*[[ヤマハ]]の[[ルータ]] (RTX1200、RTX810、SRT100、NVR500、FWX120)<ref>{{Cite web|title=Lua スクリプト機能|work=ヤマハネットワーク周辺機器 技術情報ページ|publisher=ヤマハ株式会社|date=2012-11-28|url=http://www.rtpro.yamaha.co.jp/RT/docs/lua/|accessdate=2013-03-28}}</ref><br />
<!-- ABC順 --><br />
*[[LuaTeX]]<br />
*[[Vim]] - ビルド時に有効化することで拡張スクリプト内でLuaを使用できる、派生のNeovimではLuaJITが内部的に利用されており組み込まれている<br />
*[[VLC Media Player]]<br />
*[[VOCALOID|VOCALOID3]] - ユーザー側で歌唱合成用データを加工するエフェクタを自作できる<ref>[http://shop.vocaloidstore.com ボーカロイドストア]でAPIリファレンスを配布している。</ref><br />
*[[Wireshark]]<br />
*{{要出典範囲|[[ツールアシステッドスピードラン]]製作用のエミュレータ|date=2015年10月}}(ドキュメントは{{要出典範囲|各エミュレータの「Lua Scripting Function List」|date=2015年10月}}を参照)。<br />
<br />
==脚注==<br />
{{脚注ヘルプ}}<br />
{{Reflist}}<br />
<br />
==関連書籍==<br />
*{{Cite book|和書|author=上野豊|title=入門Luaプログラミング|url=http://www.sbcr.jp/products/4797342727.html|accessdate=2013-04-02|date=2007-12-25|publisher=ソフトバンククリエイティブ|isbn=978-4797342727}}<br />
*{{Cite book|和書|author=浜中誠|title=スクリプト言語による効率的ゲーム開発:C/C++へのLua組込み実践|url=http://www.sbcr.jp/products/4797348552.html|accessdate=2013-04-02|date=2008-09-30|publisher=ソフトバンククリエイティブ|isbn=978-4797348552}}<br />
*{{Cite book|和書|author=浜中誠|title=スクリプト言語による効率的ゲーム開発 新訂版:LuaとC/C++連携プログラミング|url=http://www.sbcr.jp/products/4797361667.html|accessdate=2013-04-02|date=2010-09-29|publisher=ソフトバンククリエイティブ|isbn=978-4797361667}}<br />
*{{Cite book|和書|author=Roberto Ierusalimschy|translator=新丈径|title=Programming in Lua:プログラミング言語Lua公式解説書|url=http://ascii.asciimw.jp/books/books/detail/978-4-04-867797-4.shtml|accessdate=2013-04-02|date=2009-08-31|publisher=アスキー・メディアワークス|isbn=978-4048677974|quote=Programming in Lua. 2nd ed.}}<br />
*{{Cite book|和書|author=清水美樹|title=はじめてのLuaプログラミング:人気の軽量スクリプトでアプリケーション開発!|url=http://www.kohgakusha.co.jp/books/detail/978-4-7775-1413-7|accessdate=2013-04-02|date=2008-12-25|publisher=工学社|series=I/O books|isbn=978-4777514137}}<br />
<br />
==関連項目==<br />
*[[Squirrel]]<br />
*[[グルー言語]]<br />
*[[Wikipedia:Lua]] - ウィキペディアにおけるLuaの解説ページ。<br />
*[[SciTE]]<br />
<br />
==外部リンク==<br />
*[https://www.lua.org/ The Programming Language Lua]<br />
*[https://staff.aist.go.jp/yutaka.ueno/lua/docsjp.html Lua言語の紹介 産業技術総合研究所]<br />
*[http://karetta.jp/book-cover/lua Luaプログラミング入門]<br />
*[http://luaj.sourceforge.net/ Luaj]<br />
<br />
{{仮想化}}<br />
{{プログラミング言語一覧}}<br />
{{Computer-stub}}<br />
<br />
{{DEFAULTSORT:るあ}}<br />
[[Category:プログラミング言語|LUA]]<br />
[[Category:スクリプト言語|LUA]]<br />
[[Category:仮想機械]]</div>
210.251.91.153
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/WebResponse.php on line 46