プログラミング言語とは,コンピュータ(計算機)に対して動作手順,動作方法,動作内容などを適切に指示するために用いられる,人工的に作られた言語体系(形式言語)です.
コンピュータ(CPU)は,メモリに置かれたソフトウェアの命令コードを順番に取り出して,内容を解読し,実行していきます.しかしながら,この命令はコンピュータが理解しやすいように書かれており,それをそのまま人間が理解するのは非常に困難です.ここで,コンピュータが理解できる命令と,人間が理解できる命令の橋渡しをするのがプログラミング言語です.
また,プログラミング言語を用いることで移植性が良くなります.コン ピュータの心臓部のCPU(Intel Xeon等)やOS(Unix, Windows, Mac OS等)によって,コンピュータに同じ動作を起こさせる命令が異なってい ます.したがって,各々のコンピュータに対して別のプログラムを書いた のでは開発効率が非常に悪くなります.CPUの進化は早く,以前使われていた CPUがすぐに陳腐化し使用されなくなることも度々あります.また,あるコ ンピュータで動作するプログラムを,他のコンピュータで動作させたくな る(移植と言います)ときも度々あります. もし,同一命令で同一動作を行ってくれるように命令できれば,移植が 大変簡単になります.この命令および命令の書き方をプログラム言語と呼 びます.プログラム言語によって,コンピュータの違いをある程度吸収し てくれます.
プログラミング言語にはC,Fortran, Java, C++等,沢山の言語が存在します.C言語は,1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発した言語で,汎用性が高く,プログラムの自由度や,目的に応じた拡張が容易であるという特徴を持ちます. また,高級言語(記述の抽象度が高いプログラミング言語のこと.人間にとってわかりやすく,プロセッサに依存した処理を書かなくてもよい)に属しますが,アセンブラ的な低水準の操作(ハードウェアに特有な処理およびメモリ操作,入出力制御等)ができるため,機械およびシステムの制御等にも使いやすいとされています.また各コースの研究室でも標準的に広く使われています.
本演習ではC言語について講義,演習を行いますが,C言語に特有の文法のみならず,基本的なプログラミングの考え方を理解してください.
C言語では,ソースファイルとよばれるファイル(人間が読んで分かる) を作成し,これをコンパイラと呼ばれるソフトウエアで,コンピュータが 理解できる命令に翻訳します(この作業をコンパイルという).
では、早速プログラムを書いてみましょう.
プログラムのソースを作成するには,テキストエディタと呼ばれるソフトを使用します.
ここでは,Notepad++を取り上げますが,他のテキストエディタを使用しても構いません.
まず,Notepad++を起動してください.そして以下のプログラムを打ち込み,ファイル名を"hello.c"として保存して下さい.
#include <stdio.h> int main(void) { printf("Hello World.\n"); return 0; } |
なお,日本語キーボードでは,\
(バックスラッシュ)は ¥
(円マーク)と表示されていますので注意してください.
(同じ文字コードが使われている)
さて,このソースファイルをコンパイル(プログラム化)してみましょう.
コマンドターミナル(端末画面等)を起動し,以下のコマンドを打ち込んでコンパイルと実行を行います.
gcc hello.c -o hello -lm |
コンパイルにより,ソースコード hello.c が解釈され,計算機が直接 実行することの出来るファイル hello が作られる.
プログラムにミスがある場合,その行番号とともにエラーの内容が表 示される.
-o の後には,出力される実行可能ファイルの名前を指定する(省略し た場合,a.out が作られる).
-lm は三角関数等の数学関数を使用するときに使う
(常に付けておいても問題ない).
./hello |
プログラムが実行され,結果が表示される(このプログラムの場合, 打ち込んだコマンドに続き,Hello world! という文字が現れる).
では, example11.c から解説していきましょう.
C言語の基本的な形は,
#include <stdio.h> int main(void) { 文; return 0; } |
となっています.
始めの
#include <stdio.h>
の部分は,今のところ呪文だと思っていただいて結構です.
int main(void) { 文; return 0; }
が,実際のプログラム部分で,C言語では main 関数(main と書かれて, かっこで区切られた部分)が実行されます.
C言語では,いろいろな関数が用意されています.関数とは,ある特 定の動作を行ってくれる小さなプログラムです.C言語では,関数を積 み重ねてプログラムを作成します.関数は,自分で作ることもできま すが,沢山の関数が標準で用意されています.
文字を標準出力に(ここでは実行画面)出力する関数.
すでに準備されている関数.
" "で区切られた部分の値が表示されます.
なお,"\n" は改行を表します.
関数や文の最後には,ここで終わるよということを表すために ";"
を付けます.
main も一種の関数です.Cではmain関数の内部のみが実行されます.
また "/*" "*/" で囲まれた部分は,コメントとして使用できます (コンパイラがこの部分は意味がないと判断してくれる). 良いプロ グラムは良いコメントが書かれています. プログラムを作成するとき, 時間がたつと自分が作ったプログラムであって も,すぐに細かい部分は 忘れてします. 効果的なコメントを付けるようにしましょう.
int main(void)
に続く {
と }
の間に書いていく.{
と }
の間には複数の文を置くことができ,それぞれの文は ;
で終わる.{
と }
の間には再び,{
と }
を置いて複数の文をひとまとめにすることが出来る(ブロックと呼ぶ).
#include <stdio.h> int main(void) { printf("Hello World.\n"); /* 以下は,ブロックの使い方の例. */ { printf("Long time no see! \n"); printf("How are you? \n"); } return 0; } |