【Lua】組み込み系言語総合 その4【Squirrel】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2011/03/30(水) 01:00:58.93使われるプログラミング言語についてのスレッドです
まとめwiki(なにか質問する前に必ずみること!)
http://wikiwiki.jp/lua/
その他の参考URLは>2から
■前スレ
【Lua】組み込み系言語総合 その3【Squirrel】
http://hibari.2ch.net/test/read.cgi/tech/1272643397/
■過去スレ
その2 http://pc12.2ch.net/test/read.cgi/tech/1243210301/
その1 http://pc12.2ch.net/test/read.cgi/tech/1205208141/
プログラミング言語 Lua
その3 http://pc11.2ch.net/test/read.cgi/tech/1160799232/
その2 http://pc8.2ch.net/test/read.cgi/tech/1063711237/
その1 http://pc5.2ch.net/tech/kako/1034/10341/1034182349.html
0002デフォルトの名無しさん
2011/03/30(水) 01:01:25.89Io Language
http://pc11.2ch.net/test/read.cgi/tech/1201100624/
2 part forth
http://pc11.2ch.net/test/read.cgi/tech/1073673931/
●●●●TCL/TKなら俺に聞け 2●●●●
http://pc11.2ch.net/test/read.cgi/tech/1177998764/
ECMAScript デス 3
http://pc11.2ch.net/test/read.cgi/tech/1190160481/
各種ライブラリ紹介スレ2(ゲ制作)
http://pc11.2ch.net/test/read.cgi/gamedev/1177886529/
Eclipse統合M31【Java/C++/Ruby/Python/Perl】
http://hibari.2ch.net/test/read.cgi/tech/1295886572/
「コンパイラ・スクリプトエンジン」相談室15
http://hibari.2ch.net/test/read.cgi/tech/1296214398/
Garbage Collection (GC)について語るスレ
http://pc11.2ch.net/test/read.cgi/tech/1141646850/
0003デフォルトの名無しさん
2011/03/30(水) 01:01:46.40□Lua
ttp://www.lua.org/ (本家)
ttp://lua-users.org/ (lua-users)
ttp://luaforge.net/ (LuaForge)
ttp://sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html(5.1マニュアル和訳)
Lua言語の紹介
ttp://staff.aist.go.jp/yutaka.ueno/lua/docsjp.html
入門Luaプログラミング
ttp://www.amazon.co.jp/dp/4797342722/
□Lua as an Effect File Format for OpenGL
ttp://prideout.net/blog/?p=1
□Squirrel
ttp://www.squirrel-lang.org/ (本家)
ttp://sourceforge.net/projects/squirrel/
ttp://sourceforge.net/projects/sqplus/ (SqPlus)
ttp://sourceforge.net/projects/squirrelsh/ (Squirrel Shell)
ttp://wikiwiki.jp/lua/?Squirrel_Lang%2Ftoc(wiki内2.1マニュアル和訳)
□AngelScript
ttp://www.angelcode.com/angelscript/
□Xtal(ゲーム向け。スタックを意識しなくていい?)
ttp://d.hatena.ne.jp/xtalco/
ttp://code.google.com/p/xtal-language/
ttp://blog.livedoor.jp/dankogai/archives/50836939.html
□elastiC
ttp://www.elasticworld.org/
0004デフォルトの名無しさん
2011/03/30(水) 20:57:01.710005デフォルトの名無しさん
2011/03/30(水) 23:21:49.590006デフォルトの名無しさん
2011/04/01(金) 22:15:31.63AngelScriptのcreateCoRoutineって、戻り値ないよね
どうやって実行タイミング合わせるの?
0007デフォルトの名無しさん
2011/04/02(土) 23:18:22.11あれでコルーチンする場合は、呼び出し元のスクリプトが終了した後にスクリプト内で呼び出された関数を別Contextで呼び出すってやってたはずなので、
元スクリプトの処理終了後に内部で呼び出した関数を実行する感じになってたはず。
イメージ的には、元スクリプトを呼び出すと、同時にコルーチンの分も処理するって感じ?
Luaとかのコルーチンとはちょっと違うかな。
0008デフォルトの名無しさん
2011/04/04(月) 13:07:52.13A = {X = 10}
B = {X = A.X + 10}
というテーブルが二つあって
A.X = A.X + 1とやれば
B.Xもポインタというか遅延評価みたいな形で
勝手に1増えるようにはできないでしょうか?
0009デフォルトの名無しさん
2011/04/04(月) 18:15:26.81A = {X = 10}
B = {}
setmetatable(B,{
__index = function(t,k)
if k=="X" then return A.X+10 end
end,
__newindex = function(t,k,v)
rawset(t,k,v)
if k=="X" then A.X = t[k] - 10 end
end})
print(A.X,B.X) -- 10 20
A.X = A.X + 1
print(A.X,B.X) -- 11 21
B.X = B.X + 1
print(A.X,B.X) -- 12 22
00108
2011/04/04(月) 21:02:21.75ありがとうございます。
CとかRubyとかオブジェクト指向も関数型も色々な言語触ったけど、
このメタテーブルっていうやつは難しいですね…
サイト見るとメソッドみたなものって書いてるけど使い勝手が違う感じですし。
関数の : と . の呼び出しの違いもなかなか理解できないし、
簡単な言語だと思ってたけど意外と難しいLua…orz
0011デフォルトの名無しさん
2011/04/04(月) 23:20:23.21だから、宣言が好きな人には難しい。
0012デフォルトの名無しさん
2011/04/06(水) 11:20:39.58小クラスの関数内から
親クラスの同名関数を呼ぶには
どうしたらいいでしょうか?
C++でいう、仮想関数内から、
親の関数を呼びたい感じです。
0013デフォルトの名無しさん
2011/04/06(水) 11:45:31.800014デフォルトの名無しさん
2011/04/06(水) 11:54:01.30言語が何かわからないとどうしようもないだが。
ここはLua専用スレじゃないからね。
しかし、かのアイマス2もLua採用してたのかー。
これはこれからもLua全盛が続きそうだなー。
0015デフォルトの名無しさん
2011/04/06(水) 12:02:24.77>>14
すみません、Luaです。
宜しくお願いします
0016デフォルトの名無しさん
2011/04/06(水) 12:06:40.560017デフォルトの名無しさん
2011/04/06(水) 14:39:41.83Luaのほうが大分大きくなる(というかこれからなりそうな)んだけど普通こんなモンなのかな
0018デフォルトの名無しさん
2011/04/06(水) 14:46:21.79ゲームのロジックとか>とりあえずLuaで書いて作業。パフォーマンスが気になるところは仕様FIXしてから機能をCに置き換えていく
ってやりかたにおちつく人が多いんじゃないかな
00196
2011/04/06(水) 22:37:54.89やっぱり良く分からない・・・
作成したコルーチンが実行されるのは、作成元のスクリプトの呼び出しが終わって、
次にContextMgrのExecuteScriptsが呼ばれたときみたい
キャラクターごとにコルーチンを1個作ってアニメーションさせようと思ったんだけど、
こんな使い方はできない?
0020デフォルトの名無しさん
2011/04/07(木) 01:03:38.89unexpected symbol near `#'
と怒られてしまいます。
もしかしてバージョンが古いのでしょうか?
Lua 5.0.3です。
0021デフォルトの名無しさん
2011/04/07(木) 01:12:03.000022デフォルトの名無しさん
2011/04/07(木) 01:13:15.12http://sugarpot.sakura.ne.jp/yuno/html/lua5_manual_ja.html
http://sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html
%と#は5.1からみたいね
0023デフォルトの名無しさん
2011/04/07(木) 01:33:35.810024デフォルトの名無しさん
2011/04/07(木) 01:39:03.26ありがとう、ありがとう、普通に#使ってる例が多かったのでまさかと思って
しまいました。
さて、5.1入れるかな。。。
0025デフォルトの名無しさん
2011/04/07(木) 09:08:27.00the number of ってことじゃね?
シェルスクリプトとかでも使ってるし
0026デフォルトの名無しさん
2011/04/07(木) 09:25:34.94http://www.weblio.jp/content/%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E3%83%9E%E3%83%BC%E3%82%AF
ハッシュマークとは、一般的に、番号を記す際に用いられる記号である。番号記号と呼ばれることが多い。
ハッシュマークは番号の前に置かれ、続く数字が番号であることを示す。
だってよ
0027デフォルトの名無しさん
2011/04/07(木) 18:29:33.650028デフォルトの名無しさん
2011/04/07(木) 23:19:07.27>こんな使い方はできない?
できるよ。
ただ、AngelScriptのサンプルのCoroutineだとちょっと面倒かも。
あれはコルーチンというよりスレッドに近いし。
Luaみたいにコルーチンオブジェクトがあって、そいつをメソッド呼び出しとかできると楽なんだけどね。
Coroutine c;
c.SetFunc(〜);
…
c.Execute();
って感じで、一時停止したコルーチンの続きを実行させるときにメソッド呼び出すようにすれば楽。
0029デフォルトの名無しさん
2011/04/08(金) 07:04:36.65( ・∀・) < Lua!!
⊂/ 9) \____
q( /
> >
0030デフォルトの名無しさん
2011/04/09(土) 22:50:49.63うーむ
じゃあ、Luaみたいな使い方が出来るようにアドオンを改造してみるかな
回答ありがとう
0031デフォルトの名無しさん
2011/04/13(水) 20:12:24.88io.openのモードの後ろにbを付ければバイナリで開けることはわかったんですが、
戻り値が文字列なのでどうすれば『先頭の何ビットを取る』などのバイナリ操作ができるのかがわかりません。
解説しているサイトが見つからないのでそういったバイナリ操作がまとめられたサイトなどがあれば教えて欲しいです。
0032デフォルトの名無しさん
2011/04/13(水) 21:04:45.40http://fallabs.com/mikio/tech/promenade.cgi?id=100
補うべく、pack、unpack、split、strstr、codecなどのユーティリティも搭載しているので、簡単なデータ処理なら一切他のライブラリに頼ることなく実現できる。
こういう機能のある、拡張ライブラリ使うなら
lpackというライブラリはどうかな。
http://d.hatena.ne.jp/eggman/touch/20080207/1202423141
使わないとこうなる。
http://d.hatena.ne.jp/eggman/touch/20080205/1202251800
ネット関連で使ってるひとが少ないから、細かいtips記事にしている人も少ないな。
0033デフォルトの名無しさん
2011/04/13(水) 21:53:59.11説明不足ですみません…。それも見たのでが配布ソフトのスクリプト言語で
Luaを使っているので、Cで書かれたライブラリは読み込めない状態です…。
バイナリ計算のand,or,notなどは自作できましたので、できなくて困っているのは
『文字列の何ビット目から何ビット目までを整数(ビット列)で切り出す』という操作です。
0034デフォルトの名無しさん
2011/04/13(水) 22:32:59.26一旦テーブルにつめちゃったほうが扱いやすいんじゃないの?
function Hoge(fname)
local t = {}
local f = io.open(fname,"rb")
if not f then return nil end
local data = f:read("*a")
for b in string.gmatch(data,".") do
table.insert(t,string.byte(b))
end
f:close()
return t
end
t = Hoge("hoge.bin")
0035デフォルトの名無しさん
2011/04/14(木) 09:07:51.56文字コードを取り出すのはstring.byteでしたか。
これに気づいていませんでした。ありがとうございます。
0036デフォルトの名無しさん
2011/04/14(木) 09:51:35.560037デフォルトの名無しさん
2011/04/14(木) 09:56:30.700038デフォルトの名無しさん
2011/04/14(木) 12:00:05.59Unisys の 1985 年の LZW についての特許は失効
0039デフォルトの名無しさん
2011/04/14(木) 14:22:04.13os.execute("dir") > Dir.txt
でプロンプトの内容をテキストファイルに保存してファイルを開く方法しか思いつきませんでした。
直接プログラムで読み込む方法はないでしょうか?
0040デフォルトの名無しさん
2011/04/14(木) 14:41:38.59無い機能はさっくり作るって発想ができない人は lua は不幸になるだけなので使わないほうがいいですよ
0041デフォルトの名無しさん
2011/04/14(木) 14:50:34.37004239
2011/04/14(木) 15:08:49.74>>40
その不幸になる言語でスクリプト組まざるおえないユーザーですみません。
0043デフォルトの名無しさん
2011/04/14(木) 15:26:14.08>>40 はちょっと頭の切り替えしたほうがいいんじゃない?
くらいのことを言ってると思うんだけど
0044デフォルトの名無しさん
2011/04/14(木) 15:39:24.39本当にrequireやpackage.loadlibに該当するAPIを用意してないのか怪しいもんだけどねえ
0045デフォルトの名無しさん
2011/04/15(金) 01:40:03.820046デフォルトの名無しさん
2011/04/15(金) 09:35:51.52Cが使えない環境って言うんだから
しょうがないさ。
>>33
組み込まれた物を使う側じゃなくて、
組み込みを用意して使う側がおおいから
名前に、33付けてた方がイイかもね。
0047デフォルトの名無しさん
2011/04/15(金) 11:53:58.800048デフォルトの名無しさん
2011/04/15(金) 14:23:04.940049デフォルトの名無しさん
2011/04/15(金) 16:15:11.42カーネルしか作らない有能な怠け者は反感を買う
0050デフォルトの名無しさん
2011/04/15(金) 19:12:56.700051デフォルトの名無しさん
2011/04/16(土) 05:16:14.98内製ツールなら、こんなところで聞くよりも組み込んだプログラマにまず文句を言いに言ったほうが早い
あとはゲームとかの類での制限つき環境……だけどその状況でファイル一覧とったり、GIFパースしたりをする理由が謎
0052デフォルトの名無しさん
2011/04/16(土) 11:00:01.89横取りすればいけるんじゃね
ウィルス扱いされるかもしらんけど
0053デフォルトの名無しさん
2011/04/17(日) 20:53:28.99ウィルスと勘違いする対策ソフトはいくつかあるみたい。
DirectInputの初期化とかでも「ウィルスだ!」とか勘違いするし。
0054デフォルトの名無しさん
2011/04/19(火) 23:16:39.95この関数にthisを渡したい場合、どのように書くのが定石ですか?
0055デフォルトの名無しさん
2011/04/19(火) 23:41:13.940056デフォルトの名無しさん
2011/04/20(水) 05:10:49.47それだけの情報だと状況次第としか言いようがないな
0057デフォルトの名無しさん
2011/04/20(水) 23:29:46.82io.popenとか
0058デフォルトの名無しさん
2011/04/21(木) 00:10:52.420059デフォルトの名無しさん
2011/04/21(木) 02:49:01.910060デフォルトの名無しさん
2011/04/21(木) 07:54:36.60( ・∀・) < Lua!!
⊂/ 9) \____
q( /
> >
0061デフォルトの名無しさん
2011/04/21(木) 21:59:26.06普段はほとんど変更しないけど、時々異なるフラグを設定するような関数とかに使うと便利、ってぐらいじゃないかね。
必須ってわけじゃないけど。
0062デフォルトの名無しさん
2011/04/21(木) 22:26:50.81C++にだってデフォルト引数はあるだろ。
改めて質問するようなことなのかねえ。
0063デフォルトの名無しさん
2011/04/22(金) 00:06:46.93本当はより汎用的なパターンマッチングが良いんだけど、C++だと面倒だからなあ。
0064デフォルトの名無しさん
2011/04/22(金) 00:08:09.010065デフォルトの名無しさん
2011/04/22(金) 00:44:39.45DirectXとか使ってると、特殊な場合以外はフラグはデフォでOKなのが多いから便利だよ。
0066デフォルトの名無しさん
2011/04/24(日) 20:59:44.12組み入れではなく単体で使うならGUIの構築が楽なTclに軍配があがりそうですが、
それ以外にはどんなことがありますでしょうか?
0067デフォルトの名無しさん
2011/04/24(日) 22:27:02.59何と比べてるの?
主語が抜けてる。
0068デフォルトの名無しさん
2011/04/24(日) 22:41:21.52失礼しました。
主語はLuaです。
Luaスレと勘違いしてたんです。
0069デフォルトの名無しさん
2011/04/25(月) 00:22:41.13オレ自身はLuaユーザーじゃないので大雑把な話しかできないけど、
C関数をスクリプト中で使いやすいのはどちらも同じ。
Tclは原則文字列ベースでしか処理できないけど
Luaは数値、文字列、リスト、テーブルが使える。
Tclはスクリプトエンジンでもかなり遅いほうだけど、
LuaはブラウザのJavascriptに迫る速度。
Tclは言語構文としてはオブジェクト指向対応で
止まってるようなものだけど、
LuaはJIT対応やコルーチン対応など、
流行の技術もある程度押さえられている。
こんなところかな。
0070デフォルトの名無しさん
2011/04/25(月) 01:45:57.13Tclはウィジェット形式のアプリには向くがゲームには向かない。GTKとかWindowsAPI(DirectX不使用)とかでゲームを作ってるのと同じ。
0071デフォルトの名無しさん
2011/04/25(月) 01:49:32.650072デフォルトの名無しさん
2011/04/25(月) 01:59:22.82半導体関係のツールまわりでは事実上の標準
0073デフォルトの名無しさん
2011/04/25(月) 07:31:00.03言語として構文の拡張性が高いのもTcl
構文の拡張性が高けりゃ良いってもんじゃないと教えてくれるのもTcl
0074デフォルトの名無しさん
2011/04/25(月) 22:05:57.35Tkとセットで独立した汎用言語として利用されることが普通になっています。
将来的にはそれと同じことがLuaにも起こらないのでしょうか?
0075デフォルトの名無しさん
2011/04/25(月) 22:17:58.91blue = Color.new(0, 0, 255)
screen:print(200, 130, "Hello World!", blue)
screen.flip()
while true do
screen.waitVblankStart()
end
がPSPで動作しますが
while true do
screen.waitVblankStart()
の部分は何を表していますか?
0076デフォルトの名無しさん
2011/04/25(月) 22:23:44.700077デフォルトの名無しさん
2011/04/26(火) 00:02:33.070078デフォルトの名無しさん
2011/04/26(火) 00:40:13.320079デフォルトの名無しさん
2011/04/26(火) 00:54:38.36むしろ tk とセットに使うのは tcl 以外の言語で
純粋な tcl 用途以外は壊滅気味じゃね?
0080デフォルトの名無しさん
2011/04/26(火) 08:15:36.66EDAでは普通に使われてるけど。
tkも含めて。
小物ツール作るだけなら異常に生産性高いから
もう少し見直されても良い気がするんだがなぁ。
0081デフォルトの名無しさん
2011/04/26(火) 10:30:17.19.l configure -text {目があぁぁぁ!}
}
pack [label .l -text {Tclは滅びん。何度でも蘇るさ。}]
pack [button .b -text {バルス} -command megaaa}
0082デフォルトの名無しさん
2011/04/26(火) 18:56:55.89最後の閉じ括弧が}じゃなくて]でないの?
じゃないと動かん。
0083デフォルトの名無しさん
2011/04/26(火) 22:51:02.91C++で開発を依頼したら、とんでもなく高額の見積りを出されたことがある。
理由を尋ねたら、優秀なC++プログラマは少ないうえ、開発にもそれなりの期間を要するのでその程度になるとのこと。
あきれて物も言えなかった。
それで、仕方なくTcl/Tkで内製したよ。
簡易言語でチャチャッと開発・・っていうのは良くないという意見もあるけど、
昨今のphpの勢いなどを見ると、コストダウンのためならTcl/Tk的な安易言語の積極活用もありだと思う。
0084デフォルトの名無しさん
2011/04/26(火) 23:12:45.530085デフォルトの名無しさん
2011/04/27(水) 01:38:31.06見積もりは正しい
0086デフォルトの名無しさん
2011/04/27(水) 05:13:35.430087デフォルトの名無しさん
2011/04/27(水) 06:58:34.99言語指定しなきゃいいジャン
0088デフォルトの名無しさん
2011/04/27(水) 12:23:46.17間違ったこと言ってないと思うが、C++を指定したのが間違ってるんじゃ。
0089デフォルトの名無しさん
2011/04/28(木) 07:02:19.90高くせざるを得ない。
0090デフォルトの名無しさん
2011/04/28(木) 19:12:13.54連結とは例えば、
t1 = {"aaa", "bbb"}
t2 = {"ccc", "ddd", "eee"} から
{"aaa", "bbb", "ccc", "ddd", "eee"} を作る場合です。
0091デフォルトの名無しさん
2011/04/28(木) 22:52:55.700092デフォルトの名無しさん
2011/04/29(金) 08:13:48.86t1 = {"aaa", "bbb"}
t2 = {"ccc", "ddd", "eee"}
t3 = {unpack(t1)} --shallow copy
table.foreach(t2, function(k,v) table.insert(t3, v) end)
0093デフォルトの名無しさん
2011/04/29(金) 10:30:02.86当座は少々高くてもARMを使ってしのぐしかないのか
0094デフォルトの名無しさん
2011/04/29(金) 13:57:38.81内容次第だね
http://hibari.2ch.net/test/read.cgi/tech/1302963535/
↑のスレなどで誘導してもらうといいよ
0095デフォルトの名無しさん
2011/04/30(土) 02:53:42.27どのバインダも一長一短だな
0096デフォルトの名無しさん
2011/05/01(日) 02:00:31.590097デフォルトの名無しさん
2011/05/01(日) 12:31:36.26coroutine.yield したりしてスクリプトが中断状態にあるときに、
その時点で実行中のスクリプトファイル名(または関数名)と行番号
を得るにはどうすればいいんですか?
0098デフォルトの名無しさん
2011/05/01(日) 12:38:54.26lua_Debug
0099デフォルトの名無しさん
2011/05/01(日) 22:19:09.86返信遅くなって申し訳ないです。
参考になりました。ありがとうございました。
0100デフォルトの名無しさん
2011/05/01(日) 23:16:56.19露骨にAndroidを狙ってくる・・・いやらしい・・・
ん?スマフォはARMv5TEとv7か
0101デフォルトの名無しさん
2011/05/01(日) 23:52:10.31今回も、スマートフォン的に中途半端なので、組み込み目的だと思う。
QUALCOMM Inc. has sponsored an ARM port of LuaJIT 2.0 in January 2011.
http://luajit.org/sponsors.html
■ このスレッドは過去ログ倉庫に格納されています