2022年6月15日水曜日

デバッガによるデバッグ

 



デバッガのデバッグ中です。日本語変数もツールチップ出来ます。


未だ、代入されていない変数は、次のようにエラーが表示されます。黄色部は、停止行で、未だ実行されていません。怪しい箇所付近にブレークポイントを置いて、中断、付近の変数を調べます。
Pythonの入門としても使えそうな雰囲気です。

元々、PythonからExcelに直接、解を整理した形で出力しようと思っていました。当初は、組み込み関数print()でオブジェクトを出力して終了!、と思っていたのですが、どうもそれだけでは、「未だ大変すぎる」、と思いデバッガ実装を行うことにしました。

他の処理系IDEに任せることも検討しましたが、完成後は、結局スケジュールナースⅢでその都度、走らせることになるので、開発/メンテナンス等の移行手間を考えると、手間が増える、という結論に達しビルトインが理想、という結論になりました。

本当に必要なのは、制約が正しく行われているか?ということなのですが、それについては、このようなデバッガを用意したとしても、無力に近いです。制約そのものと、Pythonとは全く関係ありません。
しかし、実行を追えば、正しく制約文に到達しているかどうか、位は分かります。Pythonの変数オブジェクトは、独特で、多くの情報を含んでいますが、ツールチップによる現在値表示は、その点、大変役にたつと思います。いちいちprint()を置く必要はなくなります。

このようなPythonを用いて制約しつつ、なおかつGUIで、その実行途中の様子を見ることが出来る処理系は世の中には無く、ScheduleNurseⅢの世界初の成果ではないかと思います。古くは、SystemVerilogシミュレータを構築しようとしたときから、その発想はありましたが、時代が進んだおかげで、短期間に実装することが出来そうです。エディタにしろ、言語Pythonにしろ、一から設計・実装するのは現実的ではありません。多くの過去の資産を生かしつつ新しいものを作り出すことは、とても楽しい作業です。

ミソは、CUIとGUIの融合です。両者を組み合わせることにより、非常に簡便に、きめ細かい制約を、少ない記述で行うことが出来ました。

また、別のプログラムとして、解の整理を行ってユーザフォーマット上のExcelに直接打ち出すことが出来るようになります。従来VBAで行っていた処理もスケジュールナース内で完結出来るようになるでしょう。


0 件のコメント:

コメントを投稿