1read 100read
2013年17プログラム83: 【Lua】組み込み系言語総合 その6【Squirrel】 (232) TOP カテ一覧 スレ一覧 2ch元 削除依頼
TypeScript part1 (425)
出されたお題をコーディングして罵られるスレ (685)
OpenWatcom C++ (754)
C/C++のライブラリ総合スレ (181)
【Lisp】プログラミング言語 Clojure #2【JVM】 (967)
C/C++のライブラリ総合スレ (181)

【Lua】組み込み系言語総合 その6【Squirrel】


1 :2013/03/10 〜 最終レス :2013/09/25
LuaやSquirrelやAngelScriptなどアプリケーションへの組み込み用途で
使われるプログラミング言語についてのスレッドです
まとめwiki(なにか質問する前に必ずみること!)
http://wikiwiki.jp/lua/
その他の参考URLは>2から
■前スレ
【Lua】組み込み系言語総合 その5【Squirrel】
http://toro.2ch.net/test/read.cgi/tech/1321063450/
■過去スレ
その4 http://hibari.2ch.net/test/read.cgi/tech/1301414458/
その3 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 :
□Lua
ttp://www.lua.org/ (本家)
ttp://lua-users.org/ (lua-users)
ttp://luaforge.net/ (LuaForge)
http://sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html(5.1マニュアル和訳)
Lua言語の紹介
http://staff.aist.go.jp/yutaka.ueno/lua/docsjp.html
入門Luaプログラミング
http://www.amazon.co.jp/dp/4797342722/
□Lua as an Effect File Format for OpenGL
http://prideout.net/blog/?p=1
□Squirrel
http://www.squirrel-lang.org/ (本家)
http://sourceforge.net/projects/squirrel/
http://sourceforge.net/projects/sqplus/ (SqPlus)
http://sourceforge.net/projects/squirrelsh/ (Squirrel Shell)
http://wikiwiki.jp/lua/?Squirrel_Lang%2Ftoc(wiki内2.1マニュアル和訳)
□AngelScript
http://www.angelcode.com/angelscript/
□Xtal(ゲーム向け。スタックを意識しなくていい?)
http://d.hatena.ne.jp/xtalco/
http://code.google.com/p/xtal-language/
http://blog.livedoor.jp/dankogai/archives/50836939.html
□elastiC
http://www.elasticworld.org/

3 :
■関連してるかもしれないスレ
Io Language
http://hibari.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 デス 4
http://toro.2ch.net/test/read.cgi/tech/1325448978/
各種ライブラリ紹介スレ2(ゲ制作)
http://pc11.2ch.net/test/read.cgi/gamedev/1177886529/
Eclipse統合M34【Java/C++/Ruby/Python/Scala】
http://toro.2ch.net/test/read.cgi/tech/1361510049/
「コンパイラ・スクリプトエンジン」相談室15
http://hibari.2ch.net/test/read.cgi/tech/1296214398/
Garbage Collection (GC)について語るスレ(DAT落ち)
http://pc11.2ch.net/test/read.cgi/tech/1141646850/

4 :
誰も立てないから同じテンプレで立ててみた
いつ立てるの?今でしょ!

5 :


6 :

次スレは>>980あたりが立てればいいか?

7 :
AngelScript|Д`)<新スレ乙

8 :
LuaJIT 2.0.1
Update 2013-03-08: Please apply Hotfix#1 to the 2.0.1 download.

9 :
         \   l´⌒\⌒\ \\ \
           \ ヽ   )  )   \\ \\   
              (   \ \∩___∩ \\ 
           \   \  ⌒⌒| ノ      ヽ  \\      
              \ \   /  ●   ● ト、\ \\\ 
               \  Y |    ( _●_)  ミ\  \\\  
               \ / 彡、_  |∪| ノ   \  \\\
                 (____)―ヽノ' ヽ      ̄ ̄ ヽ\\
                                \,  j  l l .l }
                         Lua!   l (_ノノノノ

10 :
Programming in Lua 第3版おめ

11 :
いつ?

12 :
なぜluaを使うのですか?

13 :
>>12
小さくて密度の高い事は美しいことだから。

14 :
スタックダンプが快感

15 :
テーブルの威力がすごすぎるから

16 :
めたたbぇ

17 :
luaを使うことを強いられているんだ!

18 :
luaにはC#のLINQやPythonのリスト内包表記は無いんですか?

19 :
metatableってクソじゃないか?
コードを難解にするだけじゃん

20 :
確かにリスト内包表記は可読性を著しく損なう糞だな。

21 :
>>20
あれほど簡潔なものはないとおもうが?

22 :
論点をずらすなよ

23 :
metatableはクソって話だったな

24 :
めたたbぇprpr

25 :
たとえば DATETIME というクラスを定義したときに
演算子をメタテーブルで与える。
これはC++のoperatorとかRubyの def 演算子()
に該当するなんのへんてつもないただの定義でないのん?

26 :
そもそもoperator再定義自体が下品で破廉恥な行為だ

27 :
せやな

28 :
確かに

29 :
リスト内包表記はいいものだ

30 :
あっそ

31 :
Luaにはなぜないのだろうね

32 :
クロージャとコルーチンで同じことできるし…

33 :
内包表記のためにそんなもん使うのは大袈裟だろ

34 :
内包表記っぽいものを作るのにコルーチンは使わんだろ
generatorじゃないんだから

35 :
pythonはジェネレーターだよ

36 :
いいね

37 :
>>35
ん?
pythonの内包表記は即座にリストとして展開されるよ
[ x ** 2 for x in range(10) if x%2 == 0 ] みたいに角かっこで書くやつね
( x ** 2 for x in range(10) if x%2 == 0 ) みたいに丸かっこで書くとgenerator式になる

38 :
Luaは関数の末尾呼び出しを最適化してくれるのがいいね

39 :
そんなんどこでもやってますよ・・?

40 :
JVM!JVM!

41 :
Luaはとにかく組み込みやすいのがいい。
逆に言えばLuaだけで何でもできると思ってる奴はアフォ

42 :
メタテーブルとcoroutineもすき

43 :
>39
関数型言語では当たり前だけど、pythonとかメジャーなスクリプトではスタックがあふれるだろ?

44 :
単なる末尾呼び出しの最適化は最適化の中でも初歩の初歩だしやってないわけないと思う・・・んだけどなあ

45 :
Luaで真似事しようとするとこんな感じ?
function LC(f)
 local t = {}
 for x in coroutine.wrap(f) do
  table.insert(t, x)
 end
 return t
end
-- rangeの実装は省略
local t = LC(function () for x in range(10) do coroutine.yield(x ^ 2) end end)

46 :
最適化の理論とかはよく知らんけど
pythonの関数呼び出しは単純にC言語のコールスタックに依存してるので、どんどん積み上がっていくよ

47 :
>>45
これはキモイな
やはりpythonには勝てないか

48 :
Pythonはlambdaとdefが異なるのがガン。
Luaは区別無し。名前の無いfunctionがlambda

49 :
>45
やるとしたらそんな感じだろうね
でも、内包表記って言うよりはmapみたいな雰囲気になっちゃうよね
内包表記って数学の集合みたいに宣言的に記述できるってところがメリットのひとつだからなぁ
数学だとこんな感じ? S = { x^2 | x ∈ N, x < 10, x mod 2 = 0 }
やっぱり言語としてサポートしないとつらそう

50 :
>>48
すごく同意
pythonのlambdaは中途半端だね
Luaは文法がコンパクトですっきりしていて、すごく便利って感じではないが
でもコルーチンをサポートしてたり、末尾呼び出し最適化してたりで
ちょうどいい塩梅

51 :
しかし内包表記がないと一行が数倍にふくれあがるし見た目も悪い

52 :
単なるシンタックスシュガーだからパーサを弄ればできそうだけど
lispのリーダーマクロっぽいのほしいな

53 :
有志でlua#つくろうず

54 :
mrubyでいいじゃん
もっと欲張るならPythonも比較的組み込みやすい

55 :
mrubyの実行速度ってどんなもん?
なおrubyも内包表記はない模様

56 :
Luaとの比較だと、スクリプト自体の実行速度はちょっと遅めだけど誤差レベル
実行時のメモリのフットプリントが数倍くらい多い
APIがスタックベースじゃないため拡張は幾分書きやすいけど
そのせいでネイティブとの行き来が増えると実行コストは大きくなる傾向がある
JITはまだ実用レベルじゃない
みたいな感じ(俺調べ)
Luaに取って代わるかは知らんけど、二番煎じ処理系(Sq*とかxta*とか)は駆逐できそうな感じではある

57 :
mrubyの問題は .cのソースコードの行数でLuaの1.5倍ある。
1万6千行に対し二万四千行。
んで、LuaのソースコードはCでもC++でも
どちらでもコンパイル可能なので
Luaの関数の内部からC++のライブラリが使える
(ただしthrowが外側に貫通してはいけないけどね)
yaccとかも不要。
なんというか、最近のbisonとかは内部でm4使ってるとか
いろいろとめんどくさい仕様に改悪されてるから助かるw

58 :
Luaも確かv3.0くらいまではyacc使ってたんだけどね
今のパーサはシンプルな手書き再帰下降でLL(2)だから
内包表記の対応は難しいんじゃないかな

59 :
内包表記みたいなのの解析は、luaの場合パーサがLLかLRかよりも
構文木を介さず直接コード生成してるところが逆にネックになりそう

60 :
Luaのソースコード見てみたら他の言語に比べて超短いな
全部でこれだけかよってびっくりしたわ
これなら個人で解析出来るな、今日から読んでみるわ

61 :
パーサいじるんなら
ついでに「:」か「.」を別の記号に変えたくなるけどね

62 :
metaluaみたいにluaのパーサー上書きする方法はあるみたいだぞ。
luajitでは動かないみたいだが。

63 :
パーサー弄ってわざわざ「->」演算子を追加した事があるな俺

64 :
記念していつもの
lua-5.2.2
http://www1.axfc.net/uploader/so/2847097

65 :
おめ

66 :
AngelScript|Д`)<AngelScript2.26.2記念カキコ

67 :
おめ

68 :
>>64
依存関係がMSVCRT.DLLってことはMingW?

69 :
いいえ

70 :
んん VC6?

71 :
いいえ

72 :
てかコンパイル環境とか書いてないと
DLLって公開する意味あるの?
不整合とか気にするジャン。

73 :
いいえ

74 :
そうすっと たとえばEXEのランタイムと
DLL側のランタイムでデータフォーマットや
整列条件違ったら困ったことにならないの?

75 :
そういえばSquirrelだけ記念カキコがない

76 :
はい

77 :
Luaの場合はヘッダに構造体定義してるのがlua_Debugくらいだし
DLLの境界問題出にくいけどな
ちゅーかどこぞの馬の骨が捨て置いたバイナリに喰いつく暇があったら
自分のプロジェクトにLuaのソースコード突っ込んだ方が建設的かと

78 :
はい

79 :
Luaはなぜ早いのですか?
中の妖精さんと高額契約したのですか?

80 :
       /|
       |/__
       ヽ| l l│<ハーイ
       ┷┷┷

81 :
コアにVMを置いて中間コードを実行していること
(この方式は他も追従し追いつかれつつある)
VMがレジスタマシンであること
設計の合理性
(整数演算の切捨てなど、ボトルネックの分析が良かった)
JITなど速い方式の実装も行われている
かな

82 :
整数演算がボトルネックというのが分かりません
doubleのほうが百万倍遅いじゃないですか気持ち的に

83 :
うん、だからその理屈だと整数演算を切り捨ててはいけないんだけど
Luaはそれを切り捨てたのよ。
それでもベンチマーク成績は高かった。
つまり、演算以外の部分が問題だったわけね。

84 :
doubleそれほど遅くないよ。割り算を除けばせいぜい2倍位じゃないの?
intとdoubleの変換が遅かったりして。

85 :
doubleの処理は、今時のそこそこのデスクトップマシンと、
そこいらへんにたくさんあるARMとで、天と地ほどの差があるなw

86 :
整数演算がないと困るのはビット演算
が5.2でライブラリが追加されたからそれもほぼ解消

87 :
>>83
浮動小数演算がボトルネックにはならなかったって話と、整数演算が
ボトルネックだったって話は関係ないじゃん。

88 :
その辺のことはこのあたりかな
http://lua-users.org/wiki/FloatingPoint

89 :
そもそも誰も「整数演算がボトルネック」なんて話してないし

90 :
整数演算がボトルネックといっているのではなく、
浮動小数点演算の遅さは実は問題ではなかったという判断
だから整数演算いらんというデザイン

91 :
速くなればなるほど問題が表面化するというわけだな

92 :
JIT版の実装が良くなればたぶんね

93 :
>>89
つまり、整数演算切り捨てたこととLuaが速いことは関係ないってことだろ。
>>81はボトルネックと言っているが。

94 :
>>81はLuaが速い一因として設計の合理性を挙げていて
整数演算がボトルネックとは言ってないし
>>83>>90のフォローもそれを補強していると思うんだが
読解力がないのならしょうがない

95 :
言語仕様そのものが速さ目的で設計されてるってのもあるんでないか
ローカル変数をわざわざ指定しなきゃならんとか
書く側からすれば面倒な仕様だけど多分これだとGCがやりやすいんだろうなとか
ソース見たわけじゃないから分からんけどね

96 :
AngelScript|Д`)<みんなでtemplate触ろうぜ

97 :
Squirrel |Д`)<Squirrel 3.0.4記念カキコ

98 :
Squirrel更新か!?
と思ったのに!

99 :
AngelScriptにDelegate対応が来てた

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
C++11/C++1y 18 (806)
くだすれDelphi(超初心者用)その55 (393)
静的型付け言語の潜在開発生産性は今の100倍 (836)
Microsoft Silverlight その9 (472)
pythonがこの先生きのこるには (753)
C/C++の宿題片付けます 165代目 (896)
--log9.info------------------
【雑誌】週刊少年チャンピオン速報スレッドVer.65000【ネタバレ】 (445)
誰がなんと言おうと俺は好きなんだってアニメ (305)
続編フラグ散々立てといて爆死したアニメあげていこうぜ (112)
■ 放送予定変更のお知らせ 21 ■ (107)
期待はずれだったアニメ (209)
週刊少年サンデー速報スレッドcomic70 (429)
面白い漫画おしえてけろ (112)
ワンピースはゴミ、NARUTOは最高 (199)
新番組を評価するスレ 7357 (850)
ラノベアニメにありがちな事 (592)
NARUTO -ナルト- ネタバレスレ 其の弐拾五 (175)
アニヲタにネトウヨが多い理由 (546)
ワンピースの作画監督・演出を語るスレ13 (133)
▽新☆パンツの見えるアニメ Part90▽ (865)
35歳過ぎてもアニメファン集まれ!77 (940)
ID欄にゼーガ関係が出てもentangleするスレ11 (774)
--log55.com------------------
生駒って特別扱いお膳立てがなければ何にも出来ない奴だったよね
生駒は卒業したんだから生駒ヲタは乃木坂板から出て行けよ
【ジコチューで行こう!】乃木坂46★8357【本スレ】
【乃木坂46】新内眞衣応援スレ☆43【まいちゅん】
【画像】乃木坂のちょっとセクシーな画像が集まるスレ ★10
あしゅのお尻が舐めれるけど後の人生首から上だけで生きなきゃいけなくなるボタン、押す?^_^; [ひまわり学級]
最初はやめろーーーとか強がってるくせにクンニ1発でふわぁ…と懐いちゃいそな甘えんぼメンバー^_^; [ひまわり学級]
【ジコチューで行こう!】乃木坂46★8358【本スレ】