最速スクリプト言語決定戦!
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG最初のお題は「たらいまわし関数」でGO
0153デフォルトの名無しさん
NGNG>>152
Squeakはブロックで再帰呼び出しができないので、メソッドで
Integer >> levels: n timesRepeat: aBlock
self < 1 ifTrue: [↑ aBlock].
↑ self-1 levels: n timesRepeat: [n timesRepeat: aBlock]
| x |
x ← 0.
(6 levels: 16 timesRepeat: [x ← x + 1]) value.
↑ x
こちらはなぜかちょびっと速くなる。
0154R..y
NGNGマクロなど羨しがるな。みっともない。同じオブジェクト指向な言語として恥ずかしいぞ。
「ループを 6 回繰り返すコードを書け」と書ける事になんの意味があると言うのだ。
オブジェクト指向は構文抽象よりもはるかに高尚でエレガントなのだ。
マクロは使用法によらず常に悪である。なぜならば、マクロはつまりユーザビリティが低いのだ。
マクロを使うとコードはわかりにくくなるからだ。
0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNGreturn body if nest_level < 1
nest(n, nest_level-1) {n.times(&body)}
end
x = 0
nest(16, 6) {x += 1}.call
puts x
0157デフォルトの名無しさん
NGNGわかって書いてるの?どうでもいいけど Ruby が良いのはもう十分理解ましたので
勘弁してください。
0158デフォルトの名無しさん
NGNGだれかマイナー言語のベンチマークで本題に戻して〜
0159デフォルトの名無しさん
NGNGまくろって、つおい?
: nest { n d c }
d 0 do
n postpone literal 0 postpone literal postpone do
loop
c compile,
d 0 do
postpone loop
loop
;
: nestedloop 0 [ 16 6 ' 1+ nest ] ;
nestedloop . cr
=> 0.010 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]
16が即値で展開されるためさらに速くなった。
0160デフォルトの名無しさん
NGNGgforth-fast 0.6.2
でつ。
0161デフォルトの名無しさん
NGNG0162デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNGdef nested(n):
x = 0
i_r = range(n)
for a in i_r:
for b in i_r:
for c in i_r:
for d in i_r:
for e in i_r:
for f in i_r:
x += 1
print x
じゃ駄目なの?
Python 2.3
=> 0.370 / ruby 1.8.1 (2003-12-25) [i386-mswin32]
0166デフォルトの名無しさん
NGNGもしかして実行時コンパイル?
0167デフォルトの名無しさん
NGNGコンパイル時実行、
・・とForth界隈では呼ばれています。マクロじゃなくて。
でもこの「コンパイル」っていうのは、ForthではVMコード
生成のことを言ってるわけで、ネイティブコード生成ではないです。
gforth自体はVMで動作してます。
0168デフォルトの名無しさん
NGNGてっきり実行時にコンパイルしてるもんだと思ってた…
;; CMUCL で型指定付きでコンパイル
* (time (test))
; Evaluation took:
; 0.03 seconds of real time
; 0.023329 seconds of user run time
; 0.0 seconds of system run time
; 32,939,360 CPU cycles
;; インタプリタ起動時間込みでこれ.
$ time gforth-fast nest.f -e bye
16777216
gforth-fast nest.f -e bye 0.27s user 0.00s system 99% cpu 0.275 total
0169デフォルトの名無しさん
NGNGマジオススメ
と思ったけど日常生活で使うにはやはり厳しい…
0170デフォルトの名無しさん
NGNGForthだとbigForthがネイティブコンパイルできるんですが、
まあ、スレ違いということで。。。。
0171デフォルトの名無しさん
NGNGsee nestedloop
: nestedloop
0 <4212491> <16> 0
DO 16 0
DO 16 0
DO 16 0
DO 16 0
DO 16 0
DO 1+
LOOP
LOOP
LOOP
LOOP
LOOP
LOOP ; ok
ただしプリミティブを見るとnativeコードになってる
see 1+
Code 1+
( $401ABB ) inc ecx \ $41
( $401ABC ) add ebx , # 4 \ $83 $C3 $4
( $401ABF ) jmp dword ptr FC [ebx] \ $FF $63 $FC
end-code
この最後の2行に注目すると、
( $401ABC ) add ebx , # 4 \ $83 $C3 $4
( $401ABF ) jmp dword ptr FC [ebx] \ $FF $63 $FC
direct threaderd codeという方法を使ってるのがわかる。(ebxがpcに相当)
0172デフォルトの名無しさん
NGNGs/threaderd/threaded/
0173159
NGNG>New threaded code execution method: primitive-centric (allows the following),
>hybrid direct/indirect threaded (easier portability), with dynamic superinstructions
> (typical speedup on Athlon: factor 2).
と書かれていてprimitive-centricという新しい手法を使っているらしい。
(詳細不明。。)
0174デフォルトの名無しさん
NGNGいきなりinc ecxとか実行でけるforthがうらやましい。
つーことはecx何某はスタックトップの演算ということかな。
(あんま知らないので間違ってたらすまそ)
0175デフォルトの名無しさん
NGNGスタックトップ(TOS)をレジスタに割り当てるのはVMの高速化の常法。
0176デフォルトの名無しさん
NGNGそうです。型指定しないと generic-function (bignum かもしれないんで)
呼んじゃうので forth より遅かったです。でも良く考えたら最適化コンパイラ
じゃ構造がかわっちゃうかもしんないから >>171 を見てもそもそも比較に
なんないっすね…。
0177デフォルトの名無しさん
NGNGvoid main() {
int n=16;
int x=0;
int a,b,c,d,e,f;
for (a=0; a<n; a++){
for (b=0; b<n; b++){
for (c=0; c<n; c++){
for (d=0; d<n; d++){
for (e=0; e<n; e++){
for (f=0; f<n; f++){
x++;
}
}
}
}
}
}
printf("%d\n", x);
}
cint
=> 0.32 / ruby 1.8.1 (2003-12-25) [i386-mswin32]
0178デフォルトの名無しさん
NGNGたぶん一番早いよコレ。マジすごすぎだわ。
諸事情によりくわしいことはいえないんだけどどれよりも早かった。ほんと。
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNGたぶん一番早いよコレ。マジすごすぎだわ。
諸事情によりくわしいことはいえないんだけどどれよりも早かった。ほんと。
0181デフォルトの名無しさん
NGNGtarai (640, 320, 0)
module Main where
tarai :: Int -> Int -> Int -> Int
tarai x y z
| x <= y = y
| otherwise = tarai (tarai (x - 1) y z) (tarai (y - 1) z x) (tarai (z -1) x y)
main = print $ tarai 640 320 0
ghc -O2 tarai.hs
./a.out 0.00s user 0.01s system 105% cpu 0.017 total
runhugs tarai.hs
runhugs tarai.hs 3.17s user 0.12s system 89% cpu 3.671 total
# やっぱりhugsは遅い。
0182デフォルトの名無しさん
NGNGhttp://sheepman.parfait.ne.jp/20030418.html#p05
のRuby版は(620, 320, 0)では終わらない。# 所詮偽物。
runhugsは起動だけで0.20秒ぐらいかかるから(12,6,0)で比べるのは
無意味。
0183デフォルトの名無しさん
NGNG>>49
0184デフォルトの名無しさん
NGNGそもそもGHCは実行ファイルはき出すコンパイラだし。
0185デフォルトの名無しさん
NGNGわかってるけど、最近Lazyが云々っていうレスが続いてたからね。
0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNG全国即日スピード融資。
東京都知事認可済みの消費者金融です。
まずはHPをご覧ください。
http://sunfaina.fc2web.com/
0191デフォルトの名無しさん
NGNGまえ市役所に行ったらたらいまわしにされたけど、
それはおいといて、マジわからん。
0192デフォルトの名無しさん
NGNG>たらいまわし関数って何?
その「何?」って「何の役に立つのか?」って意味か?
・・・何の役にもたたんよ。
0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNGむかしむかし、タライを回す、おじいさんとおばあさんがいました。
みたいなお話キボンヌ。
つーか、たらいって何?
0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNG「たらいまわし」は曲芸の名前。曲芸師が仰向けになって、足でタライを回す芸。
時には、二人の曲芸師がタライでキャッボールをすることもある。その様子が
役所などで「たらいまわし」そっくりな為。
なんか最近やけに他人の代わりに Google を使う事が多いような気がする。
こういう時代なのか・・・
0197デフォルトの名無しさん
NGNG芸人の上から降ってくるのが金(かな)だらい
0198デフォルトの名無しさん
NGNGあれは猿回しか
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNG,、 ,、
,;''"";、 ! \ / ヽ,
( ( ( O ;, ' `''"''''"'' ゙;.
';, !; ;;
';、 ;;' O O ;! >>199はハムスター。
';, ';, * ┌―┐ ,;
゙:、`:、 _ノ ,.;'
ヽ、 ,,: ヽ
';,. r'⌒''" ';,
,..;、., ヽ,,. ';,,
ノ。o。 ヽ ゙"''‐''" ';,
( ( ;' ○ ;;,!、 ;, ;`';,
`ー‐' -"''-;,,、 ;;i'"""ヽ、ノ ,;
;;, ,;;'⌒`:、,..,,;;''
';, ;;'
(,,_,,_,,ノ
0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNGすべてにおいて次期 Ruby は最強というわけか。
0204デフォルトの名無しさん
NGNG*次期* かよ…。_| ̄|○ と、いちおうツッコンでおく。
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNG次期PHP
に続いて、次期Rubyもあるんだな・・・。
0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNGアンインストールすると多くのディストリで不具合が起こったりするからな。最強だ。
0212デフォルトの名無しさん
NGNGそれは最悪の間違いだろ。だいたい最速スレなんだから。
つまり今は遅いけど次期 Ruby の速度大幅アップにより
最速ということでファイナルアンサーだな。
0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNG信者が実行すると、脳内で時間が加速される仕様があるから。
0215デフォルトの名無しさん
NGNG次 期 と か 次 世 代 と か は ど う で も い い
0216Age.P.Hukai ◆hsp/8n/.as
NGNG0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNG英語わからないなら無理して使おうとしない方がいいよ。
0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNG結論:開発速度は Ruby ガ最速
0221デフォルトの名無しさん
NGNG思わずこっちの方を出荷したいとか思ってしまった。
0222デフォルトの名無しさん
NGNGそれで納品問題も解決
0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
NGNGうちの仕事でperlなんて使ったらはったおされそうだw
0226デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1074235226/927
の話だろう。妄信って怖いねぇ…。
0227デフォルトの名無しさん
NGNG質も開発速度も良いというだけじゃないかね。
0228デフォルトの名無しさん
NGNGま、この言語をTrackingしているのはオレだけか。
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG早いかどうかは知らん
0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNGJavaScriptの元になった別の規格があるらしいんだけど、
それにFlashのオブジェクトをガチャコンと結びつけたもの。
基本的にはJavaScriptと同じ
独特のスタイルとしては
deleteでGCによる強制回収が出来たり
色情報はColorでのみなど、専用オブジェクトにハンドラを渡す必要があったり
porototypeを利用したクラスの定義などが出来る
0233デフォルトの名無しさん
NGNGちょっと覗いてみたけど、なんで最近の言語はみんな
英語にちがづけるんだ???
他人が綺麗に書いたソースは読みやすいかもしれんが、
自分が書くときにはこまる。
0234デフォルトの名無しさん
NGNG懐かしいな
0235デフォルトの名無しさん
NGNGthanx!!
ttp://www.webreference.com/programming/javascript/j_s/column2/
ECMAScript 1.0 edition 2 って事は、幾つかの差異を除けば、まんま JavaScript なんだね。
0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNGおめーらは色々とスクリプトを乗り換えて来たと思うけど
やっぱりPerl->Rubyとか多いの?
0239デフォルトの名無しさん
NGNG0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNG速度より時間の節約だよ
0245デフォルトの名無しさん
NGNGこのスレの趣旨はそれじゃない。
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNGでもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNGPerl perl 15.9688
Python python 15.0060
Pike pike 14.3161
Lua lua 13.3868
Erlang hipe 13.2092
Python psyco 13.0327
Ruby ruby 11.6489
Awk 10.7199
Tcl 9.5188
Bash 6.6484
Emacs Lisp 5.5613
0250デフォルトの名無しさん
NGNGコピペだろ。
相手するとつけあがるぞ。
0251デフォルトの名無しさん
NGNGhipe, psyco って遅いのか。
何のテストしたの?
0252デフォルトの名無しさん
NGNGでもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
■ このスレッドは過去ログ倉庫に格納されています