プログラミング言語 Lua その3
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2006/10/14(土) 13:13:52前々スレ http://pc5.2ch.net/tech/kako/1034/10341/1034182349.html
前スレ http://pc8.2ch.net/test/read.cgi/tech/1063711237/
本家 http://www.lua.org/
lua-users http://lua-users.org/
LuaForge http://luaforge.net/
Lua 5.1 リファレンスマニュアル(日本語訳)
http://sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html
0894デフォルトの名無しさん
2008/03/03(月) 08:58:58マイノリティか?海外で大人気のPythonは参照カウント&GC式だぞ。Squirrelと同じ。
Pythonのスタックレス版はどっかのネトゲのサーバーに使われてたはず。
>毎度のカウンタ操作による負担が重いという弱点
これそのままメリットなんだよね。マーク&スイープGCは回収している間プログラムが
とまるって事実は忘れちゃいけない。参照カウントはGCのコストをちょっとずつ払って
いるから、止まることは無い。
一般的に嫌われてるってのはただ単に>>893の個人的な感想じゃないか?
両者のメリット・デメリットを把握して運用するのが重要だと思う。
0895デフォルトの名無しさん
2008/03/03(月) 09:44:53PHPとかIoもやね。あとObjective-Cも。
0896デフォルトの名無しさん
2008/03/03(月) 11:17:30ttp://pc11.2ch.net/test/read.cgi/tech/1203611273/182
0897デフォルトの名無しさん
2008/03/03(月) 14:32:21凄くみにくい言い争いに発展してるんだがwww
0898デフォルトの名無しさん
2008/03/03(月) 19:00:16参照カウントにも利点があることが分かったよ。なんとなく。
あと、英語が読めないと開き直ることに、利点がないのも分かった。はっきりと。
0899デフォルトの名無しさん
2008/03/03(月) 20:15:59Squirrelバインダ製作中。ただ、作ってるうちにSqPlusへの理解が深まったせいで、SqPlus
使えばいいんじゃね?みたいな雰囲気に。もうだめぽ
とりあえず
DefineClass< SampleClass >( "SampleClass", vm )
.constructor()
.method( "testFunction", &SampleClass::testFunction )
.method( "testFunction2", &SampleClass::testFunction2 );
のようにバインドできるようにしたけど、これから作りこんでいくかどうか悩んでる。
メンバ関数ポインタの配列をsq_get/settypetagを使って設定してるけど、
使い方間違ってるぽ\(^o^)/オワタ
0900デフォルトの名無しさん
2008/03/04(火) 00:46:02さらに需要ないんだろうなあ
0901881
2008/03/04(火) 00:50:25メール欄に881ってw
0902デフォルトの名無しさん
2008/03/04(火) 07:56:42うーん、この辺が入門としてはお勧めかな。
ttp://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-13308-7
割と大きい図書館ならおいてあるよ。
マーク&すいーぷの欠点はそのとおり。
0903デフォルトの名無しさん
2008/03/04(火) 08:42:52どっちがいいかな?とアンケート。
1.
void foo( cpp_ptr<TestClass> arg )
{
0904デフォルトの名無しさん
2008/03/04(火) 08:45:230905デフォルトの名無しさん
2008/03/04(火) 08:55:511.
void foo( cpp_ptr<TestClass> arg )
{
/*なにか処理*/
}
2.
void foo( TestClass* arg )
{
/*何か処理*/
}
//ヘッダファイルのどこか
SQPP_DECLARE_CLASS( TestClass );
2はSqPlusと同じ方法。1は代替案って感じ。
基本型以外は全部C++のクラスと仮定してエクスポートしてもいいんだけど…
(そうしたらSQPP_DECLARE_CLASSいらない)
0906デフォルトの名無しさん
2008/03/04(火) 13:18:02というか逃げられない(GCしないという選択肢がない)分、有害ですらありうるな。
0907デフォルトの名無しさん
2008/03/04(火) 13:31:54GC一般の話題は専用スレがあります。
過疎スレですからそちらを使って頂けないでしょうか。
Garbage Collection (GC)について語るスレ
http://pc11.2ch.net/test/read.cgi/tech/1141646850/
0908デフォルトの名無しさん
2008/03/04(火) 13:47:301
0909デフォルトの名無しさん
2008/03/04(火) 14:15:57GC使わないようなコード書くなら、組み込み言語使う意味が大幅に薄れるような。
そんな涙ぐましい努力をするくらいなら最初からC/C++で書くよ。
俺も参照カウントが優れた方法だとは思わないが、こと組み込み向けならば
メリットがあると個人的には思うよ。
0910デフォルトの名無しさん
2008/03/05(水) 01:08:52マジックナンバーばっかで何を根拠に調整してんのか
よくわからんしなぁ。
0911デフォルトの名無しさん
2008/03/05(水) 08:12:59うん、だから何度もいってるように「俺の好みだからほっとけ」といわれれば何もいうことはないよ。
「実行速度は遅くてもいい」って人には参照カウント式で十分なわけだから。
それでは十分じゃないって人が多いから議論になるわけで。
0912デフォルトの名無しさん
2008/03/05(水) 08:24:510913デフォルトの名無しさん
2008/03/05(水) 11:43:390914デフォルトの名無しさん
2008/03/05(水) 16:16:32dクス
でも結局一般的な型以外は全部C++のオブジェ
クトと仮定することにしたよ。SqPlusがこの方式
を採用してない理由はなにか問題があるんだろうか…
実際運用してみないと分からないか。
>>911
リファレンスカウント&マークスイープGCのハイブ
リット型って言うほど実行速度遅いの?
今妄想してる組み込み向け言語ではリファレンスカ
ウント採用しようかと思ってるんだが(´Д`;)
Flashでゲーム作ったことあるんだけど、GCで止まる
のは心臓に悪かった。それとBitmapDataが必要なく
なったら明示的に破棄しないといけないのがGC言語
なのになんでさ?って思った。
って経験からリファレンスカウント式を採用しようと
思ったわけなんだが…
>>912
一般GCじゃなくて組み込み言語のGCの話題だし
ここでいいんでない
0915デフォルトの名無しさん
2008/03/05(水) 18:30:46明らかにGC一般の話だろ。
0916デフォルトの名無しさん
2008/03/05(水) 20:00:370917デフォルトの名無しさん
2008/03/05(水) 20:54:49って話にすりかえるのがまずいんですよ。
ダメといわれた言語使ってる人が不愉快でしょ。
組込み向け言語全般で共有してるスレなんだから、
各言語の優劣とかの議論に結びつく話は自重する方向で行こうよ。
0918デフォルトの名無しさん
2008/03/05(水) 20:59:070919デフォルトの名無しさん
2008/03/05(水) 23:31:21カラーリングだけなら他のエディタでもできるし
0920デフォルトの名無しさん
2008/03/06(木) 08:26:41一回実行させた後にスタック弄って値与えるとか?
初期値与える物と与えない物がある、ついでに変数名は変わるんで
引数として値を与える以外の方法でお願い
具体的に言うとRigidChipsのLUAの挙動を再現したい
0921デフォルトの名無しさん
2008/03/06(木) 11:40:46Squirrel内にあるデータ構造をC++に渡すには
どのような方法がございますか?
0922デフォルトの名無しさん
2008/03/06(木) 16:05:00なんか納得いかない。
class abc {
v = 0;
};
local a = abc();
local b = abc();
a.v = 1;
b.v = 2;
a = b;
b.v = 3;
print("a = "+ a.v + "\n");
で出力
a = 3
0923デフォルトの名無しさん
2008/03/06(木) 16:37:260924デフォルトの名無しさん
2008/03/06(木) 17:29:59レスありがとうございます。
なるほど、そうするとホスト側でメタメソッドとかで下手にいじらないほうがよさそうですねぇ。
0925デフォルトの名無しさん
2008/03/06(木) 18:20:45意味がわからないな。たとえば始めにbarに5をセットしても
プログラム内部にbar=0と書いてあればそこでクリアされてしまう
"初期値を設定"と"挙動を再現"とは絶対無関係でしょ
挙動を再現するならゲームでいうセーブロードの処理を自分で
組み込んで、必要ならセーブデータ改変するとかじゃないか
0926デフォルトの名無しさん
2008/03/06(木) 19:53:21RigidChips用のスクリプトがこんな感じ(LUAの言語仕様おかしいかもしれないが気にしないでくれ)
val{
a (max=10,min=-10,default=0)
}
lua{
if _key(0)==1 begin a=a+1 end
if _key(1)==1 begin a=a-1 end
}
って感じなんだが
aの初期値を与えてないと値なくてエラー起きるってのをどうにかしたい
(プログラムでvalの部分一度解析させてLUAのファイルに落とし込み実行して
グローバル変数として宣言させるとかだろうか?
0927デフォルトの名無しさん
2008/03/06(木) 20:32:35何が分からなくて、何がしたいのかさっぱりわからない。
0928デフォルトの名無しさん
2008/03/06(木) 20:44:49したいこと 初期値を与えたい
初期値であって引数じゃないのが問題
初期値はvalって部分で与えられてる
luaのプログラムは別に用意されてる(luaの中で変数宣言しない事もあるのでそのまま実行するとnilだ言われる)
0929デフォルトの名無しさん
2008/03/06(木) 21:25:38から実行すればいい話なんじゃねーの。
0930デフォルトの名無しさん
2008/03/06(木) 21:32:490931デフォルトの名無しさん
2008/03/06(木) 21:39:31それにRigid Chipsの ページ覗いたらlua内で用いる場合は
すべて大文字にするって書いてあるけどなんでAじゃないんだ?
0932デフォルトの名無しさん
2008/03/06(木) 21:48:58うろ覚えのまま、雰囲気だけ伝えようとガーっと書いてったもんで
大文字ってのも言われて思い出したぐらいでした
グローバルテーブルにてきとーに値の詰む方法調べてるんですが…
コンパイルとdofileだけしかまだ理解出来てないんで難しい…
とりあえず一歩前進した気がします。ありがとうございます。
0933デフォルトの名無しさん
2008/03/06(木) 22:03:17RigidChips を例に出すから余計に混乱した。殆ど関係なかったな。
既に言われてるように、スクリプトを実行する前に、
変数に初期値を代入しておけばいいだけのことだよ。
まぁがんばれ。
0934デフォルトの名無しさん
2008/03/06(木) 22:17:43最初にa=0って書けばいいのがわからなかったのか
それでも_key()がないっエラーでるだろうから頑張れ
0935デフォルトの名無しさん
2008/03/06(木) 22:27:50>最初にa=0って書けばいい
これkwsk。グローバルに詰むのを簡単に実現できるって事ですか?
_key()はCの関数を呼ぶ方法とか、そこらへんでやってる人がいるのでそれ参考にしてどうにかなりそうです
0936デフォルトの名無しさん
2008/03/06(木) 22:30:39ようは未初期化の変数触っててヤバイって話なのかな。
0937デフォルトの名無しさん
2008/03/06(木) 22:32:39もう少し…もう少しでRigidChipsのモデルを現実に引っ張り出せる…
0938デフォルトの名無しさん
2008/03/06(木) 23:02:25lua.exeでdofile("hoge.lua")したらaがnil だってエラーでたなら
hoge.luaの始めのあたりにa=0とでも書いとけっていってる
あまりに初歩的すぐるから次からもっと勉強してからおいでってこと
0939デフォルトの名無しさん
2008/03/06(木) 23:39:28(非常に稀に呼ばれるLUA内のサブルーチンでnilがあった時にエラーが出るはずがいきなりリセットが掛かりそのまま最初から?)
変数維持したままプログラムの再loadとかも出来るんでしょうか?
とりあえずリファレンスのテーブルとスタックの辺り読んだ感じだと
valで初期値が与えられている変数全部にlua_pushnumberとlua_setglobal適用してやれば良い気がしてるんですが…
0940デフォルトの名無しさん
2008/03/07(金) 00:06:130941デフォルトの名無しさん
2008/03/07(金) 00:18:51言われた通りにやった方が楽ではないかという心理で
とりあえず原因不明のエラー\(^o^)/今日はもう寝て明日続きやってみます
0942デフォルトの名無しさん
2008/03/07(金) 02:00:22Val {
Handle(default=0,min=-20,max=20,step=5)
}
Key {
2:Handle(step=-0.5) //キー2(初期値←)が押されてる間handle-0.5
3:Handle(step=0.5) //キー3(初期値→)が押されてる間handle+0.5
}
こんなのが出てくるんだけど、これはいったいどうなってるんだろう?
Keyはテーブルではなさそうだし、luaではキーワード付き引数は使えないはず。
RigidChipsの内部で解析されてるんだろうか。
0943デフォルトの名無しさん
2008/03/07(金) 04:06:47lua{}ブロック内以外は、Luaとは無関係。
内部で解析されてる、で合ってる。
0944デフォルトの名無しさん
2008/03/07(金) 08:54:420945デフォルトの名無しさん
2008/03/07(金) 09:20:150946デフォルトの名無しさん
2008/03/07(金) 10:13:180947デフォルトの名無しさん
2008/03/07(金) 12:07:020948デフォルトの名無しさん
2008/03/07(金) 12:22:41に一票。
0949デフォルトの名無しさん
2008/03/07(金) 12:56:350950デフォルトの名無しさん
2008/03/07(金) 13:11:27統合いらなくね?
【Lua】組み込み言語【squirrel】
0951デフォルトの名無しさん
2008/03/07(金) 13:17:54あと細かいがSquirrelのSは大文字で
0952デフォルトの名無しさん
2008/03/07(金) 14:20:01【Lua】組み込み言語総合【Squirrel】
に一票で。
0953デフォルトの名無しさん
2008/03/07(金) 14:56:14に一票
0954デフォルトの名無しさん
2008/03/07(金) 15:43:15wikiあるんだからリンクあんま要らんかも。長いけど、まあ参考にして貰えれば。
Squirrelの話題も増えてたし、Luaじゃなくて組み込み全体のスレにするっていうのは可決でいいよね?
↓↓↓
LuaやSquirrelなど、組み込み用途で使われるプログラミング言語についてのスレッドです
まとめwiki(なにか質問する前に必ずみること!)
http://wikiwiki.jp/lua/
その他参考URLは>>2
■過去スレ
その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
■関連してるかもしれないスレ
【Perl,PHP】LLバトルロワイヤル【Ruby,Python】
http://pc11.2ch.net/test/read.cgi/tech/1188997302/
Io Language
http://pc11.2ch.net/test/read.cgi/tech/1201100624/
Garbage Collection (GC)について語るスレ
http://pc11.2ch.net/test/read.cgi/tech/1141646850/
各種ライブラリ紹介スレ2(ゲ制作)
http://pc11.2ch.net/test/read.cgi/gamedev/1177886529/
0955デフォルトの名無しさん
2008/03/07(金) 15:43:37■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マニュアル和訳)
■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マニュアル和訳)
■他、前スレに載ってた言語
The Pawn language(だれも使ってなさそうな、組み込み言語)
ttp://www.compuphase.com/pawn/pawn.htm
NullLogic Embedded Scripting Language
ttp://sourceforge.net/projects/nesla/
Xtal(ゲーム向け。スタックを意識しなくていい?)
ttp://d.hatena.ne.jp/xtalco/
ttp://code.google.com/p/xtal-language/
ttp://blog.livedoor.jp/dankogai/archives/50836939.html
0956デフォルトの名無しさん
2008/03/07(金) 16:32:40【Lua】組み込み言語総合【Squirrel】
に一票
0957デフォルトの名無しさん
2008/03/07(金) 17:19:25リンクは同じものを省略した。まあ参考程度に。
>954の文章の方がすっきりしてていいな。
あと関連スレのLLとGCはなくてもいいんじゃね。
--
プログラム言語の処理系をアプリケーションに組み込む話と
それに適した言語についてのスレです。話題の中心はLuaと
Squirrelですが他の言語もこの趣旨に沿う範囲でOK。
関連スレ
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/
「コンパイラ・スクリプトエンジン」相談室12
http://pc11.2ch.net/test/read.cgi/tech/1188688416/
参考URL
Lua言語の紹介
http://staff.aist.go.jp/yutaka.ueno/lua/docsjp.html
入門Luaプログラミング
http://www.amazon.co.jp/dp/4797342722/
0958デフォルトの名無しさん
2008/03/07(金) 19:06:480959デフォルトの名無しさん
2008/03/07(金) 20:17:18ここは?目的別が初級者向けな気がするけど
0960デフォルトの名無しさん
2008/03/07(金) 22:56:100961デフォルトの名無しさん
2008/03/08(土) 08:37:38に一票
0962デフォルトの名無しさん
2008/03/08(土) 09:37:35http://pc11.2ch.net/test/read.cgi/tech/1141646850/
0963デフォルトの名無しさん
2008/03/08(土) 11:29:360964962
2008/03/08(土) 20:28:560965デフォルトの名無しさん
2008/03/08(土) 23:20:20>957は要らないと書いているので要るという意見がでるのは重要。
ところで>954と>957は微妙に意味は違うが>954でまとまるのかな。
954ならアプリケーションの言葉を入れて欲しい。
↓↓↓
LuaやSquirrelなどアプリケーションへの組み込み用途で
使われるプログラミング言語についてのスレッドです
0966デフォルトの名無しさん
2008/03/08(土) 23:31:140967デフォルトの名無しさん
2008/03/09(日) 01:07:36> 使われるプログラミング言語についてのスレッドです
よいと思います
0968デフォルトの名無しさん
2008/03/09(日) 06:43:360969デフォルトの名無しさん
2008/03/10(月) 05:02:23CVSのでーたってかんたんによみこめるの?
0970デフォルトの名無しさん
2008/03/10(月) 06:14:45うん、簡単。
checkoutでリポジトリから読み込んで手元にコピーができるよ。
0971デフォルトの名無しさん
2008/03/10(月) 11:07:510972デフォルトの名無しさん
2008/03/10(月) 14:29:170973デフォルトの名無しさん
2008/03/10(月) 19:30:29ファイル入力って書いてあるじゃん。
0974デフォルトの名無しさん
2008/03/10(月) 19:44:33でーたってかんたんって書いてあるじゃん。
0975デフォルトの名無しさん
2008/03/10(月) 21:53:21答えてる方は意地が悪いな
0976デフォルトの名無しさん
2008/03/10(月) 22:12:27お前が教えてあげればいいだけなのにな
0977デフォルトの名無しさん
2008/03/10(月) 22:48:410978デフォルトの名無しさん
2008/03/10(月) 22:53:55俺たちはその回答を待っててやればいいのさ
0979デフォルトの名無しさん
2008/03/10(月) 23:42:530980デフォルトの名無しさん
2008/03/10(月) 23:44:54糞だな。
0981デフォルトの名無しさん
2008/03/10(月) 23:48:590982デフォルトの名無しさん
2008/03/11(火) 00:25:050983デフォルトの名無しさん
2008/03/11(火) 01:05:350984デフォルトの名無しさん
2008/03/11(火) 08:01:48エクセルでもつかえよ
0985デフォルトの名無しさん
2008/03/11(火) 13:07:09【Lua】組み込み系言語総合【Squirrel】
http://pc11.2ch.net/test/read.cgi/tech/1205208141/
0986デフォルトの名無しさん
2008/03/11(火) 16:07:020987デフォルトの名無しさん
2008/03/11(火) 17:14:070988デフォルトの名無しさん
2008/03/11(火) 17:46:510989デフォルトの名無しさん
2008/03/11(火) 20:23:190990デフォルトの名無しさん
2008/03/11(火) 20:38:07CSVファイル専用の関数が標準であるわけではないので、
「関数一つで簡単に解析できる」という意味ならたしかに簡単じゃない。
ただ正規表現は標準であるし、難易度はsquirrelやxtalなんかの他のスクリプト言語と変わらんぞ。
>>983
もともと組み込みや設定ファイル用に作られた言語なので、標準出力は当然ライブラリ扱い。
これはバイナリサイズを小さく保つことに貢献しているともいえるな。
0991デフォルトの名無しさん
2008/03/11(火) 21:14:13煽りに冷静に返すその姿に萌え
0992デフォルトの名無しさん
2008/03/11(火) 21:32:04俺も萌えた
0993デフォルトの名無しさん
2008/03/11(火) 21:35:52レス数が950を超えています。1000を超えると書き込みができなくなります。