【超高速】C/C++に代わる低級言語を開発したい 2
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/04/03(土) 09:24:04しかし、2010年の今、もしもCが発明されていなかったとして、低レベルなシステム開発のためのプログラミング言語を
新たに作るとしたら、Cとは違う言語になるだろう。少なくとも、全く同じにはならないはずだ。
そこで、このスレッドでは、
低レベルなシステム開発のためのプログラミング言語
を一から考えたい。
既存の言語を使って何かをすることが目的ではなく、新たなプログラミング言語を考えることが目的であるから、
「既存のXX言語を使えばいい。」という類の発言は無意味である。
「既存のYY言語のZZ機能は、WWと言う点で有用だから採用したい。」という発言は歓迎だ。
現代の一流のプログラミング言語研究者が、最先端の研究成果を盛り込んで、
一から低レベルなシステム開発のためのプログラミング言語を作るとしたら、どのような言語になるだろうか、
という観点で考えたい。
◆前スレ
【超高速】C/C++に代わる低級言語を開発したい
http://pc12.2ch.net/test/read.cgi/tech/1268843875/
0002デフォルトの名無しさん
2010/04/03(土) 10:46:330003デフォルトの名無しさん
2010/04/03(土) 13:20:19すでに多数あるが。
0004デフォルトの名無しさん
2010/04/03(土) 14:16:27それならCにできないけど低級言語に欲しい機能を挙げてみようぜ。
・Lispなみに弄くれるマクロ
- テンプレート
- 正規化された構文(S式とか)
・Forthなみに弄くれる駆動レコード
- コルーチン
- 強制インライン展開(レコードを新しく作らないルーチン)
- 駆動レコードへのアクセス
・実行制御
- 高度な並列処理(トランザクションとか)
- アトミック操作
- リアルタイム操作
こんなもんかね? 他にどんなの欲しい?
0005デフォルトの名無しさん
2010/04/03(土) 14:27:130006デフォルトの名無しさん
2010/04/03(土) 14:27:420007デフォルトの名無しさん
2010/04/03(土) 14:34:000008デフォルトの名無しさん
2010/04/03(土) 15:24:330009デフォルトの名無しさん
2010/04/03(土) 15:42:06とりあえずC99の機能を今流の文法にしたらどうなるかを考えてみたら。
0010デフォルトの名無しさん
2010/04/03(土) 15:42:47↑ 「低レベル」なことしたい
│ │
│ ↓
│ でも、最新のオサレな言語・技術って、
結局、C/C++だよ←─── OSに依存すること多くね?
OSより 「低レベル」なこと出来なくね?
0011デフォルトの名無しさん
2010/04/03(土) 16:06:12このスレ落とせ
0012デフォルトの名無しさん
2010/04/03(土) 16:14:44>4 みたいなのはどうなのよ。OSに依存するのは実行制御以下ぐらいじゃね?
それともこの話についていけてない?
0013デフォルトの名無しさん
2010/04/03(土) 16:17:36言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0014デフォルトの名無しさん
2010/04/03(土) 16:25:22OSがなかったら、ヒープすらないことに気付けよ。
0015デフォルトの名無しさん
2010/04/03(土) 16:28:440016デフォルトの名無しさん
2010/04/03(土) 19:40:000017デフォルトの名無しさん
2010/04/03(土) 20:20:490018デフォルトの名無しさん
2010/04/03(土) 22:05:050019デフォルトの名無しさん
2010/04/03(土) 22:46:260020デフォルトの名無しさん
2010/04/03(土) 22:49:480021デフォルトの名無しさん
2010/04/03(土) 22:52:470022デフォルトの名無しさん
2010/04/03(土) 22:54:260023デフォルトの名無しさん
2010/04/03(土) 23:04:18機種依存も必須。
でもjavaみたいに間違いが起こりにくい仕組みは欲しい。
0024デフォルトの名無しさん
2010/04/03(土) 23:16:510025デフォルトの名無しさん
2010/04/03(土) 23:28:010026デフォルトの名無しさん
2010/04/03(土) 23:34:16いくら夢を語っても、どうせ現物はできないし、むなしくなるだけなのにな。
0027デフォルトの名無しさん
2010/04/03(土) 23:36:380028デフォルトの名無しさん
2010/04/04(日) 00:01:48JavaとC++のパフォーマンスを比較する
http://japan.internet.com/developer/20100402/26.html
0029デフォルトの名無しさん
2010/04/04(日) 00:03:530030デフォルトの名無しさん
2010/04/04(日) 00:11:24最適化のことを「条件付き」という筆者はバカ。
0031デフォルトの名無しさん
2010/04/04(日) 00:20:370032デフォルトの名無しさん
2010/04/04(日) 00:23:38最適化なしなら大差なしで、最適化ありならCが倍くらい速かった。
単純にループでまわして配列にアクセスしたり、数値演算するだけ
のコードならもうJavaもCもかわらないとかって結果になっても
驚かない感じだけそ、まだそこまでも行ってないんだな。
一般的なアプリのコードだと、Javaは文字列も粒度の小さいクラス(構造体)
も全部ヒープに置かないといけないんで、どうがんばってもC++に
かなわないような気がする。
0033デフォルトの名無しさん
2010/04/04(日) 00:32:40JAVA「……おい、お前の言う最適化とやらは、そんなにすごいのか?」
C++「そうだ、最適化さえすればお前などに……」
JAVA「ほう、本当に速くなるんだな?」
C++「そうだ、最適化さえすればお前などに……」
JAVA「…………」
C++「ちくしょーちくしょー! 最適化……最適化さえすればー!」
トランクス「……いったい何を話してるんだ?」
C++「ちくしょーちくしょー! 最適化……最適化さえすればー!」
JAVA「おい、やってみろよ。最適化を」
C++「なんだと!?」
ナレーション「いったい、どうなってしまうのか!?」
0034デフォルトの名無しさん
2010/04/04(日) 00:38:540035デフォルトの名無しさん
2010/04/04(日) 00:42:100036デフォルトの名無しさん
2010/04/04(日) 00:48:160037デフォルトの名無しさん
2010/04/04(日) 01:17:15逆だろw
JAVA「ちくしょーちくしょー! 最適化…… 最適化さえすればー!」
C++「……いや、最適化なんて普通だし」
JAVA「そうだ、最適化さえすればお前などに……」
C++「やればいいじゃん」
JAVA「そうだ、最適化さえすればお前などに……」
C++「…………」
JAVA「ちくしょーちくしょー! 最適化……最適化さえすればー!」
トランクス「……いったい何を話してるんだ?」
JAVA「ちくしょーちくしょー! 最適化……最適化さえすればー!」
C++「だからやればいいじゃん、最適化を」
JAVA「なんだと!?」
ナレーション「いったい、どうなってしまうのか!?」
0038デフォルトの名無しさん
2010/04/04(日) 01:25:38vmのコードでコンパイル→それからJITで本当のマシン後に変換
ってあたりでどうしようもないんでしょ > 遅いの
0039デフォルトの名無しさん
2010/04/04(日) 02:17:26ネイティブコードにすれば何でも早くなるってモンじゃない。
プログラムは、ネイティブコードで速くなるように書いて初めて速くなる。
Javaではネイティブコードで速くなるようには書けない。だから遅い。
0040デフォルトの名無しさん
2010/04/04(日) 02:31:330041デフォルトの名無しさん
2010/04/04(日) 02:37:04その理屈はおかしい。
・C++のコード→ネイティブのアセンブラ
で、速い最適化が可能なら、
・JavaVMのコード→ネイティブのマシン語
の変換中の最適化でも速い最適化ができない理由がない
0042デフォルトの名無しさん
2010/04/04(日) 02:38:370043デフォルトの名無しさん
2010/04/04(日) 02:41:260044デフォルトの名無しさん
2010/04/04(日) 02:41:26いや、>>39の考察が間違ってるってことだろ。
0045デフォルトの名無しさん
2010/04/04(日) 02:42:110046デフォルトの名無しさん
2010/04/04(日) 02:43:30むしろ、>>42が>>41の考察が間違ってることを証明している。
0047デフォルトの名無しさん
2010/04/04(日) 02:44:48>>39 が間違ってる理由は >>41 で述べたよ。
Javaが遅い理由は >>39 の考察した理由以外のところであるってことだけど、
それはしらない。
0048デフォルトの名無しさん
2010/04/04(日) 02:45:250049デフォルトの名無しさん
2010/04/04(日) 02:48:37最適化がしやすい理由が無ければならないけど、そんなことは無いから、
>>41 は完全に間違ってる。
Javaが遅い理由はほかに求めるべき。
0050デフォルトの名無しさん
2010/04/04(日) 02:49:510052デフォルトの名無しさん
2010/04/04(日) 02:52:52ぜんぜん見当違いの指摘。
話題についてこれない人は入ってこないでほしい。
ネイティブに変換する前のコードがC++だったら
JavaVMのコードの場合より、最適化がしやすいかどうかっていうのが
問題になってる。
0053デフォルトの名無しさん
2010/04/04(日) 02:58:09Sunの技術者がどうしようもない無能でないならば、JavaはC++と同程度にはネイティブコードに最適化できないクズ言語。
0054デフォルトの名無しさん
2010/04/04(日) 03:05:03GC任せのメモリ管理をネイティブコードに最適化しようにも、そりゃオーバーヘッドが当然大きくなる。
「ネイティブコードにしたからって速くなるわけじゃない」ってのに噛み付くって、どんだけド素人なんだよw
0055デフォルトの名無しさん
2010/04/04(日) 03:13:05新言語の話しようぜ!
0056デフォルトの名無しさん
2010/04/04(日) 03:15:33JAVAが遅いのはお前らみたいなタコがタココード書いても危険にならんようお仕着せ機能がてんこ盛りなだけで
JAVAが実際やってる事を機能的になぞるC++コードを書いたら同程度に遅くなるっつの
何がネイティブコードなら速いだよバカすぎ
0057デフォルトの名無しさん
2010/04/04(日) 03:17:21Sunが無能って可能性もあるな。
C++でも、コンパイラによって最適化の性能が違うし、昔はJavaコンパイラ&VMの
性能差も各メーカー間でどうこうって話題があったしな。
ま、どっちにしろ>>39の考察は間違ってるってことで。
0058デフォルトの名無しさん
2010/04/04(日) 03:18:59/;,, : : : //::/: : 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 ヾ 丶
"~、ソ:: :い:: : \_ ノ , ヾ 丶
0059デフォルトの名無しさん
2010/04/04(日) 03:23:19話題についてこれない人は、入ってこなくていいって。
その理屈だと >>28 のような、単純なループや数値計算だけの
コードでJavaが遅い理由がわからない。
0060デフォルトの名無しさん
2010/04/04(日) 03:23:490061デフォルトの名無しさん
2010/04/04(日) 03:25:140062デフォルトの名無しさん
2010/04/04(日) 03:26:46いや、お前の中以外では、そうなんだよ。
0063デフォルトの名無しさん
2010/04/04(日) 03:27:070064デフォルトの名無しさん
2010/04/04(日) 03:27:29話題についてこれてないのはお前だよww
0065デフォルトの名無しさん
2010/04/04(日) 03:29:50そういう理論っていうか、そういう話だもん。
どうせ、レスを2,3見て、話を把握せずに適当に「バカばっか」とか
中学生みたいなこと言いたくなったんでしょ?
>>56 は。
0066デフォルトの名無しさん
2010/04/04(日) 03:31:31捨てゼリフっていうか、論点が>>39が間違ってるってことだったのに
関係ない話にすりかえてごまかそうとしてたから、とりあえずまとめてみたの。
0067デフォルトの名無しさん
2010/04/04(日) 03:32:140068デフォルトの名無しさん
2010/04/04(日) 03:34:05いや、>>28 のような単純なコードでなぜJavaが遅いかって話題でしょ?
それを安全な言語だから遅いとかツッコミ入れてるほうが、ぜんぜん話に
ついてこれてないよ。
とりあえず一行レスしとけばごまかせるとか思うのは卒業したほうがいいよ。
0069デフォルトの名無しさん
2010/04/04(日) 03:37:20「ネイティブにすれば何でも速くなる」と思ってる時点で全然論理が成り立ってないんだよ。
0070デフォルトの名無しさん
2010/04/04(日) 03:46:42バッカじゃねぇの?
マジ、バッカじゃねぇの?
どんなに単純なソースだろうとJAVAはC++では当然やらない膨大なお仕着せ処理が実行されるんだよ
何故遅いかだと?遅いに決まってんだろ
その意味では>>39の
> Javaではネイティブコードで速くなるようには書けない。
は正しい
お前の主張が「単純なソースなのに何故チェック機構を無効化しないのか分からない」と言う物なら
もう死んだ方がいいレベル
0071デフォルトの名無しさん
2010/04/04(日) 03:47:310072デフォルトの名無しさん
2010/04/04(日) 03:48:010073デフォルトの名無しさん
2010/04/04(日) 03:49:43ネイティブコードにしたからってそう簡単には速くはならんのだよw
英語ができれば俺だって国際的に活躍する一流の技術者になれるんだ、とか言ってるIT土方と一緒。
英語が話せたところでお前は一生底辺なんだよwww
0074デフォルトの名無しさん
2010/04/04(日) 03:53:48だから言ってるじゃん。
それって >>28 のような単純なループとか数値演算ではどうなのよって。
都合の悪いことは見えないふりするんだな。
0075デフォルトの名無しさん
2010/04/04(日) 03:57:21単純なループでも、配列のチェックとかオーバーフローのチェックとか
あるだろとか、最低限の技術的な突っ込みがあるだろうって思ってたのに、
そういうのは一切なしで、都合の悪いことは見えないふりで、ひたすら
見当違いのあおりとか、人格攻撃に終始して勝利宣言な。
ほんとうにどうしようもない連中だな。
0076デフォルトの名無しさん
2010/04/04(日) 04:01:15トーシロでもJAVAではこれ位やってるって事はわかる
で、これらと全く同じ要件をネイティブコード(笑)で書けば速いのか?
0077デフォルトの名無しさん
2010/04/04(日) 04:01:45> バッカじゃねぇの?
> マジ、バッカじゃねぇの?
> どんなに単純なソースだろうとJAVAはC++では当然やらない膨大なお仕着せ処理が実行されるんだよ
本当に気にさわったみたいだな。
しかし、この「自分の都合の悪いことはスルー」のスルー力がすごすぎる。
指摘はひたすら無視して、
>は正しい
で反論したつもりになってるんだもんな。
0078デフォルトの名無しさん
2010/04/04(日) 04:05:56>>75 で指摘されてやっと最低限の指摘がでてきた。
ループが固定回なら、配列のチェックなんて最適化できるだろ。
0079デフォルトの名無しさん
2010/04/04(日) 04:06:42バカかお前
>>76は被っただけで75なんて読んでねぇよ
0080デフォルトの名無しさん
2010/04/04(日) 04:08:50特大のバカ発言現る
実行時にその参照が固定配列を指してる保証がどこにある
0081デフォルトの名無しさん
2010/04/04(日) 04:09:15そんなのわかってて煽っただけだよ。
0082デフォルトの名無しさん
2010/04/04(日) 04:10:380083デフォルトの名無しさん
2010/04/04(日) 04:11:43つまり39の指摘は正しい事を認めつつも、ただ下らない煽りを続けてるのが今のお前の姿と言う認識で宜しいか。
0084デフォルトの名無しさん
2010/04/04(日) 04:22:03クラス階層が広くて深いから遅い
仮想関数使うから遅い
ガベージコレクションするから遅い
ヴァーチャルマシンをはさむから遅い
実行時の動的型決定を使うから遅い
短い関数を沢山書くから遅い
毎回毎回いちいち動的にメモリ確保するから遅い
なんでも実行時に決定させる設計だと遅い
goto使わせないから遅い
アセンブラを使わせないから遅い
ポインタを使わせないから遅い
モノリシックに書かないから遅い
移植性を考えるから遅い
0085デフォルトの名無しさん
2010/04/04(日) 04:35:01また技術的な指摘なしで、人格攻撃かよ。
動的言語のエディタでさえ、編集中の変数にどのインスタンスが
入れられたか見えてればインテリセンス聞かせられるのに、
宣言が見えてる配列の最適化なんて聞かせられない道理がないだろ。
0086デフォルトの名無しさん
2010/04/04(日) 04:38:21いや、>>76を見た瞬間は
「俺の指摘をまんまオウム返しにしてきた、こいつバカだろ」って思ったけど
いくらなんでも、それはバカ過ぎるから、またレスもろくに読まずに
反論してるんだなって、優しく解釈してあげた。
でも、すごい必死で面白いから、知らない振りして煽ってみた。
0087デフォルトの名無しさん
2010/04/04(日) 04:42:08リフレクションのリの字も知らない低レベラー乙
0088デフォルトの名無しさん
2010/04/04(日) 04:44:38int tbl = new int[100];
tbl[0] = 0;
これのどこにリフレクションを考慮する余地があるんですか?
0089デフォルトの名無しさん
2010/04/04(日) 04:44:58つまり39の指摘は正しい事を認めつつも、ただ下らない煽りを続けてるのが今のお前の姿という訳だな。
なぜ「いや」から始めたのかが意味不明だが。
0090デフォルトの名無しさん
2010/04/04(日) 04:48:06煽ったのは、お前のドジなところだから本題には関係ない。
そのくらい分かれよ。
とにかく揚げ足をとりたくてしかたないんだな。
0091デフォルトの名無しさん
2010/04/04(日) 04:48:27Javaを知らない馬鹿が、Javaを知らない振りをして低レベルスレに相応しい低レベルな煽りをしてるだけの話だ
0092デフォルトの名無しさん
2010/04/04(日) 04:52:36どこをドジと言ってるんだ?素でわからん。
0093デフォルトの名無しさん
2010/04/04(日) 04:52:49また人格攻撃がはじまった。
まあ、本題のほうは反論の余地がなくなったってことですね。
>>39 は間違ってるって結論で終了ってことで。
0094デフォルトの名無しさん
2010/04/04(日) 05:00:10お前さんが無知すぎてもはや反論の余地が無いwwww
0095デフォルトの名無しさん
2010/04/04(日) 05:07:09どこか無知か一つも指摘できないで、脳内で無知ってことにして煽る。
そういうのってむなしくないっすか?
てか、実際最適化してるかどうかjavaと似てるC#で
int tbl = new int[100];
tbl[0] = 100;
をコンパイルしてみたら、律儀に配列の境界チェックのコードが入ってたな。
なんで最適化しないんだろ。
最適化技術の問題か、それとも言語仕様上の問題なのか。
まあ、>>87のリフレクション説はないと思うけど。
Javaで調べるんは面倒だからやらない。
0096デフォルトの名無しさん
2010/04/04(日) 05:37:59どこの初心者だよ
0097デフォルトの名無しさん
2010/04/04(日) 10:22:36そういう最適化はJITコンパイル時に行われるんじゃないの
0098デフォルトの名無しさん
2010/04/04(日) 10:23:060099デフォルトの名無しさん
2010/04/04(日) 11:04:250100デフォルトの名無しさん
2010/04/04(日) 11:07:000101デフォルトの名無しさん
2010/04/04(日) 11:13:190102デフォルトの名無しさん
2010/04/04(日) 11:36:00オブジェクト指向だから遅い → NO
クラス階層が広くて深いから遅い → NO
仮想関数使うから遅い → Yes(NOにできるかな?)
ガベージコレクションするから遅い → Yes
ヴァーチャルマシンをはさむから遅い → Yes
実行時の動的型決定を使うから遅い → Yes(NOにできるかな?)
短い関数を沢山書くから遅い → NO
毎回毎回いちいち動的にメモリ確保するから遅い → Yes(ただし、そうする必要もない)
なんでも実行時に決定させる設計だと遅い → NO
goto使わせないから遅い → NO
アセンブラを使わせないから遅い → NO
ポインタを使わせないから遅い → NO
モノリシックに書かないから遅い → NO
移植性を考えるから遅い → NO
0103デフォルトの名無しさん
2010/04/04(日) 12:00:42新物だったので一時的に話題を集めただけ
今ではD言語にも満たない
0104デフォルトの名無しさん
2010/04/04(日) 12:04:16Javaもエスケープ解析を有効にしたらスタックにオブジェクトをおけるんだけど、
エスケープ解析ってコンパイル時にできるものなのにクラスロード時にしちゃうから、
今度は起動速度に悪影響があるんだよなぁ。
0105デフォルトの名無しさん
2010/04/04(日) 12:22:480106デフォルトの名無しさん
2010/04/04(日) 12:29:48確かとっくに取り入れられてなかったか?
http://ja.wikipedia.org/wiki/Fortran
Fortran2003で取り入れられているようだ
0107デフォルトの名無しさん
2010/04/04(日) 12:35:390108デフォルトの名無しさん
2010/04/04(日) 13:25:53あとC++の設計を語るのならD&EとかARMとかも読んでいると思うけど、そのへんもどうなの?
0109デフォルトの名無しさん
2010/04/04(日) 13:50:340110デフォルトの名無しさん
2010/04/04(日) 13:51:16ラブプラス++
0111デフォルトの名無しさん
2010/04/04(日) 14:18:280112デフォルトの名無しさん
2010/04/04(日) 15:23:43全員読んでる。当たり前だろ。
0113デフォルトの名無しさん
2010/04/04(日) 15:32:38常識
0114デフォルトの名無しさん
2010/04/04(日) 16:18:46「small」
プログラマーの言語仕様の学習不足によるヒューマンエラーを最小限にするために、
できるだけ小さな言語仕様にしたい。
0115デフォルトの名無しさん
2010/04/04(日) 16:35:45そんなコンセプトじゃ無いだろ。
第一、言語仕様が小さいからといってヒューマンエラーが減るわけじゃない。
もしそうだとしたらForth最強じゃないか。
0116デフォルトの名無しさん
2010/04/04(日) 16:38:18見た目ほど仕様が小さいわけでもないけどな。
0117デフォルトの名無しさん
2010/04/04(日) 16:39:56> そんなコンセプトじゃ無いだろ。
じゃあ、どんなコンセプトなんだ?否定する前に意見を述べよう。
0118デフォルトの名無しさん
2010/04/04(日) 16:49:120119デフォルトの名無しさん
2010/04/04(日) 16:51:52「プログラマーの言語仕様の学習不足によるヒューマンエラーを最小限にするために、
できるだけ小さな言語仕様にしたい。」
という提案だろ?
0120デフォルトの名無しさん
2010/04/04(日) 17:02:05言語仕様が小さくなったら、ヒューマンエラーは増えると思うが。
0121デフォルトの名無しさん
2010/04/04(日) 17:03:070122デフォルトの名無しさん
2010/04/04(日) 17:04:180123デフォルトの名無しさん
2010/04/04(日) 17:20:02言語仕様が小さい方が、言語仕様を知らないことによる人間の失敗は少なくなるよね?
人間の記憶容量は有限だから。
0124デフォルトの名無しさん
2010/04/04(日) 17:32:30言語の支援があったほうがよい機能を全部ユーザーがやるというのは無理がある。
0125デフォルトの名無しさん
2010/04/04(日) 17:34:380126デフォルトの名無しさん
2010/04/04(日) 18:04:480127デフォルトの名無しさん
2010/04/04(日) 18:12:44それを阻害するような例外(「ただし、自身を呼び出してはいけない」等)を仕様に付け加える方が混乱のもと。有害。
そんな例外は、仕様に絶対に含めるべきではない。
0128デフォルトの名無しさん
2010/04/04(日) 18:19:14auto変数とかいう特別な変数がある
0129デフォルトの名無しさん
2010/04/04(日) 18:26:510130デフォルトの名無しさん
2010/04/04(日) 18:31:10再帰が無いならすべてstaticかグローバル変数でOK
0131デフォルトの名無しさん
2010/04/04(日) 18:33:480132デフォルトの名無しさん
2010/04/04(日) 18:36:06超高速。
0133デフォルトの名無しさん
2010/04/04(日) 18:36:58どういう理由で?
0134デフォルトの名無しさん
2010/04/04(日) 18:56:590135デフォルトの名無しさん
2010/04/04(日) 19:02:02ここにも登場w グローバル変数は速いと言い張るバカwwwwww
0136デフォルトの名無しさん
2010/04/04(日) 19:03:570137デフォルトの名無しさん
2010/04/04(日) 19:04:40関数の中でもstaticつかえるよ
0138デフォルトの名無しさん
2010/04/04(日) 19:05:050139デフォルトの名無しさん
2010/04/04(日) 19:06:59同じキーワードを使いまわしてるのは、ほとんど設計ミス。
0140デフォルトの名無しさん
2010/04/04(日) 19:07:44ヒーマンエラーを減らすためにいろいろな機構があるのに。
0141デフォルトの名無しさん
2010/04/04(日) 19:08:260142デフォルトの名無しさん
2010/04/04(日) 19:16:52静的にメモリに配置されアプリケーション終了まで変わらないstatic?
ってあれ?グローバルに置かれた変数の方の staticって、
そうでない物と何が違うの?
0143デフォルトの名無しさん
2010/04/04(日) 19:20:48その機構が、直感的で一貫性があればいいけどね。
特殊な例外の積み重ねで、プログラマーが勘違いすると、プログラマーの意図と違う結果になるのは避けたい。
0144デフォルトの名無しさん
2010/04/04(日) 19:25:34名前空間がファイル単位になるんじゃなかったっけ
0145デフォルトの名無しさん
2010/04/04(日) 19:34:180146デフォルトの名無しさん
2010/04/04(日) 19:34:530147デフォルトの名無しさん
2010/04/04(日) 19:43:06int 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 はエラー
0148デフォルトの名無しさん
2010/04/04(日) 19:44:35初心者スレでやれ
0149デフォルトの名無しさん
2010/04/04(日) 19:53:39>>143の「特殊な例外の積み重ね」であることは間違いないなw
0150デフォルトの名無しさん
2010/04/04(日) 20:18:230151デフォルトの名無しさん
2010/04/04(日) 20:33:28差し支えるようなプログラミング言語というのもあるかもしれんが。
0152デフォルトの名無しさん
2010/04/04(日) 20:53:19低級言語作りたいって言うんだったら必要だろう
0153デフォルトの名無しさん
2010/04/04(日) 20:58:10なぜそう思ったの?
0154デフォルトの名無しさん
2010/04/04(日) 21:00:130155デフォルトの名無しさん
2010/04/04(日) 21:05:47自分がCPUが何をしているか知らないから、それを知っていることが凄いとでも思っちゃったんじゃないの。
0156デフォルトの名無しさん
2010/04/04(日) 21:10:170157デフォルトの名無しさん
2010/04/04(日) 21:10:400158デフォルトの名無しさん
2010/04/04(日) 21:15:58お前がそういうコミュニティーに属しているというだけだ
0159デフォルトの名無しさん
2010/04/04(日) 21:27:080160デフォルトの名無しさん
2010/04/04(日) 21:39:550161デフォルトの名無しさん
2010/04/04(日) 21:40:53おまえ、ワクワクし過ぎw
0162デフォルトの名無しさん
2010/04/04(日) 21:42:180163デフォルトの名無しさん
2010/04/04(日) 21:43:18Javaなんて別に叩くほどの言語でも無いだろ。どうでもいい。
0164デフォルトの名無しさん
2010/04/04(日) 21:58:220165デフォルトの名無しさん
2010/04/04(日) 22:01:06とにかく何でも叩きたいだけの生産力絶無のカスが多すぎる
0166デフォルトの名無しさん
2010/04/04(日) 22:02:560167デフォルトの名無しさん
2010/04/04(日) 22:09:45とかいっているヤツはどうする
0168デフォルトの名無しさん
2010/04/04(日) 22:17:080169デフォルトの名無しさん
2010/04/04(日) 22:59:430170デフォルトの名無しさん
2010/04/04(日) 23:00:21なぜそう思ったの?
0171デフォルトの名無しさん
2010/04/04(日) 23:01:340172デフォルトの名無しさん
2010/04/04(日) 23:09:09TMPできるようにして
0173デフォルトの名無しさん
2010/04/04(日) 23:16:070174デフォルトの名無しさん
2010/04/04(日) 23:21:070175デフォルトの名無しさん
2010/04/04(日) 23:27:350176デフォルトの名無しさん
2010/04/04(日) 23:32:15なぜそう思ったの?
0177デフォルトの名無しさん
2010/04/04(日) 23:36:390178デフォルトの名無しさん
2010/04/04(日) 23:38:010179デフォルトの名無しさん
2010/04/04(日) 23:40:430180デフォルトの名無しさん
2010/04/04(日) 23:41:530181デフォルトの名無しさん
2010/04/04(日) 23:53:44Javaにこだわるやつらは何考えているんだ?
低レベルなシステム開発向け言語というんだったらForthとかPIRとかRTLとかがターゲットじゃないの?
0182デフォルトの名無しさん
2010/04/04(日) 23:56:340183デフォルトの名無しさん
2010/04/04(日) 23:58:41スレタイ嫁
0184デフォルトの名無しさん
2010/04/05(月) 00:02:180185デフォルトの名無しさん
2010/04/05(月) 00:05:01Parrotで使っている中間言語
RTL: Register Transfer Language
GCCで使っている中間言語
さすがにそこまでいくと凄いことになるな。
0186デフォルトの名無しさん
2010/04/05(月) 00:07:11先ずは音頭を取るやつがいないと。誰か一人コテつけて幹事を名乗り出るんだ。
0187デフォルトの名無しさん
2010/04/05(月) 00:07:41RTLに代わるものを作るわけじゃない。
0188デフォルトの名無しさん
2010/04/05(月) 00:16:14まず、
int main(void)
{
// ↓続きよろしく
0189デフォルトの名無しさん
2010/04/05(月) 00:19:46Cに代わるものは、Dのサブセットから構成できるのではないか。
0190デフォルトの名無しさん
2010/04/05(月) 00:22:58具体的にサブセットに含まれる機能を提示してもらえると議論しやすい
0191デフォルトの名無しさん
2010/04/05(月) 00:24:310192デフォルトの名無しさん
2010/04/05(月) 00:44:51互換性を捨てたものが普及した試しなんてあるの?Dは互換性捨てたから駄目なんだね。
0193デフォルトの名無しさん
2010/04/05(月) 00:47:360194デフォルトの名無しさん
2010/04/05(月) 01:41:170195デフォルトの名無しさん
2010/04/05(月) 01:57:300196デフォルトの名無しさん
2010/04/05(月) 14:07:29ところでポインタがないから最適化できねえとか本気で書いてんのか
アホすぎ
0197デフォルトの名無しさん
2010/04/05(月) 14:35:26昔は通信時なんかで考慮必要だった時もあったけどな
0198デフォルトの名無しさん
2010/04/05(月) 14:40:060199デフォルトの名無しさん
2010/04/05(月) 14:42:08エンディアンくらい普通の常識として知っとくべき。
>>197 は多分高級言語しか触らないか、テキストファイルくらいしか触らない奴と推測
0200デフォルトの名無しさん
2010/04/05(月) 14:48:54アセンブラも書くよ
インラインでだけど
0201デフォルトの名無しさん
2010/04/05(月) 14:50:130202デフォルトの名無しさん
2010/04/05(月) 14:55:48ま、俺は組み込み屋だからエンディアンは関係あり
0203デフォルトの名無しさん
2010/04/05(月) 18:42:54void (far *func)();
*(unsigned long *)&func = 0xffff0000L;
func();
}
0204デフォルトの名無しさん
2010/04/05(月) 18:55:320205デフォルトの名無しさん
2010/04/05(月) 19:28:40でも大半はsmallモデルで動いていたんだよなああの頃は
0206デフォルトの名無しさん
2010/04/05(月) 19:29:580207デフォルトの名無しさん
2010/04/05(月) 19:32:51あんまx86マシンコードの洗礼受けてないけど
見るたびに悪貨は良貨を...ってのを思い出してた。
今やスパコンを構成する位だもんな
思えば遠くへ来たもんだ
0208デフォルトの名無しさん
2010/04/05(月) 19:47:15これに唯一勝ち残ったPowerPCだけがRISCとして活躍している
ARMは低消費電力の観点から別の路線を歩いているし
0209デフォルトの名無しさん
2010/04/05(月) 20:32:39なぜ現存CPUコアアーキテクチャで最大勢力のMIPSに言及しないんだ?
0210デフォルトの名無しさん
2010/04/05(月) 20:46:29最大勢力という程でもないだろ
ARMの方がよほど多い
0211デフォルトの名無しさん
2010/04/05(月) 20:50:15とか言ってwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0212デフォルトの名無しさん
2010/04/05(月) 20:59:22ARMは電池で動くのでゲーム機とか携帯電話に多量に使われている
0213デフォルトの名無しさん
2010/04/05(月) 21:38:230214デフォルトの名無しさん
2010/04/05(月) 21:41:43まあx86は性能の割りには確かに安い
0215デフォルトの名無しさん
2010/04/05(月) 21:43:51FreeBSDがなければ2chも存在しなかったかもしれん
0216デフォルトの名無しさん
2010/04/05(月) 21:44:08あーarmとかmipsと比べたら。
x86は性能以前に高すぎ
0217デフォルトの名無しさん
2010/04/05(月) 21:46:40そうか
売れるから高くしても売れるってわけか
これでもまだ安くなってるんだぜ
AMDがなかったらもっとバカ高くなってるぞ
0218デフォルトの名無しさん
2010/04/05(月) 22:07:43C/C++をコンパイルしたリストを眺めて「ゲロ〜こんなんで
よく動いてるな」といつも思うぜ
0219デフォルトの名無しさん
2010/04/05(月) 22:18:200220デフォルトの名無しさん
2010/04/05(月) 22:21:150221デフォルトの名無しさん
2010/04/05(月) 22:25:06分かってるんだ、分かってるけどどうしてもアセンブルリストを見る癖が抜けないorz
>>219
悪貨、良貨を駆逐するの諺通りになってしまったな
0222デフォルトの名無しさん
2010/04/05(月) 22:27:520223デフォルトの名無しさん
2010/04/05(月) 22:45:380224デフォルトの名無しさん
2010/04/05(月) 22:47:34優れているか?どう考えてもゴッタ煮だぞ
古い部分から新しい部分までグチャグチャ
0225デフォルトの名無しさん
2010/04/05(月) 22:53:280226デフォルトの名無しさん
2010/04/05(月) 22:54:20単にソフトが多いだけだと思うが
どう考えてもアーキテクチャ的には汚いぞ
0227デフォルトの名無しさん
2010/04/05(月) 22:57:04/;,, : : : //::/: : 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 ヾ 丶
"~、ソ:: :い:: : \_ ノ , ヾ 丶
0228デフォルトの名無しさん
2010/04/05(月) 22:58:350229デフォルトの名無しさん
2010/04/05(月) 23:02:59利用者の立場で考えろよ
職人技術者には無理かな?
0230デフォルトの名無しさん
2010/04/05(月) 23:04:23ただ「汚いなあ」といつも思いながら仕事してるだけ
今のところシェアがすごいんだから目をつぶってるけど
0231デフォルトの名無しさん
2010/04/05(月) 23:08:00売れるものが良いものなのだ
0232デフォルトの名無しさん
2010/04/05(月) 23:10:57屁理屈はどうでもいいから
文系はどっか行けよ
0233デフォルトの名無しさん
2010/04/05(月) 23:11:240234デフォルトの名無しさん
2010/04/05(月) 23:13:41Intel信者キモイな
0235デフォルトの名無しさん
2010/04/05(月) 23:14:210236デフォルトの名無しさん
2010/04/05(月) 23:17:000237デフォルトの名無しさん
2010/04/05(月) 23:20:500238デフォルトの名無しさん
2010/04/05(月) 23:30:50PowerPCがPentiumに取って代わると信じてたのに
0239デフォルトの名無しさん
2010/04/05(月) 23:32:300240デフォルトの名無しさん
2010/04/05(月) 23:34:21だからintelの野望の前にはその理想郷は崩れ去ったんだよ
0241デフォルトの名無しさん
2010/04/05(月) 23:36:170242デフォルトの名無しさん
2010/04/05(月) 23:37:52綺麗なアーキテクチャごときで地上の楽園と言い切れるお前の頭の中を
一度見てみたいものだ
0243デフォルトの名無しさん
2010/04/05(月) 23:50:180244デフォルトの名無しさん
2010/04/05(月) 23:52:390245デフォルトの名無しさん
2010/04/06(火) 00:01:400246デフォルトの名無しさん
2010/04/06(火) 00:07:12PC88や98の時代から魔神語とか書いてた奴なら良く知ってる。
当時の月間I/Oとか読みふけってた奴なら良く知ってる。
でも分家ザイログたんのZ80Aは許す。(セグメントとか無いから)
0247デフォルトの名無しさん
2010/04/06(火) 00:11:48魔神語と書いていたのは、マシン語を理解出来ないからだろ。
アーキテクチャの美醜を表現していたのではない。
0248デフォルトの名無しさん
2010/04/06(火) 00:13:32セグメントの無いCPU(MPU)なんて玩具だろ。
0249デフォルトの名無しさん
2010/04/06(火) 00:14:460250デフォルトの名無しさん
2010/04/06(火) 00:26:150251デフォルトの名無しさん
2010/04/06(火) 00:27:008086、80286という失敗作が存在した事も忘れてはいけない
0252デフォルトの名無しさん
2010/04/06(火) 00:28:08俺ってわかってる、みたいな。
0253デフォルトの名無しさん
2010/04/06(火) 00:30:34ここに来てるオッサン連中なら誰でも知ってるつーの
0254デフォルトの名無しさん
2010/04/06(火) 00:32:550255デフォルトの名無しさん
2010/04/06(火) 00:37:350256デフォルトの名無しさん
2010/04/06(火) 00:39:44/;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、 / ヽ
/ヽヽ: ://: :!:,X~::|: /;,,;,/: :/ リ!: ::/ノ l`ヽl !: : |: : : :l: :l: リ / そ そ お \
/: : ヽヾ/: : l/::l |/|||llllヾ,、 / |: :/ , -==、 l\:::|: : : :|i: | / う う 前 |
0257デフォルトの名無しさん
2010/04/06(火) 00:42:17病院行け
0258デフォルトの名無しさん
2010/04/06(火) 00:45:10結局wintelの商業的な勝利だな
ま、今となっては汚くてもコンパイラ使えばええし
結局64bitで汎用レジスタ増やしたり
デコーダが電力食うとかって問題になってるよな
組み込みではx86はさほどメジャーじゃないし
0259デフォルトの名無しさん
2010/04/06(火) 00:47:260260デフォルトの名無しさん
2010/04/06(火) 00:49:250261デフォルトの名無しさん
2010/04/06(火) 00:50:53と揶揄されたぐらいだからな
0262デフォルトの名無しさん
2010/04/06(火) 00:51:04まあマルチスレッディングが一般的になってから登場した
Atom以降のSMT復権でだいぶいい扱いを受けるようになってきたが
0263デフォルトの名無しさん
2010/04/06(火) 00:51:390264デフォルトの名無しさん
2010/04/06(火) 00:53:38そりゃ開発費が桁違いだからな
IntelとMicrosoftがx86にかけた金と労力をRISCに注いで
いたらもっといいCPUが出来てたろう
0265デフォルトの名無しさん
2010/04/06(火) 00:59:140266デフォルトの名無しさん
2010/04/06(火) 00:59:48POWERもダメでAppleがキレちゃったじゃん
結局クロック上昇が物性的限界を迎えたところで、
同じクロック頻度でいかに多くの演算をするかという方向になったんで、
RISCのほうからx86的な方向に吸い寄せられているというかなんというか。
0267デフォルトの名無しさん
2010/04/06(火) 01:00:070268デフォルトの名無しさん
2010/04/06(火) 01:00:530269デフォルトの名無しさん
2010/04/06(火) 01:04:050270デフォルトの名無しさん
2010/04/06(火) 01:04:26んじゃプロのご意見どうぞ
俺もアーキテクトかじってたが
今全く新規にデザインし直すなら
結局68k的なRISC+CISCにDSP的命令付加になると思うぞ
x86はないない
0271デフォルトの名無しさん
2010/04/06(火) 01:10:330272デフォルトの名無しさん
2010/04/06(火) 01:13:13モトローラに就職すればいいじゃんwww
0273デフォルトの名無しさん
2010/04/06(火) 01:14:13アーキテクトをかじるなよw
0274デフォルトの名無しさん
2010/04/06(火) 01:16:02>んじゃプロのご意見どうぞ
互換性を保ちながら内部アーキテクチャの革新で性能を大幅に向上する。
0275デフォルトの名無しさん
2010/04/06(火) 01:24:36結局内部はRISCプロセッサ風味だわな
ま、あの命令ベースでこんだけ速度出したのは驚異的だがな
>>272
別にモトローラがいいつーこともいわんがw
フロントのバス帯域減らすのと時間のかかる演算のために
CISC風味なマクロ命令+DSP命令なRISCが今のとこ理想的じゃね
0276デフォルトの名無しさん
2010/04/06(火) 01:25:160277デフォルトの名無しさん
2010/04/06(火) 01:27:28>CISC風味なマクロ命令+DSP命令なRISCが今のとこ理想的じゃね
つまり、IAってことだな。
0278デフォルトの名無しさん
2010/04/06(火) 01:30:110279デフォルトの名無しさん
2010/04/06(火) 01:31:53商業的には互換性がないとあかんけどなw
メーカ内部でしか使わないような
変なCPUとか見てるといい加減頭痛くなる
>>276
ざっぱに(C+Python)/2って感じかね
C++じゃないとこがミソと思う
0280デフォルトの名無しさん
2010/04/06(火) 01:35:550281デフォルトの名無しさん
2010/04/06(火) 01:37:290282デフォルトの名無しさん
2010/04/06(火) 01:44:58ま、半導体や回路設計の技術とx86とは一緒にはできんが
商業的、現物ベースでいうと、
特にここ最近のx86は優れていると言わざるをえんわな
実際サーバとかもx86ばっかだしな
あれでアセンブラ書きたいかという話とは別にして。
0283デフォルトの名無しさん
2010/04/06(火) 01:45:27ある面でIntelに勝るアーキテクチャを開発することはできても、結局トータルではIntelアーキテクチャにはかなわない。
printfより高速な文字列表示関数を作りました!って自慢する中学生みたいなもの。
そりゃ、文字列定数を表示するだけなら速くなるでしょって話。
0284デフォルトの名無しさん
2010/04/06(火) 01:48:17人間が書くなら、どう考えてもx86の方がいい。
0285デフォルトの名無しさん
2010/04/06(火) 01:53:16CPUによるな。
確かにRISCの3オペランド系はつらい
0286デフォルトの名無しさん
2010/04/06(火) 02:05:51その点x86は人に優しいアーキテクチャ/コードセット。だからハンドアセンブルだってできる。
0287デフォルトの名無しさん
2010/04/06(火) 02:13:47てかアセンブラ、ディスアセンブラ作るのが超楽
直交性が高いから理不尽さはない
ま、直値入れるだけで2命令とか面倒ではあるが。
で、このスレ的にはC最強で結論出てるのか?
0288デフォルトの名無しさん
2010/04/06(火) 05:03:09お前はCを超える低級言語があると考えているのか?
0289デフォルトの名無しさん
2010/04/06(火) 05:06:220290デフォルトの名無しさん
2010/04/06(火) 06:16:060291デフォルトの名無しさん
2010/04/06(火) 07:26:40>ま、直値入れるだけで2命令とか面倒ではあるが。
まさに
>RISCはコンパイラが頑張るためのアーキテクチャ。人間にとっては美しくもわかりやすくも無い。
ということを説明しているようにしか見えないが・・・
0292デフォルトの名無しさん
2010/04/06(火) 07:45:18x86が人に優しいって・・・68kのアセンブラ知らんのか?
0293デフォルトの名無しさん
2010/04/06(火) 07:57:120294デフォルトの名無しさん
2010/04/06(火) 07:59:280295デフォルトの名無しさん
2010/04/06(火) 08:16:580296デフォルトの名無しさん
2010/04/06(火) 08:33:070297デフォルトの名無しさん
2010/04/06(火) 08:39:49真っ向勝負など必要なかった
0298デフォルトの名無しさん
2010/04/06(火) 09:26:29モトローラはメモリ売って儲けてた。
0299デフォルトの名無しさん
2010/04/06(火) 10:22:42Unixという実例もあったし
それらに関わった人間はリスペクトされてた
主流になるべくしてなった感じじゃないか
0300デフォルトの名無しさん
2010/04/06(火) 11:47:230301デフォルトの名無しさん
2010/04/06(火) 11:55:58>>39は最適化の話なんてしてないけど
0302デフォルトの名無しさん
2010/04/06(火) 12:16:23俺はC大好きなんだが
宣言を二回書かないといけないのは欠点と言えると思うがね
あんな自動で出来ることは本来処理系でやっちまう方がいい話だな
0303デフォルトの名無しさん
2010/04/06(火) 12:17:590304デフォルトの名無しさん
2010/04/06(火) 13:01:05いまどきのハードウェアの進歩に全く付いていけていない。
インラインアセンブラとかもう逃げの技術を駆使して何とか延命しているだけ
もう終わった存在だ。
0305デフォルトの名無しさん
2010/04/06(火) 13:08:25インラインアセンブラは逃げじゃねえ
普通の言語で書けないこと
特殊なレジスタへのアクセスとかCPU固有の演算機能とかのために使う
Cレベルで書ける言語は他にはないな
そもそもハードウェアの進化ってなんだよ
単なるスピードアップか?w
0306デフォルトの名無しさん
2010/04/06(火) 13:28:520307デフォルトの名無しさん
2010/04/06(火) 13:49:280308デフォルトの名無しさん
2010/04/06(火) 14:00:17原理的に無理
0309デフォルトの名無しさん
2010/04/06(火) 14:01:53Cがよくわからないので無くなってくれればいいんですね、わかります
0310デフォルトの名無しさん
2010/04/06(火) 14:22:11おれは単に手段として使えればよいだけなんで
使いやすくて高速に計算さえできれば細かいことは気にしないんだが
0311デフォルトの名無しさん
2010/04/06(火) 15:08:39Cはポインタがあるから最適化しにくいしな
0312デフォルトの名無しさん
2010/04/06(火) 15:32:160313デフォルトの名無しさん
2010/04/06(火) 15:32:440314デフォルトの名無しさん
2010/04/06(火) 15:34:550315デフォルトの名無しさん
2010/04/06(火) 15:41:100316デフォルトの名無しさん
2010/04/06(火) 18:06:360317デフォルトの名無しさん
2010/04/06(火) 18:57:23しょゆこと
0318デフォルトの名無しさん
2010/04/06(火) 19:05:55BASICはヒンディー
0319デフォルトの名無しさん
2010/04/06(火) 19:15:13やろうと思えば普通にコンパイル時に集めた定義情報を吐き出して
インクルードするだけで実現できるし
そんな難しくもない話だと思うがね
protoizeとかでも省力化はできるし
0320デフォルトの名無しさん
2010/04/06(火) 19:33:190321デフォルトの名無しさん
2010/04/06(火) 19:40:38よく考えてみ。コンパイル時に吐きだされるのでは遅いんだよ。
0322デフォルトの名無しさん
2010/04/06(火) 20:23:01仕様がころころ変わるから
0323デフォルトの名無しさん
2010/04/06(火) 20:54:46それで多くのユーザーを逃してる
0324デフォルトの名無しさん
2010/04/06(火) 21:25:020325デフォルトの名無しさん
2010/04/06(火) 22:07:15・マクロがクソ
・駆動レコードが弄れない(サブルーチン必須)
・評価しない引数が使えない
辺りかね。
0326デフォルトの名無しさん
2010/04/06(火) 22:09:09・ヘッダーファイル
0327デフォルトの名無しさん
2010/04/07(水) 00:51:540328デフォルトの名無しさん
2010/04/07(水) 00:53:47よく考えてみ。コンパイル時でいいんよ
循環は問題だが、
単純に多パスにするか
リンク時に遅延評価で解決できる
0329デフォルトの名無しさん
2010/04/07(水) 01:02:55遅延リンクなんたらファイルにすればいいんだろ
0330デフォルトの名無しさん
2010/04/07(水) 01:07:450331デフォルトの名無しさん
2010/04/07(水) 01:09:22内部開発でもいちいち作らせるのがおかしい
プロトタイプを自動生成するくらい大した処理じゃないのだからコンパイラがやれって話
新言語では基本は定義だけですべて実装できるようにすべきだよ
ヘッダーファイルは不要
0332デフォルトの名無しさん
2010/04/07(水) 01:22:34不要なのがすぐ残るしな
あとマクロ欲しいって言ってるが
一歩間違うと黒魔術になるから不要かな
cとgoの中間が俺には理想に近いな
個人的には名前付きパラメータが欲しいが
0333デフォルトの名無しさん
2010/04/07(水) 01:26:100334デフォルトの名無しさん
2010/04/07(水) 01:39:36そもそも理解できない奴、たぶん多数。
0335デフォルトの名無しさん
2010/04/07(水) 01:45:270336デフォルトの名無しさん
2010/04/07(水) 01:57:45単に低能にはマクロ使わせなきゃ良いだけだろ。
0337デフォルトの名無しさん
2010/04/07(水) 02:07:57フロー制御どうするかとかの方が重要じゃない?
0338デフォルトの名無しさん
2010/04/07(水) 02:41:180339デフォルトの名無しさん
2010/04/07(水) 03:11:16優秀な少人数チームが核を作るからな
ここは雑談の場じゃないのw
0340デフォルトの名無しさん
2010/04/07(水) 03:14:10低レベル言語にふさわしい制御なんて
ifと繰り返しとその変型しかない、じゃん
オブジェクト指向チックなのはoh高い
0341デフォルトの名無しさん
2010/04/07(水) 03:50:35次スレ立てるなら 【超高速】C/C++に代わる低級言語を妄想したい に変えておけよ
0342デフォルトの名無しさん
2010/04/07(水) 03:55:490343デフォルトの名無しさん
2010/04/07(水) 04:31:300344デフォルトの名無しさん
2010/04/07(水) 05:39:07でっていうwwww
そんなに手動でコンパイルがやりたいならどうぞご勝手にwwwww
0345デフォルトの名無しさん
2010/04/07(水) 05:42:460346デフォルトの名無しさん
2010/04/07(水) 06:02:20手動でコンパイルって何のこっちゃ。
どーやるの?
0347デフォルトの名無しさん
2010/04/07(水) 06:12:340348デフォルトの名無しさん
2010/04/07(水) 08:18:47最適化とかリンク時にも考えられるからね。
0349デフォルトの名無しさん
2010/04/07(水) 13:13:330350デフォルトの名無しさん
2010/04/07(水) 13:16:13勝ち負けとかあほみたいな視点で話をする奴がちょいちょい紛れ込んでるスレ
0351デフォルトの名無しさん
2010/04/07(水) 13:17:400352デフォルトの名無しさん
2010/04/07(水) 14:01:40妄想はエロいのだけにしとけよ
ヘッダに関しては時代遅れとは思うがな
0353デフォルトの名無しさん
2010/04/07(水) 15:39:120354デフォルトの名無しさん
2010/04/07(水) 16:18:16もはや超人だ
0355デフォルトの名無しさん
2010/04/07(水) 17:05:20手でアセンブラになおすなんてのはあるんじゃね
0356デフォルトの名無しさん
2010/04/07(水) 17:39:440357デフォルトの名無しさん
2010/04/07(水) 18:01:590358デフォルトの名無しさん
2010/04/07(水) 19:25:23コンパイルやリンクをするということなんだろうけど
ハンドコンパイルと言われると
直でオブジェクトファイルまで変換するように思えるなw
0359デフォルトの名無しさん
2010/04/07(水) 19:36:150360デフォルトの名無しさん
2010/04/07(水) 19:43:33こういうのがハンドコンパイル
4bit CPUとか変なDSPとか、未だにCがないCPUもあるんさ
コンパイラ手で叩くのはハンドコンパイルとはいわんがなw
0361デフォルトの名無しさん
2010/04/07(水) 20:20:28>>343 はまるでRPMしか扱った事ないTaco がconfigureを初めて
叩いた時のように「手動でコンパイル」とか言ってたの?
0362デフォルトの名無しさん
2010/04/07(水) 20:49:27難しいコードを書く必要はないんだが
0363デフォルトの名無しさん
2010/04/07(水) 22:00:420364デフォルトの名無しさん
2010/04/08(木) 00:13:510365デフォルトの名無しさん
2010/04/08(木) 00:59:480366デフォルトの名無しさん
2010/04/08(木) 01:03:010367デフォルトの名無しさん
2010/04/08(木) 01:47:270368デフォルトの名無しさん
2010/04/08(木) 01:51:47>>362
10万倍といえばおおよそで8080/z80レベルの8bit CPUと最新のCPU位の差だな
実に興味深い
0369デフォルトの名無しさん
2010/04/08(木) 01:56:050370デフォルトの名無しさん
2010/04/08(木) 02:17:42PCでは取っつきやすいOld BASICの隆盛期だった
今は組み込みのCPUですらどん底を除くと数MIPSでCが主流
PCクラスでは当時のスパコンを超えCは既に最低レベルな階層の言語で
実行時にマシンコード生成したり、動的言語が多く使われてる
使われる用途も規模も当時とは比べものにならないくらい大きく広くなっているが
当時の知識や技術は形は変われども今でも有効だし本質は変わってない
使われるプログラミング言語も、8bit CPU以前に設計されたものの延長がベースだ
今のまま10万倍高速で大容量なコンピュータが主流になる頃
もちろんいろんな変化があるだろうが
やはり本質的には今と変わらないのじゃないか
等々と考えて、興味深い
0371デフォルトの名無しさん
2010/04/08(木) 02:37:200372デフォルトの名無しさん
2010/04/08(木) 02:39:15「速度を求めるならJAVA」とか言われるようになるのかね
0373デフォルトの名無しさん
2010/04/08(木) 02:52:180374デフォルトの名無しさん
2010/04/08(木) 02:56:41おなじような話題で貶しあいループしてるだろうことだけは断言できる。
やっぱり人間の方が進歩しないとね。
0375デフォルトの名無しさん
2010/04/08(木) 03:57:30UMLよりC言語の方が長生きすると思うぞ
0376デフォルトの名無しさん
2010/04/08(木) 04:45:08以下の議論をしてみてほしいです。
・新しい言語は式ベースで作るべきかどうか?
コンパイラの研究に使われている関数型言語の構成が式ベースになっているので
それに習う?
いろんな機能てんこ盛りがよい?
・式言語をベースにする場合どういったものにするのがよいか?
演算子の優先順位は必要?
endで終わるほうがいい?
オフサイドルールって必要?
{}がいい?
・HaskellやPrologのようにユーザーが優先順位付きの演算子を登録できる機能が必要か?
ないほうが実装が楽になりますが自由度は減ります。
・EcmaScriptやScala、ActionScriptではXMLを直接かけるが必要かどうか?
0377デフォルトの名無しさん
2010/04/08(木) 05:07:30流し読みだと全然わからないんですが、これどうにかなったりしますか?
0378デフォルトの名無しさん
2010/04/08(木) 05:09:100379デフォルトの名無しさん
2010/04/08(木) 05:20:33このスレはCに代わる低級言語ってことで
基本的にCPUアーキテクチャに沿った
手続き系で余分なことをしない静的な型の言語以外あり得ないんじゃないかな
個人的には(構文だけではないけど)
- ブロックを明示しやすくて文でクロージャ作れるし{}がいいと思う
- オフサイドルールはコードはすっきりするけど賢いエディタ前提で深さがわかりにくい
- Cよりシンプルな構文が望ましいが別にC系でいいんでは
- 演算子の再定義はスパゲッティ化しやすいから不要
- マクロもインラインとか定数型などの別な方法で実現可能なので不要
- XMLなんかは外でやればいいんでは
- 勝手にデータを付加しないASN.1とかCの構造体的なメモリイメージと直結したデータ構造
- 動的型付け、GCや動的メモリ管理は明示的に利用を限定出来るならいいかも
- その他のシンタックスシュガーは適度にアリ
みたいな感じ
不勉強だからブートストラップみたいなベタなとこを関数型言語で書けるのかな?
って思うんですけど
0380デフォルトの名無しさん
2010/04/08(木) 05:33:44慣習でカバー
俺はだいたい関数は動詞入り、変数は名詞形、型は_t
0381デフォルトの名無しさん
2010/04/08(木) 07:14:400382デフォルトの名無しさん
2010/04/08(木) 07:55:21何がいいのかと、その理由を。
0383デフォルトの名無しさん
2010/04/08(木) 08:33:210384デフォルトの名無しさん
2010/04/08(木) 14:09:08言語統計を見れば分かると思うけど、優秀な技術者はDを洗濯する。
0385デフォルトの名無しさん
2010/04/08(木) 14:23:58事実上実用にはなってないというのが現状だろ
0386デフォルトの名無しさん
2010/04/08(木) 14:39:100387デフォルトの名無しさん
2010/04/08(木) 14:39:380388デフォルトの名無しさん
2010/04/08(木) 14:43:120389デフォルトの名無しさん
2010/04/08(木) 14:59:590390デフォルトの名無しさん
2010/04/08(木) 15:25:050391デフォルトの名無しさん
2010/04/08(木) 16:27:15↓
0392デフォルトの名無しさん
2010/04/08(木) 17:12:17JavaとC++では、特徴が全然違う
0393デフォルトの名無しさん
2010/04/08(木) 17:15:470394デフォルトの名無しさん
2010/04/08(木) 17:24:150395デフォルトの名無しさん
2010/04/08(木) 17:39:24>>389 は多分初心者なんだと思うぜ。
大方、プログラミング覚えたくて人に勧められるままC++始めて、しかし理解出来ずにそのまま挫折して、
ゆとり丸だしで面倒になって逃げ出したんだが何かのタイミングでJavaを知り、俺様解釈でしか知らないけどOOPはかっこいいとか思っちゃって
それできっと「もう戻りたくない」とか堂々と言っちゃってるんだと思う
すっごいバカ。すっごい勘違い。すっごい勢いでハナ垂らした大学生
0396デフォルトの名無しさん
2010/04/08(木) 17:42:110397デフォルトの名無しさん
2010/04/08(木) 17:44:22Javaですむことを、C++でやりたくはないというのは、初心者、上級者共通だと思うけどね。
0398デフォルトの名無しさん
2010/04/08(木) 18:11:21>>392
>>389 は多分初心者なんだと思うぜ。
大方、プログラミング覚えたくて人に勧められるままC++始めて、しかし理解出来ずにそのまま挫折して、
ゆとり丸だしで面倒になって逃げ出したんだが何かのタイミングでJavaを知り、俺様解釈でしか知らないけどOOPはかっこいいとか思っちゃって
それできっと「もう戻りたくない」とか堂々と言っちゃってるんだと思う
すっごいバカ。すっごい勘違い。すっごい勢いでハナ垂らした大学生
0399デフォルトの名無しさん
2010/04/08(木) 18:24:380400デフォルトの名無しさん
2010/04/08(木) 19:01:420401デフォルトの名無しさん
2010/04/08(木) 21:17:430402デフォルトの名無しさん
2010/04/08(木) 21:50:560403デフォルトの名無しさん
2010/04/08(木) 21:55:09馬鹿でも使える方が工学的には優れている。
但し、Javaはできることが限られているから、イマイチな言語。
0404デフォルトの名無しさん
2010/04/08(木) 22:02:440405デフォルトの名無しさん
2010/04/08(木) 22:06:550406デフォルトの名無しさん
2010/04/08(木) 22:09:420407デフォルトの名無しさん
2010/04/08(木) 22:10:230408デフォルトの名無しさん
2010/04/08(木) 22:11:42新言語を作る必要は全く認められない。C++で十分である。
0409デフォルトの名無しさん
2010/04/08(木) 22:14:110410デフォルトの名無しさん
2010/04/08(木) 22:16:53C++に取って代わる言語はたくさん登場している。
けれども、Cに代わるものはほとんどない。
0411デフォルトの名無しさん
2010/04/08(木) 22:49:460412デフォルトの名無しさん
2010/04/08(木) 22:53:120413デフォルトの名無しさん
2010/04/08(木) 23:36:550414デフォルトの名無しさん
2010/04/08(木) 23:43:520415デフォルトの名無しさん
2010/04/08(木) 23:46:54double�icariable;
0416デフォルトの名無しさん
2010/04/08(木) 23:48:07pointer char p_char; pointer p_char p; // char *p;
typedef pointer pointer p_char pp_char; pp_char pp; // char **pp;
0417デフォルトの名無しさん
2010/04/08(木) 23:53:47だと、
**pp の型が char で
*p の型が char* ってのは
かなり直感的なんだよな。
char → **pp
char* → *pp
char** → pp
0418デフォルトの名無しさん
2010/04/09(金) 00:12:460419デフォルトの名無しさん
2010/04/09(金) 00:32:49きもいよーきもいよー
0420デフォルトの名無しさん
2010/04/09(金) 00:33:490421デフォルトの名無しさん
2010/04/09(金) 00:34:50新たに
0422デフォルトの名無しさん
2010/04/09(金) 00:35:360423デフォルトの名無しさん
2010/04/09(金) 00:41:350424デフォルトの名無しさん
2010/04/09(金) 00:48:42お前は(2* 3+4)が14にならないと文句を言うのか?
0425デフォルトの名無しさん
2010/04/09(金) 00:49:05言語自体は全く新しく一から作るが、これまでの研究成果を生かさないのはもったいない。
良いものは取り入れる。
0426デフォルトの名無しさん
2010/04/09(金) 00:50:06ハードウェアの世界ではそれで成功したがソフトウェアでは通用しない
0427デフォルトの名無しさん
2010/04/09(金) 00:56:150428デフォルトの名無しさん
2010/04/09(金) 01:02:52char *pが文法的に理にかなってる
0429デフォルトの名無しさん
2010/04/09(金) 01:03:000430デフォルトの名無しさん
2010/04/09(金) 01:13:55(2* 3+4)
; in: LAMBDA NIL
; (2* |3+4|)
;
; caught STYLE-WARNING:
; undefined function: 2*
;
; caught WARNING:
; undefined variable: |3+4|
;
; compilation unit finished
; Undefined function:
; 2*
; Undefined variable:
; |3+4|
; caught 1 WARNING condition
; caught 1 STYLE-WARNING condition
; Evaluation aborted.
0431デフォルトの名無しさん
2010/04/09(金) 01:23:25ご冗談でしょう
つか低レベル言語の話でねえなw
0432デフォルトの名無しさん
2010/04/09(金) 01:33:580433デフォルトの名無しさん
2010/04/09(金) 01:40:370434デフォルトの名無しさん
2010/04/09(金) 02:06:00「char* p, q」はアスタリスクがcharと合体しつつpとスペースで区切られているのに
pにのみ効果を及ぼしてるのがきももも
0435デフォルトの名無しさん
2010/04/09(金) 02:13:30コンパイラ書かなければ、文法とパーサで力尽きる心配が無くなるだろ
0436デフォルトの名無しさん
2010/04/09(金) 02:29:37432か?asmを吐くスクリプト=コンパイラだろ
0437デフォルトの名無しさん
2010/04/09(金) 02:50:22そうだよ
その定義に従うと、文法やパーサを作るのは必須ではない
0438デフォルトの名無しさん
2010/04/09(金) 03:30:38意味わからんな。
文法はありもの言語でもいいがパーサがないとコンパイラは出来ないだろ。。。
0439デフォルトの名無しさん
2010/04/09(金) 03:33:48Forthなんかは、パーサーないも同然だけどな。
0440デフォルトの名無しさん
2010/04/09(金) 04:13:370441デフォルトの名無しさん
2010/04/09(金) 13:30:40コード部分は hex で直書き。
作るのも簡単だし高速で簡潔だ。
使う側は少し大変かも知れないけど
0442デフォルトの名無しさん
2010/04/09(金) 14:16:510443デフォルトの名無しさん
2010/04/09(金) 15:26:430444デフォルトの名無しさん
2010/04/09(金) 21:34:280445デフォルトの名無しさん
2010/04/09(金) 21:58:590446デフォルトの名無しさん
2010/04/09(金) 22:22:23それをするとどういうメリットが?
これまでのコンパイラでもアセンブラコードはけるけどそれとは違うの?
0447デフォルトの名無しさん
2010/04/09(金) 22:50:410448デフォルトの名無しさん
2010/04/09(金) 22:53:140449デフォルトの名無しさん
2010/04/09(金) 23:06:27Hoge* pHoge
Hoge *pHoge
どっちで書くか
アドレス型なのだと思えば前者
型自体はHogeなのだと考えれば後者
今でも悩む。
0450デフォルトの名無しさん
2010/04/09(金) 23:11:19C#なら前者、Cなら後者。
0451デフォルトの名無しさん
2010/04/09(金) 23:14:18劣化javaをさらに劣化させてどうする
0452デフォルトの名無しさん
2010/04/09(金) 23:14:460453デフォルトの名無しさん
2010/04/09(金) 23:15:360454デフォルトの名無しさん
2010/04/09(金) 23:16:49じゃあ、アセンブラだけど、実装されていない命令を既存の命令に置き換えてアセンブルする
弱抽象化アセンブラとかどうよ。
0455デフォルトの名無しさん
2010/04/09(金) 23:20:54マシン語がCPU間で似ていると思ったら大間違い。
0456デフォルトの名無しさん
2010/04/09(金) 23:22:09マシン語じゃなくて、アセンブリ言語に変換するんだよ
0457デフォルトの名無しさん
2010/04/09(金) 23:35:120458デフォルトの名無しさん
2010/04/09(金) 23:38:340459デフォルトの名無しさん
2010/04/09(金) 23:41:250460デフォルトの名無しさん
2010/04/09(金) 23:42:400461デフォルトの名無しさん
2010/04/09(金) 23:42:55昔々Base-80というアセンブラがあってな
0462デフォルトの名無しさん
2010/04/09(金) 23:48:21後者は間違いの元だからダメだろ
やりたきゃtypedef
後、アセンブラでまとまった
コード書いたことないヤツがいるな
0463デフォルトの名無しさん
2010/04/09(金) 23:57:080464デフォルトの名無しさん
2010/04/10(土) 00:00:570465デフォルトの名無しさん
2010/04/10(土) 00:02:46>>462
どっちなんだよ
0466デフォルトの名無しさん
2010/04/10(土) 00:04:17Hoge* pHoge;
がおすすめ。1行に1宣言。コンマは使わない。
0467デフォルトの名無しさん
2010/04/10(土) 00:08:47その書き方がC++が流行り始めてから推奨されているが、あくまで型はHogeで*は定義する変数を修飾するものだから、pHogeにつける方が筋。
関数へのポインタとか書くときに型にくっつける書き方は破綻して一貫性がなくなる。
0468デフォルトの名無しさん
2010/04/10(土) 00:11:300469デフォルトの名無しさん
2010/04/10(土) 00:12:560470デフォルトの名無しさん
2010/04/10(土) 00:14:280471デフォルトの名無しさん
2010/04/10(土) 00:18:45アセンブラじゃないとかけないコードとかあったりしない?
0472デフォルトの名無しさん
2010/04/10(土) 00:19:480473デフォルトの名無しさん
2010/04/10(土) 00:22:55あと、サブルーチンの構造前提になる。コルーチンとか継続渡しとか無理。
0474デフォルトの名無しさん
2010/04/10(土) 00:24:20Cでも型は Hoge* だろ。キャストの時を考えろ。
ただしHoge*型の変数(つまりポインタ)の宣言は、Hoge *pHoge という構文で行う。
0475デフォルトの名無しさん
2010/04/10(土) 00:26:42Hoge* pA, pB;
で勘違いっていういつものアレが起こるわけです。
0476デフォルトの名無しさん
2010/04/10(土) 00:27:420477デフォルトの名無しさん
2010/04/10(土) 00:30:150478デフォルトの名無しさん
2010/04/10(土) 00:30:28乗算の*とポインタ宣言時の*が一緒の意味でないのと同じことだ。
0479デフォルトの名無しさん
2010/04/10(土) 00:32:100480デフォルトの名無しさん
2010/04/10(土) 00:32:11pBはポインタでしょ?
0481デフォルトの名無しさん
2010/04/10(土) 00:32:13アホか
この不況にどの企業にそんな時間と金の余裕がある?
0482デフォルトの名無しさん
2010/04/10(土) 00:33:25じゃあ新言語は3つとも違う記号にしようぜ
0483デフォルトの名無しさん
2010/04/10(土) 00:34:09pBはインスタンスだよ
0484デフォルトの名無しさん
2010/04/10(土) 00:36:050485デフォルトの名無しさん
2010/04/10(土) 00:36:29は、
char → **pp であり、
char* → *pp であり、
char** → pp である。
実に直感的かつ合理的。
他の記号にするなんてとんでもない。
0486デフォルトの名無しさん
2010/04/10(土) 00:37:42第3のニューディールみたいな感じで雇用創出も出来る
ネイティブなレベルで並列命令作っておけば今後の進化にも対応できよう
0487デフォルトの名無しさん
2010/04/10(土) 00:38:150488デフォルトの名無しさん
2010/04/10(土) 00:38:462個以上のポインタを宣言すると全然成り立たないけど?
0489デフォルトの名無しさん
2010/04/10(土) 00:38:47>ポインタ宣言時の*
これって、 Hoge * の * は、「Hoge型のどこか」 って意味だったっけ?ポインタとして、Hoge型のどこかを差すから、*。
そして、
>ポインタの型を示す*
こっちは、 *hoge ホゲポインタ型として中身を・・・ うーん、なんか上手い表現ないか
0490デフォルトの名無しさん
2010/04/10(土) 00:39:501行で2個以上ポインタを宣言するな。
0491デフォルトの名無しさん
2010/04/10(土) 00:40:360492デフォルトの名無しさん
2010/04/10(土) 00:55:370493デフォルトの名無しさん
2010/04/10(土) 01:00:230494デフォルトの名無しさん
2010/04/10(土) 01:04:09C++なら、Pointer< Pointer<char> > pp;と書けるかもしれないが、書きたくない
0495デフォルトの名無しさん
2010/04/10(土) 01:08:31新言語に関数宣言と配列宣言があるとしたら、こうしよう↓
type [] ARRAYNAME;
[capture] (type inparams, ...) -> outtype FUNCNAME;
0496デフォルトの名無しさん
2010/04/10(土) 01:09:47ポインタをあまり多様する必要がないという前提なら、そういう構文もありだと思う。
今のC/C++でやられると鬱陶しいだけだが。
0497デフォルトの名無しさん
2010/04/10(土) 01:15:17それがまさしくC#なんだがな
0498デフォルトの名無しさん
2010/04/10(土) 01:30:580499デフォルトの名無しさん
2010/04/10(土) 01:36:30宣言と呼び出しは同じ形にしたいし。
なので、型を後ろにしよう。
ARRAYNAME : type [];
FUNCNAME : [capture] (type inparams, ...) -> outtype;
n : int;
a : int [];
f : [](param1 : int, param2 : int) -> int;
0500デフォルトの名無しさん
2010/04/10(土) 01:38:45Ada崩れみたいだ
0501デフォルトの名無しさん
2010/04/10(土) 01:40:350502デフォルトの名無しさん
2010/04/10(土) 01:45:49Nareda に決定な。
0503デフォルトの名無しさん
2010/04/10(土) 01:48:42declare pt, variable of pointer to int; // int *n;
declare str, array of char with 10 elements; // char str[10];
declare func, function that takes param, variable of int, and returns variable of bool; // bool func(int param);
プログラミングも自然言語に近づければユーザーに優しいはず。
0504デフォルトの名無しさん
2010/04/10(土) 01:48:45あとparamはパラムとか
0505デフォルトの名無しさん
2010/04/10(土) 01:51:320506デフォルトの名無しさん
2010/04/10(土) 01:53:060507デフォルトの名無しさん
2010/04/10(土) 01:53:32fn_nm ag0 int,ag1 const int[2]={0,1},r_type int=(ag0/ag1[0])*ag1[1]{;r_type;}
0508デフォルトの名無しさん
2010/04/10(土) 01:56:41構文なんて後でいいんじゃね?
0509デフォルトの名無しさん
2010/04/10(土) 01:59:52define "declare" + token + ", variable of" + type
= type token;
みたいな感じで。
0510デフォルトの名無しさん
2010/04/10(土) 02:01:130511デフォルトの名無しさん
2010/04/10(土) 02:06:26詰まる所どうあがいてもCには勝てっこない
0512デフォルトの名無しさん
2010/04/10(土) 02:09:59MACHINE poor32;{A,B 32;C ADDR;F0,F1 ieee754;D OF;E UF;S0,S1 STACK}
uint32_t function(uint32_t _base,int32_t _offset){
using MECHNE poor32;
A=_base;B=_offset;A+=B;C=A;S0=C;A=S1;A*=S0;return A;}
0513デフォルトの名無しさん
2010/04/10(土) 02:16:41とりあえずそれだ。 あと、メモリ空間の動的割り当てと開放の部分をすっきりしたい
日常的に使う部分だ。
間接アドレシングとか単純にやろうとすると、
ほぼまんま C/C++と同じ格好になるので、そこをなんとか
0514デフォルトの名無しさん
2010/04/10(土) 02:23:06いやCなら出てくることがあるのはわかるけど
**までで良くない?
0515デフォルトの名無しさん
2010/04/10(土) 02:36:00ポインタのポインタを他の関数に送って変更してもらう時に必要
但しC++は**&と最後をリファレンスにすればよい
0516デフォルトの名無しさん
2010/04/10(土) 02:41:560517デフォルトの名無しさん
2010/04/10(土) 03:12:28JNIを使ってたようなところを楽にかけるようになる
出力はC++とJavaのソースコード(C#.netもいいかも)
class Sample
--@Manage
--hello() : void {
----String msg = "hello world";
----log(msg);
--}
--@Native
--world() : int char[] {
----char* mozi = "hoge";
----int length = strlen(mozi);
----return length, mozi;
--}
}
0518デフォルトの名無しさん
2010/04/10(土) 03:15:020519デフォルトの名無しさん
2010/04/10(土) 03:24:36だからレイヤーつくって複数の環境組み合わせようYO
見た目 C#(Silverlight)
サーバー Java
クリティカル部位 C++ D ASM
0520デフォルトの名無しさん
2010/04/10(土) 03:28:10類似言語はピタゴラスイッチだし
0521デフォルトの名無しさん
2010/04/10(土) 03:28:240522デフォルトの名無しさん
2010/04/10(土) 03:29:09JavaVMとかもうやめてくれ
重くて使い物にならん
0523デフォルトの名無しさん
2010/04/10(土) 04:12:17単に新言語やコンパイラならバカでも作れるが
高度に最適化できるコンパイラなんて、それ専門のスペシャリストが
十人がかりでやっても何年かかるかわからない
つうかCより高速で使いやすかったら億で売れる
ここにいる烏合の衆でそんなもんできるかよw
0524デフォルトの名無しさん
2010/04/10(土) 04:16:55新言語から既存言語のソース吐いて
MSやSunのツールにコンパイルさせればよし
0525デフォルトの名無しさん
2010/04/10(土) 04:34:45よくない。それでデバッガどうするのさ。
インテリセンスもきかないからCより明らかに不便でしょ。
新言語作る意味ないじゃない。
0526デフォルトの名無しさん
2010/04/10(土) 04:36:180527デフォルトの名無しさん
2010/04/10(土) 05:18:28VisualStudioとかEclipseみたいなIDEを作るとかいう話は
あってもなくてもいい話だ
まずはAntで動くぐらいの目標で十分すぎる
0528デフォルトの名無しさん
2010/04/10(土) 05:42:18出来上がるのはゴチャゴチャ詰めこんだウンコ仕様に決まってる
理想を語るのは結構だが真っ当なライブラリとデバッガは必須
だいたい2ch発祥でものになったのは2chブラウザくらいじゃね
MONA OSとか誰も使わないしw安直に考え過ぎ
0529デフォルトの名無しさん
2010/04/10(土) 06:14:01用途は鯖か組み込みかクライアントアプリか、
またそれらの中のカテゴリーは何か絞らないと実用的にはならんな
0530デフォルトの名無しさん
2010/04/10(土) 07:26:16是が非でもC/C++を勉強したくない(理解できなくて挫折したから)
Java厨、C#厨が心の叫びを漏らすスレ
0531デフォルトの名無しさん
2010/04/10(土) 07:39:19お前は誰かが作ったフレームワーク内で一生泳いでろ。
0532デフォルトの名無しさん
2010/04/10(土) 07:48:150533デフォルトの名無しさん
2010/04/10(土) 07:51:440534デフォルトの名無しさん
2010/04/10(土) 07:55:590535デフォルトの名無しさん
2010/04/10(土) 07:58:46説得力がまるでないよ、君
0536デフォルトの名無しさん
2010/04/10(土) 08:14:350537デフォルトの名無しさん
2010/04/10(土) 08:15:08他の言語選択スレみたいに、宗教論争になってまうね
0538デフォルトの名無しさん
2010/04/10(土) 08:36:07例えばセガサターンは(昔の話だが)、メモリが分散して配置されていた。
片方は速く、片方は遅かった。
これらを効率よく扱うためには、本来はアセンブラで書くべきだが、
さすがにそれは開発効率が悪いので、Cで書いていた。
速いほうと遅いほう、両方の先頭アドレスをポインタで保持していた。
二次元配列とかも、フレームだけ定義し、実体は使用時にアロケートしていた。
メモリがもったいないからな。
(二次元配列の動的確保、できるか?出来ないなら「Cわかります」とか言うなよ?)
こういうことが出来ないとOSとか組み込み機とかゲームとかの開発は無理。
C++でも、メモリをどれだけ食うか走らせないとわからないので無理。
IDEがないとダメ、なんて論外。
0539デフォルトの名無しさん
2010/04/10(土) 08:44:330540デフォルトの名無しさん
2010/04/10(土) 08:44:46整数、実数
[]整数
byte : 1 [octet]のみ、文字だって数値だし、文字型いらね
integer : CPUが自然に扱える範囲で
[]実数
floating : 浮動小数点数、IEEEのでもなんでもかまわん
fixed : 固定小数点数、誰得
複合データ型
配列、多次元配列、構造体(のようなもの)、列挙、参照、メモリ参照(つまりポインタ)
[]配列
type[n] array
[]多次元配列
type[n,m,...] array
[]構造体、列挙
Cのがいいよ
[]参照
関数の引数にのみ使える、いわゆる本当のcall by referenceを実現するため
また、メモリ参照を増やさないため
alias unsigned integer uint_t;
ret-type func(ref type[,] array, uint_t row, uint_t column);または
ret-type func(type[,] &array, uint_t row, uint_t column);
[]メモリ参照
type@ memref
integer@ memref = new integer[n];
integer int, @ memref_int = ∫
@memref_int = 128;
integer[n] array, [n,m] marray
memcpy(&marray[x,0], array, n);
&marray[x,0] != @(marray+x)+0, &array[0] == array
メモリをうまく抽象化できればいいんだけど
0541デフォルトの名無しさん
2010/04/10(土) 08:55:09そんな奴が言語の設計とかw
参照は「必ず実体がある」点で、ポインタとはまったく違う。
ポインタは参照と違って、指し示すオブジェクトが1個だろうが、配列だろうが、
メモリが無い変なアドレスだろうが関知しない。
だから参照より危険だが、その代わり、I/Oアドレスでも何でもポイントできる。
デバイスドライバとか書くときは便利だよ。C#にこんなマネができるかね?
0542デフォルトの名無しさん
2010/04/10(土) 08:56:14unmanagedを知らないのか?
0543デフォルトの名無しさん
2010/04/10(土) 08:56:320544デフォルトの名無しさん
2010/04/10(土) 08:57:18ポインタももちろんある
0545デフォルトの名無しさん
2010/04/10(土) 08:58:01取り入れているよな
0546デフォルトの名無しさん
2010/04/10(土) 09:16:06インラインCを搭載するのはどうだろう。
0547デフォルトの名無しさん
2010/04/10(土) 09:27:12x86-64のC++はインラインアセンブル禁止だとよ
どうやってSSEをチューニングしろと言うんだ?
0548デフォルトの名無しさん
2010/04/10(土) 09:48:53objective-cはそれに近い
ていうかあれでcを名乗るのやめてほしい
0549デフォルトの名無しさん
2010/04/10(土) 10:38:340550デフォルトの名無しさん
2010/04/10(土) 11:34:23intrinsicだっけ?
もうあれでいいじゃん。
どうせパイプライン埋めようとしたってCPUごとにいろいろ違うんだし。
0551デフォルトの名無しさん
2010/04/10(土) 12:02:32プロジェクトX用に画面キャプチャしといた
0552デフォルトの名無しさん
2010/04/10(土) 12:09:11「まで」も何も、*は2個までとか個数を制限するのはおかしい。
ポインタ操作に「**」なんて演算子はなくて、単に「*」があるだけ。
0553デフォルトの名無しさん
2010/04/10(土) 12:10:31>>538
0554デフォルトの名無しさん
2010/04/10(土) 12:14:14確かに。
新言語は、ドミノ倒しくらいにシンプルにしたいな。
0555デフォルトの名無しさん
2010/04/10(土) 12:20:480556デフォルトの名無しさん
2010/04/10(土) 12:24:44だったらForthだろ。あるいは類似のConcatenative言語か。
後置・命令主体の言語ならTMの動作原理に近くなるから低水準にはちょうど良いぜ。
まあ、操作対象をスタックじゃなくてテープにしたBFはやり過ぎだと思うけど。
0557デフォルトの名無しさん
2010/04/10(土) 12:44:27@Export("C++")
interface yahho {
--struct Value {
----char ch1, ch2;
--}
--void cs();
--void java();
--Value cpp();
}
class Sample implements yahho
--@Manage(".Net")
--cs() : void {
--}
--@Manage("JVM")
--java() : void {
--}
--@Native("C++")
--cpp() : char char {
----char ch1, ch2;
----asm {
------mov ch1, 'A'
------mov ch2, 'B'
----}
----return ch1, ch2;
--}
}
0558デフォルトの名無しさん
2010/04/10(土) 12:47:16いやもういいから
0559デフォルトの名無しさん
2010/04/10(土) 12:47:460560デフォルトの名無しさん
2010/04/10(土) 12:51:22初心者すぎる消えろ
0561デフォルトの名無しさん
2010/04/10(土) 12:57:270562デフォルトの名無しさん
2010/04/10(土) 13:01:10ライブラリとしてトランスレーター用意すればいいだろ……
さらに言うと呼び出し規約を整理してリンクできるようにしておけば良いだけの話。
コアで話すようなことじゃ無いよ。
>108とか情報科学とか勉強しているやつはいないのかしらん?「計算理論の基礎」は良い本だと思ったけど、誰か読んだ?
0563デフォルトの名無しさん
2010/04/10(土) 13:33:520564デフォルトの名無しさん
2010/04/10(土) 13:37:060565デフォルトの名無しさん
2010/04/10(土) 13:38:020566デフォルトの名無しさん
2010/04/10(土) 13:39:340567デフォルトの名無しさん
2010/04/10(土) 13:40:41そんなのすでにやってるから。やりたければお前が一人で学習してろ。
0568デフォルトの名無しさん
2010/04/10(土) 13:41:230569デフォルトの名無しさん
2010/04/10(土) 13:46:12あ、サブルーチンはさすがに必要だな、gosubとでもするか
0570デフォルトの名無しさん
2010/04/10(土) 13:47:24FORTHの最大の利点はハードの抽象化レイヤーが非常に薄いということだね。
しかし一番の欠点は方言が多すぎるのとGPL実装がほとんどということかな。
んで出るのが20年早すぎたトランスピュータ生まれのOccamとかどうなんだろうな。
あれもある意味では組み込みに近いよな。
0571デフォルトの名無しさん
2010/04/10(土) 13:52:110572デフォルトの名無しさん
2010/04/10(土) 13:54:18実装の話は言語仕様が固まってからだ。
0573デフォルトの名無しさん
2010/04/10(土) 13:59:16ポインタのアドレス型ってのが独立してあれば良くないか?
0574デフォルトの名無しさん
2010/04/10(土) 14:00:290575デフォルトの名無しさん
2010/04/10(土) 14:02:00こう言う場合は、仕様と実装を並行してやるしかない。
0576デフォルトの名無しさん
2010/04/10(土) 14:04:50それでは、どうぞ実装を勧めてください。
ただし、実装者のスキル不足に引っ張られて言語仕様を妥協しない方がいい。
0577デフォルトの名無しさん
2010/04/10(土) 14:07:540578デフォルトの名無しさん
2010/04/10(土) 14:12:14Occamかあ。
プロセスの抽象化は魅力的なんだけど、重たくなったりしないのかな?
あと、式の中身自体は普通の命令型の処理だよね?命令型の部分はどうしよう?
0579デフォルトの名無しさん
2010/04/10(土) 14:26:14同じだろ。*は単独では型を表せないし
優先高いから変数にくっつける
c++は言語も汚いが慣習も理にかなわないからキライ
0580デフォルトの名無しさん
2010/04/10(土) 14:30:12でgoができるワケだな
0581デフォルトの名無しさん
2010/04/10(土) 14:31:40apple script w
読めるがかけねえ
0582デフォルトの名無しさん
2010/04/10(土) 14:40:49今でも組み込みだと内部メモリと
外部のSDRAMで速度差あるから
普通にリンカスクリプトとattributeで使い分けるよ
0583デフォルトの名無しさん
2010/04/10(土) 15:00:34Occum は Transputer のアセンブラだから、その意味では C より低水準で、
かつ、C に比べればずっと先進的な言語仕様だよね。
0584デフォルトの名無しさん
2010/04/10(土) 15:18:11効率的な変換器があったりするのかな?
0585デフォルトの名無しさん
2010/04/10(土) 15:22:05全然違う。そもそも両者はコンパイラだって区別して扱っている。
同じならコンパイラも区別せず統一的に扱えるはず。
0586デフォルトの名無しさん
2010/04/10(土) 15:43:580587デフォルトの名無しさん
2010/04/10(土) 15:48:490588デフォルトの名無しさん
2010/04/10(土) 16:43:45返値は逆にリッチにしてスタック上のリスト+レジスタ。
関数革命
0589デフォルトの名無しさん
2010/04/10(土) 16:47:380590デフォルトの名無しさん
2010/04/10(土) 16:54:06アルゴリズムで勝負するのが一番の高速化手法
0591デフォルトの名無しさん
2010/04/10(土) 18:25:44結局はC言語に似たり寄ったりになる
0592デフォルトの名無しさん
2010/04/10(土) 18:29:500593デフォルトの名無しさん
2010/04/10(土) 18:32:01けど、LLじゃどんなに正しくクイックソートを書いても配列の計算で無駄な事してるから
どう頑張ってもCで書いたのには勝てないんだなぁ。
0594デフォルトの名無しさん
2010/04/10(土) 18:54:470595デフォルトの名無しさん
2010/04/10(土) 20:00:510596デフォルトの名無しさん
2010/04/10(土) 20:19:04C# は unsafe でポインタ使ってカリカリのコード書いても
何故か C より遅いのが嫌なんだよなあ。
結局 C++/CLI と連携したりしなきゃならなくなる。
JIT 改善してくれれば良いのに。
0597デフォルトの名無しさん
2010/04/10(土) 20:22:26DllImportしろ
0598デフォルトの名無しさん
2010/04/10(土) 20:26:260599デフォルトの名無しさん
2010/04/10(土) 20:28:09あとC言語の引数を括弧で囲むのもやめてほしい。
理由は関数合成が汚く見えるから。
0600デフォルトの名無しさん
2010/04/10(土) 20:31:31> あとC言語の引数を括弧で囲むのもやめてほしい。
どうしろと?
0601デフォルトの名無しさん
2010/04/10(土) 20:33:48VB6使えば?
0602デフォルトの名無しさん
2010/04/10(土) 20:36:39でないと変数と区別がつかなくなる。
0603デフォルトの名無しさん
2010/04/10(土) 20:37:11VBでも、関数は括弧必須だろ
0604デフォルトの名無しさん
2010/04/10(土) 20:39:32関数として宣言するし、名前はユニークなんだから区別はつくでしょ。
MLとかHaskellでは引数に括弧はいらないよ。
0605デフォルトの名無しさん
2010/04/10(土) 20:44:41括弧あった方が読みやすい
0606デフォルトの名無しさん
2010/04/10(土) 20:57:280607デフォルトの名無しさん
2010/04/10(土) 21:00:310608デフォルトの名無しさん
2010/04/10(土) 21:01:29高階関数を採用しても何ら問題ないように思う。
0609デフォルトの名無しさん
2010/04/10(土) 21:02:16協力する気は毛頭無いだろうけど。
0610デフォルトの名無しさん
2010/04/10(土) 21:02:53何スレ使ったって無駄だよ。
0611デフォルトの名無しさん
2010/04/10(土) 21:07:180612デフォルトの名無しさん
2010/04/10(土) 21:08:37それより文字列をどうにかすべき
0613a36 ◆K0BqlCB3.k
2010/04/10(土) 21:08:41このスレみたいな開発スタイルは伽藍でもバザールでもなくて、
お互いに顔も名前も知らない多数の人間同士が話しあって何かを決めるスタイルだ。
名前が無いので付けるとしたら匿名直接民主主義スタイル。
しかし、俺の経験上、何かを決めるためには少数の、
それも3人以下の人数でないと何も決まらない。
0614デフォルトの名無しさん
2010/04/10(土) 21:16:07じゃあ欠点挙げてやるよ。
○関数のデフォルトがグローバル
○static関数や変数でもプロトタイプが必要
○ポインタの宣言が難解
○二つの異なる動作が同じstaticキーワードで表現される
(staticグローバル変数と関数内static変数ね。実はアセンブラ的に考えると
同じ動作なのだが、アセンブラに興味のないプログラマには異なる動作と映る)
○switch-caseのデフォルトがfall thruough
○返り値のデフォルトがint
○演算子の記号が結構てきとう
○優先順位はもっとてきとう
0615デフォルトの名無しさん
2010/04/10(土) 21:18:02同意。
最新のオサレ機能でパフォーマンスに影響を与えない機能は備えたいな。
0616デフォルトの名無しさん
2010/04/10(土) 21:19:27それはもはや低級言語ではないな。
0617デフォルトの名無しさん
2010/04/10(土) 21:25:180618デフォルトの名無しさん
2010/04/10(土) 21:28:390619デフォルトの名無しさん
2010/04/10(土) 21:33:370620デフォルトの名無しさん
2010/04/10(土) 21:37:01>4読んで消えてしまえ
0621デフォルトの名無しさん
2010/04/10(土) 21:38:06スレッドとか正規表現リテラルとかはあって欲しいな。
当然ライブラリが無ければその機能は使えないけど、
OSを作る人はそのあたりは理解してどこまで使えるか考えながら使うでしょ。
0622デフォルトの名無しさん
2010/04/10(土) 21:42:180623デフォルトの名無しさん
2010/04/10(土) 21:43:440624デフォルトの名無しさん
2010/04/10(土) 21:45:160625デフォルトの名無しさん
2010/04/10(土) 21:45:350626デフォルトの名無しさん
2010/04/10(土) 21:46:510627デフォルトの名無しさん
2010/04/10(土) 21:48:44むしろそっちの方がいいか。
言語がリテラルを定義する機能を持ち、
標準ライブラリが正規表現リテラルを提供してくれればそれでいい。
0629デフォルトの名無しさん
2010/04/10(土) 21:50:470630デフォルトの名無しさん
2010/04/10(土) 21:50:530631デフォルトの名無しさん
2010/04/10(土) 21:51:41それじゃサブセットの言語があるのと同じだからだめだよ。Cに対するC++のようなもの。スレタイはこのさい関係ない。
0632デフォルトの名無しさん
2010/04/10(土) 21:52:460633デフォルトの名無しさん
2010/04/10(土) 21:52:55言語コア仕様が文字列リテラルを持たなくても、標準ライブラリで文字列リテラルを提供してくれればいいよ。
0634デフォルトの名無しさん
2010/04/10(土) 21:55:09ここまで読んで思い付いたのだが「烏合の衆モデル」てのはどうよ?
当然、成果物は得られないw
0635デフォルトの名無しさん
2010/04/10(土) 21:57:22OS前提の機能ってなんだよ?
標準出力
ファイル
スレッド
プロセス
メモリー
ネットワーク
グラフィックス
は、一般的なOSが提供するよな?
0637デフォルトの名無しさん
2010/04/10(土) 22:01:190638デフォルトの名無しさん
2010/04/10(土) 22:01:530639デフォルトの名無しさん
2010/04/10(土) 22:01:57CのライブラリのほとんどはOS前提だが。
0640デフォルトの名無しさん
2010/04/10(土) 22:07:13同志
0641デフォルトの名無しさん
2010/04/10(土) 22:08:50解析表現文法(かいせきひょうげんぶんぽう、英: Parsing expression grammar, PEG)
か。
正規表現にとって代われるものならこれもあってもいいけど、
使い慣れている人が多いから正規表現も必要だろうな。
0642デフォルトの名無しさん
2010/04/10(土) 22:14:31PEGは基本的にLL(∞)+αだから表現力は問題なし。
LLベースだから再帰との相性もいいし、パーツ毎の独立性も高い。
問題はトラックバックが多いと性能悪化することだけど、まあ気にすんな。
0643デフォルトの名無しさん
2010/04/10(土) 22:15:04string関連のライブラリのほとんどはOSなしで書けるんじゃね
memcpy, memcmpとかも書けるし
stdioはもちろんOSないとダメだけども
0644デフォルトの名無しさん
2010/04/10(土) 22:16:350645デフォルトの名無しさん
2010/04/10(土) 22:20:38OS作る人は使えない機能があって困惑するかもしれないけど、
そもそもOS作る人がコンパイラを作る(またはポーティングする)んだろうから問題ないよ。
使えるようになった機能から使うようにすればいい。
デバドラ屋にとっては問題ないし。
0646デフォルトの名無しさん
2010/04/10(土) 22:23:45物知ってるな
0647デフォルトの名無しさん
2010/04/10(土) 22:24:20追加インストールしなくても使えることが保証されてる標準ライブラリは言語仕様の一部だよ。
0648デフォルトの名無しさん
2010/04/10(土) 22:25:02ForthとLisp、Fortran、BASIC、BF、C辺りの違いがわかるやつも少そうだし。
0649デフォルトの名無しさん
2010/04/10(土) 22:25:31に依存する文字列は、言語仕様なのかライブラリなのか
0650デフォルトの名無しさん
2010/04/10(土) 22:25:42使えない機能があるんだったら、はじめから仕様からはずしておくべき。
OSの機能を使っていいということになったら、ぜひとも入れたいという機能はいくらでも出てくる。
0651デフォルトの名無しさん
2010/04/10(土) 22:26:17「やつ」の話はいらないって。
0652デフォルトの名無しさん
2010/04/10(土) 22:28:080653デフォルトの名無しさん
2010/04/10(土) 22:32:130654デフォルトの名無しさん
2010/04/10(土) 22:33:36例えば、
ヒープを確保するためにライブラリ関数を呼び出すのは美しくない。
言語仕様が備える機能で確保したい。
0655デフォルトの名無しさん
2010/04/10(土) 22:34:35へ?ヒープはOSのサービスだろ?言語仕様関係ないべ?
0656デフォルトの名無しさん
2010/04/10(土) 22:36:02OSのサービスは言語仕様と関係ないと初めから決めつけるようなことではない。
0657デフォルトの名無しさん
2010/04/10(土) 22:44:340658デフォルトの名無しさん
2010/04/10(土) 22:46:560659デフォルトの名無しさん
2010/04/10(土) 22:48:280660デフォルトの名無しさん
2010/04/10(土) 22:49:24それってつまり、C++のnewが内部でOSのシステムコールMALLOCを呼んでる
(実際には間にCライブラリmalloc()が入る)みたいにしたいってことかい?
そういうふうに勝手にOSシステムコールしちゃう言語だと、OS書けなくなるけどいいの?
0661デフォルトの名無しさん
2010/04/10(土) 22:51:00仮想マシンのバイトコードから現実のマシン語かアセンブラへの変換は難しいと思う。
それができるならx86からarmへのアプリのバイナリ変換による移植も容易くできる事になるが、
実際には難しいよね。
0662デフォルトの名無しさん
2010/04/10(土) 22:55:13Cを超える事なんて出来んので
仮想レジスタ構文なんだよ
0663デフォルトの名無しさん
2010/04/10(土) 22:55:130664デフォルトの名無しさん
2010/04/10(土) 22:56:24OS作る人は使えない機能があって困惑するかもしれないけど、
そもそもOS作る人がコンパイラを作る(またはポーティングする)んだろうから問題ないよ。
使えるようになった機能から使うようにすればいい。
0665デフォルトの名無しさん
2010/04/10(土) 22:57:04いつから malloc がシステムコールになったのか詳しく
0666デフォルトの名無しさん
2010/04/10(土) 22:57:30先生それならCで書いたほうが早いですw
0667デフォルトの名無しさん
2010/04/10(土) 22:58:07既存の言語を使って何かをすることが目的ではなく、新たなプログラミング言語を考えることが目的であるから、
「既存のXX言語を使えばいい。」という類の発言は無意味である。
「既存のYY言語のZZ機能は、WWと言う点で有用だから採用したい。」という発言は歓迎だ。
0668デフォルトの名無しさん
2010/04/10(土) 22:58:35mallocってシステムコールじゃないの?
てか用語が間違ってるのかな。OSのサービスって言えばいい?
0669デフォルトの名無しさん
2010/04/10(土) 22:59:55低水準なら、直接いじるって方法を捨てるわけにはいかんわなぁ。
C++のstringじゃ不満かい?
0670デフォルトの名無しさん
2010/04/10(土) 23:00:03無駄な再発明したって仕方ないだろ
Cで書いたほうが早いじゃんって言われるような言語に何の意味がある
0671デフォルトの名無しさん
2010/04/10(土) 23:00:210672デフォルトの名無しさん
2010/04/10(土) 23:01:44先生、あとOS作る人はコンパイラ作りません。
0673デフォルトの名無しさん
2010/04/10(土) 23:02:58OSと連携したほうが高機能になるが
0674デフォルトの名無しさん
2010/04/10(土) 23:03:10X68000とかはシステムコール名がMALLOCだったわけだがそんなの出すのは反則ですか
0675デフォルトの名無しさん
2010/04/10(土) 23:03:25> mallocってシステムコールじゃないの?
普通, brk/sblk とか malloc 使って全く別のインターフェースとして実装されてる
0676デフォルトの名無しさん
2010/04/10(土) 23:03:35次スレとか要らないよ >アイちゃん。
0677デフォルトの名無しさん
2010/04/10(土) 23:04:46意味がよくわからない。
OSシステムコールを一切使わず、独立したコードでmallocが書けるって意味?
そんなこと出来ないはずだけど。
0678デフォルトの名無しさん
2010/04/10(土) 23:05:01malloc()とMALLOC()はCでは別物だよね。他の言語では知らんけど。
0679デフォルトの名無しさん
2010/04/10(土) 23:05:27OS じゃねぇけど, リアルタイムモニターもコンパイラも作ったが
0680デフォルトの名無しさん
2010/04/10(土) 23:06:08そのとおり。
少なくともどこかでOSに問い合わせてメモリーを確保しなければいけないからな。
0681デフォルトの名無しさん
2010/04/10(土) 23:06:16できますよ。
static char heap[1024*1024*HEAP_SIZE];
でこのメモリを管理。
組み込みでは一般的。
0682デフォルトの名無しさん
2010/04/10(土) 23:07:32そのheapをどこに配置するかは誰が管理してるんだよ。
0683デフォルトの名無しさん
2010/04/10(土) 23:07:460684デフォルトの名無しさん
2010/04/10(土) 23:08:01どのOSの話してるのかは知らんが、K&R第2版にあったUNIXでmallocを実装する例では、
間接的にsbrkシステムコールを使ってメモリを取得しているようだった。
0685デフォルトの名無しさん
2010/04/10(土) 23:08:27お前コード読めないの?
静的変数は言語仕様。
0686デフォルトの名無しさん
2010/04/10(土) 23:09:11それはインチキ。OS使わないんじゃなくて、OSがメモリ管理機能を持ってないだけじゃん。
0687デフォルトの名無しさん
2010/04/10(土) 23:09:26演算子は誰が実行してるんだよというくらいバカなレス
0688デフォルトの名無しさん
2010/04/10(土) 23:10:10組み込みの場合は, *.h とかってファイルにメモリーのサイズと共に
スタティックに書かれてることが多い
0689デフォルトの名無しさん
2010/04/10(土) 23:10:21このレベルがOSや言語仕様語ってるのかw
0690デフォルトの名無しさん
2010/04/10(土) 23:11:56それのどこがmalloc何だ?HEAP_SIZEが変数?
0691デフォルトの名無しさん
2010/04/10(土) 23:12:040692デフォルトの名無しさん
2010/04/10(土) 23:13:13あっキミちょっと黙ってて
0693デフォルトの名無しさん
2010/04/10(土) 23:13:330694デフォルトの名無しさん
2010/04/10(土) 23:13:38小学校の時よくいた。
0695デフォルトの名無しさん
2010/04/10(土) 23:15:01必死にごまかそうとしている。>>692
0696デフォルトの名無しさん
2010/04/10(土) 23:15:34煽ってもみんなわかってるからw
0697デフォルトの名無しさん
2010/04/10(土) 23:16:058bitCPUレベルの組み込み用途にも使われるの言語について語るとか、マジ勘弁してくれ。
0698デフォルトの名無しさん
2010/04/10(土) 23:16:260699デフォルトの名無しさん
2010/04/10(土) 23:16:40俺681じゃないけど、こんなふうに実装すればできるよ。
void* malloc(size_t size)
{
return heap[]からsizeバイト確保したメモリを返す
}
void free(void* ptr)
{
ptrが指すメモリをheap[]に返す
}
0700デフォルトの名無しさん
2010/04/10(土) 23:18:10は与えられたサイズ分のメモリーをヒープに確保してそのアドレスを戻り値に返す。
>>681は少なくともmallocの実装にはなっていないけど、どうなってるの?
0701デフォルトの名無しさん
2010/04/10(土) 23:18:10こんな奴が「言語仕様」www
0702デフォルトの名無しさん
2010/04/10(土) 23:19:01いやソースあっても理解できないな・・・
0703デフォルトの名無しさん
2010/04/10(土) 23:19:070704デフォルトの名無しさん
2010/04/10(土) 23:19:580705デフォルトの名無しさん
2010/04/10(土) 23:20:580706デフォルトの名無しさん
2010/04/10(土) 23:20:59>>700を書き込んでからそれを読んだ。
0707デフォルトの名無しさん
2010/04/10(土) 23:21:55だから黙っててと書いたのに。。。LL育ちがばれちゃったね。
0708デフォルトの名無しさん
2010/04/10(土) 23:24:560709デフォルトの名無しさん
2010/04/10(土) 23:25:48OSがメモリーを管理しているのであれば、>>681にしてもどこかでOSにお伺いをたてる必要がある。
0710デフォルトの名無しさん
2010/04/10(土) 23:26:050711デフォルトの名無しさん
2010/04/10(土) 23:26:410712デフォルトの名無しさん
2010/04/10(土) 23:28:45だから、リンカーはOSに依存する。
0713デフォルトの名無しさん
2010/04/10(土) 23:28:530714デフォルトの名無しさん
2010/04/10(土) 23:29:320715デフォルトの名無しさん
2010/04/10(土) 23:30:010716デフォルトの名無しさん
2010/04/10(土) 23:30:250717デフォルトの名無しさん
2010/04/10(土) 23:30:35動的リンクはOSに入らないが、動的リンクの機能はOSに依存する。
0718デフォルトの名無しさん
2010/04/10(土) 23:31:080719デフォルトの名無しさん
2010/04/10(土) 23:31:1010年前に戻りたい。
0720デフォルトの名無しさん
2010/04/10(土) 23:31:56他に居場所がないなら仕方ない
0721デフォルトの名無しさん
2010/04/10(土) 23:32:100722デフォルトの名無しさん
2010/04/10(土) 23:32:18どう混乱しているのか具体的に
0723デフォルトの名無しさん
2010/04/10(土) 23:32:540724デフォルトの名無しさん
2010/04/10(土) 23:33:29動かない。
0725デフォルトの名無しさん
2010/04/10(土) 23:34:08そうですか・・・
0726デフォルトの名無しさん
2010/04/10(土) 23:34:270727デフォルトの名無しさん
2010/04/10(土) 23:35:290728デフォルトの名無しさん
2010/04/10(土) 23:35:49Cの仕様で記述できるものはどう実装されていようとかまわない。
実装がOSの機能を使おうと使わなかろうと本来関係がない。
知っている実装系がOSの機能を使っていようとも。
0729デフォルトの名無しさん
2010/04/10(土) 23:37:57main関数すら慣例であって必須ではない。
OSレス、ディスクレス、コンソールレスの
組み込みシステムでも、簡単なレジスタと
メモリの初期化だけアセンブラで残して
後はすべてCで記述するとかいうことは
大昔から普通に行われている。
printfも自前のライブラリで実装とか当たり前だ。
そうした用途に使える言語はCしかない。
0730デフォルトの名無しさん
2010/04/10(土) 23:38:51ああ、それなら完全に同意。
煽ってるだけかと思った。
0731デフォルトの名無しさん
2010/04/10(土) 23:39:350732デフォルトの名無しさん
2010/04/10(土) 23:40:09OS無しの組み込み開発で使われることもあるプログラミング言語の
言語仕様にマルチスレッドを標準装備しろとか有り得ない。
0733デフォルトの名無しさん
2010/04/10(土) 23:41:00mallocの実装を自分で書いたこともないのだろう
0734デフォルトの名無しさん
2010/04/10(土) 23:41:27あったねー
ゲーム機とかそんな感じだったね。
ライブラリ皆無で、memcpyやらstrcmpやらも自前で作ったw
もちろんmallocも。
printfは面倒だから作らなかったけど。
C以外でこれをやれって言われても、めんどくせえからやだ、で終わりだわな。
>>1はこういう経験あるんだろうか。
LL脳が粋がってわめいてるだけにしか思えないのだが。
0735デフォルトの名無しさん
2010/04/10(土) 23:42:32ライブラリでなく言語仕様に標準装備って例えばどんなの?
0736デフォルトの名無しさん
2010/04/10(土) 23:43:50ひろゆきもバカだけど年収1億超え^^
0737デフォルトの名無しさん
2010/04/10(土) 23:45:440738デフォルトの名無しさん
2010/04/10(土) 23:46:400739デフォルトの名無しさん
2010/04/10(土) 23:47:25OS屋は文字列処理を使いたかったら、先ず”String”を実装して、それから文字列処理を使えばいい。
言語仕様のフル機能が常に揃っていなければいけないことはないわけだし。
0740デフォルトの名無しさん
2010/04/10(土) 23:49:30それでは、実質的にStringがない別の言語があるのと同じ。
0741デフォルトの名無しさん
2010/04/10(土) 23:50:190742デフォルトの名無しさん
2010/04/10(土) 23:51:56if(!strcmp(str1, str2))
↑こんなことせずに
↓こうできる
if(str1 == str2)
0743デフォルトの名無しさん
2010/04/10(土) 23:52:070744デフォルトの名無しさん
2010/04/10(土) 23:53:090745デフォルトの名無しさん
2010/04/10(土) 23:53:34LL臭がプンプンする。。。
if (str1 == str2) には別の意味があるってのに。。。
0746デフォルトの名無しさん
2010/04/10(土) 23:54:08オブジェクト指向のダックタイピングみたいなもんですか?
0747デフォルトの名無しさん
2010/04/10(土) 23:54:320748デフォルトの名無しさん
2010/04/10(土) 23:54:38>>742は例だ。何言語かも言及してないし、意味も定義していない。「別の意味」も何もない。
単に構文が簡単になるということを言っている。
0749デフォルトの名無しさん
2010/04/10(土) 23:55:07時代に沿った流れとしては、低レベルでネイティブな並列処理が欲しい所ではある
0750デフォルトの名無しさん
2010/04/10(土) 23:55:42Java
0751デフォルトの名無しさん
2010/04/10(土) 23:55:54もっとプリミティブなところ考えようぜ
0752デフォルトの名無しさん
2010/04/10(土) 23:56:15イメージできてそのレスしてる?
0753デフォルトの名無しさん
2010/04/10(土) 23:56:56欲しいね。
0754デフォルトの名無しさん
2010/04/10(土) 23:57:35fortranの算術ifでも復活させたいのかね
0755デフォルトの名無しさん
2010/04/10(土) 23:57:440756デフォルトの名無しさん
2010/04/11(日) 00:00:09どのコアで実行させるかとか、そう言うのじゃないの。
メモリーアドレスをポインター変数で隠蔽するように、コア番号を隠蔽するコア変数みたいのとか。
0757デフォルトの名無しさん
2010/04/11(日) 00:00:430758デフォルトの名無しさん
2010/04/11(日) 00:00:520759デフォルトの名無しさん
2010/04/11(日) 00:01:28どういう表現がいい?
0760デフォルトの名無しさん
2010/04/11(日) 00:02:230761デフォルトの名無しさん
2010/04/11(日) 00:02:320762デフォルトの名無しさん
2010/04/11(日) 00:03:36ルーチンにスレッド付けるかどうかを言語側でサポートする手もあるわな。
単にコルーチン・ファイバーに対応しても良いけど。
>754
パターンマッチングだのマルチスレッドだのいくつかあるぜ。
0763デフォルトの名無しさん
2010/04/11(日) 00:04:550764デフォルトの名無しさん
2010/04/11(日) 00:05:13並列処理を使いたい人が、並列処理を行うための機能を実装するんだろうね。
言語仕様としては、「並列処理を行う場合は”Thread”ライブラリを実装してください。」でいいと思うよ。
0765デフォルトの名無しさん
2010/04/11(日) 00:05:51並列化可能にしやすい言語仕様にしてインラインアセンブラみたいなものや
プラットフォーム用ライブラリで最適化支援するしかないと思うが。
0766デフォルトの名無しさん
2010/04/11(日) 00:05:590767デフォルトの名無しさん
2010/04/11(日) 00:06:110768デフォルトの名無しさん
2010/04/11(日) 00:07:19OSに頼れないなら、ライブラリだろうな。それ以外何がある?
0769デフォルトの名無しさん
2010/04/11(日) 00:08:410770デフォルトの名無しさん
2010/04/11(日) 00:10:050771デフォルトの名無しさん
2010/04/11(日) 00:10:29だから、ポインタ変数に代入する値を出力するmallocやnewがあるように、
コア変数に代入するbeginthreadとかrunとかを定めるんだろ。
アドレス同様、コア番号を直接扱う必要は殆どないよ。
0772デフォルトの名無しさん
2010/04/11(日) 00:12:130773デフォルトの名無しさん
2010/04/11(日) 00:12:400774デフォルトの名無しさん
2010/04/11(日) 00:13:33うーんお前あまり実装のイメージできてなくない?
スレッド管理って載ってるOSやCPUによってちがうだろ。
それをどう抽象化するつもりなの?
>コア変数に代入するbeginthreadとかrunとかを定めるんだろ。
はライブラリにしか見えないけど。
そんなライブラリが載りやすい言語仕様という意味ならおれ多少アイディアあるけど。
0775デフォルトの名無しさん
2010/04/11(日) 00:14:33新言語のことは完全に忘れ去られているw
0776デフォルトの名無しさん
2010/04/11(日) 00:16:14cpu[0].run(task0);
cpu[1].run(task1);
cpu[2].run(task2);
cpu[3].run(task3);
こんな感じで書けってか?
これってコアが4つとれない環境だとかえって遅くなるよ。。。
言語でやるのって意味ないと思うけど。OSの仕事だろ上皇。
0777デフォルトの名無しさん
2010/04/11(日) 00:17:27その場合はその構文使わなければいいのでは?
0778デフォルトの名無しさん
2010/04/11(日) 00:19:13どう見てもクラスライブラリw
0779デフォルトの名無しさん
2010/04/11(日) 00:21:03Core *cpu = allocate_core(cpucount);
とかやれば・・・
って、書いてて思ったけど、
これ OS の APIじゃね?
0780デフォルトの名無しさん
2010/04/11(日) 00:21:530781デフォルトの名無しさん
2010/04/11(日) 00:25:09コーディング時に並列実行させたいタスクの数は静的に決まるから、
動的にCPU数を貰ってもあんまり良いことはない。むしろコードが複雑になる。
4個なら4個よこせってOS(じゃないんだっけ?w)に訊いて、例えば3個しか
無い環境なら 0, 1, 2, 2 と返すとかしてくれないと使えない。
ていうか並列処理はOSの仕事でFAだろうけど。
0782 [―{}@{}@{}-] デフォルトの名無しさん
2010/04/11(日) 00:27:12今時、そんな糞言語作って誰が使うんだ。
0783デフォルトの名無しさん
2010/04/11(日) 00:27:430784デフォルトの名無しさん
2010/04/11(日) 00:29:13特に並列がどうとか正規表現がどうとかいうあたりw
0785デフォルトの名無しさん
2010/04/11(日) 00:31:44OS有りだけど, 直でI/O叩いたり,
OS無しのシステムだったり,
OS自体を作ったり・・・
って事でいいんかな.
0786デフォルトの名無しさん
2010/04/11(日) 00:33:25これが出来ないと低級じゃないな
0787デフォルトの名無しさん
2010/04/11(日) 00:33:450788デフォルトの名無しさん
2010/04/11(日) 00:33:51MACHINE X{register…}
MACHINE XS SMP2{register…}
MACHINE XN NUMA16{register…}
MACHINE XT THREAD16{register…}
MACHINE XH {MACHINE PhysX,register…}
0789デフォルトの名無しさん
2010/04/11(日) 00:34:34そうだね。
但し、それらを行うときに新言語のフル機能が常に揃っている必要はなくて
新言語の一部機能は制限された形で開発することになるということはあるだろうね。
0790デフォルトの名無しさん
2010/04/11(日) 00:35:010791デフォルトの名無しさん
2010/04/11(日) 00:36:480792デフォルトの名無しさん
2010/04/11(日) 00:37:29アセンブラと一緒にリンクすれば作れますぜ
0793デフォルトの名無しさん
2010/04/11(日) 00:38:210794デフォルトの名無しさん
2010/04/11(日) 00:40:180795デフォルトの名無しさん
2010/04/11(日) 00:42:55アセンブラ使わず, 1つの言語で全部できたらいいのにーって
思うのは俺だけだろうか・・・.
といっても, ブート部分とかCPU依存無しで,
書けるような言語って・・・できるのか?
0796デフォルトの名無しさん
2010/04/11(日) 00:45:470797デフォルトの名無しさん
2010/04/11(日) 00:48:150798デフォルトの名無しさん
2010/04/11(日) 00:49:140799デフォルトの名無しさん
2010/04/11(日) 00:51:49お前らにそんな人らの真似事なんか出来るんですか
0800デフォルトの名無しさん
2010/04/11(日) 00:52:500801デフォルトの名無しさん
2010/04/11(日) 00:53:110802デフォルトの名無しさん
2010/04/11(日) 00:53:26出来る。
0803デフォルトの名無しさん
2010/04/11(日) 00:54:03ロードするアドレスとかスタックサイズとか指定したら
OS無しの状態で, NEW言語で書かれたものが
動く環境まで出来ちゃうコードを自動生成するんかなぁ?
>> 799
あきらめちゃそこで終わりだ!
0804デフォルトの名無しさん
2010/04/11(日) 00:54:340805デフォルトの名無しさん
2010/04/11(日) 00:57:130806デフォルトの名無しさん
2010/04/11(日) 00:58:36真似したくないんだろ
真似するだけならCでいいんだが
0807デフォルトの名無しさん
2010/04/11(日) 00:58:43このスレに実装したことあるような人間がどのくらいいるのか。
おれは言語トランスレータしかつくったことない。
0808デフォルトの名無しさん
2010/04/11(日) 01:01:53演算子のオーバーロードがあれば、言語仕様に含まれてなくてもできるよ。
0809デフォルトの名無しさん
2010/04/11(日) 01:02:19家では, yacc とか使わず Dでパーサ作ったぐらい orz.
0810デフォルトの名無しさん
2010/04/11(日) 01:04:200811デフォルトの名無しさん
2010/04/11(日) 01:04:36個人的には, 固定サイズの型があると嬉しいんだが・・・.
Cの環境依存は何かと・・・
char が 1 byte じゃない時とか移植コマッタゼヨ。。。
0812デフォルトの名無しさん
2010/04/11(日) 01:05:240813デフォルトの名無しさん
2010/04/11(日) 01:05:520814デフォルトの名無しさん
2010/04/11(日) 01:08:580815 [―{}@{}@{}-] デフォルトの名無しさん
2010/04/11(日) 01:14:372バイト以上が欲しければ byte(2) のようにする。
浮動小数やsigned/unsignedの区別は自分で行う。
0816811
2010/04/11(日) 01:14:461 byte が 9bit って書かないとだめでした. m(_ _)m
0817デフォルトの名無しさん
2010/04/11(日) 01:17:040818デフォルトの名無しさん
2010/04/11(日) 01:17:450819デフォルトの名無しさん
2010/04/11(日) 01:20:22byte(8) x = 10;
byte(8) y = 3;
byte(8) z = x / y;
z には, 3 が入るん? それとも浮動小数?
0820デフォルトの名無しさん
2010/04/11(日) 01:20:330821デフォルトの名無しさん
2010/04/11(日) 01:56:54競争激化により110円か無料でしか見向きもされず、30%をappleに取られ、一体何が残るんだ?
0822デフォルトの名無しさん
2010/04/11(日) 05:58:040823デフォルトの名無しさん
2010/04/11(日) 07:37:59知ったかでした
すみません
0824デフォルトの名無しさん
2010/04/11(日) 07:41:1299ドルを知らない人
0825デフォルトの名無しさん
2010/04/11(日) 09:09:54死ぬほど使いにくい
0826デフォルトの名無しさん
2010/04/11(日) 09:40:27Ada
0827デフォルトの名無しさん
2010/04/11(日) 11:20:28遅いから C 使いたいだけなのになんで dllimport なんて
使わなきゃなんないんだよ。
一部のアセンブリを C++/CLI で方がずっと簡単じゃん。
0828デフォルトの名無しさん
2010/04/11(日) 12:14:540829デフォルトの名無しさん
2010/04/11(日) 13:56:470830デフォルトの名無しさん
2010/04/11(日) 14:12:580831デフォルトの名無しさん
2010/04/11(日) 14:14:57いやCなら出てくることがあるのはわかるけど
**までで良くない?
0832デフォルトの名無しさん
2010/04/11(日) 14:19:01なぜ**なんだ?
0833デフォルトの名無しさん
2010/04/11(日) 14:19:100834デフォルトの名無しさん
2010/04/11(日) 14:21:050835デフォルトの名無しさん
2010/04/11(日) 14:24:220836デフォルトの名無しさん
2010/04/11(日) 14:31:010837デフォルトの名無しさん
2010/04/11(日) 14:38:430838デフォルトの名無しさん
2010/04/11(日) 14:56:000839デフォルトの名無しさん
2010/04/11(日) 16:29:16c/c++の場合関係ない
0840デフォルトの名無しさん
2010/04/11(日) 16:36:25行列演算どうしますか?
0841デフォルトの名無しさん
2010/04/11(日) 16:40:430842デフォルトの名無しさん
2010/04/11(日) 16:55:47C/C++の場合の話を聞いているわけではなく、どのような場合に関係してどう関係するのかを聞いているんだろ。
0843デフォルトの名無しさん
2010/04/11(日) 18:07:49出来ないように改悪されて困る人はいても、誰も得しないだろ
0844デフォルトの名無しさん
2010/04/11(日) 18:53:590845デフォルトの名無しさん
2010/04/11(日) 18:58:02void func(ref int val)
{
val = 1;
}
func(10); // コンパイルエラー
int x = 10;
func(x);
// x = 1になる.
0846デフォルトの名無しさん
2010/04/11(日) 19:08:50そんなの、いくらでもあるが。
0847デフォルトの名無しさん
2010/04/11(日) 19:22:43GC以外は理想的だぞ
さすがと言わざるを得ない言語仕様
0848デフォルトの名無しさん
2010/04/11(日) 19:23:16> 明示的なポインタなくしたらダメ?
なくすも何も、新言語はこれから作るのだが。
何をなくすかではなく、言語仕様に何を含めるかを語って欲しい。
0849デフォルトの名無しさん
2010/04/11(日) 19:24:020850デフォルトの名無しさん
2010/04/11(日) 19:25:520851デフォルトの名無しさん
2010/04/11(日) 19:27:400852デフォルトの名無しさん
2010/04/11(日) 19:31:070853デフォルトの名無しさん
2010/04/11(日) 19:34:23後からいつでもそういう記法を作ることができるような構文ってどういうふうに定義すればいいのでしょうか?
0854デフォルトの名無しさん
2010/04/11(日) 19:39:300855デフォルトの名無しさん
2010/04/11(日) 19:42:19独自括弧「」の定義として
MyBracket bracket「」(int v, ...){
処理;
return new MyBracket;
}
0856デフォルトの名無しさん
2010/04/11(日) 19:42:40if文で括弧がないのが致命的にイヤだ
0857デフォルトの名無しさん
2010/04/11(日) 19:43:36バックエンドを先に作る。フロントエンドは後で作る。
0858デフォルトの名無しさん
2010/04/11(日) 20:21:43それほとんどD言語だろw
0859デフォルトの名無しさん
2010/04/11(日) 20:23:30マクロと駆動操作クレ。
サブルーチン縛りはやだ。
0860デフォルトの名無しさん
2010/04/11(日) 20:24:040861デフォルトの名無しさん
2010/04/11(日) 20:29:10主観で使用比率もつけて教えてくれ
0862デフォルトの名無しさん
2010/04/11(日) 20:38:130863デフォルトの名無しさん
2010/04/11(日) 21:05:060864デフォルトの名無しさん
2010/04/11(日) 21:12:260865デフォルトの名無しさん
2010/04/11(日) 21:33:45絶対流行らないってね。
0866デフォルトの名無しさん
2010/04/11(日) 21:35:310867デフォルトの名無しさん
2010/04/11(日) 21:36:190868デフォルトの名無しさん
2010/04/11(日) 21:38:56人を納得させられるだけの材料がなければどんな言語も流行らないよ。
Dの売りはなんだ?
0869デフォルトの名無しさん
2010/04/11(日) 21:40:42最近はJava,C#なんか企業戦略だよね。
LLはオープンソースかな?
0870デフォルトの名無しさん
2010/04/11(日) 21:42:26C/C++に代わる低級言語
0871デフォルトの名無しさん
2010/04/11(日) 21:43:20> CはUNIXの記述から流行ったんだっけ?
UnixのAPIがC言語の関数だったからCを使わざるを得なかったんだよ。
別にアセンブリ言語でも書けるけど、Cだと余計なことを考えずに関数を作るだけだからな。
0872デフォルトの名無しさん
2010/04/11(日) 21:45:36C は、抽象化されたノイマンマシンの高級アセンブラとして普及した
Unix の記述は、ある意味実証実験でしかない
0873デフォルトの名無しさん
2010/04/11(日) 21:52:370874デフォルトの名無しさん
2010/04/11(日) 21:53:260875デフォルトの名無しさん
2010/04/11(日) 21:59:580876デフォルトの名無しさん
2010/04/11(日) 22:05:23自動プログラミングっていえよw
0877デフォルトの名無しさん
2010/04/11(日) 22:09:410878デフォルトの名無しさん
2010/04/11(日) 22:11:490879デフォルトの名無しさん
2010/04/11(日) 22:13:52低級な処理には向かない
Object Cとか、Cから派生してる言語はいっぱいあるが、
低級処理ならCが最高
移植性は世界一
0880デフォルトの名無しさん
2010/04/11(日) 22:15:130881デフォルトの名無しさん
2010/04/11(日) 22:16:47俺らの作る糞アプリではなく、過去の巨匠たちが作った
コードを引き継ぐ必要がある
0882デフォルトの名無しさん
2010/04/11(日) 22:16:500883デフォルトの名無しさん
2010/04/11(日) 22:18:14C++はひどい。
0884デフォルトの名無しさん
2010/04/11(日) 22:19:02ASP.NET
Windows Forms
XNA
WPF
Silverlight
0885デフォルトの名無しさん
2010/04/11(日) 22:20:11Silverlight案件なんてあるの?
0886デフォルトの名無しさん
2010/04/11(日) 22:21:54まだない。
これからはある。
かもしれない。
0887デフォルトの名無しさん
2010/04/11(日) 22:23:29基幹系であぐらをかいてる人間はそんな世界があることさえ知らない。
0888デフォルトの名無しさん
2010/04/11(日) 22:23:30このなかで実際にありそうな仕事って
>ASP.NET
だけじゃね?
0889デフォルトの名無しさん
2010/04/11(日) 22:26:23XNAとかSilverlightは別にして、デスクトップアプリならありそうだが
0890デフォルトの名無しさん
2010/04/11(日) 22:41:37おまえらの低級の定義って「初心者が使えないもの」なのか?
0891デフォルトの名無しさん
2010/04/11(日) 22:44:27スレを最初から読みなおせ
0892デフォルトの名無しさん
2010/04/11(日) 22:49:070893デフォルトの名無しさん
2010/04/11(日) 22:50:400894デフォルトの名無しさん
2010/04/11(日) 22:59:120895デフォルトの名無しさん
2010/04/11(日) 23:11:360896デフォルトの名無しさん
2010/04/11(日) 23:12:570897デフォルトの名無しさん
2010/04/11(日) 23:16:28マザーボード CPU メモリ 電源買ってきてパソコン作れるよ って言ってるのと同じレベルw
0898デフォルトの名無しさん
2010/04/11(日) 23:25:450899デフォルトの名無しさん
2010/04/11(日) 23:28:450900デフォルトの名無しさん
2010/04/11(日) 23:44:010901デフォルトの名無しさん
2010/04/11(日) 23:56:48へるみが作ってるけど
0902デフォルトの名無しさん
2010/04/12(月) 00:01:01gcj
0903デフォルトの名無しさん
2010/04/12(月) 00:03:260904デフォルトの名無しさん
2010/04/12(月) 00:09:53アルゴリズムを知らないプログラマはいない
なんか別の何かだろ
ここはWinしか知らないゴミばっかでないだろうが、出てくると話のレベルが地に落ちるな
RTOSでもないOSのシステムコールがCとか思ってるバカまでいるのか?CPUの特権モードとか知らんのか
0905デフォルトの名無しさん
2010/04/12(月) 00:10:39そいつは悪くないな
0906デフォルトの名無しさん
2010/04/12(月) 00:12:140907デフォルトの名無しさん
2010/04/12(月) 00:14:46勘違いなやつが来たぞー
0908デフォルトの名無しさん
2010/04/12(月) 00:31:15アホがきたwww
0909デフォルトの名無しさん
2010/04/12(月) 00:50:041.女には強気で押せ。抵抗する場合は大声で命令しろ。
2.命令を聞かない場合は身体で解らせろ。
3.同じことをくり返す場合、犬のように何回でも同じ様に叱れ。
こちらが上と言うことを身体で解らせろ。
4.理由は聞くな。どうせ大したことは言っていない。
5.身体で解らせた場合、根に持つ場合があるので、後で身辺には気をつけて行動しろ。
但し、徹底的に解らせる迄、手を抜いてはいけない。
6.相手を3才児と思い、信用したり頼りにはするな。重要な仕事は任せるな。
☆【 旧ソ連共産党による女の扱い方 】 ☆
1、頭痛の種になるだけだから関わるな
2、手段を選ばぬキチガイ揃いだから関わるな
3、関わるとこっちが痛い目に遭うから関わるな
4、関わってきたらウォッカを飲んで忘れること
787 名前: Classical名無しさん 投稿日: 10/03/28 18:38 ID:IbdJJ54w
たったレベルの煽りだなwwwww
767 名前:Classical名無しさん[] 投稿日:10/03/27(土) 23:39 ID:fHdM4fuo
☆【 旧日本陸軍の女に対する注意書き】☆
一、いつ、いかなる時でもお菓子を食事に際し好きなだけ使わすこと。
一、絶対に頭、体を叩いてはいけない。怨みを持って復讐する気質があり、脱走の原因となる。
一、清潔な食事運搬用バケツと雑巾バケツの区別をよく教えること。
一、危険な状況下では銃を投げ捨てて「ひぎぃ」と泣き出す習癖があるから、
日本兵二名で一名の女を入れて行動せよ。
0910デフォルトの名無しさん
2010/04/12(月) 00:50:13津波の心配はございません
0911デフォルトの名無しさん
2010/04/12(月) 21:13:370912デフォルトの名無しさん
2010/04/12(月) 21:16:01Part3作るならC/C++に代わる言語を探すのもありかと思うがな。
現状解として、どこかから>>1の言うもの近いものを持ってきてマニュアルやライブラリを
ローライズする。そして国内向けにパッケージングするのも抗議の意味ではプログラミング言語を
作るという行為だよ。
0913デフォルトの名無しさん
2010/04/12(月) 21:17:56結局、なんだったんだろうな。スレの80%は自作自演だとか?
だとしたら時間もったいないけどな。
>>912
抗議じゃねえ広義だ。
0914デフォルトの名無しさん
2010/04/12(月) 21:27:11C++に代わるものならいくらでもあり、移行が始まっている。
0915デフォルトの名無しさん
2010/04/12(月) 21:33:42このトンチンカンなスレで4行以上レスするのは馬鹿の証左であり
従ってこのスレは馬鹿発表会にしかならない
0916デフォルトの名無しさん
2010/04/12(月) 21:34:39ローライズパンツ履いて国内向けにパッケージングすると、何かの抗議になるのかと思ってお茶フイタw
0917デフォルトの名無しさん
2010/04/12(月) 21:59:370918デフォルトの名無しさん
2010/04/12(月) 22:32:010919デフォルトの名無しさん
2010/04/12(月) 22:48:39C++の参照型を進めた形で引数・返値にはサイズ情報型のポインタは使えなくするとサ
0920デフォルトの名無しさん
2010/04/12(月) 22:49:49それ以外に考えられるわけがない。
ポインタの問題点は?それを解決するためには制御されたメモリアクセスが必要なのでは?
0921デフォルトの名無しさん
2010/04/12(月) 22:51:16> それ以外に考えられるわけがない。
それはお前が無能だからだろ。無能でも考えるくらいはしろよ。
0922デフォルトの名無しさん
2010/04/12(月) 22:55:170923デフォルトの名無しさん
2010/04/12(月) 22:57:31スライスっていうのがあるよ。
0924デフォルトの名無しさん
2010/04/12(月) 22:59:48有能なあなた様のご意見を是非聞きたいですなあ
0925デフォルトの名無しさん
2010/04/12(月) 23:02:41名無し相手にそんな事を言う意味がないし、
みんな名無しなんだから自分に言ってるのと同じことだぜ。
0926デフォルトの名無しさん
2010/04/12(月) 23:12:050927デフォルトの名無しさん
2010/04/12(月) 23:14:270928デフォルトの名無しさん
2010/04/12(月) 23:18:460929デフォルトの名無しさん
2010/04/12(月) 23:28:58もっと簡単な言語でも超高速に実行できるコンパイラ考えるほうが良いだろ
社会的ニーズはそのほうがはるかに大きい
お前ら失業するけど
0930デフォルトの名無しさん
2010/04/12(月) 23:30:170931デフォルトの名無しさん
2010/04/12(月) 23:30:300932デフォルトの名無しさん
2010/04/12(月) 23:31:56愚かな拡張は重ねたが、遅くはなっていない。
0933デフォルトの名無しさん
2010/04/12(月) 23:33:02UNIXはCと共にあり、CはUNIXと共にある
0934デフォルトの名無しさん
2010/04/12(月) 23:35:53失業は、しないと思う。
プログラマ程汎用的な職業は他に無い。
俺ら以上にプロセスを組み立てる達人は他にいるか?
0935デフォルトの名無しさん
2010/04/12(月) 23:37:30Cの次があるとしても、Cを駆逐する事にはならないだろう。
0936デフォルトの名無しさん
2010/04/12(月) 23:37:35基本的に変わってないのに変わるワケない
ポインタはレジスタそのものだから効率いい
スライスは悪くないがオーバヘッドがあるからな
0937デフォルトの名無しさん
2010/04/12(月) 23:39:420938デフォルトの名無しさん
2010/04/12(月) 23:40:12スライスは従来のポインタ演算に変換出来そうに見えるけどな。
0939デフォルトの名無しさん
2010/04/12(月) 23:40:280940デフォルトの名無しさん
2010/04/12(月) 23:40:44いやかなりの部分駆逐したよ
昔はコンパイラなんて効率悪いものとされてリッチだった
今は逆にアセンブラの使用がかなり限定的になった
組込屋だが。
0941デフォルトの名無しさん
2010/04/12(月) 23:42:31デジマのDコンパイラとIntelのCコンパイラでそれぞれコンパイルして実行したらどっちがどれだけ速いの?
0942デフォルトの名無しさん
2010/04/12(月) 23:42:46オプティマイズでかなりいけそうだけど
範囲チェックとどこかで二重間接を無くせないでしょ
0943デフォルトの名無しさん
2010/04/12(月) 23:43:45ん?どういう理屈だそりゃ?
0944デフォルトの名無しさん
2010/04/12(月) 23:45:58コンパイラの吐いたコードみたらわかるっしょ
人間が最適化の手伝いしてるようなもん
ま、ヘタが作ると逆効果だが。。
0945デフォルトの名無しさん
2010/04/12(月) 23:48:580946デフォルトの名無しさん
2010/04/12(月) 23:51:15ごめん
さっぱり意味がわからん
0947デフォルトの名無しさん
2010/04/12(月) 23:53:120948デフォルトの名無しさん
2010/04/12(月) 23:57:310949デフォルトの名無しさん
2010/04/12(月) 23:58:37TLBとかのアドレスになるのか?
0950デフォルトの名無しさん
2010/04/12(月) 23:59:140951デフォルトの名無しさん
2010/04/13(火) 00:05:230952デフォルトの名無しさん
2010/04/13(火) 00:05:44Cも既に限定的になっていて、学習コストを支払っても限定的なリターンしか得られない
ことに不満が出てきている段階なんだろうな
0953デフォルトの名無しさん
2010/04/13(火) 00:06:20証明というより、信用の問題かな。
彼自身が追求されたら困る問題で他人に追求した場合、
彼自身も反撃で同じように追求されることがわかっているなら、
彼はそのリスクを恐れているだろうからその問題を抱えていないだろう、
という心理だね。
0954デフォルトの名無しさん
2010/04/13(火) 00:08:05gccで-sオプションつけてコンパイルしてみれば分かるよ。
0955デフォルトの名無しさん
2010/04/13(火) 00:08:470956デフォルトの名無しさん
2010/04/13(火) 00:22:55俺は色々やることがあるからあまり関われないがWiki借りてきた。
名前決まらないから適当にL言語にしておきます。
次スレやるなら追加しておいてくれ。CAPTCHA認証だから編集はご自由に。
ttp://ldev.wiki.fc2.com/
0957(u_・y) ◆e6.oHu1j.o
2010/04/13(火) 00:25:23Cでポインタ変数を使うと
機械語になったときにたいてい一番速度の速いレジスタに
優先的に入るみたいな事じゃねっ
通常の変数よりも速度面では僅かに優遇されているとかじゃねっ
0958デフォルトの名無しさん
2010/04/13(火) 00:26:19kuma-だっつってんだろ
0959デフォルトの名無しさん
2010/04/13(火) 00:29:41L言語は既に被ってるから却下
そしてメインで関わるつもりが無いならしゃしゃり出てくんな
Wiki管理人の座を掠め取りたいだけだろ?
0960デフォルトの名無しさん
2010/04/13(火) 00:30:37何と表現すれば良いか分からんが、マシン語にポインタはない
NULLってマシン語だと何が入ってるんだ?
とかと同じで、何が入ってようが、実装側の自由だし、
普通は、アドレスとインデックスでポインタを表しているが、
そんなもの、最適化次第で、決まった形なんかないし…
0961デフォルトの名無しさん
2010/04/13(火) 00:31:53言葉尻の話は中身が無くてつまらんから、やめれ
0962デフォルトの名無しさん
2010/04/13(火) 00:44:33言葉尻の話ではなく、ポインタの本質はアドレスじゃなくて、
インデックスにあるけど、アドレスとも切り離せない(インデックスがない場合もある)から
マシン後にポインタはないって話なんだが?
0963デフォルトの名無しさん
2010/04/13(火) 00:45:32void fill_zero(int *begin, int *end)
{
for (int *p=begin; p!=end; ++p) { *p=0; }
}
実行プロセッサが、アドレッシング用レジスタに対する比較命令を備えてないために
ループ終了判定チェックのために、汎用レジスタへの変換命令を必要としてしまい
実行速度が遅くなる環境がありがちなんだよね
こう書き直せば速くなるんだけれど、その書き換えがあほらしい
int N=end-begin;
for (int i=0; i<N; ++i) { *p++=0; }
STLはインライン展開されるから高速と言われるが、そうとも限らない
0964デフォルトの名無しさん
2010/04/13(火) 00:49:15ポインタとポインタ減算は正しいとは限らない罠
0965デフォルトの名無しさん
2010/04/13(火) 00:50:000966デフォルトの名無しさん
2010/04/13(火) 00:53:210967デフォルトの名無しさん
2010/04/13(火) 00:58:55確かに添字パタンの方が速い環境も多いね
0968デフォルトの名無しさん
2010/04/13(火) 01:02:40関わる気はないけど、成果物をどうこうする権利だけは欲しいタイプですね。
0969デフォルトの名無しさん
2010/04/13(火) 01:08:43Cは嫌いだがアセンブラには関わってもよいという奴が何人いるんだろうか
0970デフォルトの名無しさん
2010/04/13(火) 01:10:48全く、何かやろうとするところには必ずこういう奴が現れるんだよなぁ
自分は何もしないけど権利だけ欲しいっていう奴
ほんと、リアル社会でもこういうヤツが足引っ張るんだよなぁ
0971デフォルトの名無しさん
2010/04/13(火) 01:11:59【超高速】C/C++に代わる低級言語を開発したい 3
http://pc12.2ch.net/test/read.cgi/tech/1271086841/
0972デフォルトの名無しさん
2010/04/13(火) 01:12:56それ以上でも以下でもない
これがわかんないなら話にならん
86脳でもこれ位はわかんだろ
0973デフォルトの名無しさん
2010/04/13(火) 01:29:33何のためにポインタを加算した時のサイズが
型によって違うと思ってるの?
ポインタの本質がアドレスレジスタだと思ってるのなら、
全部void型のポインタでも使えば?
0974デフォルトの名無しさん
2010/04/13(火) 01:31:110975デフォルトの名無しさん
2010/04/13(火) 01:34:31それじゃアセンブラだろ?
抽象化と構造化だろ
ちゃんと歴史を勉強しな
0976デフォルトの名無しさん
2010/04/13(火) 01:41:50俺は、ポインタの本質はアドレスではなくて、
ポインタが指し示す先の型のサイズを持っていることだと思ってるんだが?
ただ>>972がアドレスが本質だと言ってるから、
そこが本質じゃない(サイズが無いと不便)と分かりやすいように
void型でも使えば?って言ってるだけだが?
0977デフォルトの名無しさん
2010/04/13(火) 01:42:380978デフォルトの名無しさん
2010/04/13(火) 01:44:47正直キモイ。
0979デフォルトの名無しさん
2010/04/13(火) 01:45:030980デフォルトの名無しさん
2010/04/13(火) 01:45:31アドレスレジスタだよ
アドレスそのものじゃない
コンパイラだよ。もっとlow levelで考えたらいい
0981デフォルトの名無しさん
2010/04/13(火) 01:47:27だから、アドレスレジスタのみを指して、それがポインタの本質だって言われても
型のサイズ(ポインタに1を加算した先のアドレス)が分からなければ、意味がないって言ってるのだが?
0982デフォルトの名無しさん
2010/04/13(火) 01:47:442ちゃんてほんと不毛だな。
0983デフォルトの名無しさん
2010/04/13(火) 01:50:48あ、それかもな
Cが生まれたマシンは68Kの祖先を想像したらいい
アドレスレジスタを抽象化したのがポインタのはじまりだ
インデックスみたいなオフセット付が効率いいかどうかは別
今のrisc的CPUは全部バラした風だからな
0984デフォルトの名無しさん
2010/04/13(火) 01:51:20ポインタは、次のアドレスが分からないければポインタの意味がないよ
0985デフォルトの名無しさん
2010/04/13(火) 01:52:59ポインタの「なんの」本質かによって視点が違うのは当たり前。
0986デフォルトの名無しさん
2010/04/13(火) 01:59:09釣りじゃなければTLBがなにか知ってるのか?
あんな低レベルでCPU依存なもん言語でやらんわい
0987デフォルトの名無しさん
2010/04/13(火) 02:02:41まだわからんの
次のアドレスなんかより、
アドレスが何のデータを指してるかが大事なのよ
今後は演算出来ないポインタが流行るよ
安全じゃないからな
0988デフォルトの名無しさん
2010/04/13(火) 02:07:29本気で言ってるなら、ある意味尊敬する。
0989デフォルトの名無しさん
2010/04/13(火) 02:10:04ぶっちゃけ本質とかいわんかったら
俺もなんもいわんかった
ヒマだったからつい。
>>988
ま、精進しなよ
0990デフォルトの名無しさん
2010/04/13(火) 02:25:48なんか特定のCPUなのか?86?
普通はレジスタ一個だよ
インデックス用レジスタもったいない
0991デフォルトの名無しさん
2010/04/13(火) 02:57:54アドレスとインデックスであって
アドレスレジスタとインデックスレジスタではない
普通は、どちらが一方がレジスタで、もう一方が定数やスタックなど
0992デフォルトの名無しさん
2010/04/13(火) 03:12:49CPU依存の話だな
ポインタはアドレスだよ
なんでインデックス付けたら速い場合があるかわかる?
0993デフォルトの名無しさん
2010/04/13(火) 03:30:270994デフォルトの名無しさん
2010/04/13(火) 03:34:210995デフォルトの名無しさん
2010/04/13(火) 04:27:330996デフォルトの名無しさん
2010/04/13(火) 04:40:490997デフォルトの名無しさん
2010/04/13(火) 04:54:340998デフォルトの名無しさん
2010/04/13(火) 04:56:210999デフォルトの名無しさん
2010/04/13(火) 05:36:40http://pc12.2ch.net/test/read.cgi/tech/1271086841/
1000デフォルトの名無しさん
2010/04/13(火) 05:44:2910011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。