PPPUC++#4
Hello World
"Programming is learned by writing programs." Karnighanの言葉だったのかー。
ともかくour best eternaly friend -- hello worldの登場です。
- プログラミング環境を触ってみる
- コンピュータが指示どおりに動く、というのを体感してもらう
2.1 Programs
- コンピュータは常識の通用しない、KY装置
- すべてを的確に、詳細に、完全に与える必要がある。
2.2 The classic first program
でたよ Hello World。
// This program outputs the message "Hello, World!" to the monitor #include "std_lib_facilities.h" int main() // C++ programs start by executing the function main { cout << "Hello, World!\n"; // output "Hello, World!" return 0; }
どうやらstd_lib_facilities.hにゴミゴミをすべて突っ込んで、初心者に水面下のバタ足は見せない方針らしい。ので、「とりあえずWebからとってくるか、インストラクターに貰ってね」と書いてある。で、net無いとかインストラクターもいない、ってときにだけ、、、と注釈して呪文が・・・(いみねーじゃん)。むしろこのままの構成だと、思わず先走って書いてあるコードを入力してしまってハマる独学者がいそうな悪寒。更に魔法をなるべく見せない方針なら\nはいかんのでは?
まあ基本は解説の必要もなさそうなんだけど、初心者向けの本なので懇切丁寧に説明が続く。読み取ったことなど・・・
- プログラムの世界では略語がよく出てくる。cout = character output stream とか。変に見えるだろうけど慣れると便利だよ、と
- コメントは人間向け、、、それも一番利益を被るのは、あなた。そう、コード書いているあなたです。
- プログラムというのは2つの観客に向けて書くものだ。
- もちろん、コンピュータ。実行してくれる。
- プログラマ。分かりやすければ分り易いほど、修正の可能性は増える。ある意味プログラミングとは人間対人間のCommunicationだ!(かっこいい)
- まあしかし、コメントは完全に人間向けで(普通は)コンピュータは全く読まない。
- 第一行目のコメントは、結構重要。プログラム本体は「なにをするか」は書いてあるけど「どういう意味があるのか」は書いていない。
2.3 Compilation
コンパイラの話。
- コード、とsource とかobjectとかいろいろあるけれど、この本ではコード、と単純に言った場合は ソースのことを差します
- 更に言うと、この場合コメントを含みません。コメントは(普通は)コンパイラから見えません。
- 特に重要でもないんだけど " The compiler has absolutely zero tolerance for spelling mistakes." と、そのあと1ページ半程度使って、ちょっとしたTYPO入 Hello, Worldがどかどか入っているのに、つい吹いてしまった。コンパイラは「もしかして・・・?」とも言わず、いちいちpickyに文句を言ってくる。と。
- コンパイラはそのくらい「アホか」と言いたくなる程にマヌケで、しかも我々がやってしまう間違いも同様に「アホか」と言いたくなる程にマヌケなのです
- しかし、ここでもし、コンパイラがKYして変にguessしてしまったらどうなるか
- 一番大事なことは、プログラミングにおいて、一字一句間違いにいちいち過敏に反応する一見うっとーしーこのコンパイラは、あなたを助けてくれる最高の友人である、ということ
案外重要な話だなー。
2.4 Linking
まあここも基礎ですからね。ダッシュですよね。
2.5 Porgramming environment
Drill
はすべきなんだろうか・・・・サボる。
Exercises
もサボりたい。まだ何も必殺技を覚えてない状態だからしかたないけれども、これはつまんない。1章の課題のほうが面白かった。