━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
課題3の補足
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
●補足 3a

*プログラムの不具合

        転記してうまくいかなければ rotate_left_exp() が正しいかも再確認する.

*実行過程の表示

        動作を調べるには,一時的に実行過程の表示処理を加えるとよい.
        ホームページ上にある「再帰の考え方」の例題プログラムが参考になる.

●補足 3b

*使う関数

        必要に応じて,exp.c にある算術式の 生成・複製・削除 の基本関数を使う.
        くくり出しの変形にも,2分木の回転操作が応用できることに注意する.

*2種類の複製

        「ポインタの複製」と「ポインタの差し先の内容の複製」を明確に区別する.

*動作確認

        現実のプログラミング問題では,解答例などないので,
        動作試験用の解答プログラムには頼らない方がよい.

        自力で動作確認をしたり,プログラムの誤りを分析したりして,
        テストやデバッグの実力を付けることを強く推奨する.

        実行結果の説明で「解答と一致した」というだけでは,
        動作の正しさを自分自身で確かめたとは言えない.
        「何を確かめたか」や「なぜ正しいか」を述べる.

──────────────────────────────────────

●補足 3c

*発展課題

        発展課題に取り組む場合,あらかじめ動作試験の実施方法を読み,
        正常にコンパイルできるように機能拡張するとよい.

●補足 3d

●補足 3e

*コンパイラの解析手法

        この課題を解くには,コンパイラの字句解析や構文解析の方法を学ぶとよい.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
演習のホームページ

山田 俊行
https://www.cs.info.mie-u.ac.jp/~toshi/