とらりもんHOME  Index  Search  Changes  Login

とらりもん - プログラミングの流れ Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

<[[C言語入門]]に戻る>

!プログラミングの流れ
 C言語を使ったプログラミングでは、まず人が考えながら「{{fontc(ソースコード,red)}}」というものを計算機に打ち込む。ソースコードはプログラムの設計図と言われることが多いが、むしろ(人に理解可能な形態での)プログラムそのものである。以下にC言語のソースコードの例を示す(眺めるだけでよい)。

{{attach_view(source.png)}}

図 ソースコードの例 (昼の長さを計算するプログラムの一部)

 ソースコードは「テキストファイル」として作成される。テキストファイルとは、文字コードのみで構成される、最もシンプルな文書ファイルの形式である。上の例は, テキストファイルであるソースコードを画面に表示したものである。

 ソースコードが完成すると、それを計算機で「{{fontc(コンパイル,red)}}」する。コンパイルとは、ソースコードを、計算機がそのまま実行することが可能な言語(機械語という)に翻訳することである。コンパイルによって生成される実行可能なファイルのことを「{{fontc(バイナリーコード,red)}}」と呼ぶ。

 バイナリーコードは実行可能なはずである。しかし、よほどの天才でもない限り, 人の書いたプログラムは普通は間違いを多く含む。それを「{{fontc(バグ,red)}}」という。バグのせいで、バイナリーコードを実行するとエラーが出て停止したり、期待したのと違う結果が出たりする。そのたびにソースコードを検査し、バグを見つけ、修正し、コンパイルし、またバイナリーコードを実行・・・ということを繰り返していく。この作業を「{{fontc(デバッグ,red)}}」という。図式的に書けば、以下のようになる:

{{attach_view(program.png)}}

図 プログラミングの流れ。赤字は人がすること(考える)、青字は機械がすること(コンパイル, 実行)である。

!プログラミングに必要なもの
 プログラミングには、(計算機はもちろんとして)以下のものが必要である:

# OS ... 計算機の基本ソフトである。Windows, Linux, MacOSなどが、パソコンでは一般的だが、大規模な数値計算でよく用いられるのはUnixである。LinuxやMacOSXはUnixの一種である。Windowsの上でも、WSL[[https://docs.microsoft.com/ja-jp/windows/wsl/]][[WSL|https://docs.microsoft.com/ja-jp/windows/wsl/]]という、Linux環境を構築する機能がある。この実習ではLinuxを用いる。
# テキストエディター ... テキストファイルを作成するのに使うアプリケーションソフト。プログラミングでは、ソースコードをテキストエディターで作成・編集する。 Windowsでは「メモ帳」や「TextPad」などが代表的である。LinuxやUnixではviやEmacs (mule) が代表的である。この実習ではviを用いる。
# コンパイラー ... コンパイル、すなわちソースコードをバイナリーコードに変換するためのアプリケーションソフトである。C言語にもいろいろなコンパイラーがあるが、この実習ではgccというコンパイラーを使う。gccはオープンソースであり, 広く使われている。
# デバッガー ... デバッグを支援するアプリケーションソフトである。この実習では使わない。
# 人間の頭と集中力 ... プログラミングにおいて最も重要なものである。もちろん、この実習でも用いる。
# タフで諦めない心 ... プログラムは{{fontc(バグが出て当たり前,red)}}である。プログラムを書く時間よりも, デバグに費やす時間の方が多いのが普通である。失敗してもめげない。動くまで諦めない。

{{attach_view(linux.png)}}

図 C言語プログラミング中のLinux画面の例。右のウィンドウではviエディターでC言語のソースコードを編集中である。

'''問題0-1''': 以下の言葉の意味と, 相互の関係を説明せよ。
* ソースコード
* コンパイル
* バイナリコード
* バグ
* デバッグ
(ブラウザの「戻る」ボタンで戻ってください。)