表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
属する者  作者: 酒井順
32/67

第32章 プログラミング(3)

第32章 プログラミング(3)


第1話 章の始めに


 何故、僕が頭の中を空っぽにしたいのか?

理由があります。


① 渦巻いている?頭の中を整理するため

② トラウマを見つけ出すため

③ 空っぽに出来るか?確認するため

④ ③は無理だと思いますが、出来たとしたら何が残るのか知るため


第2話 ハミルトン閉路問題


 どうやら、僕がこの問題の命題を完全に理解する事は、難しそうです。

「TSPのエッジに重みがない問題」

として、考えたいと思います。


 そうすると、28章と29章で述べた手法で解けるのでは?

と、思います。


 但し、28章と29章で述べた手法が有益か?否か?は、確認出来ません。

僕に出来るのは、プログラムを作成し、有益か?否か?を解析する事だけです。

しかし、それをすると、頭の中が膨らんでしまいます。

現状では、出来そうにありません。


 1つ、閉路の可否を判定する方法として、僕の手法の中で、

「兄弟木が存在し、C集合(X集合も?)が無い時、閉路は無い」

と、言えます。


第3話 マクロ


 システムの構築で、最も困難なのは、作った後だと思っています。

つまり、不具合が発生し、客先対応を迅速に行う事です。


 通常、ログをソースの中に埋め込みます。

僕は、ほとんどの(おそらく全て)ログ・コードをサブルーチンのReturnの

部分に埋め込みました。

全てのサブルーチンに埋め込みました。


 その方法について述べたいと思います。


① サブルーチンの全てにユニークIDを付ける。

② サブルーチンの先頭と最後の部分にマクロ・コードを記述する。

③ 最後のマクロ・コードの頭にラベルを付ける。

④ サブルーチンの途中でReturnしない。ラベルへGoto文を記述する。

⑤ ④の時、サブルーチン内でユニークなステップIDを付ける。

⑥ 最後のマクロ・コードの中で、エラー判定をする。

⑦ エラーの時、ログにサブルーチンIDとステップIDを掃き出す。


 この方法で、何処でエラーが起こったか分かります。

この影響でオーバーヘッドが出る可能性があります。

僕の経験では、多くの場合影響はありませんでした。


 さて、マクロの中身です。

先頭のマクロには、サブルーチンIDを設定します。

最後のマクロには、エラー判定を記述します。


 そして、オーバーヘッドがこのマクロの影響の時、マクロの中身を空にします。

マクロの中身は、Include文の中で記述します。

つまり、全てのサブルーチンで定型のエラー処理が行われます。


 エラーの種類を分けます。

基本的に、


① 致命的エラー(Fatal):システムを停止します。

② システム続行不可能エラー:システムを停止します。

③ システム続行可能エラー(警告、注意):システムを続行します。


 システムが機械を動かしている時、①②のケースでシステムを続行すると、

機械を壊す可能性があります。

機械にエマージェンシーを送る必要があるかもしれません。


 機械にエマージェンシーを送れない可能性もあります。

送る前にシステムが暴走した時です。


 次章で開発者の予期せぬエラーの1つである例外について述べたいと思います。


評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ