前から思っていたのですが、毎日ちまちまアウトプットっていう縛りは
新しい言語の勉強に適しているような気がします。
ということで、この場所を使って一言語習得を目指そうと思い立ちました。
カノ
達人プログラマも一年一言語っていってますしね
気分的には、数年後をにらんでLuaとかErlangとかをやりたいところだったのですが今年は、C/C++言語を勉強することに決めました。
いままできちんと勉強したことがないせいで、まったく自信がなくて、少しコンプレックスになっていたというのが選んだ理由です。
さて、題材ですが、id:sumiiさんのブログにでていた大学の課題がボリュームもあってやりがいがありそうなので、それにしようと思います。
「C言語入門」第1回課題 – sumiiのブログ
学部2年生冬学期の演習より。主に東京大学理学部情報科学科の進学振り分け内定者用の授業で、授業日程より2007年10月10日出題と思われる。(追記:IEでは文字コードをUTF-8…
課題は以下。
課題1: シェル作成
シェルを実装しなさい。すなわち、以下の機能を持つプログラムを実装しなさい。
- 最低でも、「ジョブ管理」「リダイレクト」「(多段)パイプライン」の機能は実装すること。
- (当然だが)高機能なシェルほど望ましい。
- プロンプトを表示してユーザのコマンド入力を受け付ける。
- 入力されたコマンドを解釈・実行する。
- コマンドの実行が終わると再びプロンプトを表示する。
- ジョブ管理(フォアグラウンド/バックグラウンド切り替え、ジョブの終了、サスペンド機能、etc…)行う。
- リダイレクト、パイプラインの機能を持つ。
以上の機能の実現に際して、bash等の他のシェルの助けを借りてはいけない。
課題は、以下の中からひとつ選ぶものだったのですが、
- シェル作成
- データ圧縮・解凍
- スパムフィルタ
他の二つはアルゴリズム的な素養が必要そうだったので、シェル作成にしました。
どこから実装したらいいか、いまいち想像つきませんが
チマチマやっていきたいと思います。
え、今日の学びは? とかいわないこと。
コメント