あなたが読んでためになった、またはプログラマなら読んでおくべきだと思うソースコードはなんですか?教えてください。
ネットでダウンロード可能なものでお願いします。
回答ありがとうございます。
すべての土台となるOSのコード……大事ですね。
ソースコードではないのですが、C言語の基礎を覚えるのに便利な問題集がここにあります。
http://kserv.jec.ac.jp/bigfile/c1.pdf
内容的には簡単なんですが、整数や実数についての正しい扱いを知らないと解けない問題があるので、できない理由を自主的にを調べる事によって基礎的な部分を深く理解できると思います。
回答ありがとうございます。
今はスクリプト言語しか使えないのですが、C言語を勉強する時に参考にします。
TOPPERS/JSPカーネルのソース。
http://www.toppers.jp/jsp-kernel.html
μITRON RTOSの全ソースです。MC68040用のものがリファレンスで、それを参考に作られた多くのアーキテクチャのカーネルが収録されています。自分でカーネルを移植した際、ずいぶん読みました。RTOSであるため、極めてコンパクトですが、OSの基本となる事がたくさん盛り込まれており、勉強になります。
Doxygenによるインデックスがつけられたページも公開されています(現在アクセスできないようです)。
http://www.kijineko.com/doc/jsp/
あと、ダウンロード不能ですが:
いずれも古典的名著です。プログラムはFORTRANで書かれていますが、FORTRANを知らなくても読めるプログラムばかりです。基本がいかに大事か思い知らされる本です。
回答ありがとうございます。
OSのカーネルは参考になるものが多いですね。
回答ありがとうございます。
小さなものなら読みやすくていいですね。
回答ありがとうございます。
シンプルできれいなコードは大事ですね。
ちょっとずれた話かとも思いますが、Rubyの拡張ライブラリの作り方が書いてある
README.EXT.ja
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_6/...
(FireFox で見たら文字化けしましたが、文字コードをEUCにすると読めます)
は非常にためになりました。これを読んで拡張ライブラリを作ったので、その後 Ruby 本体のソースを読んだりするのに役立ちましたし、その他いろんな意味でためになるドキュメントだと思います。
回答ありがとうございます。
Rubyの中身がちょっと見えた感じです。
悪い例として見ておいた方が良いものが出ていなかったので、
Cプログラミング診断室 http://www.pro.or.jp/~fuji/mybooks/cdiag/index.html
をおすすめします。
Rubyを使うのなら、
るびま本 http://d.hatena.ne.jp/asin/4839923205
やその元になった連載もおすすめです。
回答ありがとうございます。
診断室は前に一度読みました。コードの圧縮率が無限大になってましたね。
連載も読んでみます。
CppUnitのソースコードです。
http://cppunit.sourceforge.net/cppunit-wiki
拡張部分はそうでもないですが、
framework部分は実際のコードでデザインパターンを美しく実装している
良い例だと思います。
回答ありがとうございます。
デザインパターンを美しく……。参考にしてみます。
回答ありがとうございます。
2回目ですね。LinuxのソースコードよりもUNIXの方がいいのでしょうか。
私が読んでためになったと思ったのは、Eclipseのソースです。
・IDEフレームワークの設計
・プラグイン拡張用インターフェイス設計
が、特にためになりました。
Eclipseのプラグインを作りつつ、ついでにEclipseのソースも読むというのがお勧めです。
C言語のtrickyな書き方の勉強に。実際には使えないとけど、C言語が不可思議な動作をしたときの理解の助けになるかも。
普段使っている機能がどう実装されてるかを見るのは結構ためになります
また、compile optionなどに対応した #ifdefの使い分けなど。
OSごとに癖があるので、それを比べるのも面白い。
半分趣味ですが、C言語のゆりかごとして。Cの高級アセンブラとしての様子もわかります。"=+" 演算子とか歴史的なものが残っていて面白い。
副読本としては以下も (日本語訳は読んだことないんですが):
Lions’ Commentary on UNIX (Ascii books)
boost
C++の準標準と言われているライブラリです。
(正確には、ライブラリの寄せ集め)
使いこなすだけでも結構大変ですが、ライブラリによってはシンプルなものもあるので、ソースコードを読むだけで勉強になります。
回答ありがとうございます。
mozilla、ってfirefoxとかfirebirdのことですよね?両方毎日使ってます。普段使っているものの仕組みを知るのも大切かも。