- ベストアンサー
C言語の解読
C言語は、まったく未経験でソフトだけは持っています。教えてgooで "OS" や "google" はC言語で書かれている。大概のプログラムはC言語で書ける。というので興味があります。しかし、今からC言語の仕事をする自信はありません。C言語で書かれているプログラムの内容を理解するにはどのくらい時間がかかるのでしょうか?どこかでOSのソースを見ることなどできないでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
持っているソフトはコンパイラでしょうか? でしたら、自分で書いてみるのが一番てっとり早いです。 規模が大きくなると、プログラムを読むことは書くことと比較し、はるかに難しくなります。 書けないのに、読めるという人は居ないでしょう。 そういう意味から、仕事でプログラムを組むときには「コメント」を欠かさず入れるわけです。 ここで何をしているかを明記して、誰が読んでもすぐにわかるようにしておくわけです。 まず触れることからはじめてみてはいかがですか? OSのソースなんて、とてもじゃないが一人で読解できないほど膨大でしょうし、 一般ユーザが見えるところに晒さないと思います。 よく、フリーウェアとかで「ソースコード公開」と書かれていて、ソースも一緒に添付されているものがあります。 そういったもので勉強するといいと思います。 あと、下記のサイトは初心者向けのCのサイトです。 わかりやすく解説してあります。
- 参考URL:
- http://kumei.ne.jp/c_lang/
その他の回答 (4)
例えば C 言語を理解している人が、他人の書いた 100行のプログラムを大雑把に理解するのに 10分かかるとします。同様に 1,000行のプログラムを理解する場合、10倍の 100分では済まなくて、1,000分 くらいかかるかもしれません。 これが OSくらいの大きさになったら、見当がつかないくらい時間がかかります(もしくは途中で挫折する)。 最初は、100行以下くらいのプログラムを読む事をお勧めします。 また、最初に良いソースを沢山見る事ができれば、短い時間でプログラミングの大事なポイントが自然と身に付きますから、その点には注意したほうがいいと思います。
お礼
10分くらいで読めるのでしたら、勉強したい気がします。今使うものでないので勉強していいものか、勉強しても忘れるのではないかと思いまして。有難うございました。
- -soh-
- ベストアンサー率27% (55/201)
横やりで失礼します >大概のプログラムはC言語で書ける。 別にCでなくても書く事は可能ですけどね(笑 言語はあくまでなにかを実現するための手段なので 例えば、JAVAを使ってEXCELをエミュレーションしている 人が過去いらっしゃいました。 >しかし、今からC言語の仕事をする自信はありません 私も現在、IT系(というのもおこがましいですが)で働いています。 しかし、初めはほとんど未経験者の方ばかりです。 私の上司の女性(27)等も大学の専攻は物理学でプログラムなぞ組んだ事無いといってますが それでも私の上司です(笑 >C言語で書かれているプログラムの内容を理解するにはどのくらい時間がかかるのでしょうか 未経験者でも取る会社の一例として 新人研修に3ヶ月ほどを用意しています、 んでCに割り当てている時間は約一ヶ月です。 それで「読める」ようには一応なっていますね 「理解」はできてないでしょうけど、とりあえず読めるなら後は本人のやる気次第で「理解」できるようになると思われます。 ではでは グッドラック(^-^/~~
お礼
1ヶ月で読めるのですか。他にもやりたいことがあるので合間で読もうかな~。集中しないとできないか。ありがとうございました。
- prome
- ベストアンサー率32% (64/196)
解読には2つの意味があります。 1つは単なるステートメントの理解。つまりfor(i=1; i++; i<=10)という 文があったら、10回ループするんだなと理解するということ。 これはC言語の本で勉強すれば比較的簡単に理解できます。 問題は2つ目の意味で、これが本質的なんですが、数十行あるいは数百行の プログラムがあって、全体として何をしているかを理解するということ。 これは1つ目に比べて格段に難しいです。 まずプログラミングの癖というものもあって、自分にとっては読みにくい 書き方のものもあります。 論理的なアルゴリズムの考えをプログラムから読み取る必要もありますし、 また、通信のプログラムだったりすると、通信関係の予備知識も必要でしょう。 >C言語で書かれているプログラムの内容を理解するにはどのくらい時間が >かかるのでしょうか? ですから、一言ではどのくらいの時間がかかるとは言いにくいですね。 OSのソースはLinuxなら簡単に入手できます。ソースでネット上に 公開されていて、自分でコンパイルして使う、なんていうことが結構あります から。ただC言語経験者でも、理解するのは極めて難しいと思いますが。
お礼
OSはやはり難しいですか。OSを理解すればすごいなと思ったのですが。 Linuxのソース探したのですけれども、ソースを手に入れるにはどうするのか分かりませんでした。やはりダウンロードしてから何かして見るのでしょうか。 Linuxを動かしたいわけではないので。(興味はあるのですが、今のOSはどうなるのだろうと思い…。まだ勉強不足です) ありがとうございました。
ソースの解析は、プログラミングの分野の中でも比較的高度な部類に属する作業です。 とりあえずC言語の文法は、完全にマスターしていなければいけません。 とはいえ、C言語は「選ばれし者のみが扱える」というような大層なものではないので、勉強すればいつかできるようになるでしょう。 心理学的には、5000時間やればトップクラスのプロと肩を並べられるそうですが(笑) konnyaku さんの場合はどうかと言われたら、熱意の問題なのでなんともいえません(^_^; とりあえず、ヴェクターに発表することを目標に、常日頃欲しいと思っていたソフトウェアか、ゲームの類を作ってみてはどうでしょう。 面白いですよ。一度やってしまえばC言語の難易度がどの程度か、ということも分かりますし。
お礼
一年勉強すればプロ並みになれるのですね。 また、別のことしたくなったのですが、作りたくなったら勉強してみようと思います。ありがとうございました。
お礼
勉強するのにいいサイトを教えていただき有難うございます。 フリーウェアの「ソースコード公開」も見てみようかと思います。 有難うございました。