[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:13932] Re: plamoで c言語の勉強



From: "KIMURA, Minoru" <mk@L.email.ne.jp>
Message-Id: <20020512003349T.mk@l.email.ne.jp>

> コンピュータを理解するには、理解してしまった人では既に思い出せない程
> たくさんの積み重ねが裏に存在していて、例えばそれはコマンドの知識で
> あったり、ハードウェアやCPUの内部に関する知識であったり、プログラ
> ミング言語の知識であったり、OSの知識であったり、アルゴリズムの知識
> であったりするわけです。

いやぁ、私の場当たりかついきあたりばったりな落書きを、ここまでハイレベ
ルにフォローしていただいて恐縮です :-)。

> たくさんプログラムを作って、時にドツボにハマって鍛えられた結果とし
> てそういうものを身に付けていくので、一朝一夕にはできません。修羅場
> を経験せずにスキルなんて上がるわけがありません。

ですね。つまるところ、プログラマとしてどのくらいのスキルを持っているか
で、「学習のために読むべきソース」の規模とレベルがある程度規定されてく
るというか。

あと、修行したい分野によっても変わってきますけどね。
C の基礎だと、libc の標準関数近辺とかは結構いけるかもしれません。

> LinuxをC言語の習得の土台に据えるのは正しい判断だと思います。

ここでの Linux は、「システムとしてのLinux」ですね。

OSの構造を学ぶには、「Linuxカーネル」は、伝統にとらわれないモダンな実
装ということでおもしろいのでしょうけど、やはり「UNIXを学ぶ」ということ
を考えると、BSD は避けては通れないのかもしれません。特にネットワーク回
りとか。

> WindowsなんてC++などが標準言語になってるけど、Windows用のプログラム
> はウインドウを操作するためのAPIがプログラムの中心になってくるので、
> 本質を見失いやすいだろうと思います。

関数名が長すぎて読む気がうせるとか、Cに見えないとか :-)。
# X でも アテナウィジェット系は似たようなもののような気も…

> C言語の初心者へのアドバイスとしてよくあるのは「標準関数」と同じ働き
> のプログラムを作れ、というのがありますね。strcpyとかstrcatとか。
> 入力された数字を数値に変換するのを1文字ずつ処理するプログラムを書い
> てみるとか。

ANSI本(プログラミング言語C 第2版)を紐解くと、この手の例題がたくさんあ
りますね。

    http://kyoritsu-pub.topica.ne.jp/bookhtml/0306/000728.html

ちょっと初心者にはお勧めできない本ですが、いつかは一度目を通すべきもの
だと思っています。

> # 言語はCの他にForthやLispなんかも教養程度にお勧めです

UNIX的なハッカーとしては、LISPは必修かと :-)。

実用的な側面としては、Emacs の *scratch* バッファでちょっとした計算が
すぐできるようになって便利 とか。

# *scratch* に、(+ 1 (* 2 3)) [Ctrl+J] とか打つべし

プログラマ的素養の側面としては、LISPを極めておくと、頭が勝手に構造化さ
れてくるような気がします。

ただ、「本来のLISPなコード」となると、良質の例文があまりない、という問
題はありますが。Mewのソースでもいいのですが、やや高速化とかセル消費量
削減とかの実用的な側面に特化したチューニングになってます。まあ、これは
良し悪しかな。
_______________________________
田原 俊一   jado@flowernet.gr.jp, shunichi_tahara@zenrin.co.jp
                                  http://flowernet.gr.jp/jado/
FingerPrint:  16 9E 70 3B 05 86 5D 08  B8 4C 47 3A E7 E9 8E D9
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

References
[plamo:13927] Re: plamo でc言語の勉強,
[plamo:13930] Re: plamoで c言語の勉強, Shun-ichi TAHARA (田原 俊一)
[plamo:13931] Re: plamo でc言語の勉強, KIMURA, Minoru

[検索ページ] [メール一覧]
Plamo ML 公開システム