3 プログラムの作成と実行

3.1 一連の流れ

ディレクトリーの操作ができるようになったので,次はプログラムを作成と実行の練習を 行う.まず,初心者が最初に作るものとして,最も有名な'Hello World'というプログラ ムをつくる.
  1. ターミナルの起動
    • ターミナル(端末)のアイコンをクリックして,ターミナルを立ち上げる.
  2. 作業ディレクトリーの作成と移動
    • mkdir hello」とタイプして,作業用ディレクトリーhello を作る.
    • 作業用ディレクトリーができているか,「ls」コマンドで確認する. すると「hello」が表示される.
    • cd hello」とタイプして,作業用ディレクトリーに移動する.
    • pwd」コマンドで,作業用ディレクトリーに移れたことを確認する.
  3. エディターの起動
    • emacs hello_world.c&」とタイプする.
    • すると,プログラムのソースを書くウインドウが現れる.
  4. プログラムの記述
    • エディターのウィンドウに以下のプログラムを書く.
      		#include <stdio.h>
      		
      		int main(void)
      		{
      
      		   printf("Hello World !!\n");
      
      		   return 0;
      		}
      
  5. プログラムの保管
    • プログラムを書き終わったならば,[file]メニューの[Save(current buffer)] を選択する.あるいは,フロッピーディスクアイコンをクリック して,ソースファイルを保管する.
    • ターミナル上で「ls」コマンドを打ち,ソースファイルが保管さ れていることを確認する.
  6. コンパイル
    • ターミナル上で「gcc -o aisatsu hello_world.c」と打ち込み, 先ほど作成したソースファイルをコンパイルする.
    • もし,コンパイルエラーが発生したら,ソースファイルを修正 する.
    • 実行ファイルができているか,「ls」コマンドで確認する.
  7. 実行
    • ターミナル上で「./aisatsu」と打ち込み,プログラムを実行させる.
    • 'Hello World'と表示されれば,プログラムは動作は完璧である.

以上のプログラム作成の手順をまとめると,図3のようなフローになる.

図 3: プログラムの作成のフローチャート
\includegraphics[keepaspectratio,scale=1.0]{figure/all_procedure.eps}

3.2 コンパイルとは

プログラムを作成する場合,コンパイル5(gccコマンド)という不思議なステップがある.このステップについ て簡単に説明しておく.

一般に,コンパイルというと,ソースファイル(ここではC言語)から実行ファイルを作る動作の ことを指す.ターミナル上で,

	gcc -o 実行ファイル名 ソースファイル名
とタイプすれば,ソースファイルから実行ファイルができあがる.エラーが無ければちゃんと 実行可能なファイルが作成され,「./実行ファイル名」とタイプすればプログラム ムが実行できる.

さて,この動作がなぜ必要なのであろうか? 諸君が学習しているC言語のソースファイル の内容は人間が理解できるが,コンピューターは理解できない.そのため,人間が理解で きる言葉からコンピューターが理解可能な言葉に翻訳が必要で,コンパイルとはそのため に必要なのである.要するに,プログラミング言語(ここではC言語)を機械語に翻訳して いるのである.

以上の説明で大体良いが,正確には,機械語に翻訳するためには,コンパイルとリンクと 言う作業が必要である.それらの作業は,コンパイラーとリンカーが受け持っており,コ マンド「gcc」の作業は,図4のようになっている.通常, コンパイルと言っているが,実際にはコンパイルとリンクを行っている.

余談ではあるが,オプションの「-o」を付けない,すなわち実行ファイル名無しで 「gcc」を動作させた場合,「a.out」という実行ファイルができあがる.こ れも実行可能で,「./a.out」と打ち込めば,プログラムが動く.こ の a は,assembler out の略らしいが,実際には linker out である.

図 4: gccコマンドの作業内容
\includegraphics[keepaspectratio,scale=1.0]{figure/compile_process.eps}

3.3 練習問題

[練習1]
以下のようにプログラムを作成せよ.
  • ログインディレクトリーにサブディレクトリーを frenchを作り,その中にbonjour.cという ソースファイルを作成する.
  • hello.cを参考に,"Bonjour monde !!"と表示するプロ グラムを作る.ただし,ダブルォーテションは表示させる必 要はない.
  • コンパイルして,実行させよ.ただし,実行ファイル名は, ofuransuとする.
[練習2]
次のようにプログラムを作成せよ.
  • ログインディレクトリーにサブディレクトリーをeuro を作り,その中にmulti.cというソースファイルを作成 する.
  • hello.cを参考に,
    Hello world !!
    Bonjour monde !!
    Guten Tag welt !!
    と表示するプログラムを作る.
  • コンパイルして,実行させよ.ただし,実行ファイル名は, hogehogeとする.

ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成19年4月10日


no counter