[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 05/09 17:51 / Filesize : 63 KB / Number-of Response : 307
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【超高速】C/C++に代わる低級言語を開発したい 2



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/

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 ]
仕事する上ではそれほど必要ないかもしれんが
低級言語作りたいって言うんだったら必要だろう

153 名前:デフォルトの名無しさん [2010/04/04(日) 20:58:10 ]
>>150
なぜそう思ったの?



154 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 21:00:13 ]
Javaでプログラミングするとしても、パフォーマンスを考えるためにある程度の知識は必要だろ。

155 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 21:05:47 ]
>>153
自分がCPUが何をしているか知らないから、それを知っていることが凄いとでも思っちゃったんじゃないの。

156 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 21:10:17 ]
vbプログラマとかCPUのことよくわかってないの多いぞ

157 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 21:10:40 ]
そんなに必要な機能があるなら、C99に取り込まれているだろう。

158 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 21:15:58 ]
>>156
お前がそういうコミュニティーに属しているというだけだ

159 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 21:27:08 ]
この流れじゃ、例えPart 3まで行っても何も決まらないだろうな

160 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 21:39:55 ]
新言語とかどうでも良くてJAVAを叩ければそれで満足なカスが多すぎる

161 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 21:40:53 ]
それって、Part3までに決めろよってことだろw
おまえ、ワクワクし過ぎw

162 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 21:42:18 ]
は?

163 名前:デフォルトの名無しさん [2010/04/04(日) 21:43:18 ]
>>160
Javaなんて別に叩くほどの言語でも無いだろ。どうでもいい。



164 名前:デフォルトの名無しさん [2010/04/04(日) 21:58:22 ]
Javaは使えない言語だが貶すほどでもない

165 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 22:01:06 ]
言い方を変えるか
とにかく何でも叩きたいだけの生産力絶無のカスが多すぎる

166 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 22:02:56 ]
普及している言語をカスといっているヤツは、その理由がわかっていないカスだから相手にしなくていい。

167 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 22:09:45 ]
歴史的理由にすぎない
とかいっているヤツはどうする

168 名前:デフォルトの名無しさん [2010/04/04(日) 22:17:08 ]
どうでもいい。

169 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 22:59:43 ]
CPUどころか、OSが何してるのか知らない奴が多い。

170 名前:デフォルトの名無しさん [2010/04/04(日) 23:00:21 ]
>>169
なぜそう思ったの?

171 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 23:01:34 ]
>>169がそういうコミュニティーに属してるんだろw

172 名前:デフォルトの名無しさん [2010/04/04(日) 23:09:09 ]
>>1
TMPできるようにして

173 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 23:16:07 ]
世間一般はGUIの出来でOSの評価してるからな



174 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 23:21:07 ]
OSどころか、コンパイラが何してるのか知らない奴が多い。

175 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 23:27:35 ]
そりゃ利用者はコンパイラのことなんか知る必要ないからな。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<63KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef