タグ

tipsとプログラミングに関するranryuのブックマーク (3)

  • Tips for the Numerical Computation using GNU/Linux

    この上限の値を超過すると数値計算上は無限大と扱われてInfとなります. (上記の記述はSun Forte Developerのマニュアルの「数値計算ガイド」を参考にしました.) (発生場所の特定方法) InfやNaNが発生する場所を特定したい. 演算の結果が上記のInfやNaNとなる時の検出のために SigFPE(Floating Point Exception, 日語では演算例外もしくは浮動小数点例外) というシグナルがあるのですが,数値計算を行う上では不合理なことに, デフォルトでは演算例外が起こってもSigFPEを発生せずに計算が続行されます. そのため,InfやNanの発生場所の特定のためには, 演算例外でこのSigFPEが発生するようにすればよいことになります. (すると,Kernel側でシグナルを検出してプログラムが停止します.) しかし,デバッグのためにプログラムをわざわざ

  • いやなブログ - スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl

    スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl スクリプト言語用の CUIのデバッガの使い方を簡単にまとめました。対象言語は Ruby, Python, Perl です。 私は C, C++ でプログラムを書いているときはデバッガ (主に GNU/Linux 上の gdb) を頻繁に利用します。しかし、スクリプト言語ではそれほどでもありません。これはおそらく次のような理由によります。 ビルドが不要なので printf デバッグが容易 (ある程度大きい C++ のプログラムではビルド時間が長いので printf の挿入はしんどい) 異常終了時にスタックトレースが表示される (Ruby, Python なら自動、Perl の場合は use Carp; $SIG{__DIE__} = \&Carp::confess; など) オブジェクトのインスペクトが簡単 (Ru

  • キミのコードが汚い理由 ― @IT情報マネジメント

    リスト1は、同じ処理を繰り返すようなコードで初心者プログラマーがよく使う幼稚なスタイルで書かれている。必ずしも複雑ではないが、筆者には散らかっていて効率が悪く見える。リスト2の方が複雑な条件になっているが、Javaを理解していれば、かなり読みやすい。唯一疑問を抱くかもしれないとしたら、最後の「else if」の中にある条件の最初の部分だけだ。このクローズに来るということは、どちらかのプレーヤーが勝ったことを意味する。 いずれのインプリメンテーションも間違ってはいない。実際、これらはどちらも非常に小さく、つまらない例にすぎないので、これらのリストでコードがいかにクリーンか論ずるのはあまり有益ではない。ただ、何をもってインプリメンテーションがクリーンなのかについて読者の興味を深めることはできるだろう。 クリーンなコードについて扱った記事、Webサイト、書籍は多数存在する。何をもってコードをクリ

    ranryu
    ranryu 2007/01/13
    クリーンなコードを書く
  • 1