1 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 09:24:04 ] 70年代、Cは生まれ、それから30余年、現代においてもなお、低レベルなシステム開発に広く使われている。 しかし、2010年の今、もしもCが発明されていなかったとして、低レベルなシステム開発のためのプログラミング言語を 新たに作るとしたら、Cとは違う言語になるだろう。少なくとも、全く同じにはならないはずだ。 そこで、このスレッドでは、 低レベルなシステム開発のためのプログラミング言語 を一から考えたい。 既存の言語を使って何かをすることが目的ではなく、新たなプログラミング言語を考えることが目的であるから、 「既存のXX言語を使えばいい。」という類の発言は無意味である。 「既存のYY言語のZZ機能は、WWと言う点で有用だから採用したい。」という発言は歓迎だ。 現代の一流のプログラミング言語研究者が、最先端の研究成果を盛り込んで、 一から低レベルなシステム開発のためのプログラミング言語を作るとしたら、どのような言語になるだろうか、 という観点で考えたい。 ◆前スレ 【超高速】C/C++に代わる低級言語を開発したい pc12.2ch.net/test/read.cgi/tech/1268843875/
52 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 02:52:52 ] >>48 ぜんぜん見当違いの指摘。 話題についてこれない人は入ってこないでほしい。 ネイティブに変換する前のコードがC++だったら JavaVMのコードの場合より、最適化がしやすいかどうかっていうのが 問題になってる。
53 名前:デフォルトの名無しさん [2010/04/04(日) 02:58:09 ] JavaがC++と同程度にネイティブコードに最適化しやすいのであれば、最適化コードを生成できないSunの技術者はどうしようもない無能。 Sunの技術者がどうしようもない無能でないならば、JavaはC++と同程度にはネイティブコードに最適化できないクズ言語。
54 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:05:03 ] まあ、ポインターが使えるってだけでもJavaよりC++の方が最適化しやすいわな。 GC任せのメモリ管理をネイティブコードに最適化しようにも、そりゃオーバーヘッドが当然大きくなる。 「ネイティブコードにしたからって速くなるわけじゃない」ってのに噛み付くって、どんだけド素人なんだよw
55 名前:デフォルトの名無しさん [2010/04/04(日) 03:13:05 ] Javaなんてクソ言語どうでもいいよ ┐(´д`)┌ヤレヤレ 新言語の話しようぜ!
56 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:15:33 ] バカばっか JAVAが遅いのはお前らみたいなタコがタココード書いても危険にならんようお仕着せ機能がてんこ盛りなだけで JAVAが実際やってる事を機能的になぞるC++コードを書いたら同程度に遅くなるっつの 何がネイティブコードなら速いだよバカすぎ
57 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:17:21 ] >>53 Sunが無能って可能性もあるな。 C++でも、コンパイラによって最適化の性能が違うし、昔はJavaコンパイラ&VMの 性能差も各メーカー間でどうこうって話題があったしな。 ま、どっちにしろ>>39 の考察は間違ってるってことで。
58 名前:デフォルトの名無しさん [2010/04/04(日) 03:18:59 ] /: : : : : __: :/: : ::/: : ://: : :/l::|: : :i: :l: : :ヽ: : :丶: : 丶ヾ ___ /;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、 / ヽ /ヽヽ: ://: :!:,X~::|: /;,,;,/: :/ リ!: ::/ノ l`ヽl !: : |: : : :l: :l: リ / そ そ お \ /: : ヽヾ/: : l/::l |/|||llllヾ,、 / |: :/ , -==、 l\:::|: : : :|i: | / う う 前 | . /: : : //ヾ ; :|!: イ、||ll|||||::|| ノノ イ|||||||ヾ、 |: ::|!: : イ: ::|/ な 思 が /: : ://: : :ヽソ::ヽl |{ i||ll"ン ´ i| l|||l"l `|: /|: : /'!/l ん う ∠: : : ~: : : : : : : :丶ゝ-―- , ー=z_ソ |/ ハメ;, :: ::|. だ ん i|::ハ: : : : : : : : : : : 、ヘヘヘヘ 、 ヘヘヘヘヘ /: : : : : \,|. ろ な |!l |: : : : : : : : :、: ::\ 、-―-, / : : :丶;,,;,:ミヽ う ら 丶: :ハ、lヽ: :ヽ: : ::\__ `~ " /: : ト; lヽ) ゝ レ `| `、l`、>=ニ´ , _´ : :} ` / ,,、r"^~´"''''"t-`r、 _ -、 ´ヽノ \ノ / お ・ ,;'~ _r-- 、__ ~f、_>'、_ | で 前 ・ f~ ,;" ~"t___ ミ、 ^'t | は ん ・ ," ,~ ヾ~'-、__ ミ_ξ丶 | な 中 ・ ;' ,イ .. ヽ_ ヾ、0ヽ丶 l / ( ;":: |: :: .. .`, ヾ 丶 ! \____/ ;;;; :: 入:: :: :: l`ー-、 )l ヾ 丶 "~、ソ:: :い:: : \_ ノ , ヾ 丶
59 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:23:19 ] >>56 話題についてこれない人は、入ってこなくていいって。 その理屈だと >>28 のような、単純なループや数値計算だけの コードでJavaが遅い理由がわからない。
60 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:23:49 ] 最後の捨て台詞で>>57 の引込みがメデタクついたので、新言語の話題再開。
61 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:25:14 ] だれも>>59 の俺理論にはついていけねーわw
62 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:26:46 ] >>58 いや、お前の中以外では、そうなんだよ。
63 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:27:07 ] >>59 さん、僕たちを置いていかないでwwwwwwww
64 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:27:29 ] >>59 話題についてこれてないのはお前だよww
65 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:29:50 ] >>61 そういう理論っていうか、そういう話だもん。 どうせ、レスを2,3見て、話を把握せずに適当に「バカばっか」とか 中学生みたいなこと言いたくなったんでしょ? >>56 は。
66 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:31:31 ] >>60 捨てゼリフっていうか、論点が>>39 が間違ってるってことだったのに 関係ない話にすりかえてごまかそうとしてたから、とりあえずまとめてみたの。
67 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:32:14 ] なんか、痛々しい奴がいるなw
68 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:34:05 ] >>64 いや、>>28 のような単純なコードでなぜJavaが遅いかって話題でしょ? それを安全な言語だから遅いとかツッコミ入れてるほうが、ぜんぜん話に ついてこれてないよ。 とりあえず一行レスしとけばごまかせるとか思うのは卒業したほうがいいよ。
69 名前:デフォルトの名無しさん [2010/04/04(日) 03:37:20 ] どうしても>>39 が間違っていることにしたいようだが、そもそも>>41 は>>39 への反論になっていないし。 「ネイティブにすれば何でも速くなる」と思ってる時点で全然論理が成り立ってないんだよ。
70 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:46:42 ] >>68 バッカじゃねぇの? マジ、バッカじゃねぇの? どんなに単純なソースだろうとJAVAはC++では当然やらない膨大なお仕着せ処理が実行されるんだよ 何故遅いかだと?遅いに決まってんだろ その意味では>>39 の > Javaではネイティブコードで速くなるようには書けない。 は正しい お前の主張が「単純なソースなのに何故チェック機構を無効化しないのか分からない」と言う物なら もう死んだ方がいいレベル
71 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:47:31 ] 恐らく>>68 は死んだ方がいい
72 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:48:01 ] ここまで新言語の話題なし
73 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:49:43 ] Javaプログラマーはネイティブコードに夢を抱きすぎだろw ネイティブコードにしたからってそう簡単には速くはならんのだよw 英語ができれば俺だって国際的に活躍する一流の技術者になれるんだ、とか言ってるIT土方と一緒。 英語が話せたところでお前は一生底辺なんだよwww
74 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:53:48 ] >>69 だから言ってるじゃん。 それって >>28 のような単純なループとか数値演算ではどうなのよって。 都合の悪いことは見えないふりするんだな。
75 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:57:21 ] >>74 のつづき 単純なループでも、配列のチェックとかオーバーフローのチェックとか あるだろとか、最低限の技術的な突っ込みがあるだろうって思ってたのに、 そういうのは一切なしで、都合の悪いことは見えないふりで、ひたすら 見当違いのあおりとか、人格攻撃に終始して勝利宣言な。 ほんとうにどうしようもない連中だな。
76 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:01:15 ] 型チェック境界チェックオーバー/アンダーフローチェック配列はオブジェクト トーシロでもJAVAではこれ位やってるって事はわかる で、これらと全く同じ要件をネイティブコード(笑)で書けば速いのか?
77 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:01:45 ] >>70 > バッカじゃねぇの? > マジ、バッカじゃねぇの? > どんなに単純なソースだろうとJAVAはC++では当然やらない膨大なお仕着せ処理が実行されるんだよ 本当に気にさわったみたいだな。 しかし、この「自分の都合の悪いことはスルー」のスルー力がすごすぎる。 指摘はひたすら無視して、 >は正しい で反論したつもりになってるんだもんな。
78 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:05:56 ] >>76 >>75 で指摘されてやっと最低限の指摘がでてきた。 ループが固定回なら、配列のチェックなんて最適化できるだろ。
79 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:06:42 ] >>78 バカかお前 >>76 は被っただけで75なんて読んでねぇよ
80 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:08:50 ] >>78 特大のバカ発言現る 実行時にその参照が固定配列を指してる保証がどこにある
81 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:09:15 ] >>79 そんなのわかってて煽っただけだよ。
82 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:10:38 ] >>78 でコイツの器のミニマムさがこれ以上無いほど晒されたなwww
83 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:11:43 ] >>81 つまり39の指摘は正しい事を認めつつも、ただ下らない煽りを続けてるのが今のお前の姿と言う認識で宜しいか。
84 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:22:03 ] オブジェクト指向だから遅い クラス階層が広くて深いから遅い 仮想関数使うから遅い ガベージコレクションするから遅い ヴァーチャルマシンをはさむから遅い 実行時の動的型決定を使うから遅い 短い関数を沢山書くから遅い 毎回毎回いちいち動的にメモリ確保するから遅い なんでも実行時に決定させる設計だと遅い goto使わせないから遅い アセンブラを使わせないから遅い ポインタを使わせないから遅い モノリシックに書かないから遅い 移植性を考えるから遅い
85 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:35:01 ] >>82 また技術的な指摘なしで、人格攻撃かよ。 動的言語のエディタでさえ、編集中の変数にどのインスタンスが 入れられたか見えてればインテリセンス聞かせられるのに、 宣言が見えてる配列の最適化なんて聞かせられない道理がないだろ。
86 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:38:21 ] >>83 いや、>>76 を見た瞬間は 「俺の指摘をまんまオウム返しにしてきた、こいつバカだろ」って思ったけど いくらなんでも、それはバカ過ぎるから、またレスもろくに読まずに 反論してるんだなって、優しく解釈してあげた。 でも、すごい必死で面白いから、知らない振りして煽ってみた。
87 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:42:08 ] >>78 >>85 リフレクションのリの字も知らない低レベラー乙
88 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:44:38 ] >>87 int tbl = new int[100]; tbl[0] = 0; これのどこにリフレクションを考慮する余地があるんですか?
89 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:44:58 ] >>86 つまり39の指摘は正しい事を認めつつも、ただ下らない煽りを続けてるのが今のお前の姿という訳だな。 なぜ「いや」から始めたのかが意味不明だが。
90 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:48:06 ] >>89 煽ったのは、お前のドジなところだから本題には関係ない。 そのくらい分かれよ。 とにかく揚げ足をとりたくてしかたないんだな。
91 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:48:27 ] もういいだろ Javaを知らない馬鹿が、Javaを知らない振りをして低レベルスレに相応しい低レベルな煽りをしてるだけの話だ
92 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:52:36 ] >>90 どこをドジと言ってるんだ?素でわからん。
93 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:52:49 ] >>91 また人格攻撃がはじまった。 まあ、本題のほうは反論の余地がなくなったってことですね。 >>39 は間違ってるって結論で終了ってことで。
94 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 05:00:10 ] >>93 お前さんが無知すぎてもはや反論の余地が無いwwww
95 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 05:07:09 ] >>94 どこか無知か一つも指摘できないで、脳内で無知ってことにして煽る。 そういうのってむなしくないっすか? てか、実際最適化してるかどうかjavaと似てるC#で int tbl = new int[100]; tbl[0] = 100; をコンパイルしてみたら、律儀に配列の境界チェックのコードが入ってたな。 なんで最適化しないんだろ。 最適化技術の問題か、それとも言語仕様上の問題なのか。 まあ、>>87 のリフレクション説はないと思うけど。 Javaで調べるんは面倒だからやらない。
96 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 05:37:59 ] LL言語とC/C++の速度比較とかありえない どこの初心者だよ
97 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 10:22:36 ] >>95 そういう最適化はJITコンパイル時に行われるんじゃないの
98 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 10:23:06 ] そろそろ新言語の話しようぜ
99 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 11:04:25 ] まず名前からきめようか
100 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 11:07:00 ] GOがあるじゃないか
101 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 11:13:19 ] Goは、Cの代わりにならない。
102 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 11:36:00 ] >>84 オブジェクト指向だから遅い → NO クラス階層が広くて深いから遅い → NO 仮想関数使うから遅い → Yes(NOにできるかな?) ガベージコレクションするから遅い → Yes ヴァーチャルマシンをはさむから遅い → Yes 実行時の動的型決定を使うから遅い → Yes(NOにできるかな?) 短い関数を沢山書くから遅い → NO 毎回毎回いちいち動的にメモリ確保するから遅い → Yes(ただし、そうする必要もない) なんでも実行時に決定させる設計だと遅い → NO goto使わせないから遅い → NO アセンブラを使わせないから遅い → NO ポインタを使わせないから遅い → NO モノリシックに書かないから遅い → NO 移植性を考えるから遅い → NO
103 名前:デフォルトの名無しさん [2010/04/04(日) 12:00:42 ] Goは早くも下火になった 新物だったので一時的に話題を集めただけ 今ではD言語にも満たない
104 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 12:04:16 ] >>32 Javaもエスケープ解析を有効にしたらスタックにオブジェクトをおけるんだけど、 エスケープ解析ってコンパイル時にできるものなのにクラスロード時にしちゃうから、 今度は起動速度に悪影響があるんだよなぁ。
105 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 12:22:48 ] FORTRANにオブジェクト指向取り入れれば
106 名前:デフォルトの名無しさん [2010/04/04(日) 12:29:48 ] >>105 確かとっくに取り入れられてなかったか? ja.wikipedia.org/wiki/Fortran Fortran2003で取り入れられているようだ
107 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 12:35:39 ] じゃあ言語名はF++0xで
108 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 13:25:53 ] そういやおまいらの中でドラゴン本タイガー本中田本読んだのってどれぐらいいるの? あとC++の設計を語るのならD&EとかARMとかも読んでいると思うけど、そのへんもどうなの?
109 名前:デフォルトの名無しさん [2010/04/04(日) 13:50:34 ] 読んでねーだろこんなアイちゃんスレに書き込む輩は
110 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 13:51:16 ] >>98 ラブプラス++
111 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 14:18:28 ] O+++
112 名前:デフォルトの名無しさん [2010/04/04(日) 15:23:43 ] >>108 全員読んでる。当たり前だろ。
113 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 15:32:38 ] >>108 常識
114 名前:デフォルトの名無しさん [2010/04/04(日) 16:18:46 ] >>99 「small」 プログラマーの言語仕様の学習不足によるヒューマンエラーを最小限にするために、 できるだけ小さな言語仕様にしたい。
115 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 16:35:45 ] >プログラマーの言語仕様の学習不足によるヒューマンエラーを最小限にするために、 そんなコンセプトじゃ無いだろ。 第一、言語仕様が小さいからといってヒューマンエラーが減るわけじゃない。 もしそうだとしたらForth最強じゃないか。
116 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 16:38:18 ] Forthはインタプリタの実装までを含めて仕様みたいなもんだから、 見た目ほど仕様が小さいわけでもないけどな。
117 名前:デフォルトの名無しさん [2010/04/04(日) 16:39:56 ] >>115 > そんなコンセプトじゃ無いだろ。 じゃあ、どんなコンセプトなんだ?否定する前に意見を述べよう。
118 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 16:49:12 ] Cにとって代わるというのがコンセプトだろ。
119 名前:デフォルトの名無しさん [2010/04/04(日) 16:51:52 ] Cにとって代わるのに加えて、 「プログラマーの言語仕様の学習不足によるヒューマンエラーを最小限にするために、 できるだけ小さな言語仕様にしたい。」 という提案だろ?
120 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 17:02:05 ] >>119 言語仕様が小さくなったら、ヒューマンエラーは増えると思うが。
121 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 17:03:07 ] えっ
122 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 17:04:18 ] 思うのは自由だ。
123 名前:デフォルトの名無しさん [2010/04/04(日) 17:20:02 ] >>120 言語仕様が小さい方が、言語仕様を知らないことによる人間の失敗は少なくなるよね? 人間の記憶容量は有限だから。
124 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 17:32:30 ] たとえば、C言語でオブジェクト指向っぽいことをやろうとした時の煩雑さとかどうよ。 言語の支援があったほうがよい機能を全部ユーザーがやるというのは無理がある。
125 名前:デフォルトの名無しさん [2010/04/04(日) 17:34:38 ] 直感的で一貫性のある仕様がいいね。
126 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 18:04:48 ] 教育用言語なら、再帰がない方が失敗が少なくなると言えなくもない。
127 名前:デフォルトの名無しさん [2010/04/04(日) 18:12:44 ] 再帰なんて、単に呼び出す関数がたまたま自分であったと言うだけであって、全く特別なものではない。 それを阻害するような例外(「ただし、自身を呼び出してはいけない」等)を仕様に付け加える方が混乱のもと。有害。 そんな例外は、仕様に絶対に含めるべきではない。
128 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 18:19:14 ] >>127 auto変数とかいう特別な変数がある
129 名前:デフォルトの名無しさん [2010/04/04(日) 18:26:51 ] どう特別?スタックに乗るだけでは?
130 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 18:31:10 ] 変数のためにわざわざスタックを使うのは、再帰があるからだよ 再帰が無いならすべてstaticかグローバル変数でOK
131 名前:デフォルトの名無しさん [2010/04/04(日) 18:33:48 ] スタックを使わず、「staticかグローバル変数」にした場合のメリットは?
132 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 18:36:06 ] >>131 超高速。
133 名前:デフォルトの名無しさん [2010/04/04(日) 18:36:58 ] >>132 どういう理由で?
134 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 18:56:59 ] 「staticかグローバル変数」にしたら関数の外からでも参照できて危ないとしか思えんのだが
135 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 19:02:02 ] スタックポインタに足し算するのに何百クロックもかかる変なマシンを使ってる人が ここにも登場w グローバル変数は速いと言い張るバカwwwwww
136 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 19:03:57 ] 古い言語ではローカル変数をスタックに取ったりはしない。
137 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 19:04:40 ] >>134 関数の中でもstaticつかえるよ
138 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 19:05:05 ] で?
139 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 19:06:59 ] 関数の中のstaticと関数の外のstaticは全く別の物だからな。 同じキーワードを使いまわしてるのは、ほとんど設計ミス。
140 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 19:07:44 ] >>123 ヒーマンエラーを減らすためにいろいろな機構があるのに。
141 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 19:08:26 ] グローバル変数が高速wwwwwww
142 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 19:16:52 ] 静的に一度だけ確保され初期化がされるstaticと、 静的にメモリに配置されアプリケーション終了まで変わらないstatic? ってあれ?グローバルに置かれた変数の方の staticって、 そうでない物と何が違うの?
143 名前:デフォルトの名無しさん [2010/04/04(日) 19:20:48 ] >>140 その機構が、直感的で一貫性があればいいけどね。 特殊な例外の積み重ねで、プログラマーが勘違いすると、プログラマーの意図と違う結果になるのは避けたい。
144 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 19:25:34 ] >>142 名前空間がファイル単位になるんじゃなかったっけ
145 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 19:34:18 ] たぶんそれは名前空間じゃなくてスコープだと思う。
146 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 19:34:53 ] すまん、無名名前空間の話とごっちゃにしてた
147 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 19:43:06 ] file1.cpp --- int a = 1234; static int b = 6789; file2.cpp --- extern が無いと a も b も見えない。 ------------ file1.h int a = 1234; static int b = 6789; もしも file1.h が複数回includeされていても、b は安泰だが a はエラー
148 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 19:44:35 ] >>147 初心者スレでやれ
149 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 19:53:39 ] まぁ初心者云々はともかくC++におけるstaticの多義性が >>143 の「特殊な例外の積み重ね」であることは間違いないなw
150 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 20:18:23 ] そもそもCPUが何してるか知らない奴多くね?
151 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 20:33:28 ] 論理回路の知識がなくてもプログラミングに差し支えはないだろ。 差し支えるようなプログラミング言語というのもあるかもしれんが。
152 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 20:53:19 ] 仕事する上ではそれほど必要ないかもしれんが 低級言語作りたいって言うんだったら必要だろう