任天堂「今後C++は捨てJavaScriptで開発していく」 (887レス)
任天堂「今後C++は捨てJavaScriptで開発していく」 http://mevius.5ch.net/test/read.cgi/tech/1363752460/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
461: デフォルトの名無しさん [] 2013/04/03(水) 13:12:22.58 459だとC言語ソースをJavaScriptでコンパイルしたものが C製Cコンパイラと同速度という意味だが。 JavaScriptソースとC言語ソースに互いに変換可能で無駄がないとすれば JavaScriptソースもJavaScript製コンパイラでC言語並の速度が出るということ。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/461
462: デフォルトの名無しさん [sage] 2013/04/03(水) 13:15:09.28 >>461 >JavaScriptソースとC言語ソースに互いに変換可能で無駄がない ここが間違ってる JavascriptソースからC言語ソースへの変換は、Javascriptソースのほうが情報量が少ないから、 同等なものに変換するには事実上不可能なほどの計算量が必要になる http://mevius.5ch.net/test/read.cgi/tech/1363752460/462
463: デフォルトの名無しさん [sage] 2013/04/03(水) 13:18:32.40 >>462なので、 JavaScriptソースをJavaScript製コンパイラでC言語並の速度を出すというのは不可能 http://mevius.5ch.net/test/read.cgi/tech/1363752460/463
464: デフォルトの名無しさん [sage] 2013/04/03(水) 13:28:12.44 JSって変数が全部バリアント型なのにC並の速度が出る。。。わけないだろバカ http://mevius.5ch.net/test/read.cgi/tech/1363752460/464
465: デフォルトの名無しさん [sage] 2013/04/03(水) 13:32:19.09 動的型付言語とは何なのか CコンパイラがCソースコードをどのようなマシン語に変換するのか この辺を勉強してみれば>>462が如何に難しいか理解できる http://mevius.5ch.net/test/read.cgi/tech/1363752460/465
466: デフォルトの名無しさん [sage] 2013/04/03(水) 13:38:38.02 なんか致命的な勘違いか致命的な極論が混ざってるようにしか見えんわ ゲスパーしとくと、JSにコンパイラ移植してもコンパイルしたコードはJSの実行環境では動かないから意味は無いしコンパイル元のコードがJSじゃないから本末転倒だぞ >>464 そこを全部型付きにして高速化を図ろうってのが最近のトレンドだが、もはや人が書くような言語じゃねと言わんばかりに別言語の中間コードから型ヒント付きJSを生成する技術が登場する始末 JSを元にした中途半端な謎中間言語とか誰得状態だし、なんてーかそこまでやるならMSILでもLLVMでもいいからそのへんのJITレイヤをそのまんまJSに組み込んで中間コードからFunctionオブジェクト生成する機能でも追加しろよって感じだ http://mevius.5ch.net/test/read.cgi/tech/1363752460/466
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
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 397 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
アボンOFF
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s