任天堂「今後C++は捨てJavaScriptで開発していく」 (887レス)
上下前次1-新
381(1): 2013/04/03(水)00:49 AAS
処理系ががんばればいくらでも速く出来るとか思ってるやつのほうが完全に誤解してるだろ。
382: 2013/04/03(水)00:57 AAS
まあjs厨はバカしかいないってことで
383: 2013/04/03(水)01:01 AAS
>>373
googleがDartを本気でjsと置き換えようとしてるらしいが、どうなることやら
384: 2013/04/03(水)01:20 AAS
>>378
それいうとあらゆるクライアントサイドプログラムもソース隠蔽は無理じゃね?
ネイティブコードからの逆コンパイル可読性に負けるとはいえ、変数名全部圧縮したJSってMSILからC#に復元したコードと大差ないレベルじゃね?
385(1): 2013/04/03(水)01:57 AAS
JavaScriptは、いずれどこかの時点でオブジェクト指向機能を
取り入れた別の物に進化してHTML6の一部になると思う
いまのJavaScriptの環境はC言語で関数ポインター駆使して
一生懸命オブジェクト指向設計してた時と同じように
無理が来てると思う
386: 2013/04/03(水)02:01 AAS
お前らasm.jsの記事すらまともに理解できないのか
387: 2013/04/03(水)02:15 AAS
asやってたからjsに変えるのは楽だけど何となく型宣言がないのは気持ち悪い
388(2): 2013/04/03(水)02:19 AAS
>>381
何言ってんだ?
原理的にCで吐ける機械語はJSでも吐けるんだが
チューリング完全て知ってるか?
389: 2013/04/03(水)02:28 AAS
マジバカわろた
390(1): 2013/04/03(水)02:29 AAS
機械語を書き出せるのはチューリング完全と関係ない。
言語がチューリング完全でなくとも出来る。
391(1): 2013/04/03(水)02:31 AAS
>>390
チューリング完全な機械語を吐くにはチューリング完全な言語を処理系に食わせなきゃ無理
機械語を吐くこと≠チューリング完全な機械語を吐くこと
392: 2013/04/03(水)02:31 AAS
ではバッファオーバーフローするjsとその処理系がどのようなものになるか説明してみてください
393: 2013/04/03(水)02:36 AAS
>>391
CコンパイラのバイナリをBASE64などでコピペして
チューリング完全でない言語でデコードして書き出す。
394: 2013/04/03(水)02:46 AAS
(Cコンパイラの)バイナリデータを吐き出す機能しか持っていない言語は
チューリング完全でないが、チューリング完全の処理系を出力できる。
395(1): 2013/04/03(水)02:52 AAS
>>385
JavaScriptはプロトタイプ指向と言うオブジェクト指向と類似するパラダイムを既に獲得しているので、今更オブジェクト指向を取り込む必要は特に無い
>>388
×Cで吐ける機械語はJSでも吐ける
○Cで書ける処理はJSでも書ける
わかり易い例を出すと、Cと同じ機械語を吐くためにはメモリ破壊出来ないとダメだけどJSでは無理だ
処理速度の面で言うにしてもCと同等の速度が出る「可能性は否定出来ない」程度で現状は未だ無理
省2
396(1): 2013/04/03(水)02:54 AAS
>>395
メモリ破壊する処理を書けばいい。
397(1): 2013/04/03(水)02:56 AAS
>>396
破壊できたら只のセキュリティホールでんがな
398: 2013/04/03(水)02:56 AAS
C言語が出力するバイナリと同様のものはJavascriptで吐ける。
C言語の出力をバイナリ文字列としてコピペして書き出すだけ。
399(1): 2013/04/03(水)02:56 AAS
>>397
> Cで書ける処理はJSでも書ける
って書いてある。メモリ破壊する処理を書けばいい。
400: 2013/04/03(水)02:57 AAS
バイナリファイルはきだせるならなんでも作れるだろ。
401(1): 2013/04/03(水)02:59 AAS
より一般にほとんど言語で、C/C++で書かれたC/C++コンパイラと同等の速度が出る、C/C++コンパイラを書くことは可能。
これはチューリング完全なんかと関係する。
402: 2013/04/03(水)03:00 AAS
Cで書けるということはクライアントの環境を決め打ちできるということだ(キリッ
403: 2013/04/03(水)04:13 AAS
>>399
メモリ破壊のロジックを再現しても実際のメモリ破壊できないだろ・・・レイヤ違うんだし
404: 2013/04/03(水)04:56 AAS
メモリ破壊の意味分かってないバカがいるな
さすが低級言語のC/C++厨だな
405(1): 2013/04/03(水)05:02 AAS
具体的に説明できない知ったかぶりが煙に巻くときに使う常套句:レイヤ
406: 2013/04/03(水)05:42 AAS
相手の発言を曲解して馬鹿にした気になれるってある種の才能だよな・・・
395が言ってる処理ってアルゴリズムの事だと理解できないのか、理解したくないのかどっちなんだろ?
説明されても理解できないの方だとしたら、病院行って診断もらってきたほうがいい。特権手帳もらえるよ。
>>405
煙に巻くもへったくれも、JS上に作った仮想メモリはOSが管理する仮想メモリやCPU見てる実メモリとはレイヤ違うからそのまんまだろ
407: 2013/04/03(水)07:22 AAS
Cすら使いこなせない低能でも
JSでゲーム開発出来ると聞いてアホが喜んでるんだから
水を差すなよ...
408: 2013/04/03(水)08:11 AAS
ゲーム作ったことある奴ならわかるけど
言語なんか関係ないからな
それ以外のことが難しすぎるし
409: 2013/04/03(水)09:03 AAS
>>388
それじゃ現状でJavaScriptが遅いのはどういう理由なの?
実装してる連中がバカだから?
(実際的にはムリだけど)原理的には可能っていう屁理屈?
410: 2013/04/03(水)09:10 AAS
チューリング完全は計算能力の話であって計算速度とは関係ないってマジレスしちゃダメなの?
411: 2013/04/03(水)09:16 AAS
実際出来るかどうかは知らんけど、チューリング完全とかの概念はむしろ最適化に上限があることを証明するのに使えちゃいそうだよな
412(1): 2013/04/03(水)09:21 AAS
チューリング完全って何だよ
413(1): 2013/04/03(水)09:28 AAS
論理的には計算速度の最適化もできそうだけど、
ソースコードの量の増加に応じた最適化のための計算量が爆発的に増加しそう
実質的には無理じゃないかな?
414(1): 2013/04/03(水)09:30 AAS
>>413
動的型の言語の実行時にきまる動作を静的なコードで
置き換えようとするとコードの量が無限に大きくなりそうだな。
415(1): 2013/04/03(水)10:01 AAS
コンパイラは、文字列処理にすぎない。
ソースコードをパースして、アセンブラ言語の文字列へ変換するだけ。
C製のCコンパイラと同等の速度が出せない言語のほうが珍しい。チューリング完全ということは処理能力に違いがないということ。
416: 2013/04/03(水)10:03 AAS
「Javascriptのコードから」ってルールが抜けてるんなら
バイナリ列のコピーだけでもいいからね。
417: 2013/04/03(水)10:04 AAS
>>412
計算理論において、ある計算のメカニズムが万能チューリングマシンと同じ計算能力をもつとき、その計算モデルはチューリング完全(チューリングかんぜん、Turing-complete)あるいは計算完備であるという。--Wikipedia/チューリング完全
>>414
生成され得ないパターンを除外してくとかはある程度出来るだろうけど、停止性判定不能コードの後ろに判定対象が並んでるとかの場合に
チューリングマシンの停止性問題から「有るコードが有る型で実行されるかは有限時間で判定不可能である」って導けそうな気がするんだよな
418: 2013/04/03(水)10:05 AAS
チューリング完全を完全に誤解してる。
419: 2013/04/03(水)10:06 AAS
まったくなんのスレだよ
420: 2013/04/03(水)10:10 AAS
万能チューリングマシンとか停止性問題とか神託機械とか、あのへん微妙に中二病患者にウケそうな概念や単語が並んでるからな
421(1): 2013/04/03(水)10:11 AAS
>>415
Cと同等の速度が出せない言語がめずらしいって言っても、
実際には出せてない言語は多いよね。
なんで?
実装してる連中がバカだから?
(実際的にはムリだけど)原理的には可能っていう屁理屈?
422(1): 2013/04/03(水)10:14 AAS
>>421
同等程度の性能しか出せないのに、Javascript製Cコンパイラをつくる意味がない。
それに明らかにコンパイル時間が長引いて実用的でもない。
ゼロからCで書くか、オープンソースのC言語製Cコンパイラを改良した方がいい。
423: 2013/04/03(水)10:17 AAS
脈絡なく屁理屈をレスするスレ
424: 2013/04/03(水)10:18 AAS
>>422
ああ、JavaScriptでも同等の処理を書けるってはなしで、
速度はやっぱり遅いんだな。
425(5): 2013/04/03(水)10:33 AAS
JavaScriptで、C言語製ソフトと同等(速度)の事をやることは現実で可能。
Zopfli を Emscripten をつかって JavaScript に移植しました
外部リンク[html]:blog.livedoor.jp
Google Zopfli圧縮アルゴリズム、gzip -9より高圧縮 3月11日
外部リンク:headlines.yahoo.co.jp
この記事では、C言語で書かれたアプリケーションを Javascript エンジン上で動かすためのツールである Emscripten について解説します。
Emscripten の原理
省2
426: 2013/04/03(水)10:39 AAS
>>425
リンク先をざっと見てみましたけど、JavaScriptのコードをCと同等の速度で
実行できるってのはどこに載ってるんでしょうか。
427: 2013/04/03(水)10:39 AAS
emscriptenの出力コードはjavascript上で機械語コードをエミュレートするだけなんだけど
428: 2013/04/03(水)10:44 AAS
>>425
ドヤ顔でこれかよ・・・
429: 2013/04/03(水)10:45 AAS
>>425
それある程度の速度が出るのはJITコンパイルが前提だよ
上で馬鹿がわめいているような事前コンパイルでJavascirptを高速なネイティブコードに変換するのは難しい
430: 2013/04/03(水)10:48 AAS
コンパイラは文字列操作してるだけ。
C:製Cコンパイラと同じ文字列操作をすれば出力は同じで、速度も同じになるのは当たり前。
アセンブリ言語 - Wikipedia
次に示す機械語は AL レジスタに 01100001 というデータをロードする。
10110000 01100001
このバイナリコードを人間が読みやすいように十六進法で表現すると次のようになる。
B0 61
省6
431(1): 425 2013/04/03(水)10:51 AAS
間違えるな。
Emscriptenで変換したコードが速いと言ってない。
JavaScript製Cコンパイラで、C:製Cコンパイラと同じバイナリ(=同じ速度のバイナリ)を作り出せるかだ。
432: 2013/04/03(水)10:52 AAS
真面目にJSでのゲーム開発を議論するスレかとおもいきや、普通の初心者スレになっているとは。
433: 2013/04/03(水)10:53 AAS
>>431
JavaScriptでCと同等の処理が書けるかって話じゃなくて、同等の速度がだせるかって話なんですけど。
434: 2013/04/03(水)10:56 AAS
emscripten はそういうのじゃないとおもうんだ
c->js はかのうかもしれない js->c は範疇外だろう?
435(2): 2013/04/03(水)10:57 AAS
逆にJavaScriptソースと同等機能を実現するC、アセンブラソースを作り出すことも可能。
JavaScript ⇒ C、アセンブラ ⇒ バイナリ としたらJavaScriptも速く出来る。
436: 2013/04/03(水)10:58 AAS
「この処理系でJSを実行したらCと同等の速度になる」って実例をバーンと出せば
終わる話なのに、できないでいろいろ理屈を言ってることは、やっぱ遅いんだな。
わかりました。
437: 2013/04/03(水)10:59 AAS
ちょっとまてよw
>>401 = >>425 かよ
真面目にレスして損したわ・・・・・・
438: 2013/04/03(水)11:00 AAS
>>435
動的型の言語は単純にCに変換できないでしょ。
439: 2013/04/03(水)11:03 AAS
>>435
>JavaScript ⇒ C
これで作られるCコードを速度まで同等に最適化するのが難しいわけよ
莫大な計算量が必要で現実的じゃない
440(2): 2013/04/03(水)11:08 AAS
C++からJavaScriptへ変換し、さらにJavaへ移植する話の続き
外部リンク:d.hatena.ne.jp
[GDC 2013]Webブラウザで「Unreal Engine 3」がヌルヌル動く!? ゲームエンジンを5日でHTML5へ移植した驚きの技術とは
外部リンク:www.4gamer.net
モジラ、ブラウザ上でゲーム機並みの3Dゲーム体験を可能にする取り組みなど発表
外部リンク:headlines.yahoo.co.jp
Mozilla、Firefox 22 にブラウザゲームを高速化する「asm.js」を搭載- インターネットコム(2013年3月28日12時00分)
省9
441: 2013/04/03(水)11:09 AAS
ja.wikipedia.org/wiki/%E5%A4%89%E6%8F%9B%E8%A8%80%E8%AA%9E
asm.js もそうだけど 中間言語というかtranspilerかますと
復元できない
復元までふくめるとcoffeeみたいになるし…あれ解釈エンジンは
おなじだからこそparserラクしてる面もあるし
442(1): 2013/04/03(水)11:14 AAS
>>440
どっかの記事だと、asm.js でもネイティブコードの倍の遅さらしいけど。
(倍でもすごいけど)
443(1): 2013/04/03(水)11:16 AAS
で、俺の持ってるPCのCPUとGPUを解析して完全に最適化されたコマンドを吐いてくれるJITエンジンはいつ作ってくれるの?
444: 2013/04/03(水)11:21 AAS
>>440
asm.jsのコードはJavascriptのコードとしても実行できるけどその場合はかなり遅い
モジラのVMは、asm.jsのコードをjavascriptのコードとしてではなくて
特殊な静的言語で書かれたコードとして解釈して実行することができて、
その場合は同じようなのネイティブコードの半分ぐらいの実行速度が出る
つまりこれはJavascriptのコードを早く実行する技術とは全然違う
445: 2013/04/03(水)11:23 AAS
Mozilla、Firefox 22 にブラウザゲームを高速化する「asm.js」を搭載 - Infoseek ニュース
Mozilla のゲームプラットフォーム戦略を担当する Martin Best 氏は InternetNews.com に対し、
asm.js コードは、JavaScript 言語の中核要素を使用すると述べた。
基本的には、asm.js を意識して書かれたコードのみが高速化されることになる。
だがこの技術には後方互換性があり、Best 氏によれば、ブラウザが asm.js をサポートしていない場合であっても、
開発者は非常に効率の高いコードを書けると述べている。
外部リンク:news.infoseek.co.jp
446: 2013/04/03(水)11:29 AAS
反論がなくなったから「Javascriptは処理系しだいでCと同等の速度がでる」って話は
間違いでしたって認めたって解釈させてもらいます。
447(1): 2013/04/03(水)11:31 AAS
>>442
処理内容による。
例えば、asm.jsが円周率を1億万桁求める事をサポートし
それがC言語で書かれていてバイナリとして組み込まれていれば、
単体ネイティブバイナリと計算速度は同等だろう。
448: 2013/04/03(水)11:35 AAS
>>447
それは、速度を求められるところはCで書かないとCと同等の速度はでないってことですね。
449: 2013/04/03(水)11:38 AAS
>>443
CPU負荷や空きメモリ、処理対象データに合わせた動的最適化も追加でよろしく!
450: 2013/04/03(水)11:43 AAS
処理の重いところはグラフィックカードがやるから
ライブラリーに投げるだけでしょ?
ロジック部分の生産性が上がるなら言語部分の
速度を議論するのは不毛じゃないの?
ただ、プログラムの規模が大きくなってきたときに
Javascriptってかえって生産性低いのではないだろうかって
気がするんだけど
省10
451: 2013/04/03(水)11:47 AAS
VB.NETが生産性最高
452: 2013/04/03(水)12:02 AAS
JavaScript処理系自体がほぼC/C++製だ。
JavaScript処理系をJavaやJavaScriptやC#や純関数型で書くのも可能だろうが。
速くしたい所を念入りに最適化するのは当然。
453(2): 2013/04/03(水)12:39 AAS
Cコンパイラが出力した機械語と速度比較するのが間違い。CコンパイラソースをJavaScriptソースに変換できれば機械語として同じ速度だ。
言語性能は同じ土台のインタプリタで比較しろ。
CINT(シーイント)
CINT はC/C++ 言語インタープリタです。
CINTを使うと、C/C++で書かれたソースコードをコンパイルせずに実行できます。
90%-95% 実行可能だそうです。
外部リンク[php]:belle.sci.fukuoka-u.ac.jp
省8
454: 2013/04/03(水)12:50 AAS
>>453
>CコンパイラソースをJavaScriptソースに変換できれば機械語として同じ速度だ。
Cコンパイラソースって何だ?
Cコンパイラのソースコード?
Cコンパイルするプログラムのソースコード?
何と何が機械語として同じ速度になるの?
455: 2013/04/03(水)12:52 AAS
>>453
ネイティブのCじゃなくてインタプリタのCとJavascriptを比較しろって意味?
そうする意味がわからない。
それにJavascriptじゃCの9割以上の性能出すのムリなんじゃないの。
456: 2013/04/03(水)12:54 AAS
Cの生産性の悪さとインタープリタの性能の低さを合わせた最強のツールか
457: 2013/04/03(水)12:55 AAS
無駄に改行入れる奴って例外なくバカだね
458: 2013/04/03(水)12:58 AAS
もはや自分でも何言ってんのか分かってなさそうだ
最近のコンパイル言語はコンパイルからJITコンパイルに移行しつつ有って最近のスクリプト言語もインタプリトからJITコンパイルに移行しつつ有るというのに、コンパイル言語の不完全なインタプリトとスクリプト言語の最新JITコンパイルを比較とか何がしたいんだ。
459(1): 2013/04/03(水)13:00 AAS
機械語、CPUが直に理解できるワードはC言語とは別もの。
機械語で比較するならば、Cコンパイラと同じ出力を作れれば同速度であるといえる。
Cコンパイラのソースコードを移植できる言語であれば、C言語と同速度。
460: 2013/04/03(水)13:07 AAS
>>459
何のプログラムコードで書いた何をするプログラムが同速度になるの?
461(1): 2013/04/03(水)13:12 AAS
459だとC言語ソースをJavaScriptでコンパイルしたものが
C製Cコンパイラと同速度という意味だが。
JavaScriptソースとC言語ソースに互いに変換可能で無駄がないとすれば
JavaScriptソースもJavaScript製コンパイラでC言語並の速度が出るということ。
上下前次1-新書関写板覧索設栞歴
あと 426 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.018s