C言語の基礎講座 はじめに
 

1.学習環境
 これから、プログラミング言語を学習しようと思ったとき候補になりそうな言語はC、C++、C#、VisualBasic、Perl、Javaなどが考えられます。 現在(2004年加筆時)、Java、PerlはWEB上のサービスを構築するために使用することがほとんどのようです(Javaは携帯電話で動くアプリケーションの作成にも使われています)。 また、Perlは他のプログラミング言語と比べると癖のある文法なので、初めて勉強する言語としては不向きではないかと思います。。 VisualBasic(VB)、C#はマイクロソフト社独自の言語です。 VBは、いろいろな所で使われている印象を受けますが、新しく出たC#はVBの用途をそのまま継承するような製品のため、VBが将来どうなるのか不安が残ります。 C#は、まだ出たばかりで将来どうなるのか、今のところ未知数です。 残るCとC++は、どちらもよく使われている言語です。 C++は、Cの文法すべて含みさらに機能が拡張されている言語です。 そのため基本的にCを理解できないと、C++の理解することはできません。 また、Java、C#もCの流れをくむ言語です。CやC++で基礎を固めておけば、簡単に理解することができます。

C、C++、C#、VisualBasic、Perl、Java以外に、VC++(Visual C++)、UNIX C、JavaScript、SQLなどの記載があると思います。 以下にそれぞれについて簡単に説明します。
・VC++(Visual C++)
Visual C++マイクロソフト社のC++製品の昔の名称で、Windowsアプリケーションを作成するためのMFCというクラスライブラリが同製品に含まれていました。 このためVC++(Visual C++)とは、多くの場合C++でMFCを使用しWindowsアプリケーションを作成することを意味します。
・UNIX C
UNIX(LinuxやSolarisなどのUNIX系OS)で動作するアプリケーションをCで作成することを意味します。 ソケットライブラリを使用してTCP/IPの通信プログラムを作成するようなパターンが多いようです。
・JavaScript
HTMLファイルに埋め込まれブラウザ上で動作する簡単なプログラム言語です。CやJavaを知っていれば簡単に習得できます。
・SQL
データベースをアクセスするために使用します。これを勉強するのは一般的なプログラミング言語を習得してからだと思います。
・PHP
これもWEB上のサービスを構築するために使用される言語です。

ゲーム開発、組み込み、制御、UNIX通信関係などで特にC言語プログラマの需要が多かったのではないかと思います。 また最近は、要求される言語スキルが多岐にわたってきている印象を受けます。 このような現状では、C++、Java、C#への移行が容易なC言語でしっかり基礎を固めておくのが良いのではないかと思います。 また、C言語でのゲームプログラミングについて解説する講座も作成しましたのでご活用ください。


 C言語の勉強を始めるにあたりいくつかのものを用意する必用があります。 少なくとも下記のものは用意する必要があります。

(1)C言語の処理系
 プログラミング言語の学習する近道は、実際にたくさんのプログラムを作り試してみることです。 本を読んだり、セミナーを聞いたりするだけでは収得は困難でしょう。 このためプログラムを入力して実行するための環境が不可欠です。 コンピュータを持っていてインターネットにつなげているような人でも、だれのアドバイスもなしに適当なC言語の処理系を入手しプログラムを作成し実行できるように環境を整備することは非常に難しでしょう。 身近にプログラムを作れる人がいて、「プログラムはこう入力して実行する」というところまで環境を用意してくれなければ処理系を用意する段階で挫折してしまいかねません。
 オーキッドでは以前よりMS-DOS用として販売してきたC言語インタープリタ(ORCHID C)をWindows 95(現在では、Vista/XP)用に移植し、Study Cとして販売しております(ORCHID Cにくらべ機能的には大幅に強化されています)。 最近では、複数の大学等の教育機関で教材として採用されています(採用実績)。 Study Cは、このページからインターネット上で購入することができます。 また、Study Cのサンプル版をロードすれば、かなり不便ですが一応C言語の勉強は可能です。

Study Cの概要を見たい方はこちらをクリックしてください。

Studyでプログラムをステップ実行しているところ Study Cの画面イメージを見たい方はこちらをクリックしてください

Study Cサンプル版ダウンロード

(2)学習環境の構築
Study Cをダウンロードが完了したら次の手順で学習環境を構築します。
・作業用のディレクトリを作成してダウンロードしたファイルを実行(自己解凍プログラム)してファイルを展開します。
・解凍したファイルの中からsetup.exeプログラムを実行します。
・setupプログラムがインストール先のディレクトリなどを確認してくるので通常はOKボタンを押します。
・インストール先のディレクトリが無い場合は、ディレクトリを作成してよいか確認してくるのではいボタンを押します。
これで学習環境の構築は完了しました。
スタートメニューからStudy Cを起動すればエディタ、Cインタープリタ、デバッガを使ってすぐに勉強を開始することができます。




2.プログラミング言語とは
 プログラムとは、コンピュータにどのような作業をさせるかを命令するための指示書のようなものです。 コンピュータは指示書にかかれた命令どおりに作業をこなして行きます。 この指示が人間が普段使っている言葉で行えればよいのですが、現在のコンピュータの能力では不可能です(将来可能になるかも知れません。しかし、人間が普段使っている言葉がコンピュータへの指示に適しているかという問題もあります)。このため、コンピュータへの 指示書を書くための人工的な言語があり文法が厳密に定義されています。 この言語のことをプログラミング言語と呼びます。プログラミング言語は人工的な言語のため 今までに多くの言語が考え出され、それぞれの言語に名前が付けられています。 有名なプログラミング言語にはBASIC、COBOL、FORTRAN、C、C++などがあります。
 作成したプログラム(指示書)をコンピュータに理解させ実行させるには、C言語などのプログラミング言語からコンピュータが理解できる唯一の言葉、機械語へ変換する必用があります。 機械語は、0と1の組合せだけで構成されコンピュータには理解しやすい言葉ですが、人間にとっては理解しにくい言語です。 この言語への変換はコンパイラやインタープリタと呼ばれるプログラムが行います。




3.プログラムをつくる上で必要なこと
 C言語は人工的な文法を持った言語(プログラム言語)なので、その文法を学習する必要があります。 文法は本書のような入門書で、ある程度学習することができますが、C言語を完全に修得するには、実際にプログラムを自分で作成し、下記@〜Dの作業を何度もくりかえし学習する必要があります。

                                                                               
@プログラムを作成
              ↓
A作成したプログラムを実行させてみる
              ↓
B思ったとおりの実行結果になるかを確認する
              ↓
C動作がおかしければその原因を究明する
              ↓
Dプログラムを修正する

 この@〜Dの作業を行うには、コンピュータ以外に少なくとも次に示すソフトウェアを用意する必要があります。

 @エディタ
 エディタはプログラムをコンピュータに入力したり、以前に入力したプログラムを修正 するためのソフトウェアです。エディタはワープロのような機能を持っており、日本語の 文章を入力するようにプログラムを入力していきます。
Study Cでは画面右上のEDITというボタンを押せばエディタが起動されます。
StudyCのエディタでプログラムを編集しているところ
※Study Cがインストールされている方は下記のボタンで実行してみてください。
Study Cにロードし編集する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...

 Aインタープリタ/コンパイラ
 処理系は、作成した言語(本書ではC言語)のプログラムを機械語に翻訳したり実行
するためのソフトウェアです。処理系の翻訳形式にはインタープリタ方式とコンパイラ
方式の2種類があります。STUDY Cはインタープリタ方式です。
Study Cでは画面の右上から5番目のRUNというボタンを押すとエディタで入力したプログラムが実行されます(ステップ実行は6番目のボタンです)。
Studyでプログラムをステップ実行しているところ
※Study Cがインストールされている方は下記のボタンで実行してみてください。
Study CにロードしStep実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...

 BWindows 95/98
 上記のソフトウェアをコンピュータ上で動作させるために、Windows 95/98というソフトウェアが必要です。 Windows 95/98とは米国のマイクロ・ソフト社が開発、販売をしているOS(Operating Systemオペレーティング・システム、基本ソフトウェア)です。 OSはハードウェア(コンピュータ機器)とアプリケーションソフト(ワープロ、表計算などの間の橋渡しをし、コンピュータ全体を管理する基本的なソフトウェアです。 OS自体は空気のような存在で、ワープロなどを使っているときはOSが存在していることすら忘れてしまいますが、コンピュータを利用する上ではなくてはならないものです。




4.インタープリタとコンパイラの違い
 C言語も日本語や英語と同じように言語の一種なので、C言語を日本語、英語を機械語と置き換えて考えてみましょう。

                                                                               
      日本語(C言語)
 日本人           外国人

(日本語しか知らない     (英語しか知らない
 プログラマ)        コンピュータ)

 当然、日本人のあなた(プログラマ)は日本語(C言語)で外国人(コンピュータ)に話
しかけようとします。しかし、相手は日本語を理解できないため意味が通じません。
このような状況では普通、通訳を使います。

                                                                               
       日本語        英語

 日本人        通訳         外国人(英語圏の)

 通訳が日本語(C言語)から英語(機械語)に翻訳を行うので、相手に理解させることができます。 インタープリタとコンパイラの違いは、通訳がどのように翻訳して相手にプログラムを伝えるかの違いに相当します。 翻訳の方法には次の2通りがあります。

 @通訳が日本語の命令書の内容を1文読んでは相手(外国人)に英語でその内容を伝えその内容に従って行動する方法(同時通訳)。

 A日本語の命令書全文を英語に翻訳し英語の命令書をつくり、相手(外国人)がその
英語の命令書に従って行動する方法(翻訳)。

 コンピュータの場合もこれと同じで、前者がインタープリタ方式、後者がコンパイラ方式と呼ばれています。 コンピュータの場合は翻訳を行う人がいるわけではないので、C言語から機械語への翻訳作業はインタープリタまたはコンパイラと呼ばれる翻訳用ソフトウェア(処理系)によって自動的に行われます。

                                                                               
(日本語)                          (英語)
日本人            翻訳者            外国人

(C言語)                          (機械語)
プログラマ        コンパイラまたは        コンピュータ
             インタープリタ




5.インタープリタとコンパイラの長所と短所
 インタープリタは、プログラム作成が完了すると同時に実行を開始することができますが、1行ずつ翻訳しながら実行するので、プログラムの実行時間は遅くなります。 また、コンパイラは作成したプログラムをすべて機械語に翻訳してからでないと実行できないので実行開始までに時間がかかりますが、一度機械語のプログラムが作られてしまえば完成 したプログラムを高速に実行することができます。
 初心者の言語学習方法は下記の図のようになるので、初心者にはプログラム修正後ただちに実行結果が確認できるインタープリタ形式が向いています。

                                                                               
インタープリタ             コンパイラ

    プログラムの作成          プログラムの作成
       ↓                 ↓
    プログラムの実行          機械語への変換
       ↓                 ↓
    プログラムの修正          プログラムの実行
                         ↓
                      プログラムの修正

 いずれの方法で学習しても、作成されるプログラムはまったく同じものです。したがって、インタープリタでプログラムを開発し、最後にコンパイラで機械語に翻訳するといった使い分けも可能です。




6.プログラムの構成
 プログラムの構成に決まった形式はありませんが、本書ではなるべく次のような簡単なプログラム構成にしぼって話を進めていきます。

                                                                               
@計算や判断などの処理
   ↓
 データの出力(表示)

Aデータの入力
   ↓
 計算や判断などの処理
   ↓
 データの出力(表示)


C言語の基礎講座が始まります。StudyCのダウンロードをまだ行っていない方は、ここをクリックしてください。 また、Study Cの購入を希望される方はここをクリックしてください。 (Study Cの概要はこちら)

お問い合わせ先 (C言語トップ)<前へ |  C言語のトップページに戻る |  次へ>(第1回C言語の基礎講座) Copyright(C) 2003 潟Iーキッド