任天堂「今後C++は捨てJavaScriptで開発していく」 (887レス)
任天堂「今後C++は捨てJavaScriptで開発していく」 http://mevius.5ch.net/test/read.cgi/tech/1363752460/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
467: デフォルトの名無しさん [] 2013/04/03(水) 13:47:40.93 C言語が機種依存して最適化してる。C言語なみの速度がJavaScriptで実現可能かということは原理的には可能だろ。 C++のテンプレート使うと、必要な型のすべてのバイナリを生成し、バイナリの中身は型付き変数として動作する。 JavaScriptコンパイラを作り最適化したらいいだけ。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/467
468: デフォルトの名無しさん [sage] 2013/04/03(水) 13:53:54.03 >>467 原理的に可能って、JSでコンパイル時点ですべての型を予測して あらかじめ生成するなんてムリだろ。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/468
469: デフォルトの名無しさん [sage] 2013/04/03(水) 13:55:33.59 >>467 テンプレートの場合に型が変化するのはそのテンプレート引数の組み合わせだけだけど、 Javascriptの関数の場合に型が変化する組み合わせはそれこそ莫大な数になる可能性が考えられるわけよw しかも実行と同等なことをしてみないと必要な組み合わせが判明しない なので無理 http://mevius.5ch.net/test/read.cgi/tech/1363752460/469
470: デフォルトの名無しさん [sage] 2013/04/03(水) 13:56:06.23 C言語自体は機種依存してないよな 言語とライブラリを分離してるだけで #ifdef使えば UNIXとWindowsですらソースコードレベルのポータビリティが有る訳で API部分を抽象化しても結局うまくいかないのはJavaが証明したし JavaScriptもそれを繰り返すことになるだろう http://mevius.5ch.net/test/read.cgi/tech/1363752460/470
471: デフォルトの名無しさん [] 2013/04/03(水) 15:51:24.12 >>468>>469 あまりに実行中に新型の型を生成するようではエラー出してコンパイルを停止させる。 どこで新型が生成されるか事前に判別できるから、無限ならず有限で済むケースでのみコンパイルを成功させる。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/471
472: デフォルトの名無しさん [sage] 2013/04/03(水) 16:46:56.25 >>471 ちょっと複雑なコードを書いたらすぐエラーになるか、コンパイルが終わらなくなりそう。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/472
473: デフォルトの名無しさん [sage] 2013/04/03(水) 17:06:28.40 >>471 ごまかすな お前が言ってたのはJavascriptのコードをCのコードと同等な速度に変換できるってことだろ? 変換可能な部分のみ変換するのでは JavascriptのコードをCのコードと同等な速度に変換できるとは言えない その程度だったら事前に変換してコンパイルじゃなくて、JITコンパイルで十分なのよ http://mevius.5ch.net/test/read.cgi/tech/1363752460/473
474: デフォルトの名無しさん [sage] 2013/04/03(水) 17:10:40.28 GCありきで書かれたクソコードを静的解析してスタックに割り付ける作業に戻れ http://mevius.5ch.net/test/read.cgi/tech/1363752460/474
475: デフォルトの名無しさん [] 2013/04/03(水) 19:12:32.02 JavaScriptでC言語に並べるのは事実。 CソースをJavaScriptソース内にStringとしてコピペして JavaScript製Cコンパイラに通したら、C製Cコンパイラと同じ実行ファルを生成でき 速度はC製Cコンパイラと一緒。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/475
477: デフォルトの名無しさん [sage] 2013/04/03(水) 19:35:41.34 >>475 つまりCで書かないとはやくならないのか。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/477
478: デフォルトの名無しさん [sage] 2013/04/03(水) 20:04:29.24 最適化トランスコーダを書いてさらにCコンパイラで最適化だ!!! 聞きかじりだが、PyPyみたいになるかもしれんぞ。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/478
479: デフォルトの名無しさん [sage] 2013/04/03(水) 20:05:24.22 っていうか、LLVMのフロントエンド書くんだ!! http://mevius.5ch.net/test/read.cgi/tech/1363752460/479
480: デフォルトの名無しさん [sage] 2013/04/03(水) 21:40:45.82 LLVMはバックのほうが windows でまともにうごくかな! http://mevius.5ch.net/test/read.cgi/tech/1363752460/480
481: デフォルトの名無しさん [sage] 2013/04/03(水) 21:57:45.21 twitter.com/shelarcy/status/319102598693138433 GHCのSIMD命令対応 がんばるHaskeller... http://mevius.5ch.net/test/read.cgi/tech/1363752460/481
482: デフォルトの名無しさん [sage] 2013/04/03(水) 22:13:15.70 まあ、関数型は並列性抽出しやすいからな。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/482
483: デフォルトの名無しさん [sage] 2013/04/04(木) 03:26:18.20 >>467 全てではなく呼び出し関係を追いかけて出現した型だけだし、一度確定した型はC++では変化しない JavaScriptの場合型が変化するどころか型の定義そのものが後から変化してしまうから手に負えない >>471 「どこで新型が生成されるか事前に判別でき」「ない」 君の大好きチューリングマシンの停止性問題と同じ理屈で、ある条件である部分(ある内容の型生成)が実行されるかは判別できない 結果、実行中に実際生成された型でその都度ネイティブコードを生成するJIT実行か、連想配列を使ったインタプリタに毛が生えたような実装になる >>475 それはCのコードをコンパイルしただけでJavaScriptコードをコンパイルした事にはならないし、 JavaScript上ではコンパイルで得たバイナリを実行する手段がなくて何の意味もない http://mevius.5ch.net/test/read.cgi/tech/1363752460/483
484: デフォルトの名無しさん [sage] 2013/04/04(木) 03:42:06.96 >>478-479 素のJavaScriptで型特定は無理ゲーだし諦めて、もうJScript.net(≠JScript)でよくね? 型ヒントとか色々付けないとコンパイル通らないけど、一応IL吐けるからC++/CLRといい勝負できるかもしれん もっとゴリゴリやりたい部分はMSILからFunction生成で誤魔化すw http://mevius.5ch.net/test/read.cgi/tech/1363752460/484
485: デフォルトの名無しさん [sage] 2013/04/04(木) 21:25:36.61 なんでMS前提なんだよ http://mevius.5ch.net/test/read.cgi/tech/1363752460/485
486: デフォルトの名無しさん [sage] 2013/04/05(金) 10:08:24.63 JavaScriptと実用レベルで互換が有ってネイティブコードまでまともに変換できる製品がJScript.netくらいしか思いつかなかったんだ 吐けるバイナリはMSILだけどMSILのJITコンパイルは起動時/インストール時にほとんど終わるからJSのコンパイル基盤って意味では一番まともかと JScript.netが吐き出すILやそのアセンブリを見たこと無いからなんとも言えんけど、 ILの品質次第ではJavaScriptで書いたコードが等価なC/C++で書いたコードとタメ張るかもしれん http://mevius.5ch.net/test/read.cgi/tech/1363752460/486
487: デフォルトの名無しさん [sage] 2013/04/05(金) 23:13:48.01 >>486 たぶんないなw http://mevius.5ch.net/test/read.cgi/tech/1363752460/487
488: デフォルトの名無しさん [sage] 2013/04/05(金) 23:51:12.81 まぁ最近の家庭用据置ならちょっとしたアプリやホビープログラムならスクリプトでお手軽に ってのはありじゃね 商用のフルパッケージでそんな事してたらアホだけど http://mevius.5ch.net/test/read.cgi/tech/1363752460/488
489: デフォルトの名無しさん [sage] 2013/04/06(土) 04:44:20.35 いいからファミリーべーしっくやってろw http://mevius.5ch.net/test/read.cgi/tech/1363752460/489
490: デフォルトの名無しさん [sage] 2013/04/06(土) 09:12:28.81 >>488 FPSのなかのLuaさん「・・・」 http://mevius.5ch.net/test/read.cgi/tech/1363752460/490
491: デフォルトの名無しさん [sage] 2013/04/06(土) 10:25:08.57 いまや商用のフルパッケージなゲームでこそ、 DSLとしてスクリプト言語的なものを使うのは普通だね http://mevius.5ch.net/test/read.cgi/tech/1363752460/491
492: デフォルトの名無しさん [sage] 2013/04/06(土) 10:35:10.64 大きなゲームでスクリプト使うのは ・リロードで差し替えられることによるトライ&エラーしやすさ ・ビルド環境不要 という面が大きい。 Lua好きなんだけど、 PCアプリではBlender-Pythonみたいなあまり有名なのが無いのはなぜなんだろう。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/492
493: デフォルトの名無しさん [sage] 2013/04/06(土) 12:51:51.47 Moai SDKでググれ http://mevius.5ch.net/test/read.cgi/tech/1363752460/493
494: デフォルトの名無しさん [sage] 2013/04/06(土) 21:04:16.48 AGK / DarkBASIC / Basic4GL / 99BASIC 2013 Part.1 http://kohada.2ch.net/test/read.cgi/pcnews/1365242417/l50 世界中でダントツの人気!各BASICの特徴 ・ AGK App Game Kit(http://www.appgamekit.com/) 海外で主流のマルチプラットフォームの開発環境。 C言語風味の記述が特徴で、中身はDarkBASIC。 Ver1.088で3Dインターフェイス対応。 ・ DarkBASIC(http://darkbasic.thegamecreators.com/) VisualBASIC以前の旧式マイクロソフトBASICの進化形。 DirectXをサポート、商用アプリ作成可能。 C言語にはない強力な文字列操作、複雑な記述が可能。 ・ Basic4GL(http://www.basic4gl.net/) OpenGLを基幹インターフェイスにしたゲーム用開発言語。 考え方はAGKやDarkBASICに近い。 上記の2つと同じように実行ファイルのメディアパッケージング可能。 ・ 99BASIC(http://www.sagami.ne.jp/tadaka/99Basic/) MSXやPC-8801世代の旧式マイクロソフトBASICに準拠したBASIC。 DirectXはサポートしておらず、簡単な2Dインターフェイスのみ使える。 インタープリター形式で直接実行モードもある http://mevius.5ch.net/test/read.cgi/tech/1363752460/494
495: デフォルトの名無しさん [] 2013/04/07(日) 09:54:54.98 [参考] ベンチマーク - FOR-NEXT10億回ループ (表1)ベンチマークテスト結果(数字が小さいほど速い) MASM32 JavaScript DarkBASIC AGK 99BASIC --------------------------------------------------------------------------------- PC(CeleronD2.66GHz)[sec] 0.7828 7.772 20.853 65.423 1532.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MASM32を1とする相対倍率 1.0 9.928 26.638 83.575 1957.0 --------------------------------------------------------------------------------- Nexus7(Tegra3)1.3GHz[sec]. ----- 36.480 ----- 320.18 ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MASM32を1とする相対倍率. ----- 46.601 ----- 409.01 ----- --------------------------------------------------------------------------------- iPhone4S(Cortex-A9)800MHz[sec] ----- 36.521 ----- (※注) ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MASM32を1とする相対倍率 ----- 46.654 ----- (※注) ----- --------------------------------------------------------------------------------- (※注)iPhone版AGKターゲットエミュレーターはビデオストリームのため除外。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/495
496: デフォルトの名無しさん [sage] 2013/04/07(日) 10:36:29.50 そういうアプリ内の処理時間の割合が20%未満のグループに入るものの比較をしてもほとんど意味ないよ。 80%に含まれるものの比較をしなきゃ。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/496
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 391 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
アボンOFF
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.009s