この文書の現在のバージョンと選択したバージョンの差分を表示します。
— |
ch_operation33 [2020/01/05 19:03] (現在) klab 作成 |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
+ | ## ●プログラムのデバッグ | ||
+ | エラーを直すことを**デバッグ**と呼ぶ。 | ||
+ | |||
+ | **文法エラー**は、文法に正しくない部分があるために、ドリトルがプログラムを解釈できないエラーである。文法エラーがある状態では、編集画面の背景が薄い色で表示される。実行ボタンを押すと、実行が行われる前にエラーがダイアログで表示される。ダイアログには、コンピュータがエラーに気づいた大まかな位置が示される。 | ||
+ | |||
+ | 次の例では、「作る」の前に「!」を書き忘れていることがエラーとして検出されている。 | ||
+ | <code> | ||
+ | かめた=タートル 作る。 | ||
+ | </code> | ||
+ | |||
+ | {{:pasted:20180103-141317.png}} | ||
+ | |||
+ | 文法エラーが表示された場合は、表示された場所の近くを確認する。プログラムの行は、編集画面の左に表示されている。また、編集画面の上部にはカーソル位置が[行:列]の形で表示されている。 | ||
+ | |||
+ | ドリトルを学んでいる際のエラーとして最も多いのは、命令の前などに**空白**を入れ忘れるエラーと、文末の「。」を入れ忘れるエラーである。次の例は、命令の前に空白を入れ忘れたために、「100歩く」という部分でエラーになっている。 | ||
+ | <code> | ||
+ | かめた!100歩く。 | ||
+ | </code> | ||
+ | |||
+ | {{:pasted:20180103-141343.png}} | ||
+ | |||
+ | 次の例は、1行目の末尾に「。」を書き忘れた場合である。「。」を書き忘れた場合には、次の文とつながってしまい、コンピュータが矛盾を発見した場所でエラーが表示される。そのため、必ずしも「。」があるべき場所がエラーにならないことに注意が必要である。 | ||
+ | <code> | ||
+ | かめた=タートル!作る | ||
+ | かめた!100 歩く。 | ||
+ | </code> | ||
+ | |||
+ | {{:pasted:20180103-141402.png}} | ||
+ | |||
+ | **実行時エラー**は、プログラムの実行中に起きるエラーである。文法的に正しくても「命令のパラメータが正しくない」「オブジェクトが解釈できない命令が送られた」などの原因で、実行中にエラーになることがある。実行時エラーでは、エラーの起きた命令名とオブジェクト名がダイアログに表示される。それを手がかりに、エラーの箇所を探す必要がある。 | ||
+ | |||
+ | まだ作られていないオブジェクトに命令が送られたり、オブジェクトの名前を間違えた場合には、正しいオブジェクトに命令を送ることができずに実行時エラーが発生する。次の例は、「かめた」を作らずに「歩け」という命令を送った場合のメッセージである。 | ||
+ | <code> | ||
+ | かめた!100 歩く。 | ||
+ | </code> | ||
+ | |||
+ | {{:pasted:20180103-141421.png}} | ||
+ | |||
+ | オブジェクトに理解できない命令が送られた場合にも、実行時エラーが発生する。次の例では、「歩く」を「歩け」と書き間違えたため、タートルオブジェクトであるかめたは命令を理解できない。 | ||
+ | <code> | ||
+ | かめた=タートル!作る。 | ||
+ | かめた!100 歩け。 | ||
+ | </code> | ||
+ | |||
+ | {{:pasted:20180103-141437.png}} | ||
+ | |||
+ | 同様のエラーは、色オブジェクトを括弧で囲まずに指定した場合や、図形オブジェクト用 | ||
+ | の「塗る」をタートルに送った場合などにも発生する。 | ||
+ | |||
+ | なお、オブジェクトは複数の名前で参照されることがあるため、エラーダイアログでは複数の名前が表示されることがある。次の画面では、タートルオブジェクトの名前がカタカナとひらがなを含む複数の言語で表示されている。 | ||
+ | |||
+ | {{:pasted:20180103-141451.png}} | ||
+ | |||
+ | プログラムの書き方については[[ch_good_program|よいプログラムを書くために]]も参照されたい。 | ||