日曜プログラマー中級

日曜プログラマーの悩みの種は情報不足です。私もそれで悩みました。しかし、「ネットの世界は広大だわ(何からの引用か分かる人には分かります)。」なのです。悩みを解消すべくネット上の入門講座をリンクしまくります。できるだけ単なる説明よりも実験して確認できるチュートリアルを探していこうと思います。できるだけ単純なテンプレートを作って動作確認し、それを膨らませていくのが効率の良いプログラムの勉強の仕方です。

C 言語

C 言語基礎編信州大学インターネット大学院の教材
C 言語応用編信州大学インターネット大学院の教材
インターネット大学院カリキュラム信州大学インターネット大学院の教材
「C言語による最新アルゴリズム事典」サポートページ奥村晴彦さんの同書のプログラムがダウンロードできます。

GNU Manual

私的 GNU マニュアル翻訳プロジェクトKazuhisa Ichikawa さんの GNU Manual 翻訳プロジェクト。
最適化の為のアセンブラ入門Rei Suzuki さんの VC++ のためのアセンブラ入門
Using as -- The GNU AssemblerGNU Assembler のネット版 info
The Executable and Linking Format(ELF)ELF の構造の解説
ELF: プログラマの視点からHongjiu Lu 著、Mitsuru Oka 訳。
GCC の処理GCC の4つの処理過程を覗いてみましょう。

make

フリーソフトをインストールするときにお世話になる make ですが、Makefile の中味は一体どうなっているのでしょうか。

MAKEの第一歩make入門。最初に読んで下さい。読むだけでなく実験して下さい。Makefileが作りたくなります。
トリビアな makefile 入門MAKEの第一歩の次に読んで下さい。
GNU Make 日本語訳GNU Make のマニュアルの日本語訳。

yacc/bison

yacc は、電卓プログラムなどを作るときに欠かせない構文解析自動化ツールです。yacc で自動作成されたソースを見ると絶対使いたくなります。

BNF 記法入門(1)XML関連仕様書を読むための BNF 記法入門
BNF and EBNFBNF 記法入門。
Notations for context-free grammarsBNF 記法についての解説。
ACEDB日本語ガイドオブジェクト指向データベースACEDBの解説。BNF記法の活用の実例。
yacc入門このページに書いてある通りに実験するとyaccの使い方が分かります。
Yacc...そして Lex をよみがえらせるIBM の developerWorks の記事。
Yacc入門Yacc と Lex によるコンパイラの作成。
yacc_sample.tar.gzYacc 入門の コンパイルできたサンプル。tar zxvf yacc_sample.tar.gz で解凍し、cd Yacc したあと、flex sample.l、bison sample.y とすると sample.tab.c ができるので、gcc sample.tab.c -o sample でコンパイルします。./sample でプログラムを起動し、コンソールから 1 + 2 * 3 と入力してください。終了は ^D です。make clean とするとソース以外のファイルが消去されるので何回も実験できます。コンパイルは make 一発でもできます。
コンパイラ構成論琉球大学の河野真治さんのコンパイラの講義

lex/flex

flex は C の字句解析プログラム(スキャナ)を自動生成するプログラムです。bison と組み合わせて使うとインタープリターやコンパイラを作成できます。

Manpage of FLEXflex の マニュアルページの日本語訳です。
FLEX サンプルManpage of FLEX のサンプルがそのままではコンパイルできなかったのでコンパイルできるように設定したサンプルファイルです。
Flex マニュアルFlex 2.5 のマニュアルの日本語訳です。

m4

m4 は「マクロプロセッサ」です。「マクロプロセッサ」って何をするのと思われた方は次の記事を読んで下さい。

make と m4 によるページの管理mikami さんの HTML 書きで楽をする方法の解説。
GNU macro processorGNU m4 マニュアル日本語版。