第1章 C言語とは何か ~ 言語とコンパイラについて ~

皆さんがこれから学習するC言語とは、一体何なのでしょうか?

「名前ぐらいなら知ってるよ」という人もいるかもしれません。 「プログラム言語の一種だよ」とまで知ってる人や、「別の言語をやっていたよ」という人もいるかもしれません。 とりあえず、この研修では皆さんが全くの素人だと仮定して、ごく初歩の段階から進めていこうと思っています。

これからC言語を学習するに当たっては、やはりC言語が何なのかを知らなくてはなりませんね。 ですから、まず初めはC言語とは何かを説明したいと思います。 と言っても、難しいC言語の成り立ちや、プログラム言語上の分類なんて説明をするつもりは全くありません。
皆さんがC言語を使えるようになるために、必要最低限なことしか説明しません。
それ以上については、研修終了後に、皆さんが自分自身で理解を深めて行ってください。

まず、今の時点で皆さんはC言語に対するイメージに、どんなものがありますか?

語尾に「言語」と付くけれど、英語やドイツ語とは全く違うものだろう。
そういう認識があると思います。さてどうなんでしょうか?
確かに、英語やドイツ語とは別ものかもしれません。しかし、今のところC言語は、 英語やドイツ語などの(もちろん日本語も含めて)言語の一種だと思っていただけないでしょうか。
C言語を使うことは、英語を話すことと同じようなことだと考えてください。

皆さんが英語圏の人と話をする時、英語がしゃべれなかったらどうしますか?
おそらく、片言の英語で会話を試みることでしょうが、大事な商談の時だったらどうします?
会話のミスは一つでも許されないなんて場合は、間に通訳を入れることでしょう。 そうすれば、あなたは使い慣れた日本語で全てを語り、商談の相手も通訳からキチンとした英語で聞けます。 それを、下のような図にしてみました。

一見、C言語の説明とは無関係に思えますが続けますね。

コンピュータは、その登場以来、急速に発展してきました。
一昔前だと、数千万円もの大金を出さなければ手に入らなかった性能のコンピュータが、
家庭で買える値段にまでなりました。
この世界での技術の進歩は、他の業界の比ではないといえるでしょう。
それだけ進歩したにも関わらず、いまだにコンピュータの頭脳と言えば、
0と1の羅列(いわゆる機械語ですね)しか理解できません。
コンピュータに何かをさせようと思えば、本来は0と1で命令しなければいけません。
しかし、それでは我々は困ってしまいますね。

せっかく性能(計算する速さなど)の方が向上してきたのですから、使いやすさの方も向上しないと困りますね。 0と1の羅列でなく、人間にもっと分かり易い言葉で、コンピュータを動かせないかという研究も、 コンピュータの性能の向上と同時に続けられてきました。

そうして生まれた数ある言語の中の一つがC言語(注1)です。ではまず、下のC言語による記述(リスト1)を見てください。

– リスト1 –

#include <stdio.h>

int main(int  argc,  char*argv[])
{
        int  cnt;

        for  (cnt=0;  cnt<10;  cnt++) {
            if  (cnt%2 == 0)
                printf("%d is an even number.\n", cnt);
            else
                printf("%d is an odd number.\n", cnt);
        }
        printf("%d is the last.\n", cnt);

        return 0;
}

今のところ上の記述が意味不明でもかまいません。そしておそらく皆さんは、
「C言語が人間に理解しやすい言語とは、あまり思えない」と感じたことでしょう。
もっともなことだと思います。

しかし、0と1の羅列に比べたら、まだましだと思ってください。 それに、研修が終わる頃には、C言語に対して今とは違う感覚を持つようになってるはずです。 心配ありません。

< 前のページへ

Pagetop