【訃報】C言語およびUNIXの父、デニス・リッチーさんが死去 -享年70★4
1 :
出世ウホφ ★ :
2011/10/16(日) 03:26:23.88 ID:???0
2 :
出世ウホφ ★ :2011/10/16(日) 03:26:33.45 ID:???0
UNIXは安価で、かつさまざまなマシンを動作対象として想定してはいた。いったん動作させることができれば、 その上にさまざまなソフトウェアシステムを載せることができるようになっていた。 しかしOSがマシン語(アセンブリ言語)で記述されていたため、移植性も低く、またメモリの取り扱いにも苦労することとなった。 そこでリッチーとトンプソンは、C言語のシンタックスを発展させつつ機能を増やし、 ついにはOSを記述できるところまでに性能をあげていった。 そして1973年までにはついに、UNIXをCで書き換えてしまったのだ。カーネル部分は同年中に公開された。 今日、C言語は依然として2番目にポピュラーな言語として世界中で使われている(ないし、 これまでに記述されたコード量としては第2位につけている)。 そしてC++やJavaにさまざまな考え方が引き継がれていった。またUNIXについての二人の仕事は、 たとえばLinux TorvaldsのLinuxなどにも引き継がれていった。このUNIXの仕事だけでも、 リッチーは現代でもっとも重要なエンジニアのひとりとして位置づけられるべきだろう。 実際、UNIX関連の仕事により1983年にはケン・トンプソンとともに、チューリング賞を受賞している。 また1998年には当時の大統領であるビル・クリントンからアメリカ国家技術賞を受け取っている。(おわり)
フォースを信じろ!
4 :
名無しさん@12周年 :2011/10/16(日) 03:28:57.97 ID:K0KDRgEM0
噂のCCガールスレはここでつか?
5 :
名無しさん@12周年 :2011/10/16(日) 03:32:26.74 ID:zAMlizk20
ご愁傷さま void main 夏かしす
6 :
名無しさん@12周年 :2011/10/16(日) 03:37:14.26 ID:boCQoOkS0
C調言葉に御用心
今じゃpublic static void main だがな。
8 :
名無しさん@12周年 :2011/10/16(日) 03:47:47.53 ID:Z5YVijB8O
9 :
名無しさん@12周年 :2011/10/16(日) 03:47:56.90 ID:Ox1MZji20
スレ3までよんでもはまだポインターが理解出来ない。
>>9 3までそんなにポインタ議論してたのかよ。
ポインタはアドレス
これだけでいい。
11 :
名無しさん@12周年 :2011/10/16(日) 03:49:38.17 ID:I0J9Pmyj0
ぬるぽ の元祖はこれですか?
12 :
名無しさん@12周年 :2011/10/16(日) 03:49:46.37 ID:FctlPeAb0
Hellow World! を考えた人だったか? プログラム言語の入門書は、 いまだに、あれから進化なしか・・・何十年もたってるのにな
13 :
忍法帖【Lv=40,xxxPT】 【関電 60.6 %】 :2011/10/16(日) 03:50:40.24 ID:UZFN/uTf0
その割には、評価低すぎだしニュースも小さいんじゃないか?
>>11 ぬるぽの元ネタはJavaだったような…。
15 :
名無しさん@12周年 :2011/10/16(日) 03:51:02.66 ID:Xp7N7uV70
16 :
名無しさん@12周年 :2011/10/16(日) 03:51:35.26 ID:bNr/djFq0
ライオネルかガイしか知らない
17 :
名無しさん@12周年 :2011/10/16(日) 03:52:06.30 ID:gKTld3TH0
進化しないから年寄りでも仕事が出来る。 良い言語だ〜
18 :
名無しさん@12周年 :2011/10/16(日) 03:55:47.32 ID:gKTld3TH0
printf("ウイルスを実行します。\n"); printf("宜しければEnterキーを押して下さい"); getchar(); for(;;){ printf("ウイルス"); } }
19 :
名無しさん@12周年 :2011/10/16(日) 03:56:15.70 ID:I0J9Pmyj0
進化しないのではない。伝統を守っているのだ。
20 :
名無しさん@12周年 :2011/10/16(日) 03:56:20.01 ID:d2qJI0jH0
ぬるぽが産まれたのもこの人のおかげ
>>12 "hello, world" は進化のしようがないだろ
K&R本ちゃんと読んだのか?
"hello, world"プログラムを打ち込み、コンパイル、実行して
エラーなく実効され、"hello, world"と書きだされる。
それが、これからあなたがプログラム言語を学んで行く上での、
もっとも大きな難行を遂げたと言う事だと、K&Rは説いてるわけです。
ちょっとうるおぼえだけど、そんな感じ。
俺は、その書き出しは嫌いじゃないよ。
世の中への貢献度はiPhoneの比じゃなくすごかったな。合掌。
24 :
名無しさん@12周年 :2011/10/16(日) 04:03:35.77 ID:I0J9Pmyj0
何の警告もなく暴走するのは、うちの嫁以上。
リッチーが死んでも、AT&Tの株価が落ちる訳でもないしなw だが、UNIXが無ければ、OSX/iOSも、Linux/Androidも 存在しないわけだから。 いや、インターネットそのものが違ったものになっていたかもしれん。
いやほんとコンピュータ業界の人って短命だよなwww 笑い事じゃないけど強力な電磁波が放射線とにたような働きをしてるらしい
28 :
名無しさん@12周年 :2011/10/16(日) 04:15:52.72 ID:I0J9Pmyj0
リッチーは、ぬるぽを作って2ちゃんねる文化の発展に尽くしてくれた。惜しい人を亡くした。
29 :
名無しさん@12周年 :2011/10/16(日) 04:19:03.89 ID:Ox1MZji20
#include <stdio.h>ってなんのおまじないかわからないでとりあえず最初にかいた。
アルバート・ホフマンは102歳まで生きたのにな。 そういえば、ホフマンからの紹介でLSD研究家と面会したジョブスが 『水道の水にまぜて、みんなをハイにしてやれ』と言ったのには笑ったなww
いきなりCから入るとポインタがわからないのかな。初歩のマシン語はすこしかじったほうがいいかも。 メモリアドレスの概念はぜんぜん難しくないから。
32 :
名無しさん@12周年 :2011/10/16(日) 04:29:22.59 ID:NiDcQfAM0
>>27 70歳なら短命ってほどでもないでしょ
電磁波だってIT業界が目立って浴びてるもんでもないし
ポインタっていうのはアドレスの概念がわからないと理解出出来ない。
34 :
名無しさん@12周年 :2011/10/16(日) 04:30:14.59 ID:BNd235dt0
訃報(とほー)です。 <竹内由恵
35 :
名無しさん@12周年 :2011/10/16(日) 04:39:23.65 ID:cg9SrlJG0
>>32 今時分の感覚だとやっぱ早死にだな
できる人は短命なー
36 :
名無しさん@12周年 :2011/10/16(日) 04:40:16.25 ID:s4zSGTip0
ご冥福をお祈り申し上げます。 私がコンピュータの概念を本当に理解できたのはC言語を理解できた第一歩があるおかげです。
37 :
名無しさん@12周年 :2011/10/16(日) 04:42:54.48 ID:Ox1MZji20
いまでもCは現場で使われているものなの。 ウェブプログラミングには不向きってことはないのかな。
38 :
名無しさん@12周年 :2011/10/16(日) 04:45:28.80 ID:Go+XMYye0
リッチー&カーニハン
39 :
名無しさん@12周年 :2011/10/16(日) 04:45:49.45 ID:cg9SrlJG0
不向きというより 向いてる言語はWeb周りが楽なんだよ 最近のCは知らないけど7,8年前はそんな感じだった つーかJavaが超楽
>>37 リソースが限定される、組み込み系では特に使用率が多いかな。
C++みたいにデッカいランタイムも要らないし、暗黙的にメモリ
取りに行くような言語では、面倒な事も多いしね。
PCのアプリだとC++の方が多いのだろうか。
今の言語はWEB系が当たり前なのかな 昔オークションの仕事してる時にWEB系が流行り始めただったんで 「おお、これなら全部タダでシステム作れるな」と思ってPHPとMYSQLで システム組んでみた 一人で業務の傍らコツコツ半年かけて作ったけど感想としては 「確かに一人でもそこそこのシステム組めるようになったけど大変だな」と思った
James Gosling は、元は NeWS の開発者だったんだよね。 IBM,HP,DECがSun潰しの為にMITにファンドして開発を進めた X Window のおかげで NeWSの開発が潰れて、プロダクトを失った NeWSチームが Java を企画した、 その中心人物が Gosling 。 NeWS は、その名の通り NetworkベースのWindowSystemなんだけど、 言語仕様が PostScript の拡張って変態環境だったからね。 tNt ツールキット使っても、やはりアプリ開発出来るプログラマが少なく普及しなかった。 NeWS敗北の反省を踏まえて、開発された Java は、 元々networkベースのプログラミングに都合よく作られている。 必然、Webプログラミングにも向いてる。
そのJavaももうボラクルのものか…
44 :
名無しさん@12周年 :2011/10/16(日) 05:20:39.43 ID:f+jtgLxm0
PDP11で月面着陸ゲームやったのは昭和49年のころだったな。
45 :
名無しさん@12周年 :2011/10/16(日) 05:25:03.47 ID:f+jtgLxm0
ポインターか、おれも良く判らんかったが、結論として、 「気にするな」だったな。
46 :
名無しさん@12周年 :2011/10/16(日) 05:30:46.92 ID:qIJ27fgGO
誰も追悼してなくて★4なんて、Cはよっぽどツッコミがいのある言語なんだな。
PC言語を学ぶより、日本語を極めたほうがよっぽど良い人生を送れるよ。 特に霞ヶ関文学をマスターすべきw
48 :
名無しさん@12周年 :2011/10/16(日) 05:40:50.75 ID:cg9SrlJG0
ポインタ周りの実装悔やんでたのこの人だっけ? まぁ気にすんなよ、と
>>45 Cの基本的な考え方として、データの種類に合わせて必要な変数の型を指定するってのがあるわけよ。
整数ならintとか浮動小数点ならfloatとか。
(言語によっては変数に型の指定がないのも有ったりするんだけど。)
ポインタもそれと同じ、「メモリ上にある何かのアドレスを入れる」為に使う変数っていうだけの事。
ややこしいのはどんな種類のデータを入れるかにを意識してやらないといけないって事だけ。
50 :
名無しさん@12周年 :2011/10/16(日) 05:47:55.83 ID:yen4ayx50
>>1 >もっとも重要なエンジニアのひとり
最近よく目にする鼻につく表現が、この「最も〜の一人」「最も〜の一つ」という日本語。
「最も」というなら最上級で頂点、よって複数はいないんだから「一人」「一つ」は不要。
この記事の表現も「もっとも重要なエンジニア」とすべき。
調査不足を後で突っ込まれた時の逃げ道に「一人」「一つ」をつけてるんだろうが、
なら初めから「最も」なんてつけるな。この記事も単に「重要なエンジニア」にしとけ。
>>31 いきなりCをやる前に、アセンブリ言語とパスカルを勉強しろ、
って、何かの本で読んだ。
52 :
名無しさん@12周年 :2011/10/16(日) 06:05:31.12 ID:cg9SrlJG0
追悼の意味も込めてプログラミング作法読んで寝ようと思ったら リッチー関わってないじゃないですか アレェェェ ずっと勘違いしてた
>>1 あなたの建てた前スレもだけど、
スレッドのタイトルは「UNIX」じゃなくて、
「UNIX」にしていただけると嬉しい。
ここまでAhoなし。
55 :
名無しさん@12周年 :2011/10/16(日) 06:18:10.50 ID:pTMqiKI40
>>51 ポインタが原因でCを挫折しかけたが、知り合いからアセンブラを
やるとよくわかると言われてアセンブラを勉強したら、ポインタ等
Cの事がよくわかるようになった。
Cは初心者が学んだりするけれど、絶対に初心者向きの言語じゃないと思う・・・
日本じゃ「UNIX」ってタッパーの商標なんだったかな。
システム開発において最も頻繁に使用するデータ型である 文字列を、char型の配列として実装したことがこいつの最大最悪の罪。 この仕様のおかげで本来異なる概念であるポインタと配列が混同され 多くのC挫折者と、バグによる悲劇を生み出した。 称えられるどころか世界中のソフト開発者からタコ殴りにされても おかしくない人。
58 :
名無しさん@12周年 :2011/10/16(日) 06:26:45.66 ID:f+jtgLxm0
>>57 ポインターと配列を同じものとして扱ってなにがまずいか、いまいちわからん
のだが。暇だったら、もう少し説明してくれないか。
配列の操作にポインタが使えるというだけで、そもそも配列とポインタは同じじゃない。 両者の区別がつかないならプログラマなんか辞めて営業か部長でもやってろ。
>>57 そこがわからないやつにはプログラム開発部署から外れてもらったが
べつに悲劇ではない。適材適所。
61 :
名無しさん@12周年 :2011/10/16(日) 06:31:08.32 ID:f+jtgLxm0
>>61 こんな時間にこんなスレにレスするのは部長しかいない。
おれもだ。
スティーブ女ブスの訃報はつたえるが、デニス・リッチーの訃報はつたえないマスコミ・・・・ これ一つとっても、日本のマスコミは役所や企業から貰ったネタを垂れ流してるだけの、烏合の衆であることがわかる。 なにが大事なニュースで、なにが取るに足らない情報なのか、区別できないようだ・・
つまりジョブスよりも、リッチーのほうが、ナイスな人物というわけか。
だからその二人を比較すること自体がナンセンスだとあれほど…
66 :
名無しさん@12周年 :2011/10/16(日) 06:54:27.68 ID:f+jtgLxm0
>>60 しかし、説明能力の無いやつだな。うちにはいらんわ。
別に世界中のシステム開発者に使って貰おうと考えて作ったわけじゃないし 単に研究所の研究者が自分が使う高級言語っぽいアセンブラが欲しかっただけだから
68 :
名無しさん@12周年 :2011/10/16(日) 07:08:32.91 ID:b+D+T/Nl0
菓子パンみたいな名前だな
>>14 null pointer assignment のエラーメッセージがもとだろう。
ポインタを初期化せずにポインタの指す先に代入するエラー。
当時はK&Rを読んでた人間とパソコンでエッチなゲームをやってるやつは同じ扱いだった
>>66 はすげえな。論破されるにもそれなりの頭が必要というのがよく分かる。
>>9 「○○型を示すポインタ」という言い回しでわかると思うけど
*をつけないとアドレスを代入する変数
*をつけたらそのアドレスにあるデータのことになる
*をつけたときにどの型のデータと思えばいいか?をあらかじめ宣言しとく
アドレスを格納するだけのポインタにもいちち型があるのは p++ みたいにインクリメントしたら、p+=<size of 型> みたいに機能させるためなのかな??
>>74 ポインタの場合は「増やす」じゃなくて「進める」と考えればわかりやすかろう。
>>74 実体の型がわからないと、実体取り出したときにどう扱っていいかわかんないだろ。
実体はintかもしれないし、floatかもしれないし、構造体かも知れないし。
>>50 one of the most imortant うんたらかんたら
one of the world's most important うんたらかんたら
偉大さを強調する英文なんかでは昔からごくありふれた修辞法だと思う
日本語表現的に外来なのかどうかは知らんけど
78 :
名無しさん@12周年 :2011/10/16(日) 08:53:32.76 ID:b+D+T/Nl0
>>50 英文翻訳したからそんな表現になっただけだろ。
英文だとしょっちゅうでてくる表現。
正確に訳そうとして直訳風になると日本語的にはくどくなる。
79 :
名無しさん@12周年 :2011/10/16(日) 08:53:51.91 ID:f+jtgLxm0
俺がCを始めたのは、昭和55年頃だったかな。この頃にはCの教科書はK&Rしか 無かった。隔世の感があるな。
>>75 カーソルみたいなイメージだよね。
あと、ポインタは天啓の様に急に解る日が来る
>>74 *がついたらそのアドレスから始まるデータとして扱うってだけなので、
p++ってやるときは型関係ないよ
84 :
名無しさん@12周年 :2011/10/16(日) 09:04:47.19 ID:b+D+T/Nl0
>>81 俺も「え?」って思ってググったけど間に合わなかったw
cがブームになったときにたくさん入門書が出たけど無茶苦茶なのばっかりだったので やっぱり最初からK&R買えという話になってずいぶん長いこと使われた
86 :
名無しさん@12周年 :2011/10/16(日) 09:13:38.55 ID:EQikZUxh0
unix 運用でお世話になりました。アーメン
87 :
名無しさん@12周年 :2011/10/16(日) 09:14:59.60 ID:k15bNYte0
Watcom C/C++ Watcom Fortran
88 :
名無しさん@12周年 :2011/10/16(日) 09:20:44.01 ID:pMV/PJVi0
コンピュータと語る言葉。 色々あったけど、これほど現代に貢献したものは無かったと思う。 それが、後発の多数の新言語の基本になっているし。 ご冥福を。
>>2 >今日、C言語は依然として2番目にポピュラーな言語として世界中で使われている(ないし、
1位は何?
90 :
名無しさん@12周年 :2011/10/16(日) 09:25:44.64 ID:0qLtWUxkO
もっと大きく取り上げられてもいいのに、ジョブズの直後とか間が悪いな。
91 :
名無しさん@12周年 :2011/10/16(日) 09:26:34.75 ID:SkYggORf0
92 :
名無しさん@12周年 :2011/10/16(日) 09:31:25.75 ID:k15bNYte0
Objective-C Eiffel c# C++ Smalltalk → ぬるぽ → C# D
93 :
名無しさん@12周年 :2011/10/16(日) 09:33:22.24 ID:gr+boGu20
ついに★4とかwwwwwwwwwwwwwwwwwww いまえらどんだけおっさんやねん。
>>89 COBOLだ文句あるか?
いやおれもある。
部屋を埋め尽くす真空管コンピュータが生まれてから現在までの歴史の 半分以上がUNIXが現役の時代だったのだからやっぱり偉大なんだろ
96 :
名無しさん@12周年 :2011/10/16(日) 09:41:57.36 ID:k15bNYte0
偉大な思潮を持ったしぃー
>>58 p++ってやってもオフセットしないそうだし、
ポインターと配列は一緒。確定。
>>97 もう答えが出た後で、おもしろいと思って書いてるの?
>>58 ポインタは変数だから中身が変わる可能性がある。
配列は定義したら動かん。
ポインタは定義するだけじゃどこを指してるか分からんぞ、何かのアドレスを入れてはじめて使える。
配列の中身操作するのは配列名+オフセットでもポインタを使っても構わないというだけ。
配列の長さってメモリのどこにしまってあんの?
>>102 なら配列をsizeofしたときの結果はどこから来るの?
量子の海?
104 :
名無しさん@12周年 :2011/10/16(日) 10:03:03.49 ID:SkYggORf0
実行しているプログラムがメモリーにしまわれてないはずがないと思うのだが
108 :
名無しさん@12周年 :2011/10/16(日) 10:16:07.82 ID:k15bNYte0
Brains*ck SDK
109 :
名無しさん@12周年 :2011/10/16(日) 10:17:10.18 ID:62xAPsZG0
____ // \\ /( ●) (●)\ ねえ、ゆうにいちゃんちょっと聞きたいんだけど /::::::⌒(__人__)⌒::::: \ RM1とRM2の2つのRMを使った分散トランザクションなんだけど | |r┬-| | 2PCのコミットフェーズでRM1のxa_commit要求はOKで \ `ー'´ / 次のRM2へのxa_commitが失敗、続いてxa_rollbackの処理が /` ‐- __ - ‐‐ ´ \ 返ってこなかったら、TMとしてはどう対処すべきなんだろう? / .l _,,ヽ ___ 〉、 | l / ,' 3 `ヽーっ ヒト- _ l ⊃ ⌒_つ おじさん達に聞いてもさっぱりわからないって言われてさ . !__  ̄, ̄ `'ー-┬‐'''''" 「ゆうにいちゃんならパソコンの大先生だから聞いてこい」って。 L  ̄7┘l-─┬┘ ごめんね、こんな初歩的なこと聞いて。 ノ  ̄/ .! ̄ ヽ └‐ '´ ` -┘
リッチカニチャーハンを食おうと思ったが、しかしリッチなカニとは? ズワイガニかタラバガニかそれとも毛ガニか?エロい人教えてくださいませ。
>>107 sizeofはコンパイル時に評価される演算子だよ。
配列の大きさはコンパイル時に決まってるだろ。
>>103 静的な配列ならコンパイル時に決まってる。
C99での、可変長配列の場合は、動的に計算される。
ポインタは無くてもよかった気がするんだけどねぇ・・・
アドレスを明示的に扱う以上、ポインタは必須なんだよ。
117 :
名無しさん@12周年 :2011/10/16(日) 10:27:51.46 ID:pMV/PJVi0
>>51 今でもパスカルはアルゴリズムを説明する表現方法として生きているけど、
ラテン語化していると思う。
学術的だけど、実践的でない。
遠回りするのが好きな人向き。
「本物のプログラマはPascalを使わない」なんてのも有りましたな。
cは実践的というより変態的
120 :
名無しさん@12周年 :2011/10/16(日) 10:31:10.70 ID:wkAvY17a0
ポインタはバグの温床。スマートポインタもしくはガベジコレクションくらい デフォルトで用意しとけと。
121 :
名無しさん@12周年 :2011/10/16(日) 10:32:58.97 ID:A0lIQ6S30
>>55 ポインタの何が難しいのか全く分からない俺。
ポインタの中身が何かが分からなくてメンドイというコードを相手にしなきゃならん時は嫌になったもんだが。
ポインタがすんなり理解できるにはちゃんと教えられる教師が必須だと思うよ。
UNIXはCでつくったってこと? Cはどうやってつくったの?
124 :
名無しさん@12周年 :2011/10/16(日) 10:35:03.93 ID:pMV/PJVi0
>>120 ポインタは有用。
あまり遠くまで引き伸ばさないように工夫すれば
(「遠くまで」ってちょっと抽象的でゴメン)
相当バグは防げる。
>>100 配列はポインタと一緒でアドレスを保持してるだけだから
代入したら変わるよ
126 :
名無しさん@12周年 :2011/10/16(日) 10:35:50.31 ID:98EDqatg0
小学校か中学校でZ80とか68000とかのアセンブラ授業をちょっと入れるだけでびっくりするぐらいITに強い国になりそうな気もするんだけど 国がやるわけ無いか興味ないやつには地獄のような授業だろうしな
127 :
名無しさん@12周年 :2011/10/16(日) 10:36:36.05 ID:wkAvY17a0
ソフトがハングアップする原因の99.9999%はポインタの開放忘れ
128 :
名無しさん@12周年 :2011/10/16(日) 10:36:50.71 ID:k3pms+gvP
**** ポインタのポインタのポインタのポインタ
>>111 コンパイルとビルドとリンクの違いもわからんので、
コンパイル時に決まってるから、それがどうしたとしか。
素朴な疑問のはずが、なんでこんな面倒くさいんだよ!!
やっぱネットにある情報だけで独学は無理がある?
131 :
名無しさん@12周年 :2011/10/16(日) 10:39:10.23 ID:A0lIQ6S30
>>123 UNIXを記述するのに、アセンブラで全部ベタ打ちするのメンドクセ!、で、作ったのがC言語。
だからアセンブラで記述できることは基本的にCで記述できる。
Cが中級言語と呼ばれる理由。
132 :
名無しさん@12周年 :2011/10/16(日) 10:40:08.84 ID:A0lIQ6S30
>>129 独学するならちゃんと参考書を読む必要がある
134 :
名無しさん@12周年 :2011/10/16(日) 10:41:02.09 ID:A0lIQ6S30
コピペ #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { time_t t; t = time(0); srandom(t); int a[100]; for (int i = 0; i < 100; ++i) a[i] = i; for (int i = 0; i < 100; ++i) { int k = i + random() % (100 - i); printf("%d\n", 1 + a[k]); a[k] = a[i]; } return 0; }
ポインタガー、バグガー、オンショーガーとかほざいてるのはレベルが低い職場の自慢大会でもしたいのか
無限ループでハングアップさせる奴はいるにはいるがただのアホ。
>>120 さまざまな言語でGCを使えるのも
Cのポインタのおかげだろう。
どんなにアホに思えることでも一回は自分でやらかす
140 :
名無しさん@12周年 :2011/10/16(日) 10:43:53.04 ID:A0lIQ6S30
バグの温床はポインタより再帰と多重ループと論理的思考ができないプログラマだわな。
int (*test(char* string))(int*) こういうのってどう解釈したらいいの?
142 :
名無しさん@12周年 :2011/10/16(日) 10:44:35.33 ID:98EDqatg0
>>129 int a;
a=10;
って書いたときの10は決まってる値だからコンパイルするときには既にわかってるってのと同じ事
余計わからんかw
まったく理解できない
俺もポインタがよくわからなかったが、アドレスを入れる箱のことだと説明されて、やっと理解した。 たとえば、「ある変数に値を代入」するという処理を、「13号室の山田さんに荷物を届けること」だと考える。 変数が山田さん、13号室がアドレス、13号室と書いてある伝票がポインタ。 山田さんが誰だか知っていれば、山田さんに荷物を届けるだけ。これが普通の代入。 山田さんを知らない人にお願いするなら、とにかくこの伝票の部屋番に荷物を届けろと伝えて実行させる。これがポインタ変数代入。
#include <stdio.h> int main() { char *po=NULL; sprintf(po,"%s","ご冥福をお祈りします"); return 0; }
147 :
名無しさん@12周年 :2011/10/16(日) 10:48:28.88 ID:wkAvY17a0
148 :
名無しさん@12周年 :2011/10/16(日) 10:48:52.83 ID:pMEzFqMh0
デニス本の難解さは訳が悪い説と原著が悪い説とあったが どっちだったんだろうなw
149 :
名無しさん@12周年 :2011/10/16(日) 10:49:12.00 ID:A0lIQ6S30
150 :
名無しさん@12周年 :2011/10/16(日) 10:49:47.70 ID:+GfIXbjU0
ポインタのポインタとかになってくるとアセンブラでレジスタ使う方がわかりやすい気がする
>145 int (*test)(int*) こう言うのなら関数ポインタとして理解できるんだけど (char* string)がわからん
チンポインタ
バグの原因は寝不足
>>129 独学派の人は多いと思うんだけどなあ。
俺も独学。
なので明らかに可能。
155 :
名無しさん@12周年 :2011/10/16(日) 10:51:12.55 ID:wkAvY17a0
>>149 俺の情報を何も持ってないくせに論理的じゃねぇなお前w
>>151 関数へのアドレスを返す関数が有るのよ。
157 :
名無しさん@12周年 :2011/10/16(日) 10:52:06.16 ID:A0lIQ6S30
>>155 お前のこれまでのレスを見れば十分判断可能。
158 :
名無しさん@12周年 :2011/10/16(日) 10:54:31.69 ID:wkAvY17a0
>>157 短絡的だなw脳の論理回路が短絡しているって意味な。つまりアホ
まあおまえがアホでも俺にとっては別にどうでもいいんだけどな。
>>154 いや俺の場合、「参考書に金をかけずに」という縛りがあるので‥w
金のかからない趣味を選んだはずなのに!!
160 :
名無しさん@12周年 :2011/10/16(日) 10:55:27.43 ID:k15bNYte0
排他的lonely輪
>>159 俺もだよ。
C言語の参考書2冊しか買っていない。
もし一円たりとも使いたくないのであれば知識的にはネットだけでも十分。
でも辞書的な用途でK&Rはあったほうがいいかもなあ。
>>154 ちなみに俺はそこそこネットで取り上げられている程度オンラインソフトを何本か作っている。
オンラインソフト作家は独学の人多いんじゃないかなあ。なんとなくだが。
>>159 この板よりもっと質問しやすい板がある。
164 :
名無しさん@12周年 :2011/10/16(日) 11:04:16.78 ID:o/w+pRVt0
for (i=1;i<=1001;i++) { if (strcmp(res[i],"ぬるぽ")==0) { printf("ガッ"); } }
165 :
名無しさん@12周年 :2011/10/16(日) 11:04:19.50 ID:62xAPsZG0
> 配列の大きさはコンパイル時に決まってるだろ。 そうでもないよ。動的配列に使用した場合は、実行時に計算される
>>81 void *p;
でp++;やってみろや。
>>159 Cの参考書なんてブックオフにいけば105円で買える
文法書と標準ライブラリのリファレンスは買って手元に置いておくといいよ
だいたい理解したらアルゴリズム辞典かなにか買ってきて遊ぶ
>>163 そういう専門的な板でアホな質問すると、袋叩きにされそうで怖いんだけど‥。
でも勇気を出して行ってみるよ。
169 :
名無しさん@12周年 :2011/10/16(日) 11:09:34.14 ID:wkAvY17a0
char a[SIZE]のSIZEを変数にできないのでやっぱ定数かな? 仕方ないから#define SIZE 10とかやったりする
>156 おおぉ、ありがとう。 ずっと疑問に思ってたのがやっと解けたよw 関数のポインタを返す関数なのね 戻り値の型が int (*test)(int*) で、 関数名がtest 引数がchar* string か
>>168 アホをスルーするスキルが必要になるが、まあ頑張ってくれ
「そんなのネットで調べろ」とか言い出す奴が必ず出るからな
おまえらが今いる所はネットじゃないのかとw
再帰でスタックもりもり喰ってやんよ
173 :
名無しさん@12周年 :2011/10/16(日) 11:16:36.30 ID:62xAPsZG0
最近のCの処理系は、配列の宣言に変数を使えるよ
174 :
名無しさん@12周年 :2011/10/16(日) 11:18:40.07 ID:wkAvY17a0
C99だとauto変数の配列ってサイズ指定に変数値使えなかったっけ?
176 :
名無しさん@12周年 :2011/10/16(日) 11:27:08.88 ID:QOjnrLgI0
びっくりしたぁ〜。最近のCって、変数を関数途中で宣言できるのね?
kernel src には main がないんだよな なんでや、あってもいいやろ
まとめサイト
179 :
名無しさん@12周年 :2011/10/16(日) 11:34:43.04 ID:wkAvY17a0
gcc だとchar a[SIZE]のSIZEに変数指定できるな。 Windows系のコンパイラはできなかった記憶が。
コボラードットコム
181 :
名無しさん@12周年 :2011/10/16(日) 11:37:14.36 ID:Zm3mcVYoO
明日の基本情報処理試験は追悼の意を込めてCで選択するわ。 リッチーさん見てて下さい。
また春にガンバレよ
ポインタってなに?
184 :
名無しさん@12周年 :2011/10/16(日) 11:42:14.86 ID:ZGB9mX2i0
>>127 while(1) { malloc(1); }
185 :
名無しさん@12周年 :2011/10/16(日) 11:44:16.55 ID:x7Coghwq0
死んだほうがいい奴は他に沢山いるというのに
186 :
名無しさん@12周年 :2011/10/16(日) 11:48:38.08 ID:rBtZKjkk0
ポインタってのは、ポイントのer系。 なので、**はポインタのポインタって言い方は間違い。 正しくは、ポインテリアになる。 ***はポインテリアリアになる。
Cで開発してんのに、ヒープ理解してないT興業のM下のおっさん。 データ構造とか、関心の分離とか、モジュール凝集度結合度とか それぐらいは勉強しろ。 データベースぐらい使えるようになれ。
188 :
名無しさん@12周年 :2011/10/16(日) 11:50:48.73 ID:ZGB9mX2i0
>>176 ブロックの先頭ならC言語でもかなり前から宣言できなかったっけ?
189 :
名無しさん@12周年 :2011/10/16(日) 11:54:29.40 ID:ZGB9mX2i0
>>186 おまえ、そんなこと書いたらcharの読み方論争が始まるだろうが!
190 :
名無しさん@12周年 :2011/10/16(日) 11:57:31.27 ID:f4wd7Fug0
>>183 ポインタを使った例
while (韓国人_ブローカー) {
韓国人_売春婦 += *韓国人_留学生;
}
きゃら
ちゃぁ
>>186 ポインタのポインタは日本語として
正しい
和製英語にケチつけるのと一緒
195 :
名無しさん@12周年 :2011/10/16(日) 12:04:51.60 ID:wkAvY17a0
今試したら char a[10][10] char (*b)[10]=a; OK Unix /NG Windows char *b[10]=a; NG Unix /OK Windows だと思われる
196 :
名無しさん@12周年 :2011/10/16(日) 12:05:26.19 ID:LRfpGiDA0
Cは殆ど使ってないな。 ネットはPHPで間に合うし。 遅さがネックになってきたら考えるが。
きゃーだろ
198 :
名無しさん@12周年 :2011/10/16(日) 12:06:22.98 ID:78jqP5MS0
>>187 屁理屈はどうでもいいから、さっさと俺が言った通りのもん作ってこいドカタ
199 :
名無しさん@12周年 :2011/10/16(日) 12:07:11.57 ID:rBtZKjkk0
>>193 でたらめ書いたのにマジレスさせちゃってごめんね。
いやいや、ドカタに命令する人に言ったとおりのモノを作っていっても怒り出すから 言ったとおりのものじゃなくて考えたとおりのモノじゃないと
>>126 アセンブラもいいけど、 R と、
Perl や、 Ruby などのスクリプト系の言語を、
全ての授業と試験で使うように義務付けたほうが。
土木系の技能労働者のほうがずっとプロフェッショナルだよ ITドカタっていう言い方は彼らに対して失礼だよ
>>200 ああ、凄くよく分かるソレ。
「思った通りのものじゃないかもしれないけど
命令した通りのものです」
って言いたいけど言えない。
>>201 java やろ アンドロイドのアプリ作らせればいいじゃん
205 :
名無しさん@12周年 :2011/10/16(日) 12:14:47.27 ID:Zm3mcVYoO
中国語版K&R本を見てみたい。
8ビットマシンのアセンブラで Load Effective Address命令で レジスタにデータの先頭アドレスを入れ レジスタ間接アドレッシングでデータを参照するというのを 何の疑問もなく使っていた自分なのに Cのポインタは20年かけても理解できんのだよな。 おそらくは、データ型・変数・関数という高級言語的機能に メモリアドレッシングという低級言語の機能をそのまま同居させ 両者が時に関連し合うという複雑さが、Cを難解にさせていると思う。 アセンブラより数段難しい。
207 :
名無しさん@12周年 :2011/10/16(日) 12:18:46.00 ID:62xAPsZG0
Cのポインタが、理解しづらいのは、 *と&の使い方が、紛らわしいだけ
char a[10][10]; char (*b)[10]=a; OK Unix /OK Windows char *b[10]=a; NG Unix /NG Windows だったスマンwwwww
>>200 こういうことを言うおっさんがすごく多いから、きっちり動作仕様書を起こして、この通りに動くが本当にいいのかと念を押させる
まあこれだけやっても、「いや、そういう意味じゃない」とか言い出すんだけどな
おまえ、仕様書見ただろうがと、小一時間もめることになる
210 :
名無しさん@12周年 :2011/10/16(日) 12:22:50.71 ID:MjrAushp0
>>129 ネット黎明期でも独学出来たぞ。
今だったら無料の開発環境やら懇切丁寧な
解説サイトまであるんだから余裕だろ。
これだけ恵まれた環境で独学無理ってなら
誰が教えてもプログラミングできるようにならんぞ。
211 :
名無しさん@12周年 :2011/10/16(日) 12:25:05.98 ID:MjrAushp0
ポインタのポインタが理解できないという話を良く聞くが、 間違いなくポインタを理解できていないだけだ。
213 :
名無しさん@12周年 :2011/10/16(日) 12:28:19.06 ID:98EDqatg0
>>206 char AH;
char *HL;
AH = *(HL + n)
ってなってるだけじゃ?
214 :
名無しさん@12周年 :2011/10/16(日) 12:29:07.99 ID:XKzLbpf/O
>>206 概念だけはなんとなく
“メモリアドレス指定して命令を格納呼び出しする機能”
なのかにゃ、と思ふが
どこのメモリアドレスが今どんなんなってるか判らんのに
そんなん使えんのか?とも思った
215 :
名無しさん@12周年 :2011/10/16(日) 12:30:18.47 ID:k15bNYte0
イテレータ「お前を隅から隅まで舐め回してやる」 配列「いやん・・・」
216 :
名無しさん@12周年 :2011/10/16(日) 12:35:48.68 ID:wkAvY17a0
char a[10][10]; a[x][y]==*(a+x*10+y)なのはWindowsだけだと思われる。gccでは違った。
>>215 そこは
(ここでイテレータが配列の帯をつかんで、コマを廻すようにサーッと引く。
配列の体がくるくるとまわり、)
配列「あーれー!」
と云いつつ、奥の床間
218 :
名無しさん@12周年 :2011/10/16(日) 12:46:45.77 ID:NbeU+aEQ0
リッチーとくればジョンロード
219 :
名無しさん@12周年 :2011/10/16(日) 12:46:51.17 ID:wkAvY17a0
今色々やってみた俺の結論 配列のサイズが定数=Windows 配列のサイズが変数=Unix
220 :
名無しさん@12周年 :2011/10/16(日) 12:47:47.63 ID:3SMr8PRK0
ポインタより構造化のほうがむずい
>>209 実装をお願いする側からすると、その仕様書を起こしている最中に
仕様で何も疑問に感じなかったのかな?と思ってちょっと聞いてみると
「いや変だと思ってました」とか子供のような返答がきてゲンナリすることがよくある。
222 :
名無しさん@12周年 :2011/10/16(日) 12:50:51.24 ID:lmqTg/Gm0
>>118 大好きな論文?本?です.
本物のプログラマーはPASCALどころかCすら使いません.
FORTRANとマシン語で生きています.
ーーー今の俺といいたいけど,そのレベルには達していない.ーーー
223 :
名無しさん@12周年 :2011/10/16(日) 12:51:15.57 ID:wkAvY17a0
224 :
名無しさん@12周年 :2011/10/16(日) 12:51:39.98 ID:pu9jh+Zx0
>>126 ,201,204
Java といえば、Processing も良いよね。
配列要素のアライメントは処理系やコンパイラの実装に依存
226 :
名無しさん@12周年 :2011/10/16(日) 12:53:49.15 ID:lmqTg/Gm0
>>224 Javaはpointerがないので面白くない.嫌い.
>>201 スクリプト系ならpythonだろう
perlとかRなんて需要自体が限られてくる
228 :
名無しさん@12周年 :2011/10/16(日) 12:56:06.17 ID:jJ/McPJV0
>>201 C, C++/Java, SQL及びRDBMS周り, TCP/IP, R, Pearl/Ruby/Python
この辺は基礎教養として必修にしてほしい。
大学の教養でやったのは、時代遅れの昔のFortranで吹いたわ。
Excel VBA 教えてくれたほうが、まだ役に立つわ。
229 :
名無しさん@12周年 :2011/10/16(日) 12:56:54.62 ID:k15bNYte0
変数「そんな大きいの入れたら・・・私オーバーフローしちゃうよぉぉ…」
230 :
名無しさん@12周年 :2011/10/16(日) 12:57:39.86 ID:tUXgev3E0
ターミネーターが殺しに来るような人?
>>207 変数と変数を示す「アドレス」との関係が理解できているかどうか
実はここがアセンブラと良く似ている
逆にこれを理解するとアセンブラも理解し易くなる
当然のことながら、ハードウェア上の処理というものが
具体的にイメージできるようになる
アセンブラやCの教育をやらないほど、使い捨てIT土方の
数は増えていく
ハードの知識がない人間がシステムを組めるというのは
幻想に過ぎない
232 :
名無しさん@12周年 :2011/10/16(日) 12:58:19.07 ID:wkAvY17a0
C++で改善して欲しい仕様は幾つかあるな delete (void*)a;が違反であるのが困る 仕方ないのでテンプレートを使うハメになる。 しかもデストラクタをバーチャルインラインデストラクタにしなければいけない。
>>229 小さけりゃ小さい出アンダーフローとか言い出すんだろこのビッチはよ
>>211 ポインタのポインタというのは、実はポインタ変数のポインタに過ぎないからね
ポインタというのはポインタ変数の中の値で、ポインタのポインタは
厳密には「ポインタ変数のポインタ」だ
値にはポインタが存在しないが、変数にはポインタが存在する
文系的な頭だと言葉に惑わされていつまでも理解できない
>>234 ポインタのポインタとか関数ポインタとか
理屈はわかっても、なにそれ、なにに使うので思考が停止する人なのでは
>>227 ,228
あくまでも、一般の小中学生も含めた全国民に、
読み書き算盤の一環として教えて、日常生活の中で使用することが前提なので、
R とスクリプト系の言語ということに。
もちろんスクリプト言語に、Python を加えてもいいし、
さらに余裕のある子供には、他のコンピュータ言語や、
SQL などのリレーショナル・データベースなども教えるということて。
>>234 ああ、ポインタという言葉の曖昧さってのはあるかもね。
Cの解説本によっては、ポインタ=アドレスである、と
断言しているものがあって混乱する。
アドレスはメモリの番地を現す数値であり、ポインタはその
数値を値として持つ変数のことじゃないのか?と突っ込みたくなる。
だからポインタのポインタとなるともうお手上げ。
データのアドレス、そのアドレスを持つ変数、その変数のアドレス、
そのアドレスを持つ変数の4つの関係があるからこれらを同時に
解釈するのは文系脳には極めて厳しい。
typedef「どれ、おじさんがいい名前をつけてやろう」
239 :
名無しさん@12周年 :2011/10/16(日) 13:15:16.58 ID:KF3UGYne0
ジョブズよりもリッチーさんの死の方が悲しい 貢献度で言えば、リッチーさんの方が遥かに上だろ
なんでR?
>>236 あまり意味ないと思うよ
pythonだけでもいいし、bashでもいい
スクリプト言語は誰でも簡単にプログラムが組めるという
メリットがある反面、それ自体には教育的な要素があまりない
一言で言えば「実用性に特化した言語」だろう
Rなんて統計学の基礎知識が無ければ、糞役に立たない言語だし
きちんと教育をしたければ、出来ればアセンブラ、妥協してC,Lispだと思う
スクリプトを教育に推奨するという人は、あまりプログラミングを理解していないのでは?
>>228 の方が遥かに効果が高いと思う
>>236 Rを使って出来ることで意味の有ることは
大学の数学レベルだし
電卓用途のRならPythonですぐに実現できる
243 :
名無しさん@12周年 :2011/10/16(日) 13:18:03.44 ID:KF3UGYne0
>>235 >ポインタのポインタとか関数ポインタとか
結局はポインタのことなんだけどね
>>237 ただポインタ自体もアセンブラより抽象化していて、たとえばIntel系だと
グローバル変数のようにヒープ領域を使うものもあれば、
パラメータのようにスタックを使うものもある
この辺は処理系によっても微妙に変わってくるから、単純に説明できないところではある
245 :
名無しさん@12周年 :2011/10/16(日) 13:23:00.30 ID:QOjnrLgI0
ポインター? アセンブラやればすぐわかるんでは?
246 :
名無しさん@12周年 :2011/10/16(日) 13:23:16.63 ID:KF3UGYne0
単に ポインタ=アドレスを入れておく変数 でいいじゃん
>>240 R でなくても、
エクセルでも良いのだけど、
全国民が初歩的な統計学とスクリプト言語を習得し、
これを成人後、あらゆる業務に使用するようになれば、
>>126 のいうような
「びっくりするぐらいITに強い国に」なるということで。
length「すごく・・・長いです・・・」
249 :
名無しさん@12周年 :2011/10/16(日) 13:26:29.24 ID:KF3UGYne0
数学やっているヤツが理解できなかったのが a = a + 1; ん?なんで a と a+1 が等しいのだ? これはリッチーが書いた本の中にも書かれていたか…
リッチーの業績では、UNIX >> C なのに、C の話ばかりなのは、 社会的には、K&R の影響が大きいということなのか。 ポインタがわからんって人が出てくるけど、参照とかだったら簡単なわけ? ポインタ使って実装するようなデータ構造、例えば、Linked List とかは、理解できてるの?
>>246 ポインタはオブジェクトのアドレスで変数ではありません。
252 :
名無しさん@12周年 :2011/10/16(日) 13:29:17.64 ID:KF3UGYne0
初心者がよくやる間違い(コンパイルエラーも出ない)↓
if ( a = 3 ) {
}
>>251 インクリメント、デクリメント、足したり、引いたりできるから変数じゃないの?
>>26 汎用機を普通の学生が使えるような時代になるのは、十年以上遅れていただろうな
へたするとIBMの時代が今でも続いていたかもしれない
なにより、ビデオゲームが今の形で存在してることは考えにくい
Spacewar!が作られ、パブリックドメイン扱いでばらまかれた背景が存在しなくなるからね
その意味では、ビデオゲーム界の神祖様でもあったわけだ
コードがCで作られているゲームも少なくないしな
>>247 多分ならないw
エクセル程度なら必要に応じて業務の知識として研修を行えば良いレベル
本当に数学大嫌いな文系のお姉さんでも出来る話で教育による効果は
限りなく0に近いと思う
それなら数学教育を徹底して行い、高卒以上では簡単な微積分の知識を
身につけているくらいにした方が遥かに良い
もっと言えば、文系連中にはもっと「論証問題」をやらせろと言いたい
アホがスクリプト言語なんていう道具を覚えたところで、アホなプログラムを
作るだけだ
論証問題で緻密な議論に耐えられる頭脳があれば、言語なんて直ぐに
覚えられるだろう
さらにプログラミングの基礎の訓練をアセンブラレベルからやれば、
IT技術者として世界に通用する人間なんていくらでも量産できる
プログラミングと論理は世界共通
エクセルとかスクリプト言語とか、そんなものは必要ない
(ちなみに俺はruby,javaなんて知らない。Objective-Cなら触りだけやったことがあるがw)
変数にはポインタを入れられます。
256 :
名無しさん@12周年 :2011/10/16(日) 13:31:08.22 ID:bNtczvau0
オブジェクトのアドレスを値として持つ変数だよ
そもそも微積分出来無いと確率統計を理解出来ないし
>>250 UNIX使うって、あるいみC使うわけだからな。
それとも、sed とか yacc とかの話でもするかね?www
俺の .shrc 自慢とかw
260 :
名無しさん@12周年 :2011/10/16(日) 13:38:30.12 ID:ZyE0OPE+O
>>251 変数じゃない?
オブジェクトのアドレスでなくてメモリのアドレスのような気も。
俺の.zlogin .zshrc .zshenvは8年もの
zlogin は今でも現役やで
>>250 > ポインタがわからんって人が出てくるけど、参照とかだったら簡単なわけ?
むしろポインタよりも参照の方が難しいかも。
ポインタでは出来るけど、参照だと出来ない事って何?
UNIXの話をするとUNIX関係者、せいぜいLinuxあたりで話が終わるからだろう Windows上でC/C++、javaを使って開発している奴から見れば、 UNIXは未知の世界かも知れないし ただ実際にはUNIXの果たした役割は非常に大きいし、 Linux、Windowsに与えたリソース、Internetの発展まで全部含めれば、 おそらくデジタルと名のつくものでUNIXと関係のない物はほとんどない と言っていいだろうね IPから組み込みOSの開発環境、ホストと言うことになるから 信号機の制御システムから薄型テレビに至るまでリッチーは 貢献したと言える メディアのジョブズ過大評価、リッチー過小評価ということだろう そもそもOS/Xからして・・・
>>22 うろ覚えだろ馬鹿。
ほんとうる覚えって言う奴って日本人なの!?
”うる”なんて表現、売る以外では”うるう年”ぐらいだろ!?
>>241-242 イメージとしては、自然言語で記述されたデータや、テキストデータを
スクリプト系言語で処理し、
必要とあれば、それらのテキストデータから、数値化されたデータも生成し、
また数値化されたデータを、R で処理するという感じで。
全国民がデータマイニングと統計学を常用するようになれば、
国民一人あたりの生産効率も、現在よりかなり上がると思うんだが。
もちろん、processing を使って視覚化もすれば良いと思うし、
awk や sed や、bourne sh や bash を使ってもいいと思う。
>>263 > ポインタでは出来るけど、参照だと出来ない事って何?
自己レスだが、逆を聞いてしまった。
参照のインクリメントはポインタの様に普通の意味(オーバーロードとか抜き)
では出来んか。
でもって、ポインタでは出来ないけど、参照だと出来る事って何?
C++あたりだとコピコンとか参照を前提に設計されてるから、アレな気もするけど。
>>253 UNIX が、その後の世界にどのようなインパクトを与えたか、考えてみる。
OS が高級言語で実装されることで、他のアーキテクチャへの移植が容易に
-> ミニコンから、マイクロプロセッサを使った安価なワークステーションの時代へ
-> RISC などのアーキテクチャ競争を経て、コンピュータの性能の劇的向上
(半導体プロセス技術以上に、アーキテクチャの進歩や回路実装技術の性能に対する貢献は大きい)
TCP/IP は、UNIX 上で実装された。
-> メーカー独自 OS しかなければ、メーカー独自プロトコルが乱立し、IP 網は存在しなかった。
(マイナーな ARPANET に加え、商用の OSI や ATM 網が並存という世界になってた?)
ほんの 20 年前のこと考えても、PC のほとんどが 32bit 化しても、DOS Extender (Win3.1) を使い、
アプリケーションの大半が 16bit だったことを考えれば、OS の重要度と UNIX の貢献の高さが分かるよなあ。
>>250 単に、UNIX使ってる奴が少ないだけだろ。
UNIX使ってるプログラマも、Javaとかスクリプトの(サーバサイド)プラットフォームとして
使ってるだけで、日常的にUNIX使ってるわけじゃないだろうし。
「ポインタわかんねー」的な書き込みが多いけど、 関数の戻り値として、配列を変えそうとすると、 ポインタから逃げられないんじゃねーの?
>>271 配列も分かってないんだろ、Cの場合は。
>>269 あと、実はゲイツがBASICを商品として開発した環境も存在しなくなるので、
必然的にマイクロソフトも存在しなくな……あれ? これってなんてヘヴン?w
* は ポインタのぽいんちゃん ** は、ぽいんちゃんのおっかー *** は、そんなもん知るか
>>266 > イメージとしては、自然言語で記述されたデータや、テキストデータを
> スクリプト系言語で処理し、
> 必要とあれば、それらのテキストデータから、数値化されたデータも生成し、
> また数値化されたデータを、R で処理するという感じで。
そういうのって、はっきり書けば「職業訓練」的な話に過ぎない
それを使えても下請けでのIT土方を量産するだけ
でもって、世界的に見てその程度のIT土方はいくらでも供給がある
つまり、それをやったところでIT後進国に成り下がるしかなくなる
君が言っているようなことをやるべき国はインドや東南アジアだろう
Rと言っただけで付加価値があるように見えるのかもしれないが、
全くないと言っていいくらい価値が薄い
ところがマシン語を使いこなせれば、高級言語も比較的理解し易いし、
一方でスクリプトなんて知らぬ間に覚えてしまうものだ
(使いながら覚えていくのに適している)
pythonあたりだと多少気合入れる必要があるかもしれないが
重要なのは基礎の基礎である数学、物理学、さらにITの基礎となっている
情報工学、ソフトウェア工学、電子・通信工学などだろう
もっと業際的に見れば制御工学などもやっておいた方が良いかもしれない
使うかどうか分からないスクリプト覚えている暇が合ったら、minix,linux,bsdなど
のOSのカーネルのソースを読んだ方が遥かに良い
あるいはfirefoxのソースを読みながらC++の勉強とか
同人ゲー作りたいとプログラミングに手を出したが、 いきなり言語を学んでもイミフな世界だったので コンピュータの歴史から学ぶことにしたら、 プログラミングの必要性やが概念がなんとなくだがつかめてきた気がする。 ま、文系DQNの自分にはこれが精一杯。 相変わらず何のプログラムもつくれまへん。
>>276 ふつーは、フリーなゲームのソースをいじってチートするところから始めるんですよ。
>>276 HSPでサンプルいじりながらいろいろやってみたら?
あれは本当に良くできている。言語仕様があれだとか文句を言う人もいるだろうけど
ノベルゲーなら、Nscriptとか吉里吉里とかあるから、それもコードをいじるところから初めてみるといい
読んでいるだけで理解できるなら、今頃あなたは、とっくにコードを書き始めているだろうからね
>>275 C++ の勉強だとしても、
firefox のソースはあまり読みたくないなあ。
せめて、webKit かなにかにしてほしい。
>>267 ポインタが難しいって言ってる人が、そもそも、ポインタを必要とするような
データ構造を理解してるのかなって、聞きたかっただけ。
データ構造が理解できて、ポインタの使い方が難しいんなら、言語仕様に改善の余地があるかもしれないけど、
データ構造が理解できないのに、ポインタの使い方だけ説明されても、分かるわけが無いと思う。
>>269 更に派生的なことを書けば、
20年ほど前、組み込み系のホスト(EWS)としてはUNIXが定番だった
(つまりUNIX上にクロスコンパイラなど開発環境を用意して、
プログラムをリアルタイムOSとバインドして、そこからターゲットに
ダウンロードするという形が取られていた)
UNIXの知識が無いとPC以外のマイコン制御システムを開発できない
という時代が続いていた
UNIXという標準規格のおかげで低コストにマイコン制御ができた訳だ
282 :
名無しさん@12周年 :2011/10/16(日) 14:01:32.48 ID:wkAvY17a0
>>267 記述の解り易さじゃないかな?
f(int x,int& y);って言ったら
xは入力でyは出力だって解る。もっともそれを意識して作ったのが前提だが。
f(int x,int* y)だったらyは出力なのか配列なのかただのポインタなのか解らない。
>>259 >>270 多くの人は、UNIX ってのは、コマンドのことなのか。
確かに、入門書にはコマンドの解説しかないもんなあ。
>>271 やってることすら理解できないなら論外。
記述されてる意味がわからねーってのならまだマシ。たとえばこんな感じのやつとか。
void (*function(int number, void (*pointer)(void)))(int)
>>276 今はツクール系のツールがたくさん出てるんだからまずはそれを活用しようぜ
それで不満が出てきたらほかの手を模索すればいい
unix 型 OS の kernel の souce 読めば ポインタの使い方理解できるよ
287 :
忍法帖【Lv=13,xxxPT】 :2011/10/16(日) 14:09:36.60 ID:R6qOjk6V0
>>284 関数へのポインタを持ち出せれば偉そうにできるという、C言語の世界。
何の意味があろうか?
ポインタのラッパーが参照だろ。
289 :
忍法帖【Lv=13,xxxPT】 :2011/10/16(日) 14:13:00.47 ID:R6qOjk6V0
小学生にこう教えよう。 住所=ポインタ 名前=変数名 ポインタは当然1バイトずらしても、正確な次の変数の住所を教えてくれない。 そりゃ、敷地の大きさが違うからね〜。これで分からなければ、プログラミング以外の 仕事を選択すべきだ。
290 :
名無しさん@12周年 :2011/10/16(日) 14:14:16.10 ID:k15bNYte0
(format t "nullpo~%")
291 :
名無しさん@12周年 :2011/10/16(日) 14:14:48.20 ID:n51i7vMX0
関数ごと入れかえてしまうような ポインタの使い方は 見つけにくいバグの素
292 :
忍法帖【Lv=13,xxxPT】 :2011/10/16(日) 14:15:19.46 ID:R6qOjk6V0
>>288 実装によるだろ、ポインタを変数としている言語もあるし。
この場合、メモリーのallocationなどは、言語とOSが面倒を見るって話。
ジョブス並に大事件とおもうけどな。
>>289 概ね同意だけど、
ポインタ変数 = 住所とその敷地サイズが書かれたメモ
メモリアドレス = 住所
データの値 = 実際の土地
こっちの方が全然わかりやすいと思う。
>>293 一般人にとってはテレビに出たりしてる人以外はどうでもいいんだと思う・・・
295 :
忍法帖【Lv=13,xxxPT】 :2011/10/16(日) 14:17:36.43 ID:R6qOjk6V0
>>291 リソースが十分ある現代において、そんなプログラムは組み込みでも見当たらないだろ。
いつの話かな?
296 :
忍法帖【Lv=13,xxxPT】 :2011/10/16(日) 14:20:08.95 ID:R6qOjk6V0
>>294 使いやすい方で説明されれば? 私は職業プログラマでも、指導教官でも
ないからねぇ。
297 :
名無しさん@12周年 :2011/10/16(日) 14:21:02.49 ID:wkAvY17a0
UNIXの話をしたい人がいるみたいだな rm / -rf
298 :
名無しさん@12周年 :2011/10/16(日) 14:21:45.16 ID:iXQ+dYayP
char **pのpはポインタのポインタではなくポインタのアドレス、って読んだ方が 理解しやすい。 ポインタの配列として使う場合はchar *p[]と明示的に書いたほうが他人に理解してもらいやすい。
>>293 事件かどうかは分からないが、
コンピュータ業界内でも社会的に見ても
業績は間違いなくリッチーが大きい
歴史家の評価は最終的にそうなるだろう
UNIXがどう社会と関わっているかを考えれば、
とてもじゃないがアポー一社で完結してしまっている
人とは桁が異なる
>>293 ジョブズ:ウォズニアックの給料を搾取して、金持ちになった。
リッチー:リッチになれなかった。
301 :
名無しさん@12周年 :2011/10/16(日) 14:24:09.44 ID:XzZFu/VG0
Cでポインタを使って、アドレス0番地に入っている値を見るにはどうしたら良い?
>>297 その前にこれをやっておかなければ
ls / -lR
リッチーはプアだったのか…
>>301 *((char *)0)
じゃあかんの?
305 :
名無しさん@12周年 :2011/10/16(日) 14:26:46.07 ID:XzZFu/VG0
306 :
名無しさん@12周年 :2011/10/16(日) 14:26:57.12 ID:iXQ+dYayP
>>301 printf("%x\n" ,*((int *)0) ) ;
かな
>>276 >>201 の話は、全国民が読み書きができるようになったように、
全国民が、あなたのいう「IT土方」程度の能力を身につけるようにしようというだけの話だよ。
スクリプト言語程度なら、
子供の頃からあらゆる授業や試験において、これを使っていれば、
まさにあなたが言うように
> 一方でスクリプトなんて知らぬ間に覚えてしまうものだ
> (使いながら覚えていくのに適している)
という性質のものなので
>>201 のようにすれば
彼らが成人する頃には
>>266 のような国になるわけだ。
ただ、公教育の場から日本語を全廃したとしても、
彼らが成人した頃に、彼ら全員が流暢に英語を読み書きできるような気もしないので、
私は
>>268 の言うように「ミーハーな中二病」なのだとも思うが。
ところで C++ なら、
Linux や BSD 系の OS の他に、
一緒に haiku なども詠むと効率が良いんじゃないかな。
ポインタ: 現住所 ポインタ変数: 区域名 アドレス: 番地 ポインタ変数配列:住所録 メモリ領域: 区域割り アドレス演算: 住所欄を1(n)行ずつたどる・・・・・なんか違うかな・・・
そうか、0 は NULLに解釈されるんだったっけ? あかんのか。
310 :
名無しさん@12周年 :2011/10/16(日) 14:29:14.10 ID:wkAvY17a0
ポインタにも種類があるからな 配列ポインタ(集合住宅の住所) ボイドポインタ (住所不定無職)
K&R=ロバート・ノイス ゴードン・ムーア アンドリュー・グローブ<<<<<<<<<<ゲイツ<ジョブズ
312 :
名無しさん@12周年 :2011/10/16(日) 14:30:30.79 ID:iXQ+dYayP
>>305 そりゃMMUがプロテクトかけているメモリ空間だったらユーザーレベルのプログラムが
いくら頑張っても読めないよ。
OSレベルでpeekに相当するAPI呼ばないと。
そもそも最近のOSではユーザープログラムが見ている0番地は実際の0番地ではないし。
313 :
307 :2011/10/16(日) 14:30:54.09 ID:v7yWxBev0
>>301 その0番地ってのは、物理アドレスなのか論理アドレスなのか。
>>305 ぬるぽの先に何かあれば(そして、アクセスが許可されていれば)読める。
excelのマクロ組めるくらいの能力があれば誰だってプログラマになれる。
316 :
名無しさん@12周年 :2011/10/16(日) 14:31:29.79 ID:XzZFu/VG0
>>312 じゃ、OSもMMUもない組込みシステムみたいなのとしたら?
Cのエライところ i++; i+=1; っていう記法。 C++の、Cに対してエライところ 1行コメントを // でかける。/* */で囲まなくてもヨイ 変数宣言を、上で全部やらなくても使う前に宣言すりゃヨロシ 以上。
今日は暇人がおおいな
>>316 結局は、NULLポインタをどう解釈するかの、実装依存になるから、
確実に読める方法は無いってことでしょ?
>>312 > OSレベルでpeekに相当するAPI呼ばないと。
普通は、物理空間が map されてる領域があって、特権モードだとアクセスできる。
MMU を初期化する前に動かないといけないから。
address 0 は、そこに含まれることが多いんじゃないかな?
321 :
名無しさん@12周年 :2011/10/16(日) 14:36:28.49 ID:iXQ+dYayP
>>316 >>306 じゃダメ?
コンパイラが気を利かせてぬるぽでエラー出すなら変数にして
int k =0 ;
printf("%x\n" ,*((int *)k));
とやれば少なくともコンパイル段階ではエラーは出せないはず。
>>317 古いコーダーは変数全部上に書いちゃうんだよな
Wiki見たらうちの親会社が日本にUNIX持ち込んだとあった
マジなんかなあ
>>299 んんー。俺はまあジョブス的な仕事も割りと重視してんので。
あいついなかったらPC=キモヲタで終わりだったかもしれん。
>>307 だね。
ファイルを扱える簡単なスクリプト言語くらいは大卒程度の肩書きあるやつは
文系理系問わず多少知ってほしいもんだ。
ふつーに便利だし。
M01G71X0Y0とかってC言語?
>>321 普通に
printf("%x",k)
でええやん
>>321 アドレスが動的に変化する場合は、コンパイラではエラーを検出できない。
仮想空間のページ 0 は、特権モードでしかアクセスできないから、ユーザープロセスでは例外が発生する。-> segmentation fault
カーネルモードでは、対応する物理アドレスにメモリが存在しないから、やはり例外が発生して、panic() かな?
328 :
名無しさん@12周年 :2011/10/16(日) 14:42:30.89 ID:QOjnrLgI0
ポインターが無かったら。 間接アドレッシングが無かったら、どうなっただろ?
今思い出した。 汎用機でCを使おうとしたら、キーボードに {} がないんだよな。 だから main () ??< printf("hell ,world"); ??> って打った覚えがあるぞ。 (トリグラフ)
つか 0番地って何か意味あるのか?
>>324 それ、マシニングセンターとかで使うNC
NCコードでググれ。
ちなみにX0Y0っていうのは原点(X,Y座標)
>>307 職業訓練というのは後から出来るのだよ
しかも、必要に応じてその時代に沿ったものをやるのが一番効率がいい
さらにスクリプト言語はシェルスクリプトと同じように、
単純にコンピュータに命令する手順を簡単に記述できるようにしただけの
言わばメモみたいなものに過ぎない
これから始めると確かに敷居は広がるが、Cへのステップアップは
さほど楽にはならない(ブラインドタッチが早くなるとか、そういうレベルなら
あるかもしれないがw)
で何が起きるかと言うと、誰もCをやりたがらなくなる
スクリプトである程度のことが出来れば、Cなんて勉強する動機が
どんどんなくなる
でもって、世界に通用するプログラマはいなくなる
一番いいのはアセンブラ
それも出来るだけ簡単なもので、マイコンを使って実際に制御させるのが良い
なぜそれがいいかと言えば、感動のレベルが全然違う
アセンブラだとある程度中の仕組みが分かっていて、それを自分で
操縦するという感覚が楽しめる
一方、スクリプト言語はコンピュータに「買い物リスト」を渡して、勝手にやって
というレベルのもの
一応、自分の言った通りのことが出来るが、実際に何をやっているかは知らない
感動もアセンブラの1%くらい
深さも大きさも異なる
334 :
名無しさん@12周年 :2011/10/16(日) 14:45:18.51 ID:iXQ+dYayP
ベクターテーブルをいじりたいとか
>>330 ワンチップマイコンだと、電源ONとかのリセットベクトルが0000だったりすることもあるな。
336 :
名無しさん@12周年 :2011/10/16(日) 14:45:32.25 ID:XzZFu/VG0
>>319 やっぱりそうですかねぇ。
ハードの回路図見て、0x80000000読めばできるって思ったケースもあったけど、
これは特殊な場合ですしねぇ・・・
>>321 実行時の動作は、やっぱり処理系依存ですよね・・・エラー吐くかどうかも含めて。
あと、そのコードならkはvolataileにしとかないと、コンパイル時エラーの可能性も
あるんじゃ?
a.out
>>327 仮想空間のページ0にアクセスできるかどうかは、OSが決めること。
物理アドレスとして0番地が存在するかどうかは、アーキテクチャ次第。
>>330 そこら辺りはOSが予約してる特殊領域。色んな情報が詰まってる。例えばOSのバージョンとか。
NULLが0だと思ってる人が多いが別にそうである必要はない。むろん0でも良いが。
341 :
名無しさん@12周年 :2011/10/16(日) 14:48:24.17 ID:o/w+pRVt0
for ( ; ; ) { printf("ぬるぽ\n"); }
PC98時代に リセットをかける == 0番地をcallする のキャストのかけかたが Lattice と MS で違ってて夜を徹して論争したものじゃ
>>307 >彼ら全員が流暢に英語を読み書きできるような気もしない
なんだ分かってたのか。現状でも英語は教育してるし、重要性も十分説いてる
データマイニングさえやれば、
統計学さえやれば、
プログラミングさえやれば、
データベースさえやれば、
回帰分析さえやれば、
ゲーム理論さえやれば、
そういう謳い文句の本があるわな
義務教育の数学すら分かってない奴ばかりなのに?
もう良いよ。現実的な話をしてくれ
プログラミングやってない奴は存在を知っててあえてやってないんだよ
お前の言ってることを実行しても諦めるのが早いか遅いかの違いしか生まない
>>331 ありがと。
やっぱり違うのか。
昔この仕事してたんだけど、根本的になんなのかは教わらなかったからさー。
>>339 C言語において、NULLは0。
0をどういう値にするかは処理系次第。
C-FAQによると、0以外の処理系もあるらしいが、使ったことはない。
>>338 いや、通常の MMU は、仮想アドレスモードに切り替えても、物理アドレスが直接マップされてる領域が存在する。
そのような MMU では、OS が勝手に決めることはできない。
Cなヒトで、僕がイヤなのは、 なんていうか、なんでもかんでも1行で書けばエライと思っているフシないすか? aa= *(i++)|| (a > 10 ? (b = a) : (b = -a)); みたいなやつ。
ワンライナーはどの言語でもいる
350 :
名無しさん@12周年 :2011/10/16(日) 14:53:58.27 ID:k15bNYte0
>>341 for ( ; ; )
{
printf("ガッ\n");
}
DOSでのCでイヤなところは、 パス区切りと、エスケープ文字が同じ¥(っていうか、バックスラッシュ)なことだな。 まぁこれはそもそもDOSがパス区切りを/にせずに、独自性を主張したことがアレだが。
>>347 JavaでもCでも、通ぶってる人ほどそういった書き方をする。
熟練者ならメンテやヴァージョンアップのことを考えて、読みやすいように書く。
カニご飯はリッチだな 食わねばトンプ損だ。
354 :
名無しさん@12周年 :2011/10/16(日) 14:59:38.15 ID:R+zXz8yv0
>>247 Excelの統計関数はバグというか間違いも多いらしいので、
俺みたいにプログラムは本職じゃないけど、研究のデータ解析や統計でプログラムを組んでる身としては、
Rは欲しいところだな。
>>315 VBAは普通にプログラミングだろ。
355 :
名無しさん@12周年 :2011/10/16(日) 15:01:31.39 ID:awKPMb700
>>347 趣味で書く分にはどう書いてもいいけど仕事で書くコードはメンテしやすいように分かりやすく書き
複数の処理はちゃんと複数行に分けてそれぞれコメントを書くのが職業プログラマだと思う。
347が書いてるようなコードを書いてくるPGがいたら「オナニーは自分の家でやれ!」と怒鳴りつけるよ俺は。
Rの外部から持ってくる機能の正当性って誰が保証してるの?
>>351 さらに漢字の2バイト目にその同じコードを含むのが有るとかもうね…
358 :
名無しさん@12周年 :2011/10/16(日) 15:02:56.09 ID:iXQ+dYayP
ワンライナーよりもインデントがめちゃくちゃな奴のプログラムは読みたくない。 特に同じカラム数の行なのに全部タブだけと全部スペースだけの行を混在させる奴。
359 :
名無しさん@12周年 :2011/10/16(日) 15:03:02.81 ID:wkAvY17a0
俺は通だけそそんな書き方しねーよw
>>357 もうS-JISとかいらないよね。
そろそろUTFに統一しようぜ。
361 :
名無しさん@12周年 :2011/10/16(日) 15:04:48.49 ID:XBx3KQfz0
MS-DOSのアプリ開発,UNIX系では拡張OSの開発でCを使っていたど、 もう10年以上、Cでプログラミングしていないな。 今も、Cを使っている人っている?
362 :
名無しさん@12周年 :2011/10/16(日) 15:05:17.18 ID:c74Ehg7t0
C言語で書かれたC言語をどうやってコンパイルしたんでしょう それ考えると眠れなくなっちゃう
363 :
名無しさん@12周年 :2011/10/16(日) 15:05:35.10 ID:wkAvY17a0
通はこう書くとか都市伝説作るなよw通な奴程シンプルに書くもんだ。
何でこんなめんどくさい事覚えなきゃならんの? コードかける奴に作れと命令すれば済む事だろ?
たまにC書くと、シンプルで良い言語だなと思う。 普段はbash使いなんだけど、Cは馬鹿っ速いし。
366 :
名無しさん@12周年 :2011/10/16(日) 15:07:29.69 ID:R+zXz8yv0
>>361 基本はJavaとかC#で書くけど、ロジック部分はCで書いてライブラリとして共通化することも多いから、
今でも普通に現役でしょ。AndroidでもCは動くし、Javaから呼び出すなどで普通に使うよ。
367 :
名無しさん@12周年 :2011/10/16(日) 15:07:43.86 ID:wkAvY17a0
>>360 JISに対してS-JISを作ったようにUTFに対してUTF-BOMを作って邪魔する組織があるんですが。
>>355 だよな。
デバッガーで、watchかけてもさっぱりわからんしw
>>357 そうだよな。それを回避するのがMSCの/Jだったか。
だけど/Jって確かsigned char 関連のオプションなので、さらにワケワカランというww
>>358 うちでは若いヤツにはスクリプトはPythonで書くように指導している。
個人的にはPHPの方が好きなんだけどね。
このごろCAE関連とかでもサポートしているスクリプトはPythonが多いんだよな。
いくらワンライナーが嫌いとは言っても while( *dst = *src ); くらいは許すんだろ?
371 :
名無しさん@12周年 :2011/10/16(日) 15:09:07.08 ID:XzZFu/VG0
そもそも、K&Rのテキストで、えらくわかりにくいコードの書き方を 推奨していた気がする。
>>365 { }で閉じるのはいいと思う。
Python使っていても、
if (a==b):
a=0
#}
ってするんだよな。なんか閉じていない気がして。
そもそも他人の目から見て 何がどうすれば見やすいか、どうすれば見難いかの定義みたいなのってあんまりないだろ? 改行やコメントが多けりゃいいって訳でもないし
375 :
名無しさん@12周年 :2011/10/16(日) 15:11:21.06 ID:XzZFu/VG0
>370 しかも、=じゃなくて==じゃないか?
>>375 ループに入ったとき、*src が '\0'だったらいいけどな
378 :
名無しさん@12周年 :2011/10/16(日) 15:13:03.06 ID:ZyE0OPE+O
>>365 最近の言語使うとコードが半分以下になって楽よ。
文字列操作なんてめんどくさくって。
>>361 研究所なんで大量データを一度に扱って計算が必要な場合は
C++みたいなオブジェクト指向言語より
無駄にコールスタックを生まないCで組んだ方が段違いに早いので使うし
チップなんかの組み込み系はCが主流だろ
>>370 while( *dst++ = *src++ );
じゃないのかなぁ。
ちなみにボクは
*dst++
は
*(dst++)
ってしないと気がすまないクチですw
381 :
名無しさん@12周年 :2011/10/16(日) 15:13:52.22 ID:XzZFu/VG0
>>377 全くその通りだ。
そうじゃないと、外部から書き換えられない限り終わらないな。
たぶん、
while( *dst++ = *src++ );
というのが言いたいところなんだろう。
>>375 ああ、そういうことか....、って
stcrpy使えよ!
>>382 たぶん、strcpy
って言いたいんだろうけど、これ使うと
VisualCあたりは「そんな古いもん使うな」って怒らなかったっけ?
strcpy_s() を使えみたいな
終わるのが保証されないとさ。表明。
>>371 まあ実務上K&Rのコードの書き方は第三者が見て分りにくくなるだけだから
参考にすんなとはよく言われたな
うははははは、間違えたw while( *dst++ = *src++ ); 俺も三項演算子はなぜか好きになれん。 でもreturn文で分岐させるのは楽なんだよなぁ。
K&Rは中身より巻末の標準関数一覧を 一番良く見た気がする。
>>386 はぁ?それは単項演算子だろ。Cの三項演算子は?くらいだ。
>>228 IPC使ったマルチスレッド、マルチプロセスアルゴリズムー>これ教えられない
教育者が大杉。マルチコアの時代に、シングルスレッド・シングルタスク
なんてあり得ない。データのデコード処理もマルチスレッドが常識の時代。
データおよびオブジェクトのシリアライズ、メモリ管理法、
例外処理法、圧縮・暗号化に関する基礎アルゴリズムと手法
この辺りも追加
390 :
名無しさん@12周年 :2011/10/16(日) 15:20:22.93 ID:ZyE0OPE+O
>>347 覚えたてで嬉しがってるようにしか見えないよ。
パフォーマンスに影響あたえるようなコード以外は、さっと読んでわかるように書かないと。
おまえら言語の話好きだなw D・リッチーさんもきっとあの世で喜んでるよ。
>>345 C++において、じゃね?
LP64だと0 != NULLだと思うのだが。
まぁコーディングは楽なんだろうけど、 ボクのメインはワンチップマイコンへの組み込みなので 1行1命令じゃないとデバッグが超面倒なので勘弁なんだよな。 石さえ変わらなければアセンブラが一番いいんだけどね。
394 :
名無しさん@12周年 :2011/10/16(日) 15:23:10.48 ID:ZyE0OPE+O
395 :
名無しさん@12周年 :2011/10/16(日) 15:24:08.78 ID:XBx3KQfz0
>>366 そうか、暇な時にCで遊ぶかな。
>>365 早い事は早いけど、それでも無駄な命令があったりして、アセブンラには負ける。
今の言語の方は、もっと酷いだろうけど。
多分、前スレかなんかで出てきたとは思うが D言語とか、あれ、どうしたんだ?
>>390 まあ記述的に許されてるからまんま記述するのは逆に才能は感じないよな
ソースは他人が読む場合がままあるんだから
パフォーマンスに影響しないレベルで分り易いコードを書く奴の方が才能は感じる
398 :
名無しさん@12周年 :2011/10/16(日) 15:26:06.80 ID:XzZFu/VG0
論理シフトと算術シフトは、分けて欲しかった。
3項演算子って改行すれば見やすい > def gcd(x, y): ... return gcd(y, x) if x<y \ ... else x if y==0 \ ... else gcd((x-y), y)
>>397 わかりやすいコードの方が、コンパイラの最適化にかかりやすい
っていうのもあるな。
>>396 D言語は道楽だろ。それよりGo言語とかどうなったんだろう。
402 :
名無しさん@12周年 :2011/10/16(日) 15:28:00.43 ID:ZyE0OPE+O
>>386 ポインタのインクリメントとwhileの判定の順番がまぎらわしいから自分は書かないかな。
>>399 それなら普通にif文で書いても殆ど変わらないんじゃね?
>>332 > で何が起きるかと言うと、誰もCをやりたがらなくなる
> スクリプトである程度のことが出来れば、Cなんて勉強する動機が
> どんどんなくなる
いや、そこはどうだろう。あとのことは大体同意するけれど、
先に進もうというタイプの人間は、
OS の中を見たいなどの動機によって、
どんどん先に進んでいくんじゃないかな。
>>403 returnとか代入なら同じ左辺値を何度も書く必要がないってだけかな
406 :
名無しさん@12周年 :2011/10/16(日) 15:30:29.02 ID:wkAvY17a0
三項演算子は極力使うべきではないが、 こんな極めて自明なときは使うべき。 int max(int x,int y){ return x>y?x:y;}
>>401 あ、そんなのあるんだ、と思って調べたら
なんで、そんなもん、わざわざ作ったのかよくわからんw
関係ないけど今思い出した。若いのが
「C#で作っていいっすか?」とか言ってたな。C++は醜いから。とか言ってたw
三項演算子は、ExcelのIF関数使う様になってから抵抗無くなった。 今はもうコンパイラ・オプティマイザが良きに計らってくれるだろうから、 見やすさ重視で使っちゃう。
アメリカって日本より平均寿命大分低いよね
>407 若いのにいわれるとイラッとくるけど、 正論だww
411 :
名無しさん@12周年 :2011/10/16(日) 15:33:30.79 ID:vJsjcUQs0
>> 399 おまけに、継続行なんて要らないから。
>>408 まぁEXCELのセル関数のIFは、それしかないからなぁ
セル関数のIFが3つネストしたらわけわからんのだが、それしか手が無いんだからしょうがないよな
ジョブスなど足下にも及ばない程、この方の世界への貢献は偉大。 K&R本は今でも持ってるぜ
>>400 デバッカー使ったときも分り易いってのもある
C++やJavaでクラスの関数から値取得して引数にみたいなコード見ると
コードを書いた奴が何も考えずにコーディングしてるの透けて見えて頭が痛くなる
そういう奴に限ってソースレビューで指摘してもポーカンとしてるし
>>404 > 先に進もうというタイプの人間は、
> OS の中を見たいなどの動機によって、
> どんどん先に進んでいくんじゃないかな。
ならばなおさらアセンブラから始めるのが良いだろう
スクリプトから初めても難しさは変わらない
必要のない知識を溜め込むより、必要のある知識だけを
効率的に勉強していくのが王道だ
先に行く必要が無いなら、スクリプトだけ勉強するというのも
ありだが、出来ることが限られているのだから、必要な
人だけ勉強すればいい
アセンブラから入れば自然に先に進める
高級言語を後から勉強する方が進化の過程を
順に追っていくことになるから無理もなく無駄もない
逆に高級言語から低級言語に向かえば、
余計なものばかり勉強することになるので、
無駄だらけになる
>>415 いまどきアセンブラなんてPCで動くのかと思ってやってみたら、
動いたのでちょっと涙しているww
C:\Users\
>debug
-a 100
18DE:0100 mov ax,1
18DE:0103 mov bx,2
18DE:0106 add ax,bx
18DE:0108
-r ip
IP 0100
:100
-t
AX=0001 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=18DE ES=18DE SS=18DE CS=18DE IP=0103 NV UP EI PL NZ NA PO NC
18DE:0103 BB0200 MOV BX,0002
-t
AX=0001 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=18DE ES=18DE SS=18DE CS=18DE IP=0106 NV UP EI PL NZ NA PO NC
18DE:0106 01D8 ADD AX,BX
-t
AX=0003 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=18DE ES=18DE SS=18DE CS=18DE IP=0108 NV UP EI PL NZ NA PE NC
配列名、添字なし変数名、ポインタ名を 同じように命名してしまうと訳わからなくなることがわかってよかった 厳密なマイルールが必要な言語だよね
419 :
名無しさん@12周年 :2011/10/16(日) 15:40:12.73 ID:vJsjcUQs0
カキコしている自分で思うけど、 良く「ν速から出て行け」って書かれないよね。 やっぱデニス・リッチーさんの訃報で おおめにみてくれてるのかな? 皆良い奴だな。
アセンブラから勉強って妄想たれてるの、どこの親父だよ
>419 確かにww よくスレ4まで伸びてるなww
>>413 高級言語のデファクトスタンダードみたいなもんを構築した点じゃあ
コンピューター業界における貢献度は所詮はハード屋のジョブズと比べようもない偉大な人なんだけど
大多数は貢献度合いは理解できないからなぁ・・・
423 :
名無しさん@12周年 :2011/10/16(日) 15:43:40.29 ID:XBx3KQfz0
>>414 前任者が作ったバグありソースとか直しとかもしたことあるけど、
しっかりとしたコーディング規約も必要だよね。
>>420 アセンブラって言語じゃなくて、CPU のインストラクションセットだもんな。
RISC とか、スタックとか汎用レジスタだし、CALL の戻り番地もレジスタ格納だけど、
その面倒見るのって、アセンブラの知識じゃないし。
C 覚えてから、auto 変数は、スタック上に取られるとか理解したほうが早いだろ。
マクロプロセッサを型付きに拡張したようなものだと思うけど そんなに偉大なの
426 :
名無しさん@12周年 :2011/10/16(日) 15:44:57.36 ID:ZyE0OPE+O
ぶっちゃけFORTRANの方がすごいよね
>>416 大学で初めてC言語を習ったときのテキストが、K&Rだったが
あれを初学者に読ませるってのは、良くないと思うぞ。
C:\Users >debug -a 100 18DE:0100 mov dx,200 18DE:0103 mov ah,09 18DE:0105 int 21 18DE:0107 return 18DE:0108 -e 200 18DE:0200 00.32 00.43 00.48 00.24 -r ip IP 0100 :100 -g 2CH Program terminated normally ---------------------------------- おぉー こいつ、動くぞw
アセンブラって高級言語が裏で何をやってるのか知って感謝するための存在じゃないの 第二外国語でスペイン語をやって英語の活用のシンプルさに感謝するみたいな
>>426 ハンガリアン記法ですかい?
Windowsプログラムの本の最初のコードがアレなので
それでイヤになったやつ多いと思うなぁ。
lptrsz
だっけか。忘れたw
>>427 FORTRANって型定義が適当なんでダメ
433 :
名無しさん@12周年 :2011/10/16(日) 15:48:32.29 ID:wkAvY17a0
やってることは
(x[i-1]+2*x[i]+x[i+1])/4 なんだけど。
(((*(x-1))+2*(*x)+(*(x+1)))
>>2 ); と書いた方が実際早い。
下を採用するのはクリティカルな部分のみ。
434 :
名無しさん@12周年 :2011/10/16(日) 15:48:41.49 ID:XzZFu/VG0
FORTRANも凄いけど、高級言語すぎてニッチなんだよね。
ここ読んでると、機械語やアセンブリ言語っていうプログラミング言語があるかのように 錯覚するけど、あれらって各プロセッサ固有の命令をずらずらならべていってるだけだよね?
>>430 あー組み込み系やっていると、結局はアセンブラのお世話になるので必須です。
割り込み順位とかあるんでなー。
コンパイラもたまに間違えるコトあるんでなー(苦笑)
437 :
名無しさん@12周年 :2011/10/16(日) 15:49:41.42 ID:Snb2Cssq0
糞分かりにくい言語をつくりやがって!! 人類が発展しちゃたーじゃねーか 技術者はCを通じて会話できちゃうじゃねーか あれ、いいことばかりだ 素直にR.I.P
♪おおブレネリ あなたの お家はどこ
>>435 そだよ。
だから移植を考えるなら高級言語で書いたほうが保守性がヨイです。
440 :
名無しさん@12周年 :2011/10/16(日) 15:51:22.57 ID:XzZFu/VG0
>>428 どこが?
全ての言語の解説書は、K&R を手本にしてると思うが。
そもそも、プログラミングがどういうものか理解してない人は、
読者として想定してないって書いてあるんだが。
>>438 やぁっほぉぉー、フォートランランラン♪ …って言わせんな恥ずかしい!
FORTRANってあんな糞仕様でよくあれだけ普及したな
>>420 ハードウェアマニュアルを首っ引きする様な状況じゃなければ、要らないね。
逆に上記の状態なら、lstファイルを確認する位の姿勢が必要。
ただ、CPUの動作原理位は把握しておいた方が良い。
>>430 そういう事ですわなw
ビットセット/リセットが命令セットの都合で、2000h番地以下にしか効かなかったりね。
445 :
名無しさん@12周年 :2011/10/16(日) 15:53:34.37 ID:XzZFu/VG0
>>441 >そもそも、プログラミングがどういうものか理解してない人は、
>読者として想定してないって書いてあるんだが。
って、理由わかってんじゃん。
446 :
名無しさん@12周年 :2011/10/16(日) 15:54:05.62 ID:R+zXz8yv0
>>443 Fortranは最初の高級言語でしょ。ある意味で全てのプログラミング言語の祖。
今の基準で糞とか論じるのは良くないかと。
>>443 信じられない話だが、あれが登場した時は「これでプログラマは要らなくなる」とか言われたもんだ。
>>443 いまだにCAEではFORTRANがハバを利かせていて、
構造要素を拡張するためには、ユーザがFORTORANでコードを書くことを強いるんだよw
まぁボクも情報処理1種、2種は両方FORTRANで取ったしな。
449 :
444 :2011/10/16(日) 15:55:10.88 ID:+Nisv+aL0
450 :
名無しさん@12周年 :2011/10/16(日) 15:55:11.53 ID:Snb2Cssq0
>>443 ま、計算能力は高いから仕方じゃないんじゃね
その分、開発に時間がかかってトータルでみればCのほうが早いけどwww
>>443 FORmura TRANslator だから。
数式をレジスタとスタック使って、インストラクション列に置き換えれば十分。
452 :
名無しさん@12周年 :2011/10/16(日) 15:56:22.30 ID:XzZFu/VG0
>>448 今はもうFortranを選択できないけどな。
なぜかCOBOLは残っているけど。
これを言うと歳がバレるがw FORTRANはパンチカードを生協で買って、パンチした。 翌年は、それがマークシートになって、消しゴムで消せるようになったので歓喜した。 うっかりコタツに置いた、マークシートの束を落としてバラバラになったら泣きそうになった
454 :
名無しさん@12周年 :2011/10/16(日) 15:57:48.77 ID:Snb2Cssq0
>>452 COBOLは金融系だから
残しておかないと銀行が困る
FORTRANも77でだいぶマシになったが、算術IF文の使いにくさときたらもう…
>>453 パンチカードとかジジイ教授の昔話でしか聞いたことないわ…
基本情報はCを選択したけど、K&Rで余裕だった。というか国語の問題だった
FORTRANがなければ、 アポロ計画はなかった。
>>449 >ビットセット/リセットが命令セットの都合で、2000h番地以下にしか効かなかったりね。
それ、なんだっけ? ATMELがそんな感じだったような記憶が
俺が大学の時はまだ紙テープが有ったぞ
461 :
名無しさん@12周年 :2011/10/16(日) 15:59:30.95 ID:XzZFu/VG0
パンチカードは、余っていたのを工作の材料に使ったことしかないな。
>>445 著者が想定していない読者に読ませることが良くないって、
キミが、何が言いたいのか分からない。
キミの教官が馬鹿だったということ?
パンチカードは、イデ隊員の様に 素で読めるようになって一人前。
>>456 ジジイで悪かったな。
って事はなにか?今の若い者は
紙テープに出したコードの1バイトを変える時、マシンが開いていないので、実際に紙を当ててノリで貼ったり、
紙テープにパンチで穴あけたコトがないというのか?
>>453 カードは箱に入れてマジックで斜めに線を引いておくのだ。
ひっくり返しても簡単に元に戻せる。
466 :
名無しさん@12周年 :2011/10/16(日) 16:02:13.60 ID:Snb2Cssq0
色々、プログラミングしたけどPerlが一番楽チンだったなー 正規表現も簡単だったし けど、perlもC言語が親なんだよね〜 やっぱ、Cに感謝
469 :
名無しさん@12周年 :2011/10/16(日) 16:02:47.97 ID:wkAvY17a0
そんな時代にPC自体無かっただろ?
>>466 PerlもいいんだけどPHPの方がCに近いので(特に break )
すぐに乗り換えた。
471 :
名無しさん@12周年 :2011/10/16(日) 16:03:48.38 ID:XzZFu/VG0
>>469 それがさ、俺が紙テープを使ってた頃、別の研究室にはMacintoshが有った。
>>469 マイコン って言っていたな。
といってもそのヘンのやつに「マイコン」って言うと
「マイクコンプレッサー」 か
「マイラーコンデンサー」
のどちらかの認識しかなかった。
TK-80がやっと世の中に出るころだな。
>>468 そんなもんw
MS-DOSとCP/Mでコピー操作のSRC/DSTの並びが逆とかww
>>472 MACは無かったなぁ。
金持ちのボンがApple][でVisicalcで実験レポートまとめていて、
教授以下、目を丸くしていたなぁ。
>>474 なんだったかなx
>PHP
>B:=A:*.FOR
だったかなぁ。流石に忘れた。
家のどっかにある8インチのFDDにそう書いてある筈なんだが。
477 :
名無しさん@12周年 :2011/10/16(日) 16:07:35.89 ID:Snb2Cssq0
>>470 さっき、COBOLは金融系と書いたけどPerlはバイオ系が主流だったのよ
PHPもいい言語だと思うけどPerlが好きなんだ
いい加減なとこも含めて
あと、Rubyもすきだ
>>477 あ、Rubyはオブジェクト概念を強制してくるのがどうしても馴染めなくてなぁ。
挫折した。国産なのに悪いことした。
479 :
名無しさん@12周年 :2011/10/16(日) 16:09:08.14 ID:WN8K/q9p0
FORTRANはコンパイラによる最適化が強力で 計算速度だけは未だに一級品だから。 COBOLが生きてるのは多分標準でBCDが使えるから。
そういやひまわりはどうなった? あれなら素人も覚えやすかろう。
>>474 MS-DOSがcopyでCP/Mがpipだったか
483 :
名無しさん@12周年 :2011/10/16(日) 16:11:55.82 ID:Snb2Cssq0
>>478 プログラム言語はあくまでツール
RubyやPerlはバイオ系に強かっただけで
好きな言語も人それぞれだとおもう
けど、すべてはCから生まれたものだと俺は思っている
>>479 FORTRANはスパコンのベクトル演算でまだまだ現役だよね。
>>386 コンパクトにまとめるこのK&R流のやり方にわかりにくいと拒否反応があるのか
でも、当時のある条件のプログラマたちから見たら
むしろわかりやすい、やっぱりこう書かなきゃね、なんだよ
だってwhile( *dst++ = *src++ );はPDP-11の流れを汲むモトローラ系の6809なら
loop:
lda ,x++
sta ,y++
bne loop
68000なら
loop:
move.b (a0)+,(a1)+
bne loop:
なんだから
最終的なオブジェクトコードを想像しながら書いたらこれしかないでしょ、という感覚だと思う
ところがインテル系のCPUを使ってると転送命令でZフラグは変化しないし
オートインクリメントアドレッシングは(ストリング転送命令以外)ないしで
あまりご利益が無く意味がぼやけてしまってた
昔、Perlを使っていた時期もあったけれど(文字列を簡単に扱える)、 どんなに綺麗にスッキリコーディングしてもメンテナンスが大変 今はpythonとRくらいかな? Cすらまったく使ってない pythonのunicodeが面倒で好きじゃないが、トータルとしては楽だ
487 :
名無しさん@12周年 :2011/10/16(日) 16:14:05.83 ID:Snb2Cssq0
>>479 でも、開発と最適化に時間がかかるのがFORTRAN
今で言うじゃじゃ馬みたいなもんだね
>>485 インテルって、Aレジスタをクリアする専用命令すらないのな。
今はあるのか?
バイト先のセンパイに聞いたら
XOR A
って言われた。 なんぢゃそりゃ、と思ったw
なかなか強烈な加齢臭のスレだな 俺モナー
>>486 Pythonって誰が書いても同じようなコードになるってフレコミ
聞いたことがあるなぁ。
ちょっと正しいと思った。
やっぱ i++ とか i+=1 とかが便利すぎるんだろうなぁ
C言語プログラマの平均年齢はかなりのものだろう C++,さらにはJavaになるとかなり下がるだろうけれど
>>488 実質的に同じことできるインストラクションがあるなら、
別の opecode 割り当てるのは無駄。
分かりにくけりゃ、二モーニックだけ追加すればいい。
ものすごいもの2つも発明してすごいな とてもシンプルに頭がいいんだろうな うらやましい
>>347 lisp系とかに慣れているとそのコードの方が
ifで分岐させるよりよっぽど分かりやすいような。
496 :
名無しさん@12周年 :2011/10/16(日) 16:20:02.80 ID:Snb2Cssq0
497 :
名無しさん@12周年 :2011/10/16(日) 16:21:38.22 ID:wkAvY17a0
俺はその頃オヤジの睾丸の中の精子だったと考えると想像したくない。
>>18 getchar(); wwwww
>>27 運動しないで座りっぱなしはやばいらしい。この手の仕事はそうなりがちだし。
>>471 って事は今の若いものは
ASCIIに印刷されていたTynyBasicだったか、それのコードを
紙テープリーダを自作して読み込んだことがないというのか?
500 :
名無しさん@12周年 :2011/10/16(日) 16:23:41.30 ID:Snb2Cssq0
>>347 >>495 その気持ちわかるわ
開発者が楽したいけど、後の引き継ぎが大変なんだよね
特に新人さんに
もっと、分かりやすく書けと
>>490 「同じ」は正しくないが「同じような」は正しいね
a=[]
for i in [1,2,3] :
a.append(i)
を
b=[1,2,3]
a=[i for i in b]
みたいにできるというのはあるけれど、表記そのものは
限られているから、パターンを覚えれば問題なし
Cはフリーフォーマットだから、無数にパターンが出来る
同じ式でも途中で自由に改行入れられる
そこがCの魅力だけどね
逆にCは基本的に関数の最初に変数宣言をやらないと
駄目とか、途中で変数を宣言するには{}でスコープを
作らないと駄目とか、不便な面もある
>>499 (;´д`)/ 先生、その前にテープ自体を記憶媒体に使った事無いと思います
>>490 itertools、リスト内包表記、ラムダ式を積極的に使う人とそうでない人で全然違う
C言語の見せてくれた最も偉大な点は、 理想と現実との妥協のありようと最大効率化の導きようを、 俺たちボンクラなエンジニアに示してくれたこと。 プロセッサの振る舞いと人間の思考をクロスオーバさせながら取り組める開発言語。これからも末永く活躍していくだろう。
>>373 カッコに毒されすぎ。
もっとPythonコード読みこなせば
(ちゃんと整形されたコードなら)
カッコなんてジャマだってわかるよ。
>>501 > a=[]
> for i in [1,2,3] :
> a.append(i)
2ちゃんは半角スペース駄目だったんだなw
a=[]
for i in [1,2,3] :
a.append(i)
一応自己フォローと言うことでw
>>502 なんだと!最近の若いもんは紙テープで科学特捜隊ごっこもしたことが無いのか?
Pythonは2chに貼り難いという致命的な欠点があるな。
>>502 あ?なんだと?
テープレコーダとの相性が悪いときに極性逆にしてみるとか
ダイオードを2個入れて、上下クリッピングしてみるというのは常識だよな?
あと、あれだ。
月刊テープアスキー
>>505 いや、わかっているんだけど
BASICだって、PascalだってCだって
「あけた扉は閉める」
のが流儀だったからなぁ。 こればっかりはちょっと慣れそうにない。
話についていけんので、 テープリーダの回路図きぼんぬ
8086系プロセッサにおける xor ax,ax によるレジスタへの0の代入方法や、 数を80倍したいときなどに、 ビットシフトで16倍してから、64倍したものと足し合わせる方法などは、 恐らく、死ぬまで忘れることはないと思うものの、 もう私の生涯においては、二度と使うこともないような気がする。 ビットシフトの計算はもしかしたら、 何かで使うこともあるかもしれないが。
>>503 ぜんぜん違うってほどでもない。
他の言語にくらべればほとんど同じコードに近い。
この点において最悪なのがPerl。
>>510 改行があるのに、わざわざ ; をつけないと怒られる方がおかしい。
これについてだけは、C の欠点だと思う。
>>511 うろおぼえだが、ASCIIのは印刷物で穴があいているんじゃないので、
フォトリフレクタを8個ならべた様な記憶がある。
30年くらい前の話だからかなり記憶が怪しい
516 :
名無しさん@12周年 :2011/10/16(日) 16:31:58.37 ID:KF3UGYne0
某メーカーで仕事やってた時、ポインタ禁止だったな マジで 理由はポインタ分からないヤツがいるからとか 訳の分かんない理由だった
517 :
名無しさん@12周年 :2011/10/16(日) 16:32:43.89 ID:Zm3mcVYoO
料理ができる:プログラミングが書ける 懐石料理(単品)が作れる:C言語が使える 懐石料理コースが作れる:C++が使える 創作料理コースが作れる:Javaが使える 包丁さばき・食材への火の入れ方・調味料マスター:アセンブリ言語が分かる インスタントの料理が作れる:BASICが使える 冷蔵庫のあり合わせとは思えない料理が作れる:rubyが使える 盛り付け上手:htmlが使える 三つ星きたなシュラン:COBOLが使える
>>516 文字列を使わないのなら、ポインタ無くてもなんとかなるかな。
519 :
名無しさん@12周年 :2011/10/16(日) 16:34:06.54 ID:XzZFu/VG0
>>515 マークシートも使えそうだな。
それで読み取ったのをパラレルI/Fに転送するのか?
>>507 (;´д`)/ 科特隊ごっこは、コンピューター経験不問です
>>509 俺の部屋にはファミリーベーシック用のデータレコーダーが2基生存してるけど、
そんな初代PSの様な対策は流石にやった事無いw
>>514 ソースを一定に整形する意義が
深く理解されてなかった時代だからしょうがない。
後から来たJavaがソース整形自由なのは笑ったけど。
>>512 MMIX には、Immideate shift + add というインストラクションがあって、
定数の乗算を乗算器を使わずに実行できる。
MMIX のインストラクションセットなんて、知ってる人少ないだろうけど。
>>514 ecmascriptみたいになったら最悪だろ。
>>514 ;がないなら「;が無い様ですが、あるとしてコンパイルしますか?」って
聞いてくるくらいしてもいいと思った。(今でもそう思う)。
あと strcpy 使うなら、#include <string.h>を自動的に挿入してくれるオプションとか。
>>512 でも2bit,16進数感覚は、コンピュータをやっているものにとっては財産だし、
インターネットの時代にも役に立つ
IPのmaskとか
そもそもIPアドレスが実質的に256進数だということにも気づくし
>>520 データレコーダははじめから波形整形対策してある。 それはブルジュアぼっちゃん の使うものだ。
労働者階級が使うものではない。けっw
あー、紙テープとパンチカードを記念に残しときゃ良かった
7カラム目をアスタに
パンチカード使っていた人って、自分で穴あけてたの? それとも、専業のねーちゃんにやってもらってた?
研究室につい最近まで残ってたけど>紙テープ 先人が卒業研究で製作したpc8001ベースの端末がつながっていたのでそっちから入力も出来たけど、教授の趣味で入力は基本的に紙テープでやってた。 IPLは紙テープでしか出来なかったので慣れさせるためってのも有るけど。
>>3 あ、いまこのRESに気が付いた。
パソコン用のFORTH
ってあったよな。逆ポーランドなやつ。
>>526 あ、でもDR買う前はラジカセ使ってたよ。
そん時言ってくれれば……w
>>529 パンチャー室で自分であけていた。
翌年からマークシートになった。
>>529 大学では自分でパンチしてた。
会社じゃパンチャーのいる部署もあったが、うちはTSSだったから使わんかった。
>>521 インデントの重要性は、K&R でも強調されてたが、当時は、継続文字は美しくないという
認識だったじゃないかなあ。
java は、C の後継者のつもりでいたから、見かけも C に似てる必要があるせいだったのか?
C++ は、C のスーパーセットのつもりだから、仕方ないけどさ。
536 :
名無しさん@12周年 :2011/10/16(日) 16:40:54.70 ID:vJsjcUQs0
>>531 Forthは現物使った事無いな。
postscript(ghostscript)では遊んだ事あるけど。
538 :
名無しさん@12周年 :2011/10/16(日) 16:41:06.95 ID:+XhFRT190
539 :
名無しさん@12周年 :2011/10/16(日) 16:41:44.94 ID:Snb2Cssq0
>>518 今の計算機でポインタを使うのと使わないのではどれくらい差が出るものなのかな?
差が、僅かしかないならポインタ使う必要の無いように思うのだが・・
>>539 アセンブルレベルでは殆ど同じようなコード出すんじゃないかなぁ。
ポインタを使うと、文字列の切り出しをするときに、
文字列の切り出し関数がなんだっけ?と思い出さなくても良いというスゴイ利点がw
541 :
名無しさん@12周年 :2011/10/16(日) 16:45:38.06 ID:vJsjcUQs0
>>524 半分同感。俺もよくそう思う。
が、それで意味が変わっちゃうケースもあるんで。
そうすると、結局あとでデバッグするハメに。
>>514 改行したくない時はしなくていいです
という意味だから
void a(){
int i ; char c; int e; double d;
e=i++; c='a'; d = (double)e;
printf ("%d %c %f\n",i,c,d);
}
でも一応OK
よい書き方ではないかもしれないが
一体何のスレなんだw ニュー速+板じゃないところに来たかと思った けどこれも一種の追悼か
Cでポインタ使わないってことは、動的なメモリ確保も使えず、 関数呼び出しで参照渡しも出来ないってこと?
>>510 それは慣れそうにないんじゃなくて、単に君が(心情的に)慣れたくないだけ。
その気になれば3日で慣れる。もっと短いかも。
546 :
名無しさん@12周年 :2011/10/16(日) 16:46:47.28 ID:k15bNYte0
オランウータン向けのプログラミング言語 Ook!
>>544 >関数呼び出しで参照渡しも出来ないってこと?
これは全部グローバル変数にしとけ
でいいよなw
548 :
名無しさん@12周年 :2011/10/16(日) 16:48:15.83 ID:KF3UGYne0
>>539 配列を扱う場合、配列アクセスとポインタアクセスではかなり速度が違ったよ
今ではCPUの性能が上がったから、その当たりあまりこだわりが無いけど、
組み込み系では処理速度がやはり重要になるのでポインタに置き換えれるところ
はポインタに置き換えている
>>539 ポインタ使わずに書くには、配列のインデックスを代わりにするってことかな?
最適化すれば、ほとんど違わない気がする。
64 bit アプリだと、64 bit のポインタより、32bit のインデックスの方が、
メモリの節約になるし。
>>514 改行じゃセミコロンの代わりにならんのだから仕方あるまい。
むしろ改行で勝手に文が終わってもらってはこまる。
長い文が書けない。
551 :
名無しさん@12周年 :2011/10/16(日) 16:49:38.96 ID:Snb2Cssq0
>>540 >ポインタを使うと、文字列の切り出しをするときに、
>文字列の切り出し関数がなんだっけ?と思い出さなくても良いというスゴイ利点がw
それだと、駱駝本いらないねwww
552 :
名無しさん@12周年 :2011/10/16(日) 16:50:22.13 ID:wkAvY17a0
>>514 C++やjavaの話だが
char * a=
"<html>\n"+
"......."+
"......."+
"......."+
"</html>";
って書ける恩恵の方がでかい。
553 :
名無しさん@12周年 :2011/10/16(日) 16:51:02.37 ID:0JdAz96nO
>>539 コールバックとかフックならポインタ必須では?
554 :
名無しさん@12周年 :2011/10/16(日) 16:51:32.95 ID:KF3UGYne0
>>514 ;を付けないと、トークンの区切りをコンパイラが分からないから
>>547 そう、そんな感じ
必要なメモリは外部変数で予め確保しておけと
もちろん配列の関数渡しはご法度
>>550 python とか Haskell とかのオフサイドルールに従えば、改行があっても
文を継続させることは可能。
オフサイドルールなしでも、文の終わりかそうでないかを判定するルールは作れる。
>>552 勝手に改行で文の終わり解釈されるecmascriptだと、
そういう書き方なら上手くいくが、ちょっと流儀を変えて
char * a=
"<html>\n"
+"......."
+"......."
+"......."
+"</html>";
が悲惨な事に
>>554 なんかグローバル変数使うのは悪 みたいな感じがあって、
じゃぁ関数呼び出しで
func( int a, int b, int c, float d, char *s )
って長々書くのが美しいのか? と思うんだよな。
558 :
名無しさん@12周年 :2011/10/16(日) 16:53:58.83 ID:KF3UGYne0
>>549 そーゆーこと
配列の関数渡しはもちろんご法度
だから関数の使い回しが非常にやりにくいプログラムになる
559 :
名無しさん@12周年 :2011/10/16(日) 16:54:36.78 ID:0JdAz96nO
>>554 画像系組み込みのメモリ挙動も思い出してやってくれ
560 :
名無しさん@12周年 :2011/10/16(日) 16:55:09.09 ID:Snb2Cssq0
>>548 >>549 ポインタの現況説明THX
Cにとって初心者にはポインタが最初の難関になると思ってる
(というか俺もそうだった)
その部分を改善すればもっと門戸が開けると思ったわけです
>>539 極端な例かも知れんが…関数の引数や戻り値に
構造体使うのと、構造体へのポインタを使うのとでは、無視できない差がありそうに思う。
>>557 モジュールの独立性が下がるから不必要なグローバル変数は嫌われるのだよ。
563 :
名無しさん@12周年 :2011/10/16(日) 16:56:25.42 ID:vJsjcUQs0
pythonは色々便利な構文(他の言語も取り入れて欲しい)がある反面 インデントがうるさくて 思考を阻害する部分もあると思うけど。
564 :
名無しさん@12周年 :2011/10/16(日) 16:56:39.14 ID:wkAvY17a0
>>557 プロトタイピングつって
ブラックボックス内は何をしているのか一目瞭然となるのが理想
おっさんが昔話を語るスレに なっているなwwww 紙テープみながら「怪獣が東京湾に現れた」 とか、計算機センターでカードの束に ひたすらパンチしていたおれがいうのも 何だが。
566 :
名無しさん@12周年 :2011/10/16(日) 16:57:03.72 ID:4Hri+NQkO
>>505 括弧の方が安心感あるけどなー。
括弧のくくり直しに比べてインデントの変更は簡単にできるぶん
不注意で要らんことになりそうで怖い。
>>535 FORTRANがパンチカードの幅80文字を強く意識した仕様になっているように、
Cはパンチカードの後に出てきた紙テープの特徴を反映している。
紙テープには改行がなく、どこまでも一行でつながっている。
だから改行ではなくデリミタで行の終わりを示すという発想になる。
これは時期の近いPASCALも似ている。
568 :
名無しさん@12周年 :2011/10/16(日) 16:57:35.58 ID:DCiic+lO0
>>26 UNIX板がなければ2chはとっくの昔に終わっていたよ
>>561 よっぽど大きな構造体でないと目に見える様な差は出ないんじゃね?
頭の中で慎重に反芻して、ようやく「ポインタを理解した!」と閃いて いざコードを書こうとすると、*とか&とかどこにどう置いていいのか 考えてるうちに、閃きも雲散霧消する。 さっきの理解が正しかったのかどうかもわからなくなる。
>>552 そういう問題じゃないと思うよ。
>>554 貧弱なパーサでもOKというのがあるんだろうね。
産業用・教育用としてはソース整形を
決まりきった形に強制するほうがいいと思うけおdね。
>>567 それで思い出した。
DOSが改行を 0D0A の2バイトにしているっていうのも、ヨケイナコトヲ
と思っているうちの一つだな。
コボラーとリスパー元気?
574 :
名無しさん@12周年 :2011/10/16(日) 17:00:26.62 ID:KF3UGYne0
構造体の実体渡し これでメモリー不足も初心者がよくやるんだよなぁ その場合、ポインタのありがたさがよく分かる
>>563 Pythonの強制インデントをうるさく思うような人は、
普段はインデントなんて無視して書いてんの?
そんなコード読むのやだなぁ。
>>573 コボラーは知らないが
MAXIMA使うためにはLispの(最低限の知識)は必要なんだよな。
楽してポインタなんか使ってると 結局ダメ人間になるって話だよね
>>566 カッコをミスして消すとかと、同じレベルだと思うよ?
インデントのほうが、ブロック全体にわたるので
そういうミスは少ないね。
>>575 インデントは無視しないけど、
インデント=スペース1個
っていうのは やむを得ず、やることがあるw
かといってPythonの TAB=スペ^ス8個 っていうのは多いと思うんだよな
580 :
名無しさん@12周年 :2011/10/16(日) 17:04:44.14 ID:KF3UGYne0
>>578 うっかりインデントを狂わせたとき、もとに戻すのが面倒なんだよな。
全部よまなきゃならんし。
その点、カッコの方がエディタで対応するカッコを探しながらできるので
楽な様な気がする
かつてPGになりたいと思った。 そこでまず派遣で評価する側から入って、勉強しようと思った。 しかしPGになると趣味は辞めるしかないほど自分の時間が持てないと知って、 (評価ですら深夜残業だったし。) 仕事として覚えるのを辞めた。
>>572 キャリッジリターン(CR)とラインフィード(LF)なんだよな。
で、Macの場合CRだけでunixはLFだけだったかな?
それ以外にもまだ変な制約残って無かったかな?
テキストに^Zが入ってるとそこから後ろが読めなかった様な記憶が。
たしかセクタ単位でしかファイルの大きさを管理できなかったCP/Mの為に、テキストの最後にEOFを置いた名残だとか。
584 :
名無しさん@12周年 :2011/10/16(日) 17:06:27.69 ID:Snb2Cssq0
>>577 半分は賛成するけどポインタが無くても成立言語は多数あるぞ
そういや、今、ハンガリアン記法ってどうなん? ボクは未だにPython使うときも sFilename="file.csv" って書くほうなんだけど。
>>579 その点は完全に同意。
TAB=スペース4個で規格を統一しなかった先人どもは、今すぐ首吊って死ね!!
587 :
名無しさん@12周年 :2011/10/16(日) 17:09:26.01 ID:KF3UGYne0
>>585 嫌い
それよか
S16BITとかU16BITにマクロで置き換えたほうが好き
>>584 Javaなんかポインタがない様に見えて実はプリミティブ型以外は全部ポインタだぞ。
だからNullPointerExceptionを出してガッされる。
>>585 厳密に従ってないけど、
strXXXやblnYYY、数値変数はvalだのnumだのcntだのを接頭辞にしてる。
これは言語の垣根を越えてやってるよ。
型でなく、用途を表現する様にしてる。
マジか!? ご冥福をお祈りいたします
593 :
名無しさん@12周年 :2011/10/16(日) 17:11:19.33 ID:3xkHBY1w0
Cにポインタがある理由 ブートローダ、カーネル、デバイスドライバを作るため 物理アドレス(論理アドレス/ページ)を参照出来ない言語では、作れない
>>585 それは、間違ったハンガリアン記法だから。
Wikipediaでも読んで勉強しなおそう。
>>591 システムハンガリアン っていうんだっけ?
変数型を前にもってくるやつです。
>>594 そっけ。
文字列はs
ポインタはptr から始めるっていうのが身についた癖なんだがなぁ。
>>593 あと、基本的に関数が値渡しだから だと思う
599 :
名無しさん@12周年 :2011/10/16(日) 17:17:12.00 ID:WN8K/q9p0
>>597 間違っているけど、それもそれで
結構普及しちゃってるからなぁw
でも型変えた時が面倒なんだよなー
>>567 MVS のデータセットは、レコードサイズあるからなあ。
ファイル自体が、単なるバイト列じゃない。
カードに由来してるかどうか、知らないけど。
>>572 DOS というか、テレタイプの制御をそのまま出してるだけ。
UNIX では、TTY ドライバが LF->CR LF に変換してる。
ファイルとかは、LF だけ残す。
>>597 言い出しっぺが言いたかったのは、そっちじゃない方でしょう。
今でも、偶にそういうソースを見るけど、解りにくいよ。
変数の頭は、本来の意味で付けて欲しいね。
>>601 昔はリターンキーが[復改]だった機種があったね。
行頭に復帰して一行送る、だからCR+LFなのはわかるような。
>>602 そっけ?
Windowsのプログラムみたとき
lpszMenuName;
なんていうのがあったが。
自分の中では ポインタは ptr で始めるっていう規則は結構役にたったんでな。
(改めて考えて見れば 文字列をsで始めたからといって、役に立った覚えはねぇなw)
606 :
名無しさん@12周年 :2011/10/16(日) 17:26:16.40 ID:4Hri+NQkO
>>596 でもJavaのアレは参照というよりポインタだと思う。
参照ならば必ず何らかのオブジェクトを参照しているべきで、
(オブジェクトでもない)nullを代入できるのはおかしい。
今更だが、 null って ナル だよな?
>>605 言いだしっぺとは違うチームのプロジェクトだったんだろう。
社内で既に間違った理解のされ方で感染が広まったらしいし。
609 :
名無しさん@12周年 :2011/10/16(日) 17:29:27.99 ID:gBJxJrTr0
>>379 亀レスだが、C++でそんな処理にクラス多用するのはバカだよ
C++のオブジェクト指向は内部的にはただの関数呼び出し(仮想関数は関数アドレスのテーブル)
だし、オブジェクト指向だから速いだの遅いだのは無い
C++も使い方による。C標準のqsortよりSTLのsortが速くなることが多いのは有名だが
ベクトル処理なんかでも、インライン化されてない加減乗除の演算子オーバーロードとか使ったら遅い
そんなもんクリティカルな部分で使うやつがおかしいw
>>607 データベース屋さんは「ナル」と読む人が多い。
それ以外は「ヌル」が多いかな。
>>608 今頃Wikipedia見ているんだが、それはつまり
アプリケーションハンガリアンとシステムハンガリアンの違い
ってことですかい?
ぬるぽの元祖は ぬるいなー へぼいなー なんかこんなのなまぬるくてやってられないんだけど はっきりいっちゃうといろいろとあれだし ぬるぽ と区切っていっておくか その意図を読み取ったツレが ガッとたたく これが起源です nullとかはあとずけです
ついでに聞くが warning って ウォーニングだよな? StarWarsがスターウォーズなら warningはウォーニングだと思うんだが。
>>606 参照とポインタの違いはそこじゃないよ。
615 :
名無しさん@12周年 :2011/10/16(日) 17:35:13.21 ID:KF3UGYne0
Warnningもワーニングと読むヤツとウォーニングと読むヤツに別れるよな
>>522 lea eax,[eax*4 + eax]
みたいな、i386以降で出来るレジスタ内容をシフトして加算するやつの事?
これだったら、CPUの演算機能を使わずに演算が出来るので、かなり重宝したわ
昔は乗算器が遅くて、どう使わずに計算するかに苦労したのも、今ではいい思い出・・・
>>605 そういうの見ると、
ロングポインタって、ロングじゃないポインタも使うの?
ゼロ終端文字列って、ゼロ終端じゃない文字列使うつもりなの?
(Pascal型な文字列でも使うつもり?)
って思うわな。
酷いのになると、C++でstring型の変数にlpszとかつけてたりするし。
>>616 自慢じゃないが、昔、ボクが設計したワンチップマイコンでのサーボは
ゲインは2,4,8,16と、2のベキ数でしか設定できなかった。えっへん。
ワーニン
未だに、++も#も使えない、オールドタイプが記念真紀子
>>617 VisualCで、文字列のポインタが*から^になったときは絶望したな。
もうついていけないとw
623 :
名無しさん@12周年 :2011/10/16(日) 17:39:06.68 ID:wkAvY17a0
>>612 いまいちピンと来ないな。本当なのかそれ?
>>605 今は、開発ツールで、その変数の型を表示してくれたりするでしょう。
変数名に付いていても付いていなくても困らない。
付いていると、最初の何文字かは読み飛ばしながら変数を追いかけることになるし。
で、人の所で開発したソースで、付いているのと付いていないのが混じっていると、あーあと思う。
関数の説明書位なら、変数名はあまり気にせずに、横の型を見るからいいけど、
昔は、マイクロソフト自身が、間違った方を奨励していたんだよね。
625 :
名無しさん@12周年 :2011/10/16(日) 17:41:23.88 ID:4Hri+NQkO
>>613 辞書引けばわかるだろwウォーニングだよ
627 :
名無しさん@12周年 :2011/10/16(日) 17:44:09.17 ID:8aEXB1KJ0
若い奴はコボルをきっちり勉強しとけよ。 需要不足だからな。
>>626 だよな。
だけど日本語の取説で「ウォーニングが出たときには、、」とか書いてあるのを
殆ど見たことないんだよな。
>>623 俺はぬるぽが誕生する瞬間をリアルタイムで見た。
何年前か忘れたがプログラマ板で「NullPointerExceptionをぬるぽと呼ぶスレ」というクソスレが立った。
あまりの馬鹿らしさにすぐそのスレの1をガッと殴るレスがついた。
そのぬるぽ→ガッのコンビはあれよあれよと言う間に板全体に飛び火し、気が付けば別の板にまで拡散して行った。
みんな多分、本当の意味は知らないとおもう。
そうは言うが、query をちゃんと発音している奴なんか、見たこと無い
>>625 ポインタは演算できるがリファレンスはそうじゃない。
>>631 いや、もともと英語を正確にカタカナで書くのはムリなのはわかっているけどさ、
warはワーよりはウォーだろうと。
635 :
名無しさん@12周年 :2011/10/16(日) 17:49:10.45 ID:8aEXB1KJ0
ウォーなんて表記する奴は、三十年前に滅多にいなかったんだよ
>>627 供給不足ってことか?
何年後かにはJavaがコボルのポジションになりそうだ。
でもJavaはフレームワークもバラバラで大変だろうなあ。
>>635 StarWarsは「ちゃんと」スターウォーズって書いたじゃないですかー
638 :
名無しさん@12周年 :2011/10/16(日) 17:51:18.60 ID:4Hri+NQkO
>>632 うーむ…
「演算(加減算)できること」はポインタの必須要件なんだろうか?
たとえばPascalのポインタ型は加減算できない。
639 :
名無しさん@12周年 :2011/10/16(日) 17:52:00.95 ID:8aEXB1KJ0
ν速+とは思えない進行だな。
ポインタって無茶苦茶な事できるもんな 後から読むと書いた本人ですら分からなくなるくらい
643 :
名無しさん@12周年 :2011/10/16(日) 17:54:25.41 ID:tBL16CyP0
>>629 オフコン&汎用機は、なんだかんだで中々消えないからなぁ・・・
>>638 ポインタを用語としてとらえるかどうかだけど。
それは用語におけるポインタではないね。
単にそういう風に名付けたというだけ。
つか、今はもうC/C++が供給不足だぜ。 組み込みの現場とかだと、20代がまったくいない。
>>638 それは
char s[10];
char c
char *p
p=s;
c=*(p+3);
みたいなコトが出来ないってことですかい?
>>645 きょうびC/C++プログラマなんて流行らんのだろ
別に日本語できる必要ないしインド人とかが人件費安くて良いんじゃね
>>645 組み込みにCを使わないとすると、何使うんすか?
少なくともうちの会社だとC、アセンブラ(デバッグで使えればOK) 必須だが。
>>645 案件の需給なのか、人材の需給なのか、文脈を統一してくれ。
組み込みとはちょっと違うのかもしれないけど、 STBとかアプライアンスとかだと、Linuxが乗ってるからPythonでとか。
652 :
名無しさん@12周年 :2011/10/16(日) 18:01:54.51 ID:wkAvY17a0
ウォって書くなよ日本語でヲって既にあるだろが。
>>649 あぁ、すまん(若い)人材が供給不足ってこと。
定年間近のおっちゃんがはんだごて片手にコーディングしてるのはいいんだが、
若い奴は少ないねぇ。
C++は駄目だ これからはD言語の俺たちの時代
656 :
名無しさん@12周年 :2011/10/16(日) 18:04:32.63 ID:WN8K/q9p0
>>605 メイヤーが書いてるけど、型安全な言語で変数名に型を明示すると
あとあと型が変わったときにソースコードを全部書き換えるハメになる。
書き換えないと、ハントのいう「二重化の禁止」に反して(人的な)バグの原因になる。
一方、サッターは型安全でない言語では有効であろうとちょっと理解を示している。
実際のところ、Windows APIはC言語から呼ばれる事を前提にしているし
APIの型が変わることは多分ない(必要ならEXとかつけて新しいAPIを作っちゃうから)ので
Windows APIでlpszとかくっついてる分にはまぁぎりぎりありかな、と。
657 :
名無しさん@12周年 :2011/10/16(日) 18:04:37.21 ID:wkAvY17a0
正しくは「ヲゥーヌィン」だ。
>>654 残念ながら、Z言語っていうのがあるらしいw
(ちなみに、Z++っていうのも、やっぱりあるらしいww)
659 :
名無しさん@12周年 :2011/10/16(日) 18:05:02.58 ID:8aEXB1KJ0
スターヲーズ だめだこりゃ
660 :
名無しさん@12周年 :2011/10/16(日) 18:05:38.93 ID:R6p00iOL0
もうJavaでいいやと思って幾星霜だが JVMの動かない環境じゃCが必須なんだよな JavaをCやC++に翻訳してくれるバインドないかしら
661 :
名無しさん@12周年 :2011/10/16(日) 18:07:41.05 ID:YrTbu6c60
>>631 自分はクエリーって読んでるけど、
IBMのオフコンやってる人はキューリーって呼んでた。
>>557 自分を返すクラスとかだと、
con.select("項目").from("テーブル").where(eq(a,b)).where(gt(c,d), ADD).limit(5);
みたいに延々と続くから、改行終端はいらないと思う。
663 :
名無しさん@12周年 :2011/10/16(日) 18:08:21.05 ID:WN8K/q9p0
>>660 つJ++
SUNが「独自拡張すんな」って難癖付けなければ
それなりに便利で速いネイティブアプリが作れたのにねぇ…w
>>661 queueを「クエウエ」って訳してるマニュアル見たことあるよ。
音楽関係のソフトだったけどな。
667 :
名無しさん@12周年 :2011/10/16(日) 18:11:43.48 ID:wkAvY17a0
>>666 ああキューか。じゃあqueryはキュリーが正しいんだろうな。
>>666 そいつがCの本書いたら
stdio.h をスタジオヘッダー って訳すんだろうなぁ。
>>665 Visual Studioに入ってるJavaかな?
絶滅したんじゃないかな。
670 :
名無しさん@12周年 :2011/10/16(日) 18:12:11.68 ID:8aEXB1KJ0
queryはキュェリィだと思ってたんだがな
>>540 アセンブラレベルだと添字とポインタ指定はぜんぜん違うコード吐く。
てか添字の場合だと、参照のたびに配列の先頭番地+(添字×型のサイズ)が入る。
今のコンパイラはどう最適化するか知らんけど、昔ペースメーカーの開発とかで
添字指定でやってたりすると蹴られたりした。
答えが解らないから言うけど スタンダードアイオーヘッダって言うとネタバラシになるの?
674 :
名無しさん@12周年 :2011/10/16(日) 18:15:09.74 ID:WN8K/q9p0
でも、facadeを最初からファサードと読める奴は少ないと思うんだ… さらに、ファサードがなんなのか知ってる奴はもっと少ないと思うんだ…
TeXは本当は テッハ と読むらしいぞ
width もカタカナ表記しづらいな。
俺が高校の情報処理科の時はCOBOLを習ったが 今の高校の情報処理科は何を習ってるんだ?
>>675 テフかテックだろ。 テックスじゃないことだけは確かなはず。
>>673 実際にそうやって発音してる奴いるのかな?
>>677 真ん中の娘は工業高校なので、C++とシーケンサーのラダー
下の娘はタートルグラフィックやったって言っている。
683 :
名無しさん@12周年 :2011/10/16(日) 18:20:24.17 ID:wkAvY17a0
684 :
名無しさん@12周年 :2011/10/16(日) 18:21:22.04 ID:Pf+CRdEf0
#ってあれだろ? C++の Label->Text を Label.Text ってかくやつ。 まぁ確かにこのあたりはC#のほうが美しいなぁ
>>674 建築系では普通に使われてる単語なんだけどね。
688 :
名無しさん@12周年 :2011/10/16(日) 18:26:03.55 ID:R6p00iOL0
J++もJ#もWinで使う分には Win用のJVMが十分速いからいらんような気もするが 出来上がったEXEは目茶速いんだろうか ちょっと入れてみるわ、アリガd
689 :
名無しさん@12周年 :2011/10/16(日) 18:27:17.69 ID:ArXtqD+B0
D言語はいつになったら時代がくるかねぇ
トンプソン? カーニハンじゃないの?
CとLISPは小学校で教えておくべき
stdio.h とか スタジオエッチ にしか読めない時点で いかがなものだろう 演算子>> ^ || とかポインタ * も全部そう もっと人間に発音しやすいコンピュータ言語ほうが 人間の間違いが減ると思う
693 :
名無しさん@12周年 :2011/10/16(日) 18:30:26.72 ID:k15bNYte0
Cはくるよ!Cは未来!
>>692 「現在の所持金は?」と、尋ねて、所持金に、入れる。
もし、所持金>5000{円}ならば、(
「新しいマウス買いますか?」と、二択。
もし、それが、はいならば、所持金=所持金−2000{円}
)違えば(
「マウス買うと生活費に困るので買いません。」と、言う。
)。
「現在の所持金は、{所持金}円」と、言う。
695 :
名無しさん@12周年 :2011/10/16(日) 18:32:15.20 ID:wkAvY17a0
なるほど女の子にそれを言わすためだけにネタ振ってるのか・・・。
>>694 COBOLのソースって、ほとんどそんな感じじゃないか?
697 :
名無しさん@12周年 :2011/10/16(日) 18:39:42.90 ID:k15bNYte0
指が減るこぼる
>>695 「挿入する前にちゃんと嘗めないと駄目だよ」
って会話が聞こえて、何かと思って振り返ったらDBのINSERTについて指導してた。
699 :
名無しさん@12周年 :2011/10/16(日) 18:43:22.06 ID:R6p00iOL0
>>678 面白そうだ
自分でソースの確認もできるし
アリガd
700 :
名無しさん@12周年 :2011/10/16(日) 18:43:40.45 ID:4Hri+NQkO
>>646 そういう事。
Pascalのポインタはリストや木構造などの再帰的なデータで次の要素を指すために使う。
ポイントはするけど、抽象的な意味で対象を指しているだけで、
Cのようにメモリ空間と結びついているわけじゃない。
ポインタに値を足したり引いたりしても意味がないし、
そもそもそんなコードはコンパイル時にエラーが出て通らない。
701 :
名無しさん@12周年 :2011/10/16(日) 18:44:15.85 ID:Ho1f9fXu0
A言語ってのは無いの?
702 :
名無しさん@12周年 :2011/10/16(日) 18:45:28.25 ID:Pf+CRdEf0
>>694 そう言えば、日本語プログラミング言語MINDってあったね。
>>696 >>694 の書き方じゃないけど、富士通謹製の日本語COBOLを読んだときには頭が痛くなった。
703 :
名無しさん@12周年 :2011/10/16(日) 18:47:28.21 ID:ArXtqD+B0
日本語プログラミング言語はなにがまずいか考えたけど やっぱ文字のでかさとスペースの不必要性だよ 読みにくい読みにくい
var pointer p,q; integer i; q:=pointer(integer(p)+4)); でOK
705 :
名無しさん@12周年 :2011/10/16(日) 18:49:14.27 ID:Yd9qtCX/0
デニス・リッチーも糞、カーニハンも糞、クヌースも糞。 ジャブズが最高!レオナルド以来の大天才!ウォズは従業員(笑) それが、アップル狂信者
706 :
名無しさん@12周年 :2011/10/16(日) 18:50:24.97 ID:xuWZkmG90
言語は、AからZまである
707 :
名無しさん@12周年 :2011/10/16(日) 18:51:02.09 ID:Yd9qtCX/0
ジョブズはGUIを作った!NEXT STEPを作った!ぴくさーも作った! 最強の技術者!ゲイツは今すぐ氏ね! あらゆる意味で間違ってるのが、アップル狂信者
ゲイツって結構しぶといよな
>>557 グローバル変数はデバッグしづらいというのと、
他への転用が難しくなるという問題がある
externは非常に面倒だし
> func( int a, int b, int c, float d, char *s )
func(
int a, /* 1 : a */
int b, /* 2 : b */
int c, /* 3 : c */
float d, /* 4 : d */
char *s /* 5 : s */
); /* end of func */
という書き方が出来るのがCの良いところ
美しくないかもしれないが、見易い
710 :
名無しさん@12周年 :2011/10/16(日) 18:56:20.44 ID:XBx3KQfz0
>>707 オープン化しないOSでな。なんで、評価しないよ。
711 :
名無しさん@12周年 :2011/10/16(日) 18:58:41.00 ID:k15bNYte0
ジョブズ>ゲイツ>インテル>ベル研
>>709 あーそれはちょっといいですね。
今後採用させていただきます。ども
713 :
名無しさん@12周年 :2011/10/16(日) 19:01:47.34 ID:F2eeTWeg0
マッカーシー → ジョブズ リッチー → ゲイツ 例えるならこんな感じ Cはハード側のアーキテクチャに沿った愚直な言語だけど、 論理的なエレガントさは皆無。
>>557 おお、なんか同意。
俺も教条主義的に
>>562 の作法だったけど、苦労のわりには
可搬性向上しないよね。
716 :
名無しさん@12周年 :2011/10/16(日) 19:15:59.33 ID:k15bNYte0
マッカーシーって誰やねん?
718 :
名無しさん@12周年 :2011/10/16(日) 19:23:56.80 ID:4Hri+NQkO
>>704 Pascalの話だとすれば、Pascalではポインタの値を整数に型変換できないよ。
もし出来たとすれば、それは処理系の独自拡張。
ポインタの値がアドレスになる(だから整数に型変換可能)というのはあくまでCの流儀。
ポインタ操作を実際のメモリ空間にマッピングしたのがCの言語仕様の上手いところ。
>>9 理解したいなら、CコンパイラがあるCPUのアドレッシングモードを勉強しよう。
x86系のアセンブラで検索すればわかりやすいサイトもあるだろう。
まずはそこからだ。
プログラミング言語Cは共通アセンブラ、
Cのポインタで悩むよりも、CPUの勉強した方が手っ取り早い。
>>709 そこは
func(a ,b ,c ,d ,s)
int a; /* 1 : a */
int b; /* 2 : b */
int c; /* 3 : c */
float d; /* 4 : d */
char *s; /* 5 : s */
{
}
だろ、スレ的に考えてw
構造体も理解するの大変だよな a.b.c a->b->c
722 :
名無しさん@12周年 :2011/10/16(日) 19:43:22.09 ID:k15bNYte0
蟹飯
>>719 こういうロートルのいうことは信用しないほうがいいよ。
724 :
名無しさん@12周年 :2011/10/16(日) 19:50:09.48 ID:Q3hLdN7W0
aマイナー be動詞 c言語
725 :
名無しさん@12周年 :2011/10/16(日) 19:50:37.11 ID:k15bNYte0
デニスリッチー マークリッチー
726 :
名無しさん@12周年 :2011/10/16(日) 19:57:03.13 ID:k15bNYte0
ピンカスグリーン
ポインタの取っ掛かりについて、 ポインタなんてCPU寄りの機能なんだから、CPU寄りの勉強したら判る。 直接アドレッシング、間接アドレッシング、アドレッシングモード、辺りのキーワードでググって 片っ端から読めば判る。 図解されてるからそれを丸覚えすればいいw
ポインタ mov (%esp),%eax mov $0x3,(%eax) 値 mov $0x3,(%esp)
>>727 別にそこまでやらんでも、要は扱ってるのが
何の値なのかが解ればよろし
>>417 マジで動いてワロタw
まんま8086だな。
てか、互換モードで残してるだけだよね。
731 :
名無しさん@12周年 :2011/10/16(日) 20:23:21.58 ID:JWbDZZMm0
デニス・リッチー Dennis MacAlistair Ritchie C言語とUNIXの父 リチャード・デニス Richard J. Dennis タートルトレーダーの父、ピットのプリンス、 400ドルを数十億ドルにした伝説の投機家 なんか紛らわしいとおもた。
732 :
名無しさん@12周年 :2011/10/16(日) 20:25:58.46 ID:R6p00iOL0
Winのアセンブラもハード周りいじるときはAPI叩いてるだけよね 新し目のPC用に書かれたアセンブラコードって 古いPCじゃ動かなかったりするし ソースに動かした環境の詳細をコメントに書いといて欲しいなぁ
ジョブズはjobs(雇用)を作ったが、 リッチーはrichには、なれなかった。
JobsのせいでまたCなんかつつかなきゃならないなんて! 時代に逆行してる感が半端ないです
>>733 いい加減Javaに統一してくれって言いたいよな。
>>730 つっか、今のCPU (オレのはCore2Duoだが)
って基本、8086だろ?
>>730 それに
>>429 に示したように、今のWindowsって、基本、DOSだろ?
(それは違うw)
>>740 うむ。そう思う。
多分100年経っても、NOP=0x00だと思うw
何年経っても0xCCはブレイクでww
100年前から halt は 0x76 だ
744 :
名無しさん@12周年 :2011/10/16(日) 20:41:57.28 ID:R6p00iOL0
いつかはx86もVMが標準になるんだろうけど まだまだnativeの速さにゃ分があるか
745 :
名無しさん@12周年 :2011/10/16(日) 20:44:27.58 ID:VWrQ4faa0
(*゚ー゚)言語 (#゚;;-゚)言語
>>737 Javaってサーバサイド専用言語になっちゃってない?
メモリもよく食うよね。
>>743 100年前ってと1911年?
歴史はとんと判らんが、所謂コンピューターが
できたのって、1900年代半ばじゃなかったか?
>>746 GCCは無料ですよ。
しかも、かなり昔から・・・。
そういや、LSI C-86 v3.30c 試食版 ってまだあるのか?と思ったら、 まだあるので、ちょっと驚いたw
>>749 知ってる。
windows界隈ではインスコが面倒だと思う。
ポインタがわからんとか言ってるやつって、 C++のテンプレートとか、ジェネリックプログラミングとかも 理解できないんじゃないだろうか。ベタとメタの区別がつけられない脳 なんじゃないかと思う。
>>749 そもそもGCC自体が有料っていうシチュエーションが一度でもあったかしら。
寄付は出来るしパッケージにして売るのは誰でも出来るけど。
>>749 GCCはGPLなところが気に食わんw
GPLのナニが気に食わないかというとMySQLがGPLなので気に食わんのw
今はWEb系でどうたらとか書いてるやつがいたけど WEB系でもブラックボックス作るときとかはC便利だよ。 クラウドでもセキュリティ上がるし、簡単
>>737 Javaみたいな生産性低い言語に統一されたくないな。
>>253 Space War!はMITの学生さんの作品でDEC PDP-1のアセンブリ言語で
記述されてたはず。UNIXより古いよ
>>756 CでWebに限らずネットワークプログラミングするのは
セキュリティを確保するのが面倒だけど、
なにかいいチェックツールでも使ってんの?
>>757 MySQL 企業 ライセンス
あたりでググってくれ。結構悩んでいるヒトって多いと思うぞw
>>761 GPLがいやなら買えばいいじゃん?
何を悩む必要がある。
>>754 DBはポスグレ、コンパイラはLLVMですね。わかります。
FreeBSDはチャレンジャーだな、と思う今日この頃。
>>761 結構複雑なんだね。
買うか訴訟で白黒つけようかって話なのかw
MySQL も Java も Solraris も悲しことにボラクル配下になっちまったからな 前みたいに使いたいとは思わないな
>>764 何を読んだか知らないけど、誤解・間違い情報で把握してると思うぞ。
767 :
名無しさん@12周年 :2011/10/16(日) 21:28:50.75 ID:Yn9nlkyv0
>>752 ポインタは概念が難しいんじゃなくて
表記法が紛らわしいのが問題なんだと思う
あれはソース読んでて辛い
768 :
名無しさん@12周年 :2011/10/16(日) 21:29:07.62 ID:k15bNYte0
>>748 紀元前150-100年 アンティキティラ島の機械
>>765 MariaDBとOpenIndianaに期待しようぜ。
Javaはもう個人的には見捨ててるのでどうでもいいや。
>763 つJuniper
>>769 あ、俺もMinGWの人だ。統合開発環境はReloさん。
CygwinよかGPL縛りが少ないのでうれしいのだ。
773 :
名無しさん@12周年 :2011/10/16(日) 21:40:03.67 ID:1i8g9leS0
ポインタはややこしいのは事実だが、ポインタよりややこしいことはプログラミングやってればいくらでもあるわけで。 最初に少し躓くぐらいならいいけど、何回勉強しても分からないってのは向いてないか、もしくは実践せず理論だけ勉強しているからだろう。 あと、C++以降の参照も、基本的にはポインタと機能的には共通する部分が多いので、 ポインタが理解できないと、参照もきちんと理解できなくてバグだらけになりそう。
Cは最初smallCから入ったけど、余計なことできない分簡単だったよ。
cygwin使うよりVirtualBoxにlinux入れたほうが良いと思う
>>775 それって、ちょー不安定でしょ。
BSD上のVirtualBoxにXPが、鉄板。
ポインタは「どこでもドア」だと思えば良いんだよ。 ドアは1つだけど行き先を指定できて、(転送を伴わず)物理的にアクセスできる。
全然不安定じゃないよ。少なくともubuntu系列は
unityはちょー評判悪いけど
780 :
名無しさん@12周年 :2011/10/16(日) 22:05:10.93 ID:k15bNYte0
うぶんちゅ
ポインタは解説書の教え方も良くないと思うんだよね。 「ポインタはメモリのアドレスを示す変数である(キリッ」で始まって その次にメモリ1バイトとポインタ変数一つを矢印で結んだ図を一つ 示すだけで終わってるような糞な解説書が山のようにあるからな。
ポインタがわからないやつはゆとり
ジョブズより1000000000000000000倍偉大なのにな。
784 :
名無しさん@12周年 :2011/10/16(日) 22:13:37.35 ID:Pf+CRdEf0
>>781 メモリ1バイトと「そのアドレスと」ポインタ変数一つを矢印で結んだ図
ではない?
786 :
名無しさん@12周年 :2011/10/16(日) 22:15:37.25 ID:62xAPsZG0
ポインタは、アセンブラのアドレッシングモードをC言語で実装したものである。 あとは、アセンブラやれで、いいじゃん。
>>777 そういう自己流表現を使う人が、
初心者が路頭に迷う原因を作る。
>>719 JAVAはゲーム感覚、C/C++は茨の道、アセンブラは地獄へ通じる道、バイナリ直接いじるのは人間辞めてる人用
F社バブル入社でメインフレーム主体の部署配属されたのに なぜかUNIXとCから入ったオレはラッキーだった
>788 えー バイナリパッチはパズル的楽しさがあるし あんくらいできないとプロとは言えんでしょ
計算機の中のことなんて一々考えてられないよ プログラムのテクニックなんて遠い昔話
>>787 コンピュータ屋って変なたとえ話好きよね。
クラスとインスタンスを何に例えるかでその人の性格が分かる。
一番良いのはたとえ話にせずに用語を覚える事だと思うけど。
未来 = 俺 ? ヒキ : ニート; 無駄なIf文を駆除できる三項演算子マンセー!
794 :
名無しさん@12周年 :2011/10/16(日) 22:32:41.93 ID:KF3UGYne0
ポインタを理解するにはCコンパイラが吐き出したアセンブリコードを読むのが 一番オススメ まあ別にポインタに限らないが…
795 :
。 :2011/10/16(日) 22:35:07.94 ID:ZQYrJaAy0
会社のベテランSEからCOBOLとCを仕込まれた。オレ文系で簿記のスペシャリスト目指してたのに先ずJavaとRuby勉強させられてようやく経理に戻れるかと思ったのに。しょうがないからプロジェクトマネージャーでも目指すかなぁ。
ジョブズよりよほどコンピュータ関係の業界に大貢献したリッチー やすらかに
ポインタの概念自体は簡単だと思うけどなー てか、ポインタ周辺の配列とか文字列あたりが絡んだ文法がカオス化してるのが分かりづらいんじゃないね?
>>789 メインフレームから専用機、UNIXからWINDOWS,PCも鯖もCOBOLもCもVBもshellもJCLもhtmlも何でもやったよ、俺。
挙句の果てに体壊して退職、現在はバイト生活だ(泣)。
799 :
名無しさん@12周年 :2011/10/16(日) 22:38:36.79 ID:62xAPsZG0
文法が悪いのは、間違いない
>>771 Juniperがわからなかったのでググってきた。
おー、FreeBSDも支援してる企業がいるんだ。
801 :
名無しさん@12周年 :2011/10/16(日) 22:40:20.96 ID:uyqkgamY0
rm -rf "Masayoshi Son"
>792 変な例えされると、概念を知っていても結びつかなかったりするしな。
>>792 ,
>>802 喩え話じゃないけど、最初に読んだクラスの解説が、
「ネコのクラスを作ってみましょう」だったw
元クラスのネコ(にゃーと鳴く)を継承してメンバ変数メンバ関数
(毛の色とかネズミを捕るとか)増やしていくんだけど、
「ネコの本質とはニャーと鳴くことなんだろうか?」
という疑問が気になって頭に入らんw
>798 オレもC、VC++、UNIX、Windows、P言語、Java、その他いろいろやった メインフレームはLDLちょっとかじったかな で、鬱休職w その後、ラクな部署に配置転換
>803 prologの説明で、犬で例えたのを見たこと有る。 頭の中ではDBのテーブル、レコード、インデックスのようなイメージ(もう少し複雑だけど)でモデル化してるので、クラスの説明がそういう内容だと少し混乱するかな。
806 :
名無しさん@12周年 :2011/10/16(日) 23:00:29.87 ID:k15bNYte0
Whitespace Piet
>>798 とかか技術は高そうなのに仕事に窮するって人多そうだな。
でもPGってのはいつの時代も必要なわけで、レベルの下がった今の新人を鍛えるより、
こういう人を採るほうが効率的だと思うんだが。
新卒PG育成の場面を見ていつも思う。
あー死んじゃったのか コボルのおばあちゃんも死んじゃうし 今の時代の基礎を担った人がどんどんいなくなっちゃうな
新人にポインタ教えるためにブラウザゲー用のチートアプリ落として、 この7Eうんちゃらがアドレスでvalueが値。 アドレス入れるのがポインタでvalue入れるのが変数ってやってたら 始末書書かされた。
いずれ誰もCを使わなくなっても、COBOLはしぶとく残ってるんだろな
>>809 ワロスwwwむしろそういう方が早く覚えるのになwww
>>810 Cもしぶといと思うぞ、高級アセンブラとしての地位はもう不動だろ
812 :
名無しさん@12周年 :2011/10/16(日) 23:14:55.33 ID:vJsjcUQs0
Linux とかコードのスレだと 市ねカスとか小学校からやり直せとか書かれちゃうけど、 ν速+の住民からはそれが無いのがすばらすい。
>>807 年齢的にITはどこも雇ってくれそうにないんでVisualStudio買って自宅で趣味でプログラムはやろうと思ってる。
814 :
名無しさん@12周年 :2011/10/16(日) 23:16:29.23 ID:rSM2x23c0
>>796 禿同
ま、文系のやつらにはわからんな
>>797 ポインタのポインタまでは問題ないが、ポインタのポインタのポインタは相当集中しなければかけないな。
で、後からみても分けわかんなくなる
>>813 中小の社内SEとかの口は無いん?
中小なら即戦力ウェルカムだろうし
便利屋的に動けると重宝されると思うけど
Cは仕事で使わない限りはもう触らなくてもいい言語だよ 参照だのイテレーターだの概念の元はポインタだからCを最初にやるべきって人もいるけど それはそれで学べばいいと思う
817 :
名無しさん@12周年 :2011/10/16(日) 23:19:35.55 ID:vJsjcUQs0
>>813 参考までに歳聞かせてよ。
恐らく、俺の方がもっとトホホだよ。
>815 プログラマとして復帰したいのでなければ、販売系のSEでも重宝されると思うよ。 それなりにプログラムできると新しいものが出てきた時に飲み込み早いから。 リクルートとか人材バンクに登録しておくと良い。
819 :
名無しさん@12周年 :2011/10/16(日) 23:27:13.64 ID:vJsjcUQs0
プログラマは慢性的に足りないよ。 自分を売り込め。
820 :
名無しさん@12周年 :2011/10/16(日) 23:27:14.78 ID:5NnJpMXm0
char c[3]; /* 文字列 */ char *p = c; /* 文字列cを代入できるポインタp */ で、ここからが問題。 文字列の配列 char s[3][5] がある時、 以下の変数pは明示的キャストなしにsを代入できるか? char **p; char *(*p); char *p[5] char (*p)[5]; そんでもってもう一つ。 関数 char *p() を明示的キャストなしに代入できる関数ポインタを記述せよ。 最後に、以下の宣言は有効か? char *p()[5]; char (*p[5])(); こういうのって、ポインタが理解できてるかどうかじゃなくて 単に宣言構文の解析をちゃんと理解しているかどうかだよね…。・3・;
821 :
813 :2011/10/16(日) 23:28:47.56 ID:c5EabGSw0
>>817 47
たぶんリーマンショック前なら何とかなったと思うんだが。現場にも60近そうなおじいちゃん、おばあちゃんの技術者
結構見かけたし。俺が辞めた頃はとんと見なくなったな。
>プログラマは慢性的に足りない・・・・ 家電、パソコン周辺機器の分野ではバシバシ削減してるけどね
>>819 職務経歴にCOBOLは書かない方がいいな
それだけで後はずっとCOBOL漬けにされるから
824 :
名無しさん@12周年 :2011/10/16(日) 23:31:41.73 ID:Pf+CRdEf0
>>813 ExpressEditionじゃダメなの?
825 :
名無しさん@12周年 :2011/10/16(日) 23:33:18.54 ID:vJsjcUQs0
>>821 ありがとう。
思った通り。若いね。俺50代半ば。
俺たちの世代のやるべき仕事ってのも
まだまだあるし。
追い越されたような気持ちにならないことが
追い越すんだよ。
ガンバレ。
826 :
名無しさん@12周年 :2011/10/16(日) 23:35:18.62 ID:Pf+CRdEf0
>>823 書いた。
転職先で20年ぶりにCOBOL書かされたよ。
すごく不思議に思うこと 公共機関のマシンで1年の日数を365固定で計算してバグが出たって記事のスレがちょくちょく立つけど、あれは一体なんなのか 閏年の計算も満足にできず、しかもデバッグもしないで納品してんのかと
>>277 >>278 >>285 サンクス。
HSPは手を出していたんだが、
ゲームのスクリプトってどう書かれてるのかが分からなかった。
そういうところからはじめればいいのか。
やっぱ自己流オンリーってのはダメだわな。
とりあえずそのフリーゲームでも探してくるとしよう。
>>827 ゆとり世代じゃ?
πが3とか一年が365日とか脳がつるつるになってるレベル。
830 :
813 :2011/10/16(日) 23:39:49.73 ID:c5EabGSw0
>>825 それが家庭の事情で困難なのよ。
1.将来的に家業を継がなければならない。
2.両親はどうせもう後そんなに長生きしない年齢だけど障害者の姉(当然結婚してない)
抱えてるんでずっと面倒を見なきゃならないのでまた体壊す可能性の高いIT職に
着くのはリスクが伴う。
831 :
名無しさん@12周年 :2011/10/16(日) 23:40:16.67 ID:FctlPeAb0
>>820 Cの宣言構文は、失敗だったと、本人も認めてたよな、確か。
ほとんどクイズな難解なものになってしまってる。
>>825 そのお年だと業界に入った頃は汎用機からですかね?
>>828 まあ、最初はNetHackのチートから始めれば?
追悼スレかと思ったら プログラマーズサロンでしたか
機械語→アセンブリ言語→C→C++ の順番でやるべきだろ、ものには順序ってもんがある リッチーさんだってこの順序でやったはず 最初にどの言語やるかでプログラマとしてどのレベルまで逝けるか決まるよ
836 :
名無しさん@12周年 :2011/10/16(日) 23:45:36.66 ID:Pf+CRdEf0
>>831 はじめはシンプルだと思って覚えたけどな。
なぜか第2版が出たときにちょっと悩んだ。
837 :
名無しさん@12周年 :2011/10/16(日) 23:45:41.30 ID:vJsjcUQs0
>>830 了解した。人それぞれ、色々あるね。
けど、
時間が許す範囲で、地道に取り込むのは良いかも。
何にせよ、あたなの境遇をお察しします。
838 :
名無しさん@12周年 :2011/10/16(日) 23:48:14.70 ID:Pf+CRdEf0
>>835 COBOL→C(囓り)→Z80→C→C++→Java→C#→COBOL
>>827 役所のCOBOLソースで○○会計1〜365まで変数宣言してあった事があると
上司が言ってたが、多分そういう事なんだろう。
自分も住基ネットで仕様書の量が足りないと突っ返されたことがあるし、
あいつら量りか何かで納品物見てんじゃないの
840 :
名無しさん@12周年 :2011/10/16(日) 23:53:14.82 ID:62xAPsZG0
> あいつら量りか何かで納品物見てんじゃないの 厚みで決めるって言うよな
(‐人‐)
>>814 オレ文系だけどリッチーの方が偉大だと思ってるよ
>>828 ゲームを作るためには必ずしもプログラミングが必要になるとは限らないけど
それは大丈夫なのかな?
ゲーム製作用スクリプトやツールを使ってゲームを作る事と
プログラミングを勉強することとは分けて考えた方が良いよ
>839 ライン数で金額を算定してる所も有るから、ページ数で見てるんじゃないの? 重さなら上質紙で出せば稼げるし。
844 :
名無しさん@12周年 :2011/10/16(日) 23:59:50.00 ID:62xAPsZG0
C言語を使うソースでも、ライン数を出せっていう場合もあるしな。
本物の理系ならこんな技術屋さんは評価しないだろうよ
846 :
名無しさん@12周年 :2011/10/17(月) 00:01:55.44 ID:2fmgsv/N0
>>844 行の水増しなら幾らでも出来るが、ポリシーが邪魔をする。
つうか、コーディング規約があるからあまり変な行は作れないよね。
ここ数年はないけど、5年前くらいまでステップ数で見積もり出せって言われてたよことあったよ ライン数ってのもあってコメントもライン数に入れてた 無意味にヘッダを長くしたことあったな
848 :
名無しさん@12周年 :2011/10/17(月) 00:05:27.65 ID:chB1iqn1P
そもそも人月って単位からしてインチキなんだし
849 :
名無しさん@12周年 :2011/10/17(月) 00:08:58.99 ID:6jZPrwdq0
ステップ単価。ふぅ〜。 少なくとも、COBOLよりは本質的なステップ単価は高いと思うよ。 けどね、時代が許さん。
>>842 ああ、そういえばゲーム作りと言語習得は別物って
ネットや本で散々みたけど、言われて気がついたわ
851 :
名無しさん@12周年 :2011/10/17(月) 00:10:18.89 ID:zpM2FTo90
>>848 今は、人月で見積もってやる請負開発のビジネスモデルは、すでに崩壊してる。
けど、エライ人や営業の人は、それが分からない。
ポインタは メールにファイルを添付して送りつけるのが数値渡しで、 メールにファイルが格納されてるサーバー名を書いて送るのがポインタ参照 ってイメージだとわかりやすいと聞いた
懐かしい。。 新人の頃(20ん年前)に最初に驚いたのがそれだったなぁ ソースのステップ数で見積もりするんだーーと(w
>>845 コンピュータサイエンスの歴史が浅いのだから、技術屋に見えるのは仕方がない。
855 :
名無しさん@12周年 :2011/10/17(月) 00:18:41.14 ID:6jZPrwdq0
ステップ単価って、アセンブラならフェアですね。 今の言語では、1行の示唆する内容が霊的(?)に多いでしょ。 あ、ここはデニス・リッチーさんの訃報スレだから、それは無いか。
856 :
名無しさん@12周年 :2011/10/17(月) 00:21:07.58 ID:gdicVrbw0
プログラミングに文系も理系も関係ないだろう。中学生でもできるんだから。 統計解析や3Dを直接いじるなら高等数学使うだろうけど。 あと、他のあらゆる勉強と同じで、本読むより手を動かしたほうがいい。 実践が先で理論は後。
857 :
名無しさん@12周年 :2011/10/17(月) 00:29:21.76 ID:6jZPrwdq0
>>856 文系も理系も全く関係ありません。
特にコンピュータは。
もっと言うと、理系の仕事も文系がやってますし、その逆もありです。
現実に文学の人がペンチや半田ごて握ってますよ。
出会いか「縁」でしょうかね。
>>844 SQLの場合、俺は1行に一個ずつホスト変数を書いていた。
ステップ数稼げるってのもあるけど書いてあるホスト変数に漏れがないか
否かテーブル定義書と横並びにして見ると分かりやすいんだわw。
860 :
名無しさん@12周年 :2011/10/17(月) 00:52:18.67 ID:AjEb/rxm0
カニ玉
while( *dst++ = *src++ ); で1ステップと数えられるのかねぇ
>>828 >ゲームを作るためには必ずしもプログラミングが必要になるとは限らないけど
>それは大丈夫なのかな?
>ゲーム製作用スクリプトやツールを使ってゲームを作る事と
>プログラミングを勉強することとは分けて考えた方が良いよ
今はそうなのか
昔はゲームプログラムが一番勉強になってたもんだが
863 :
名無しさん@12周年 :2011/10/17(月) 01:16:30.99 ID:2fmgsv/N0
>>862 ゲームはゲームプログラミングっていう別の分野と思ってる。ORACLE使えんのって話。
WEBアプリの会社にゲームプログラマが来ても経験年数に因らず素人。逆も然り。
最近のはシナリオゲームが多いんじゃね?
言語の習熟だけに頼ってると別言語来た時に死ぬ
868 :
名無しさん@12周年 :2011/10/17(月) 01:29:27.51 ID:TK35kqyE0
でもGoF本ですらゲームをネタに解説してるくらいだから ゲームから入ってもいいんじゃね?^^ モチベ維持にも好きなところから入らないとね…眠っちゃうw
>>865 何をゲームと呼んでるのかは判らないけど
一般的にはゲーム作ってた人ならWEBアプリとかは児戯でしょうね。
>>869 WEBアプリって、
プログラマーっていうより、
デザイナー寄りっていうイメージだな。
魔法剣士とパラディンとの違いみたいな。
どっちも情報システムである以上同じ物だろ 自分で出来る所はやってデザインっぽい所は人に投げると でも特定環境での開発経験だけに頼ってると ちょっとインターフェースや実行環境変わっただけで途端に対応出来なくなる きちんと理論も固めとかないと潰し効かないよ
Cは自分でツールを作ってプログラミング環境を便利にしていくための土台にするもの Cでアプリケーションを作ることは大きなミス
>>862 レス元の
>>276 は同人ゲームつってるから
商用かは知らんが、配布して人に楽しんでもらうゲームを作ろうとしてるんだろう
C習得のためにじゃんけんゲームを作ってみましょうってのとは違うと思う
>>873 例えばどんなもの作ってるんだ?
まあゲームもWEBアプリもいろいろあるけれど WEBアプリの場合はUI設計と定型処理でほぼ終わってしまうのに対して ゲームの場合はその先が本質になるね。 ストーリーに関わる仕掛けであるとか、大量のパズル構築であるとか。 プログラムという観点で考えれば、やはりゲームのほうが構想が複雑にならざるを得ない。 その意味では、WEBアプリがデザイナー寄りというのはあるよ。逆にいえばWEBアプリの表現の主体はそこだし、 そういう瞬間のデザインを表現したい人間が興味をもつ分野だからね。
>>864 甘酢あんかけうま
ゲーム作って覚えるのはいいねザナドゥ。ゲーム屋辞めて何でも屋やってま
純粋なCで現代のGUIのアプリを作るのは流石にもうやらんだろ。 Cで勉強して欲しいのはデータ構造とそれに合わせたアルゴリズムの実装。 そこからデータ構造の選択とアルゴリズムが不可分で有ることを納得してからオブジェクト指向に入るとすんなり理解できるだろ。
>>873 それはCとC++を区別して言っているの?
今更ながら一番メジャーな言語って何だ? まさか英語じゃないだろうな?w COBOLか?
>>872 俺へのレスかな?
>どっちも情報システムである以上同じ物だろ
乱暴すぎる。たとえば一言Webアプリってったって、
・ブラウザで動くもの
・専用アプリで動くもの
・スマホなんかを対象にしたもの
いろいろあるよね?
上のは動作環境で分けたけど、ジャンルにしたって
・ネットバンクだったり
・Flashのゲームだったり
・動画配信だったり
複数の種類があるのに、それらを一括りにはできんしょ?
基盤となる技術は同じものかも知れんが、
これらアプリを同じものとは言えんよ。
881 :
名無しさん@12周年 :2011/10/17(月) 03:01:42.91 ID:taGjM+920
例えば列車の運行管理みたいなカタイものはいまでもCで書くものなんでしょ。
882 :
名無しさん@12周年 :2011/10/17(月) 03:16:51.84 ID:1iLsm5hp0
>>862 今時の3Dバリバリのゲームなんかだと、プログラマ数十人とか平気で使ってたりするし
デザイナも然り、完全に分業制になってる
プログラマもデザイナもプランナも、それぞれがそれぞれの分野を好きで始めた(あるいは長い専門教育を受けた)人間で、
それらが全員で力を合わせて大規模なゲームを作る感じになってきてる
(日本はそれについていけない会社も増えてきて、携帯ゲーとかに流れるようにはなってるが)
同人とは言ってたものの、3Dのプログラミングで黄昏フロンティアみたいなレベルを目指すなら
3D等の難易度の高いプログラミングを習得すること以外に時間を割くのはマジでありえない。
一人で作ろうとするまえに、仲間を増やすべき。
逆にサウンドノベル程度でいいのなら、一人でもスクリプトで動く開発ツールさえ使えればいいから、Cなんて覚える必要ない
883 :
名無しさん@12周年 :2011/10/17(月) 03:21:29.83 ID:Jl0rdzIB0
ITスカウターで測定したIT戦闘力 スティーブ・ジョブス 1億2000万 孫正義 5800万 デニス・リッチー 320万 ビル・ゲイツ 2
>>883 良く分からんが何を指標にしてんだ?
金ならゲイツだろうしプログラミングならデニス、ゲイツの順番だろう。
詐欺師力か?w
885 :
名無しさん@12周年 :2011/10/17(月) 03:32:50.82 ID:khZiofFU0
アセンブラをやれば「C便利なー」って思うし C漬けになれば「Java便利、仮想マシンいいなー」って思うし その時々で便利なブツ使ってけばいいと思う
だから経営者のジョブズと技術者・研究者のリッチーを同じ価値観の軸で並べる事に何の意味があると。 ジョブズとゲイツを比較するとか、リッチーとカーニハンを比較するとかならともかく、 たまたま同時期に死んだ二人を比較するとか意味無いだろ。
>>885 その通りなんだけど、最近のプログラマはアセンブラもCもやらないで
JavaやVB漬けになってるから、アセンブラやCに行けない。
システム寄りのプログラムを書かせようとすると、無理なんだよね。
カーネルデバッガも使えないと思う。
>>820 1.
×
×
×
◯
2.
char *( *f )();
3.
×
◯
889 :
名無しさん@12周年 :2011/10/17(月) 04:00:07.43 ID:EKOYwRVl0
gtk を使って、 GUI アプリとか、まだまだ普通に作るよ。 GUI なら C から扱ってもそれほど困難なことはではないから平気。 アプリによっては、 Java や、 C++ を boost ライブラリと一緒に使ったりしたほうが オブジェクトの動的な生成・廃棄を頻繁に行うようなアプリケーションなら、 C でやるよりも楽だったりはするけれど。
>>828 人の書いたもの見るのは勉強になるよ
カンタンそうなものからはじめようぜ
あとツールで思い出したけど今ってアドビのAuthorwareみたいなのないのかな?
アイコンを画面に並べるだけでプログラム作れるやつ
あーゆーのが気軽に入手できればだいぶやりやすくなると思うんだけど
GUI だと必然的に、構造体と、構造体へのポインタを引数にとる関数などの なんちゃってオブジェクト指向的なプログラミングスタイルにはなるし、 それならば、 gtkmm でなくとも、 C を使うより C++ から gtk を扱ったほうがとも思わなくもないし、 多態性を前提としたプログラムを書きたい場合は、 わざわざ、 C で関数へのポインタなどを使ってまで実装するよりは、 C++ や、 Java を使ったほうが良いかもしれない。
一時期、構造体の動的な生成を容易にし、 なおかつ、ポインタの指し示すオブジェクトの動的な廃棄のために、 malloc をラップしたコンストラクタを自前で実装し、 virtual function table を持たせてデストラクタで廃棄もできるようにしていたものの、 まあ、ポインタの先にぶらさげる構造体を常に一種類にするならば、 後者は必要のないものだった。
894 :
名無しさん@12周年 :2011/10/17(月) 04:56:04.73 ID:f/wCHM750
オブジェクト指向って f(x,y,z) を x.f(y,z)って書いてるだけだよな。 何がありがたいのかよくわからない。
895 :
名無しさん@12周年 :2011/10/17(月) 05:02:25.63 ID:b9N/THQ/0
Javaでもファームとかミドルも一緒に開発してその上で走るアプリなら最悪アセンブラコードまで追ってデバッグしなきゃならないんだって言っても 「え?仮想マシンなのに?バイトコード追うの?そんな事あるわけないじゃんwww」 って言うレベルが30代でもいるからな 安定したOSとバグのない開発環境が当たり前だと思ってる残念な人が増えたね
896 :
名無しさん@12周年 :2011/10/17(月) 05:03:54.77 ID:Pp6TD9Mc0
簡単なプログラムしか作ってないうちは解らない。100万行のコードを書けば理屈もわかる。
897 :
名無しさん@12周年 :2011/10/17(月) 05:16:33.33 ID:3o3GX97F0
C言語はもともとアセンブラでプログラミングをするレベルの マシンを熟知したプロ中のプロのシステムプログラマーが アセンブラの代わりにC言語で書いて開発することで 生産性を上げかつ移植性を高めるのを目的として開発したもの。 UNIXの普及が背景にあってトランクCコンパイラの移植が 非常に簡単だったためにパソコンで非常に広まって定着した。 しかし、生半可なプログラマーがコーディングをすると、 バグの入った分かり難いコードを簡単に書けるという面もあり、 今日の多くのセキュリティ問題の原因の多くはC言語を安易に 使った下手糞プログラマーの行数を書いたプログラムが原因だ。
>>894 コードの再利用、視覚的読みやすさの追求、ブラックボックス化による
設計の簡略化かな。
899 :
名無しさん@12周年 :2011/10/17(月) 05:23:22.77 ID:f/wCHM750
>>898 構造化プログラミングと同じことを言ってるようにしか聞こえない。
まあ対象となるプログラムの規模と複雑さが違うんだろうな。よく知らないけど多分。
>>899 構造化プログラミングの発展系が、ある意味OOPなんだから
間違ってはいないと思うけど。ただクラスの設計は、ロジック設計と同じで
プログラミングセンスとスキルがモロに出る。スキルもセンスも無い奴が
設計すると悲惨。Cは、コードもシステムも単純だった時代の物なので、
複雑化しシステム上のアプリケーションを書くには色々不便になる事が
多くなった。なので、今時のアプリケーションを書く場合にはC++を使う方
が便利。
>>899 GUIのプログラムだと構造体とそれを処理する関数が山ほど出てくるんだよ。
しかも似たようなやつが多い。それをクラスにすれば整理整頓できるだろ?
そろそろ一番ポピュラーな言語の答えを教えてくれ。 やっぱり英語か?
>>894 ・カプセル化によりプログラムの扱いやすさが向上。
はガチだとおもう。
インヘリタンス (継承) -- クラスベースの言語
ポリモフィズム (多態性、多相性) -- 型付きの言語
ダイナミックバインディング (動的束縛) -- インタープリタの言語
もあるけど、プログラミング言語Cなら
オレオレルールの実装で自分なりにはそれらしい事がどうにでもなると思われ。
904 :
名無しさん@12周年 :2011/10/17(月) 07:18:08.27 ID:gdicVrbw0
>>894 それだけだと仮想関数とかポリモーフィズムが実現できないのでは
オブジェクト指向については、 デザインパターン関連の本を読んでみられてはどうでしょうかね。 オブジェクト指向を用いなくても実装できるパターンもありますが、 継承や多態性を用いたオブジェクト指向的なパターンで、 なおかつ、実地に使ってみると便利なスタイルのものもあるかと思いますし。 個人的には、オブジェクトを動的に生成したり廃棄したりするような挙動のアプリケーションは、 C で実装するよりも、 Java や、 C++ などのほうがやりやすいと実感するものの、 これは私がそういう実装のスタイルに慣れただけなのかもしれませんし、 Java のガーベジコレクションや、 boost ライブラリ中のスマートポインタなどが便利なだけかもしれません。
907 :
名無しさん@12周年 :2011/10/17(月) 07:50:07.22 ID:HYzDT/ku0
>>902 ふつうにCOBOLだよ。
政府や大手企業には膨大すぎるCOBOLの遺産があって
コスト上の問題で他の言語に移行させたくてもできないままいる
オブジェクト指向つっても、大掛かりな場所はフレームワークで食っちゃうからなぁ。 factorymethodだのtemplateだのはコードに気使う奴なら自然に実装してるレベルだし。 開発人員で入るレベルなら、リファクタリングでもやっててくれた方がなんぼかマシ
909 :
名無しさん@12周年 :2011/10/17(月) 07:58:24.86 ID:Jqt0QQYT0
皆ぁ。クールダウン! ここは、デニス・リッチーさんへの追悼スレ。 ご本人はどうかな? ご本人の大発明に皆が論議をしていて、結構うれしいかな?
910 :
名無しさん@12周年 :2011/10/17(月) 08:17:46.01 ID:fg/9meL00
これだけの偉人でも70でなくなるわけだ。 俺たちのようなgdgdの生活しているような男性が70まで生きられるだろうか。 年金怪しいよね。
「いつまで生きるか」「何ももらったか」より「何をしたか」だろな とはいえ価値観人それぞれだし好きに生きればええがね
ステップ数とかほんと死ねってかんじだ。 日本のあいてー産業の程度がここまで落ちたのはロートルどものせいだな。
>>912 でもまぁ、未も蓋もない事言えば、BBでやってる大半のシステムって
客がSQL叩いて整形できるようになるだけで費用1/10とかになるような。
>>129 独学なら、私は CD つきのムック形式の本を購入し、
もう一台のパソコンに Linux をインストールしたあと、
wakhok のサイトにあった C のページと、坂本文の『たのしい UNIX』を読んで、
その後、不気味な表紙の『Linux プログラミング』と
『詳解 UNIX プログラミング』を図書館で借りて、一通り試してみたあと、
C に行かずに、 Stroustrup の『The C++ programming language』を座右に置いて
『Effective C++』や、『More effective C++』を借りてきて読んだあとに、
『BSD の設計と実装』や、ライオンさんの本を読んでから、 C に戻ってきた口なので、
参考になるかどうかわかりませんが、ネット上の情報と、
図書館だけでもある程度は可能だと思います。
洋書でよければ、今は safari があるせいなのか、
書籍のタイトルや、書籍の文中の言葉で検索をかければ、
怪しげなサイトに、 pdf ファイルなどでアップロードされていることが多いような気がします。
915 :
名無しさん@12周年 :2011/10/17(月) 09:15:35.84 ID:5a5qfbU00
合掌
>>107 C のメモリ配置なら、『詳解 UNIX プログラミング』の 7.6 や、
『BSD の設計と実装』の 2.5. Memory Management や、
3.5. Memory-Management Services あたりに少し記述がありますが、
OS の実装やハードによって、細部も異なるものかと思います。
個人的には、Linux などの Unix マシンが
(VirtualBox などの仮想環境か、実際のマシンかを問わず)、
手元にあったほうが、 C は習得しやすいような気もしますが、
これは異論のあるところだと思いますね。
いわゆる基礎を作った人だもんなあ・・・ ご冥福をお祈りします
918 :
名無しさん@12周年 :2011/10/17(月) 09:30:07.52 ID:5a5qfbU00
これからの発展を期待しててください 合掌
>>916 UNIXでCを学んだ方が習得しやすい、に一票。
ネットワークプログラミングとかにすすみたいならなおさらかな。
920 :
名無しさん@12周年 :2011/10/17(月) 10:05:34.39 ID:5a5qfbU00
うん。
4スレ目になっていたことに感動した 合掌
922 :
名無しさん@12周年 :2011/10/17(月) 11:05:06.49 ID:5a5qfbU00
需要があるんだなあ〜
923 :
名無しさん@12周年 :2011/10/17(月) 11:10:39.94 ID:J2/plQmA0
UNIX板いってみるかな
>>899 構造化プログラミングのモジュール化を発展させていったのが
オブジェクト指向と考えてもいい
ただ、実装面ではまったく異なるものになる
構造化プログラミングは効率の良さを追求する一方で、
プログラムの実行スピードやサイズを意識して作るのに向いている
一方、オブジェクト指向はそういったものを犠牲にしてでも、
保守性や堅牢性を重視している
カプセル化、隠蔽化、クラス継承などで開発効率を徹底して追求
していくというのがオブジェクト指向
オブジェクト指向の普及とハードウェアの進化は大きなつながりが
あると思う
CとC++に関して言えば、どちらも需要がある
C++よりCの方が開発効率が上がるものもあるだろう
但し、多くのソフトウェアは肥大化していっているので
C++の需要も増えている
規模の大きなプログラムに関して、より使い易いアセンブラがCで、
より良いCがC++という感じだろう
そろそろコンピュータ草創期から発展期の群像を描いた大河ドラマが欲しいな。
一時期、ポインタを駆使したわけわからんコード書くヤツが偉い的な風潮があったが、 誰が引き継いでも保守できるコードを書かんかい!と上から怒られて 判り易いコードを書くべしとなった
927 :
名無しさん@12周年 :2011/10/17(月) 11:41:32.70 ID:7c6UL4pV0
ポインタを使ってわかりにくくなるなら、それは全然「駆使」していることには ならないんじゃないでしょうか。当然、全く偉くもなんともない。 なんであれ、必要だから使うまでであり、 本当に必要ならば、なぜ使われているかは見ればわかるんです。 少なくとも、一行の説明コメントでわかるんです。
ポインタのポインタのポインタのポインタの配列とか defineの多重入れ子とか コードの一部だけ見るともうなにがなんだか・・・ defineの値が結局なんなのか、いくつもの*.hファイル追わないとワカランとかw そういうのを書くのが、わかってるヤツなんだ!と思い込んでるオッサンのいる時期があったのだ
>>894 スコープがクラス単位になる。
get() とか、put() とか、関数名が短くて済む。
Polymorphism とかが、本当に生産性を高めるかは、微妙。
930 :
名無しさん@12周年 :2011/10/17(月) 11:52:46.60 ID:AjEb/rxm0
どっちでもいいかも 遊びから生まれる物もあるし
>>904 xがvptr持ってればいいだけ
そういう話ではないのかな
ここはIT土方が多い板だなあ。やっぱり+民ってIT土方ばかりだったんだな。
>>933 そう見えるのは君がプログラミングを知らないから
>>929 ポリモフィズムの良いところは、動的バインドだろう
スコープだとか関数名の長さだとか、そういうのはどうでも良い
インタフェースだけ規定していれば、それに準じたプログラムは
全て動くという状態にするのが動的バインド
効率が良くなるかどうかは、そのシステムの内部構造や
規模によっても異なる
>>929 そうそう。あと、クラスが違えば同じ関数名を使えるのは本当に助かる。
原理主義はいやん
>>936 関数名って、「何をするか」を記したいだけのもんだからね。
オブジェクト指向の利点は、そこだけぐらいに思ってる。
>>931 それをしたら、ある意味でオブジェクト指向なんじゃないの?
Cでも関数ポインタで仮装関数テーブル作って、
がんばれば出来るかもしれんが、それするなら、
Cでやる必要は無いよね。もっとスマートにできる言語があるんだから。
オブジェクト指向にしろjavaの参照にしろ、 とにかく馬鹿にコード触らせないための防御装置なんだよ。 だからマトモに作ってる奴から見ると、ああこれであの馬鹿に この部分書かれる事なくて安心て代物なの。 だから便利さが判らんて奴は数人で作ってて馬鹿に荒らされたことがないか、 地雷埋め込んでる馬鹿のどっちか。
>>929 データベースのアクセスをアダプターとして実装し、
基底クラスを書き換えることなくクラスを追加し、
RDBMSに依らず共通した操作を実現したりってのは、
ポリモーフィズムの恩恵でしょ。
Cでやったらswitch文の嵐になるし保守や拡張もしづらくなる。
OOPやデザインパターンは別に難しいことでもなんでもない。
便利だから使われている。それをCでもできるじゃんってのは見当違いかと。
942 :
名無しさん@12周年 :2011/10/17(月) 12:31:24.13 ID:kWStxg230
>>940 オブジェクト指向には自分にとって明らかに便利な機能があるじゃないか。
意図によるプログラミング(ロンジェフリーズ)が可能な点。
テストファーストができるのもこれのおかげ^^
>>941 メイヤーの本とかだと、書き直すのが面倒ってことだし、リファクタリングとかは簡単になるけど、
コードを読むときには、何やってるのかわからなくなる。
クラスライブラリって、使うのには便利だけど、読むのはだんだん大変になってくるんだよ。
>>941 Cでも関数ポインタを使えばswitchの嵐なんてことはない。
ただ、わざわざ車輪の再発明をするより、
素直にオブジェクト指向言語を使うけど。
945 :
名無しさん@12周年 :2011/10/17(月) 12:48:19.91 ID:kWStxg230
>>943 そこはアランシャロウェイが書いてるように
何もかも狂ったようにオブジェクト指向を持ち込む必要はないわけで。
多態が生産性を高めるのでなく
単に生産性を高める共通言語(デザインパターン)が多態を必要としているだけだよ。
だから、ブリッジパターンのように、
多態を使いながらも多態を極力減らすデザインが存在しているわけで。^^;
946 :
名無しさん@12周年 :2011/10/17(月) 13:09:09.81 ID:AjEb/rxm0
耳なしforeach
947 :
忍法帖【Lv=14,xxxPT】 :2011/10/17(月) 13:19:51.21 ID:CcMPSg4i0
>>945 言語よりクラスライブラリの勉強が、今のプログラマの仕事。
言語は処理制御ぐらいの意味合いしかない。
にしても、C++のクラスライブラリ、boostにしても、もう発展が遅いと思うがね。
>クラスライブラリの勉強 人の作ったクラスの中に囲い込まれて なんだか、さびしいな
OSは無し 言語はC が一番好き
950 :
名無しさん@12周年 :2011/10/17(月) 13:46:50.85 ID:1iLsm5hp0
>>947 boostはあくまで標準ライブラリに導入するものを実験し提案するライブラリだからね
テンプレートを使って万人が使えるような、高速で汎用的で便利な、どんなものが作れるかという。
全部使ったことがある、なんて人は居ないと思う。
spirit(構文解析)を使ってみたことがあるけど、実行速度は速くても、テンプレートの使い方が変態すぎて
コンパイルにアホみたいに時間かかった
便利なものがあったら使う、って程度だね
951 :
名無しさん@12周年 :2011/10/17(月) 13:50:30.83 ID:JEWv4Nnv0
一生コード書いてても金持ちになれんぞ、お前らw 趣味ならともかくドカタ仕事はそろそろ卒業しろw
10 GOTO 10
953 :
名無しさん@12周年 :2011/10/17(月) 14:05:03.14 ID:kWStxg230
>>947 話がややごっちゃになってるかな?^^
標準ライブラリ(やboostのような準標準的ライブラリ)の勉強なんて
せいぜい数ヶ月で終わるじゃないですか^^
内部構造まで勉強したってプラウガーとかいい本いっぱい出してますし^^
それよりOOPやデザパタ勉強に費やしたほうが多言語を横断できるし
なにより上流工程に行くには必須。
ちゅか、デザパタの本って大なり小なり分析設計の話になる。
大工に「いつまでも家作ってても金持ちになれんぞ」と言う気はないし
儲けるためにコード書いてるわけじゃないけど、PG→SE→PM(その他もろもろ)へと
昇格していくには個別のライブラリの勉強より設計の勉強にウェイトを置くべきかと^^
954 :
名無しさん@12周年 :2011/10/17(月) 14:07:51.25 ID:nVy0X1Vr0
>>894 すごく大雑把に言うと
非オブジェクト指向:手続き(対象データ、パラメータ)
オブジェクト指向 :対象データ.手続き(パラメータ)
主語が違う
>>932 面白いけど長いな。
やっとトランジスタが出てきた。
956 :
忍法帖【Lv=14,xxxPT】 :2011/10/17(月) 14:14:44.66 ID:ly/kziSr0
>>950 だから、その提案が今ひとつ現状に合っていない気がするだけ。
そう思うと、過去の言語のように、C、C++も役割は終わったかなと。
957 :
名無しさん@12周年 :2011/10/17(月) 14:26:47.54 ID:1iLsm5hp0
>>956 あー、GUIやマルチスレッドやガベージコレクタ等が
いつまでもC++の標準ライブラリやboostに入ってこないってこと?
この人のせいではじめてのCが生まれたのか
>>958 「せい」とするからにはCに何か恨みでもあるのか
もう故人は関係ないスレだな
961 :
名無しさん@12周年 :2011/10/17(月) 14:36:42.89 ID:AjEb/rxm0
初めての人のためのLISP
ポインタ程度の扱いが分からない奴は、エンジニアとしての資質の問題 なんだから、職業変えた方が無難だよ。 それで実務やってる奴が無数にいる以上、自分が理解できない事の方が 才能の限界と思った方がいい。
963 :
名無しさん@12周年 :2011/10/17(月) 14:42:19.26 ID:LvpedRdB0
ビルゲイツなんぞより、デニスの方が業界の発展に百倍寄与しているな。
964 :
名無しさん@12周年 :2011/10/17(月) 15:25:55.77 ID:aJ6ARc5f0
>>963 こういうことを言う奴ってさぁ、自分の価値観や判断基準で身勝手な評価をしているよね。
だったらお前はWindowsやそれによって発展した機材や技術を一切使うなよ。
965 :
名無しさん@12周年 :2011/10/17(月) 15:37:17.60 ID:xVTgLw8eO
辱めを受けながらのC
ジョブスよりよっぽどニュースになっていい人なのにな。
boost::progressが外されたときは泣いた
968 :
名無しさん@12周年 :2011/10/17(月) 17:21:06.86 ID:lQWn3wKa0
>>964 悪いが
>>963 よりオマエのがずっと身勝手だと思うぞ、
他人様に何かを使うなとか指図している時点でなw
>>967 訂正
boost::progress_display
>>964 いやいや、Microsoftはwindowsだけの限られたところでしか
活躍していない
UNIXによってオープン化が進み、インターネットが進化し、
様々な機器へ開発環境を提供した功績は非常に大きい
歴史的な視点から言えば、リッチーは間違いなく偉業を
成し遂げたし、ビル・ゲイツは便乗して稼いだだけ
>>956 役目が終わった???
むしろ増えているような気がするが?
誰かポインターをわかりやすく説明してくれ
974 :
名無しさん@12周年 :2011/10/17(月) 17:38:26.62 ID:AjEb/rxm0
>>972 アンテナみたいなのを伸ばして黒板を指すやつ。
*と&の違いがわからない
Cを落第した奴が暴れるのはこのスレですか?
980 :
957 :2011/10/17(月) 18:15:47.42 ID:1iLsm5hp0
レスこないんで補足しとくと、C++の場合
>>957 に書いたような提案はこれまで何度もされてて
GUIの標準ライブラリはいずれ実装されそうな気もする
ただ、ガベージコレクタは言語機能として組み込むとすると、ゼロオーバーヘッドルール
(使わない機能はコストを発生させるべきでない)に抵触しない形で実装するのが困難なので
Stroustrup氏は「言語としては実装しない。欲しければ、今あるサードパーティ製のGCのライブラリを使ってね」と言ってた
ましてCは言語の性格上、GCは組み込まないだろうし
ただ最低限のGUI機能くらいは、CもC++も持つべきだとは思う
あと、ゲーム開発の立場で言うと、C/C++が無くなるとマジで困る
ゲーム開発においては今後数十年はC/C++が現役だよ
ゲームはまだまだまだまだまだまだ速度を求めてるし、パフォーマンスを犠牲にしてまで
手軽な開発なんてありえない
レンダリングもいずれはポリゴンからレイトレーシングに変わるだろうし
AIも、物理シミュレーションも、もっともっと高度なものを使いたいんだよ
もう打ち止めだと思ってる人は、一度海外の最先端のゲームとかやってみて欲しい
速度の不要な小規模なアプリケーションには、C/C++はもう不要だろうけどね
世の中そういうソフトだけが売れてるわけではない
981 :
名無しさん@12周年 :2011/10/17(月) 18:29:28.93 ID:xwXD69/j0
合掌
982 :
名無しさん@12周年 :2011/10/17(月) 18:50:22.95 ID:9y6nbxxX0
>>980 ちょっと確認しておきたいんだけど、
速度を求める分野が本当に欲しいのは速いマシン語コードだよね?
つまり、速いマシン語コードを吐けて、
かつ、開発効率も良い高級言語が欲しい、というのが真意だよね?
マシン語コードが透けて見えるC(のコンパイラ)はともかくとして
もともとコンパイル言語としてはあまり高速でないCの上に
肥大な言語仕様を載せたために(そして今も肥大化しているために)
コンパイル時間の爆発が無視できなくなってきているC++は、
マウスイヤーとまで言われるコンピュータ世界で本当に生き残るかしら^^;
いや、個人的にはC++好きだから生き残って欲しいけど
それほど楽観視はできないんじゃないかとも思う^^;
983 :
名無しさん@12周年 :2011/10/17(月) 18:55:11.66 ID:9y6nbxxX0
あ、ちょっと補足、 >もともとコンパイル言語としてはあまり高速でないCの上に この部分は「コンパイル速度」ではなく、「実行速度」の話ね^^; Cは言語仕様上、コードの最適化が難しい部分があるので。で、 >コンパイル時間の爆発が無視できなくなってきているC++は こっちはまさに「コンパイル速度」の話。 C++はテンプレートの存在がコンパイル速度に深刻な影響を与えている。 大規模プログラムになればなるほど、プログラマはコンパイル時間を考慮した コーディングを要求されるようになる…pimplイディオムみたいな小さなものだけど コードの風通しは若干悪くなる。
>>972 ポインターはレス番号
レスの中身ではなく、レスの場所を表す
>誰かポインターをわかりやすく説明してくれ
ポインターを使わないと、いちいち
こうしないといけないから、大変
985 :
名無しさん@12周年 :2011/10/17(月) 19:03:49.86 ID:h4k0QD0i0
>>983 移植性にC++は難ありという理由でCを採用するプロジェクトもあるようだ。Subversionはそんなことを書いている。
ポインタについて聞かれる度、こいつ実行ファイルロードした時に コードや変数がメモリに展開されてんのわかってるのかなと思う。
ポインタなんて簡単だろ わからないって奴はチラシの裏にでも絵を描いて理解しろ 頭で考えてもわからない場合は図式化するとよくわかる
>>985 移植性というより、処理系の互換性の話じゃね?
GCC だって、3.4 と 4 で、template とか、駄目駄目だったし。
プログラマーの人たちは実生活の葬式の席でも こんな話してそうだな
990 :
名無しさん@12周年 :2011/10/17(月) 19:25:11.09 ID:nYNJVa/E0
>>984 2chならその喩えが一番適切な気がするw
「コピペ連投してんじゃねえよ
アンカもできねえなら半年ROMれ」
991 :
名無しさん@12周年 :2011/10/17(月) 19:27:22.03 ID:1iLsm5hp0
>>982 もちろんC/C++が、速度・開発効率においてこれからもトップとは限らないけど
fortranとか使ったことがないんで、科学技術計算に使うようなレベルと比較してどれほど劣るかはよくわからないw
ただ、大規模な開発で速度を重視、というと特にC++が今のところベストだと思うし、これからもそうだと思うよ
>肥大な言語仕様を載せたために(そして今も肥大化しているために)
コンパイラベンダーは苦労してるだろうけどw
今のところコンパイル時間は、色々な工夫でどうにかするしかないと思う
プリコンパイルドヘッダが使えるのが今では普通だし、
ゲーム開発はスクリプトをデザイナに書かせる方式が当たり前になってる
(エンジン部分はC++で書くが、ステージや使うデータなどの記述はテキストやスクリプト、外部ツールが吐いたデータで)
そうすることで、細かい調整でいちいちコンパイルかけて十数分待ち、なんてことは無くせるよ
自分は現役でそういう大規模なゲーム開発の現場には居ないんで、最近テンプレートがそこまで
コンパイル速度を遅くしてるのかはわからないけど・・・・多分やたら多用はしないと思う
それに、C++0xからは外されたけど、コンセプトはテンプレート周りの解析速度を上げる意味もあったはず
C++と同等のことが出来て、かつもっとすっきりした言語が出るのなら、そっちの方がいいだろうけど・・・
でもコンパイル時間の増加は、使うPCの成長を上回るほどには感じないけどなぁ
進化についていけてないせいかもしれないけどww
992 :
名無しさん@12周年 :2011/10/17(月) 19:32:07.78 ID:zzTbl1WN0
なんでK&RがOOPの話になってんだ? 合掌!
しかし、よく4スレも引っ張れたもんだな。さすがだよ、デニス。もう誰もデニスの話してないけどさw
>>966 UNIXはコミュニティがちょっとアレだからしかたないですしおすし
995 :
名無しさん@12周年 :2011/10/17(月) 19:43:31.03 ID:rIiFKEOf0
2ちゃんねらはリッチーをもっとリスペクトすべき CとUnixがなかったら2ちゃんは存続、あるいは存在しなかったかもしれない
>>995 わかってる人だけで良いんじゃない?
一般大衆にCだのunixだの言ってもわかるまい。
UNIX板をリスペクトしてるコピペとかあったじゃん。
↓沖田広之が一言
999 :
名無しさん@12周年 :2011/10/17(月) 19:56:50.03 ID:AjEb/rxm0
次スレおながい
何でCとC++が同列に語られるのか全く不思議だとは言わないけど、 名前や文法wが似てるだけで、今となっては全然違う言語だから同列に考えるのはどうかと思う。 現代の大規模開発やGUI等に対応できるのはC++で、 Cはもう趣味の世界とか、こじんまりとした規模のアセンブラ置き換え途向けじゃないの?
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。