Programming

今気が付いたんですが,↑の考え方って (C++ の) 汎用プログラミングでは「コンセプト」という形でわりと明確に現れてくるんですが,たとえばオブジェクト指向プログラミングの文脈ではあんまり明確に現れてこないですよにぇ?継承は……えーっと,インタフェイ…

そうそう,そんなことより (そんなこととは何事かっ!) void f(C const &c) { // f の実装内部で c についてどんな valid expression が呼ばれているのか // (どんなインタフェイスが呼ばれているのか) を列挙して欲しい //... } この機能を持ってる IDE な…

まぁ,抽象化も度を越すと単に難しさが増すだけなのは言うまでもないけれど.もちろん,抽象化によって theoretical な面白さが出現する場面はありうるだろうし,過度の抽象化における theoretical な産物が実用に還元されることも多々あるけれど,それはま…

(初心者かどうかはともかくとして) 抽象化が苦手/抽象化を避けるっていう視点は興味深いと思ったけどにゃ〜.別にプログラミングとか領域を限ったことでなくて,一般・普遍の姿勢として,抽象化を好む・好まないっていう傾向の違いってあるよにぇ.あと,抽…

The Dragon Book

「コンパイラのことならまずこの本を読め」と言われ,えげつない値段にひぃひぃ言いつつもなんとか買ってきて読み始めたものの,すぐに「コンパイラのことだけで1000ページも書いた本なんか読んでられるか!」と投げ出し,しまいにはゴルフクラブを持ち出し…

仏の顔も再現性のあるバグ様まで.

ようこそようこそバグ様バグ様.いらっしゃいまし.いらっしゃいまし.ここはたいそう退屈ゆえ,すぐにも出立されるが吉でしょう.されど来られたからにはお持て成し.それスタックトレース持て参れ.やれ printf 持て参れ.ステップ実行,ブレークポイント…

「バグが出た」ではなくて「バグ様にわざわざ出てきていただいた」と思えば仏の顔に青筋も立てることなくデバッグに取り組めるのではないでしょうか,ということを思いついた.

intrusive container は container じゃなくて range のほう (各要素の所有権を主張しない形のほう) が設計の見通しが立ちやすいのでは?とゆ〜ところまで考えた.まる.

っていうかそんなのよりもまず何よりも,「例外とその処理」 (言語機能としての例外機構じゃないよ) について滔々と語ってくれる本が切に欲しいんですけどぉ. 例外とは何か 例外安全……は既存の議論以上のものがあれば 例外変換 設計と例外 その他もろもろと…

そーいや,ある程度言語非依存な形で入出力やらストリーム周りやら buffering のことについて書いた書籍って無いんかにゃー?しかも,ある程度 primitive なレベルのパタンも含めて. たとえばストリーム上の character を変換するインタフェイスがあって,…

いや,やっぱある1言語の標準ライブラリのある一部分を解説するためだけに640ページの書籍が必要っていうのは……うーん,そんなもんかねー.

う〜ん,やっぱテスト('A`)マンドクセ.いや,一般的にテストは面倒くさくないんだけど (テストを面倒と感じたら負けかなと思ってるAA略),面倒なテストはやっぱ面倒なんだよね.何言ってるんでしょうか俺は. つまりたとえば,今文字コードの変換を implicit に…

実装とそのテストがあったなら2:8か3:7ぐらいの割合でテストの方が重要っていうか大事っていうか貴重っていうか.無人島に,実装とそのテストどちらか一方のみしか持って行けないって宣告されたら俺迷わずテストのほう持って行くね.

上2エントリーをプログラミングの言葉 (っていうか私の現状そのもの) に換言すると「書きたいことに必要なライブラリの実装は書きあがった.でもそのライブラリは果たして (あるケースで) 本当に正しく動作するのか,という不安がある.それならその不安なケ…

Introduction to Functional Programming Using Haskell

あと,自分へのご褒美用にもう1冊. Introduction To Functional Programming, 2nd Edition (Prentice Hall Series in Computer Science)

Concurrent Programming はじめました

つーわけでにゃんか新しい暇つぶし探した結果,面白そうなエモノ見つけたのでしっ!!まずはいつものように資料漁り.新しいドメインに触れるときのお約束. http://www.acm.org/classics/feb96/ - Communications of the ACM. Vol. 17. No. 10. October, 19…

カウンタによる Passive Observer (Proxy) の実装

以前からずっと疑問なんだけれど, passive な Observer パタンつーか,監視されているクラス(oservee)のオブジェクトが変化しうる Proxy パタンつーか,そういうので更新の可否をカウンタで示すつーのはアリなんかにゃ〜? class Observee { public: void…

写像を表現するクラスの設計

写像 (mapping) の概念をクラスにする際に,既存の mapping を破壊するようなインターフェースを提供しなければ deep copy が本質的に必要なく, shallow copy だけでコピーのセマンティクスを安全に達成できるんじゃないのか,ということを思いつく.例えば…

符号化の問題

何か物事を考えるときに,とりあえず抽象的な問題に落とすというのは良くやる.抽象的な表記だとより広く客観的な視野をもって問題に取り組めるし,想定している具体的な問題がめっちゃくちゃアフォな問題だったとしても,そのアフォさ加減が完全に隠蔽され…

Unfair Tournament

って,寝て起きて冷静に考えてみれば,勝敗表の制約の下で任意の人が優勝できる部分トーナメントを列挙してるわけだから最悪指数に決まってるじゃないか.何やってるんだ……恥ずかしいにゃー,もぅ. permutation を combination で表しておいて,最後に top-…

Unfair Tournament

さっきソファーに突っ伏して仮眠して起きたら,解法っぽいものを思いついた.アルゴリズムが正しいかどうかは知らん. http://www.kmonos.net/wlog/53.php#_1604050908 前提として,人数は2のべきと仮定します. まず,表記を導入します. (A, B, C, D) とい…

びるど

なんだBoost.Iostreamsってbzip2とzlibのためのjamfile用意してるじゃん.中読んだらソースを直で引っ張ってくる方法も書いてあったので,ためしにソースだけ引っ張ってきてBoostのビルドの際に "-sBZIP2_SOURCE=なんちゃら" と "-sZLIB_SOURCE=なんちゃら" …

alignment系アルゴリズム

alignment系のアルゴリズムの実装ってどこかに落ちてにゃいかにゃ〜と探してみたけれど,見つからにゃいので自分で作るのにゃ. Boost1.33.0で確認.VC7.1ではauto_linkを使っているのでライブラリをビルドしていてパスを適切に通していればリンク指定不要.…

Premature Optimization

うぉっ!危うく無駄な最適化をかけるところだった.ここが支配的だろ〜とかパフォーマンス計測なしで勝手に予測していた部分が,実際計測してみると全体の7%だったとゆ〜.むむむ.計測なしの最適化がいかに愚かなことか改めて認識. もちろんこういうことは…

VC++7.1 CVS@Cygwin CVS鯖 CVS@RH9 via X鯖@Cygwin gcc3.2.2

表題のようなことをしてVC++とgccを行ったり来たりしている私.WinCVSがCygwin経由で鯖にアクセスできるはずなんだけれど,うちの環境ではなぜかどう頑張っても無理.まー,日本語さえ諦めたらシェルをぽちぽち叩くのも嫌いじゃないから良いのですが・・・.