○コンピュータ内での動作
ちょっとだけ自分がコンピュータになったつもりになってみよう
プログラムは1行づつ実行される!
VBでは基本的に一行に一つの命令を書き、コンピュータに実行させたい順序になるように書かなければいけない。
VBでは「ステップ実行」という実行方法があるので、これで一行づつ実行されているということを確かめてみよう。
ここでいうステップというのは一つの命令と考えてよい。
デバッグとは
プログラムを実行すると、思った通りに動いてくれないことがある。つまりプログラムに間違いがあるわけである。
プログラムのミスを発見し、修正していく過程を「デバッグ」と呼ぶ。
ちなみに、BUG(バグ・日本語に訳すと「虫」)をなくす(つぶす)作業として、debug(デバッグ)と呼ばれている。
プログラムにおける間違いは、次の三つに分けられる。
1:致命的な文法的記述ミス
2:文法的な解釈ミスによる誤動作
2:アルゴリズムのミス
VBにおいて1:致命的な文法的ミスは、改行をした際にチェックされるので比較的容易に発見可能である。
一方アルゴリズムのミスや文法解釈ミスの発見は少々大変である。アルゴリズム、つまりプログラムの組み立てについては、人間(プログラマー)が全てを考えなければならないし、詳細な文法を全て把握してプログラム作成をするのは容易ではない。よって、冷静に考え直し、緻密に文法を調べながらプログラムのミスを発見していくしかない。
このような状況におけるデバッグ作業の役に立つのがステップ実行である。
本来プログラムの実行は、一度実行命令を与えると、作成したプログラムが順次次々と実行されてしまうが、これをわざわざ1行(正確には1ステップ)づつ実行させることにより、自分の考えた通りに実行されているのかを確認することができる。
インタプリタとコンパイル
作成されたプログラムは実際にはいくつかの段階を経てコンピュータで実行される。
プログラミング言語はコンピュータに対する命令を、あくまでも人間が分かりやすいようにと作られた言語である。
つまりこのプログラミング言語は実際にはコンピュータ(CPU)では理解できない。CPUが理解できる命令は機械語と呼ばれている言語であるが、この言語を直接人間が書くのはちょっと大変なのである。
そこで、プログラミング言語たとえばBASIC言語を、機械語に変換(翻訳)するという作業が必要となる。
この機械語に翻訳する作業をコンパイルと呼ぶ。
ちなみに、プログラミング言語の実行環境は、コンパイル型とインタプリタ型というものに分かれる。
コンパイル型とは作成されたプログラム全てをコンパイルしておき、実際の実行時にはコンパイルされたものが実行される。
一方インタプリタ型とは、作成されたプログラムにおいて、実際の実行時に実行すべき1行のみがコンパイルされて実行され、次に同様に1行がコンパイル&実行されていくということが繰り返される。
Basic言語処理システムの多くは、通常インタプリタ型である。しかし、Visual BASICでは、VB.Netからコンパイル型となった。しかし、インタプリタ型と同じような感覚で開発・デバッグできるという特徴をもっている。なおコンパイルしていわゆるコマンドを作成するためには、デバッグではなくビルドを使う。
インタプリタ型とコンパイル型はそれぞれ長所と欠点の両方を持っているが、初心者にとってはインタプリタ型の方が扱いやすい場合がある。
○ステップ実行
ひとつずつ実行される様子を確かめてみよう。
通常のデバッグ開始ではなく、ステップインボタン
をクリックすると、1行実行して一時停止する。
停止した行は黄色く表示される。
これを繰り返して次々と実行させることができる。
出力する命令が実行されるまでは、答えが出力(表示)されていないはず。
通常の実行ではあっという間だけれど、いちいち止まらず最後まで1行ずつ実行されることを理解しよう。
ステップ実行は通常デバッグに利用される。
少し複雑なプログラムになってきたらどんどん使ってみましょう。
ブレークポイントを設定すると効率的にデバッグできます。
ブレークポイントとは、実行(デバッグを伴う)時に、そこに到達したら一時中断するものである。
設定方法は、コードウィンドウにおいて、「Private Sub Button1_Click()」の左側をクリックしておき、赤茶色の
●
を表示させておけばよい。
もう一度この
●
をクリックすると、解除される。
次に、いつものようにプログラムを実行(「デバッグ」→「デバッグ開始」) させると、設定したブレークポイントで実行が一時停止される。
いつものようにフォームウィンドウが表示されるので、ボタンをクリックする。
後は、ステップインで1行1行確かめていけばよい。
参照対象キーワード:
アプリケーションの実行とデバッグ
ワンステップ実行する
[
「A班」プログラミング基礎のTopに戻る
]