そこで、 普通はより人間の言葉に近い文法の言語を使って手順書を書き、 それを機械語に翻訳してコンピュータに与えるという手段を用います。 この翻訳の仕方には逐次式(インタプリタ)と 一括式(コンパイラ)という2つの方法があります。 一般にコンパイラ方式の方が、 作成したプログラムを実行するときの性能が良いと考えられています。
このような目的で人間が設計した言語を プログラミング言語と言います。 これには目的に応じて様々なものが開発されていますが、 C言語およびそれを改良したC++言語は、 汎用性があり性能も良いため、 現在のソフトウェア開発用の言語として、 最もポピュラーなもののひとつです。
この授業ではC言語によるプログラム作成について学びます。 プログラム作成の際の基本的な手順は、 次のようになります。
この処理の流れを図で表すと、 こんな感じ になります。
なお、cc コマンド(後で解説します)を使用した場合、 リンクはコンパイルに引き続いて自動的に実行されます。
上の % はプロンプトと呼ばれ、 コンピュータが指令(コマンド)を待っていることを示しています。 みなさんの端末では indy??% のようになっているかも知れません。 % の右側の mule hello.c の部分をタイプしたあと、 改行 (Enter) をタイプしてください。% mule hello.c
mule が起動し、mule のウィンドウが現われると思います。 おそらくまだ hello.c というファイルが存在しないので、 画面の最下行に (New File) と表示されているはずです。 これはそのファイルを新規に作成することを示します。
ここでタイプした文字が画面上の黒い四角(カーソル)の位置に現れます。 次のC言語のプログラムをタイプしてください。 このプログラムは「何もしない」プログラムです。
プログラムには 日本語用の文字 は使用できません。
main() { }
全部タイプできたら C-x C-c をタイプして mule を終了してください。 ファイルを保存するかどうか尋ねてくるので、y をタイプしてください。
キー操作("C-" は Ctrl キーを押しながらと言う意味) 打ち間違えたら Backspace か Del のどちらか(設定によって変わります) 右に動かすには C-f または → 左に動かすには C-b または → 上に動かすには C-p または ↑ 下に動かすには C-n または ↓ 1行空けるには C-o 右側を消すには C-k 消した内容を復活するには C-y 変更を取り消すには C-_ または C-x u 操作を中止するには C-g mule を修了するには C-x C-c (C-x をタイプした後、C-c をタイプする)
もし、なんかわけの分からない状態になったら、 C-g を数回タイプしてみてください。
これで hello.c というファイルが作られます。 実際にファイルが作成されているかどうか、 ls コマンドを使って調べてみましょう。 ls コマンドは、 「今あなたがいる場所」にあるファイルの一覧を表示します。 そこにはもしかしたら他のファイルもあるかも知れませんが、 今作った "hello.c" というファイルもその中に含まれているはずです。
% ls . . . hello.c . . .
これで a.out というファイルが作成されます。 これが実行ファイルです。% cc hello.c % (エラーがなければ、何も表示されない)
ここで、もし エラー が見つかると、a.out は作成されません。 その場合はソースプログラム hello.c をもう一度良く見直して、 もう一度コンパイルしてください。 ソースプログラムの修正の仕方は 5. を見てください。% ls . . . a.out . . . hello.c . . .
なお、ここではコンパイルに引き続いて自動的にリンクが行われるため、 オブジェクトファイルは作成されません。
% a.out % (何もしないプログラムなので、何も表示されない)
今度は hello.c が存在するので、 その内容が表示されると思います。% mule hello.c
{ と } の間にプログラムを書きましょう。
C言語では、 プログラムの単位(文と呼びます)ごとに、 区切り記号として ;(セミコロン)を置きます。 また追加する部分が 字下げ されていることに注意してください。 タイプできたら先ほどと同様に mule を終了し、 ファイルを保存してください。
main() { printf("Hello!\n"); }
このファイルをもう一度コンパイルします。% ls . . . a.out . . . hello.c hello.c~ . . . (hello.c~ は修正前の内容のバックアップ)
正常にコンパイルできれば、a.out を実行してください。% cc hello.c % (エラーがなければ、何も表示されない)
なお、プログラムの修正をする度に mule を起動するのが面倒なときは、 mule を バックグラウンドで起動 すると便利です。% a.out Hello! %