第1回. コンパイルってなんじゃらほい? & viの使い方 Written by Rorrim 1.1 コンパイルってなんじゃらほい? コンパイルとは、コンパイラと言うプログラムを使ってプログラミング言語を コンピュータの理解できる言語に翻訳する作業のことを言います。 もうちょっと詳しく書きましょう。 C言語等のプログラミング言語は、人間にとっては分かりやすいものですが、 そのままではコンピュータに理解させることはできません。コンピュータが実行 できるのは、コンピュータに組み込まれている内部命令だけだからです。 これらの命令を扱うにはアセンブリ言語レヴェルまで降りていかなくてはいけません。 つまり、Cプログラムをコンピュータに実行させるには、C言語で記述されている命令を それに相当する機械レヴェルの命令に翻訳するプログラムが必要なのです。 この翻訳処理を実行するプログラムを、「コンパイラ」といいます。 ちなみにコンパイラを使用するには、まずそのコンパイラ言語でプログラムを 書かなくてはなりません。そのコンパイラ言語で書かれたものを「ソースコード」と言います。 そして、ソースコードをコンパイラを使って翻訳したものを「実行可能コード」と言います。 コンパイラがCであれば、Cで書かれたものがソースコードと言う事になりますね。 それでは、実際にプログラムを書くにはどうしたらいいのか、を考えていきましょう。 幸い、UNIX系のOSには標準のエディタが付いており、「vi」と呼ばれます。 発音はそのまま「ヴイアイ」です。 Windowsで言う所の「NotePad」や「メモ帳」と言った感じの物です。 1.2 viの使い方 viはスクリーンエディタとして完成度が高いので一般的によく使われますので この説明をしましょう。 このviには、4つのモードがあります。 (1)コマンドモード (2)テキスト入力モード (3)画面コマンドモード (4)画面挿入モード 各モードの移行関係は、次のようになっていますが、あんまり深く考えなくてもいいです。 コマンドモード → 画面コマンドモード ← ↓ ↑ ↓ ↑ テキスト入力モード 画面挿入モード まあ、私達が一般に使うのは、「ファイルを作って保存」ですので、この機能に限定した 説明をしたいと思います。つまり、コマンドモードとテキスト入力モードの話だけです。 それでは早速「rorrim.txt」と言うファイルを作って「UNYUN」「Bisque」と2行に渡って書いてみましょう。 %vi rorrim.txt ここで、%はプロンプトと呼ばれるもので、コンピュータが入力待ちの状態である事を示しています。 また、.txtはなくてもいいんですが、「テキストファイルだよ」と分かり易くする為に付けました。 <Return>は、エンターキーを押すことを意味しています。 さて、この作業をしますといきなり真っ白な画面が現れたと思います。 このまま、「UNYUN」とタイプしても何にも表示されないと思います。 それは今、コマンドモードである為です。では、テキスト入力モードに移行しましょう。 「a」又は「i」と一回打ってください。これでテキスト入力モードになりました。 UNYUNと打ちましょう。ちゃんと表示されましたか? そこで、を押して、次の行に移ってBisqueと打ちましょう。 結果は、こうなったと思います。 −−−−−−−−−−−−−−−−−−−−−−−−−−− UNYUN Bisque −−−−−−−−−−−−−−−−−−−−−−−−−−− ならなかった?んじゃコマンドモードに移って編集し直しましょう。 テキスト入力モードから、コマンドモードへ移行するには、「ESC」キーを押せばいいだけです。 でも、移ったと言う事は、画面には、何にも表示されません。気を付けてください。 さて、ここがちょっとヤヤコシイ所ですが、現在のカーソルの位置を左右上下に動かしましょう。 左に動かします−−−−−−「h」を打つ 右に動かそう−−−−−−−「l」(エル)を打つ 上に行きたいな−−−−−−「k」を打つ 下でいいや−−−−−−−−「j」を打つ さあ、hjklを駆使して、間違えた文字にカーソルを重ねてください。 そしたら「x」を押してください。これで一文字消えたと思います。 もし一行丸々間違えたのなら「dd」とすばやく「d」を2回打ちましょう。 これで削除できましたね? それではテキスト入力モードに移行してタイプし直しましょう。 ここで移行するコマンドは?...「i」です。 あとで、「a」「i」「x」「dd」「esc」等の機能を表にしますので とりあえず「i」を押してください。 そして、正しくタイプしましょう。 ちゃんと、書けましたか?そしたら、保存しておきましょう。 コマンドモードに移行して「:」を押してください。 これが、コマンド入力モードへの移行となります。 カーソルが一番下に移動しましたか? ちゃんとコマンドモードに移行してますか? 移動したら「w」を押してです。 −−−−−−−−−−−−−−−−−−−−−−−−−−− UNYUN Bisque :w −−−−−−−−−−−−−−−−−−−−−−−−−−− これで保存できました。 さて、viを止めてファイルの中身を見ましょう。 viを止めるには、コマンドモードから「:wq」、又は「:q」、若しくは「:q!」です どう違うかって? 「:wq」は保存(Write)してQUITって意味です。(保存して終了) 「:q」は何にも書かなかったから、そのままQUIT。(終了) 「:q!」はなんか書いたけど保存はしないよ〜&QUITです。(強制終了) 先程保存しましたので、このまま QUITすればいいわけですから「:q」してください。 それでは、ファイルの中身を見ましょう。 %cat rorrim.txt −−−−−−−−−−−−−−−−−−−−−−−−−−− UNYUN Bisque −−−−−−−−−−−−−−−−−−−−−−−−−−− ちゃんとできました? 出来なかったら、もう一度読みましょう。(笑) 「ESC」−−−−−−−−−−テキスト入力モードからコマンドモードへの移行 「a」−−−−−−−−−−−コマンドモードからテキスト入力モードへの移行 次の位置に文字を付け加える 「i」−−−−−−−−−−−コマンドモードからテキスト入力モードへの移行 この位置に文字を挿入する コマンドモード 「x」−−−−−−−−−−−1字削除 「dd」−−−−−−−−−−−1行削除 「dw」−−−−−−−−−−−1語削除 「j」−−−−−−−−−−−−1行下へ 「k」−−−−−−−−−−−−1行上へ 「l」−−−−−−−−−−−−1文字右へ 「h」−−−−−−−−−−−−1文字左へ コマンド入力モ−ド 「:w」−−−−−−−−−−−書き込み(保存) 「:q」−−−−−−−−−−−終了 「:w!」−−−−−−−−−−−強制書き込み(強制保存) 「:q!」−−−−−−−−−−−強制終了 「:wq」−−−−−−−−−−−書き込み(保存)をして終了