next up previous contents
Next: 1.2 プログラムの作り方 Up: 1. 初めての C Previous: 1. 初めての C

1.1 C とは何か?

  1. コンピュータ コンピュータの脳の事を中央演算処理装置 (CPU) と言うが、CPU の解釈出来る 言葉は人間の話す言語とはかなり異なっている。コンピュータが発明された初期に おいては、専門家が直接コンピュータの理解できる言葉で CPU に命令をしていたが、 コンピュータの進歩と共に、そうした専門家ではない人々にもコンピュータが使える ようにする必要性が出てきた。そうした必要性に応えるために、これまでに多くの 言語が考えられたが、我々が使用している UNIX は、その OS (オペレーティング・ システム) そのものが C で書かれていたために、C 言語は UNIX の主力言語となった。 C 言語は、OS を記述する必要性から、単純性と複雑性を有し、そのために 多くのコンピュータで現在使用可能になっている。

    本書では処理系は、better C としてC++を用いることにする。

  2. コンピュータ言語

    1. 同時通訳と翻訳の違い -- コンパイラとインタプリタ コンピュータ言語では、その場その場で命令を実行していく言わば 同時通訳のようなインタプリタと呼ばれる種類と、命令をすぐには実行 出来ず、多くの命令をいったん全部 CPU が理解出来る言語(機械語)に 全て翻訳するコンパイラと呼ばれる種類とがある。インタプリタの代表 には BASIC があり、C 言語はコンパイラの代表的な種類の一つである。

    2. 動作の順序を指示するものとしないもの -- 手続き型と非手続き型 上に挙げた以外にも、コンピュータ言語の分類には色々なものがあるが、 今ひとつの分類として手続き型と非手続き型という分け方もある。 簡単に言うと、手続き型は、言わばこうるさい母親型(父親がそういう 人物の事もあるが) とでも言うべきもので、コンピュータに対してやるべきことを一つ一つ 全て命令するタイプのものであり、非手続き型はある程度勝手に命令相互 の関係を推論してくれるものである。つまり、手続き型では、

      \begin{displaymath}A \rightarrow B \rightarrow C \end{displaymath}

      のように順番をきちんと記述しなければならないが、非手続き型では、

      \begin{displaymath}A \rightarrow B, B \rightarrow C , B \rightarrow C \end{displaymath}

      のように相互の関連を明示しなくても同じものをうまくつなげてくれる メカニズムになっている。

  3. C の特徴

    1. 構造化プログラミングに対応

      1. 逐次実行
      2. 判断
      3. 繰り返し

    2. プログラムは関数の集まり
    3. 言語仕様が小さい
    4. ライブラリは大きい
    5. マシンに密着した記述も出来る
    6. プロ好み

  4. C++ の特徴

    1. オブジェクト指向に対応

      1. データの抽象化
      2. 多重継承
      3. 演算子や関数のオーバーロード

    2. 文法的にはC言語を引き継いでいる
    3. 言語としては異なるが、better C としても使える



Noriyo Kanayama