これから本格的にC言語の学習を始めますが、最初に断っておかないといけないことがあります。C言語というのは、簡単にアプリケーションソフトウェアを開発するためのプログラミング言語ではありません。C言語はアプリケーションソフトウェアではなくシステムソフトウェアを開発するためのプログラミング言語だからです。

いきなり「アプリケーションソフトウェア」とか「システムソフトウェア」という言葉が出てきて戸惑うかもしれませんね。詳しい説明は省きますので、読者のみなさんが調べてみてください。簡単にいうと、「システムソフトウェア」は「基本ソフトウェア」とも呼ばれるもので、OSとか、コンパイラとか、データベース管理システムとか、Webサーバーとか、そういったものを指します。一方、「アプリケーションソフトウェア」というのは「応用ソフトウェア」とも呼ばれるもので、「システムソフトウェア」を使って作られた、実用的な目的を果たすためのものです。

もっと簡単にいうと、どこかの誰かが作った便利な道具をつなぎ合わせて作るのが「アプリケーションソフトウェア」で、そのどこかの誰かの立場で作る便利な道具が「システムソフトウェア」です。ですので、C言語を使うということは、便利な道具を作る“どこかの誰か”になることを意味しています。

また、分類上はアプリケーションソフトウェアに入るものでも、システムソフトウェア寄りのものもあります。よりハードウェアに近いといったほうがいいでしょうか。このように、よりハードウェアに近いことを「低水準」といいます。逆に、よりハードウェアから遠いことを「高水準」といいます。高水準とか低水準とかいっても、優れているとか劣っているとかいうことではないので注意してください。用途が違うということなのです。C言語は、最近はやりの言語に比べれば、明らかに「低水準言語」ということになりますね。

この連載では、まずは誰かが作った便利な道具にできるだけ依存しない形でC言語の文法を学んでいきます。その後、段階的に他人が作った便利な道具(「標準ライブラリ」といいます)を使いながら開発効率を上げていきます。ほかの入門書とは全然違うアプローチですね。

← はじめに
→ 1.1 とりあえず動かしてみよう