Diary

2005年11月17日 木曜日

「アルゴリズム+データ構造=プログラム」? 本当に?

福盛さんのプログラミングにおけるインターフェイスに関する考察。なかなか興味深く読ませていただいた。構造化の要件としての「アルゴリズム」と「データ構造」に加えて、プログラムになるには「インタフェース」も必要なのではないかという話。面白い視点だとは思うのだけど、はたしてそうなんだろうか?
プログラムという概念を考える際に人によってその規模が違うので、たしかに「アルゴリズム+データ構造=プログラム」というのは必ずしも自明ではない。(僕自身は「Σ(アルゴリズム×データ構造)=プログラム」ではなかろうかと思うのだけれども。) たとえば数行で記述可能な簡単なものから、Officeソフトのような大規模なものまで、どれもプログラムである。プログラムというものをどういうくくりで考えればいいのだろうか? 小規模なプログラムについては「アルゴリズム+データ構造=プログラム」と言う直感的な理解も可能であるが、福盛さんの考察は、構造化・モジュール化を進めた大規模なプログラムとなるとどうであろうかという論点であると思う。
僕はそもそも等号が成り立つような次元が同じ物ではないので階層化して考えたほうが自然だと思う。インターフェースやプログラムという概念は、「アルゴリズム」や「データ構造」のようなプリミティヴな存在であるか否か?という視点でかんがえたいのである。僕は「インターフェース」は「アルゴリズム」や「データ構造」とは同じ次元の存在ではなく、「アルゴリズム」と「データ構造」というプリミティヴな概念を演繹したようなもので記述可能ではなかろうかと思う。(公理論的アプローチなのかもしれないが…)
ではインターフェースというものをどう言う位置付けでおいておけばいいのかという話になるのであるが、インタフェースはその名のとおり、振る舞い(応答? 動作?なんて言うのかな)・データ・プログラム・外界との_相互作用_を考えた際にはじめて登場する概念だから、第1層目としてはアルゴリズム・データ構造、第2層目は第1層目の概念のみで記述可能であるインターフェース・プロシジャ・オブジェクト・プログラムというような階層的な理解でいいんじゃなかろうか? (プログラムを3階層目において置いた方がいいかな・・・整理悪いかも。)
ただしこれはプログラムの構成要素としてボトムアップして考えてみただけであって、実際のところプログラムが何でできているのかを考える際には実装詳細はどうでも良くて、インターフェースとその振る舞いが規定されていれば良いだけのような気がする。あとあの本はインターフェース云々以前の時代の本で、現代的なプログラミングとは若干の差があるのはあたりまえと思う。あくまで手続き指向な言語から構造化プログラミングへプログラミング・スタイルを切り替える提案をした本だという理解をすべきかと思うのだけど。ちゃんと読んでないから、なんとも。(Adaの本とかも今読むとふむふむと思うところはあるんだよねえ。Pascalに型総称性をいれてがちがちな仕様にしたらAdaになりそうだもんなあ。ただAdaにしてもPascalにしても好きではないな。)

2005年11月12日 土曜日

David and Leigh Eddings / 女魔術師ポルガラ 2 「貴婦人の薔薇」

女魔術師ポルガラの視点で語られるベルガリアード前史 Polgara the Sorceress の2冊目。とりあえず出版されたので購入。即読了。最近の文庫本は高いと思いつつ、読み終わるまでがあまりにも早すぎるのはどういうことか。
前巻からの引き続きでアレンディアの騒動の顛末をつける所からスタートし、微妙なバランスでアレンディアをコントロールしつつ、アレンディアの新しい女公爵・エラト女公爵として長らくアレンディアの歴史に関わることになった話が前半部分。アレンディアとエラト公国を元に育てたセンダリアに深い愛着をベルガリアード本編で見せるのはこういうことだったのかと少々理解が前進。
中盤では「魔術師ベルガラス」でさらっと語られたオントローズとの恋愛と別れ、ポルガラを助けるキレーンとその一族との交流と別れ、リヴァの後継者達との生活と別れ、ベルガラスの足跡とは異なって、ポルガラの足跡は人々と深く結びついているだけに、死によって愛しい人たちと別れなければならない、永遠の時間を生きる彼女の悲しみが痛い一冊なのである。
ベルガリアード前史も残り一冊。ポルガラの話はどうベルガリアードに続いていきのか目が離せないのだが、来月までが異様に長く感じる。

2005年11月07日 月曜日

第162回 NTT東日本 N響コンサート

「炎のコバケン」こと小林研一郎指揮で、NHK交響楽団のコンサートに行ってきた。コバケンさんは一昨年の大晦日のジルベスターコンサートで、カウントダウンにベルリオーズの「幻想交響曲」の第5楽章を予告通り9分31秒で指揮して、きっかりカウントダウンを終わらせたのを見て以来(実はリハやってなかったらしい)、お気に入りの指揮者である。ホールは東京オペラシティコンサートホール タケミツメモリアルホール。
コバケンがN響をどう乗せるのかと思って聴いてみる。1曲目はベートヴェンの「エグモント序曲」。曲はコンサートの導入には最適な長さではあるけど、重い雰囲気の名曲。しかしながら早速観客とオケを引きずり込む素晴らしい演奏であった。
2曲目は高木綾子さんをフルートソロに迎えて、モーツアルトのフルート協奏曲。コバケンさんは控えめに、高木さんのノリノリな演奏にこれまた引き込まれてしまった。よく演奏会の2曲目はフルート協奏曲を聴くことが多いのだが、古典な退屈さを感じることがあって、気持ちよくなり、挙げ句の果てにうとうとしちゃうことが多い(気分が良くなるのもいいことなのだ)のだが、これまた息をつかせぬ演奏で、目の覚めるような感じだった。高木さんのCDを買ってみようかなと思うくらい言い演奏だったと思う。
今日のメインディッシュという3曲目はドボルザークの「新世界より」。編成が大きかったこと、音が良くなっていたこともありますが、全休止の時にはぴたっと音が止まり、パフォーマンスも演奏もダイナミックでした。後半はあっと言う間に終わってしまったと言うくらい息を付かせぬ演奏だった。コバケンさんも「鳥肌が立つような感覚だ」とおっしゃっていたが、期待通り以上の演奏だったと思う。
アンコール曲はスラブ系の曲で来るだろうと思っていたら、僕が管弦楽曲で一番気に入っているブラームスの「ハンガリー舞曲第1番」でした。この曲は録音ではまとまった演奏になっちゃうのだが、アンコール曲の定番で、熱狂に包まれて深いロマンシズムとダイナミックさを兼ね備えた演奏が多くて好きな曲である。コバケンさんが「アンコールにハンガリー舞曲の1番」と言った瞬間に「やったー」と思ったのは言うまでもない。興奮の中でコンサートは無事終了。そんなわけで見に行って良かった・・・

2005年10月27日 木曜日

何でもかんでもPowerPoint症候群

前の職場は_何でもかんでもExcel_という会社であったが、今の職場はさらに何でもかんでもPowerPointで資料を作る風潮がある何とも言えないところだ。ちょっとした打ち合わせの資料(はっきり言ってグラフだけだったら、不満はあるにせよExcelやDelta Graphのグラフだけで十分)から業務引継まで、何でもかんでも呆れてしまうくらいPowerPointなのである。たしかにプレゼンするときはPowerPointの資料は凄くすっきりまとまって良いのだけど、いかんせんまとまりすぎちゃうのである。 特に業務引継をPowerPointでされちゃうと、あとで見ると項目しか残らないのである。 欲しい情報は項目ではなくて、その詳細なのだがどうして文章を書かないのだろう? 全く持って泣けてくる話である。
Wordを使いこなせとは言わない。どうせ今まであった人で僕以上にWordをちゃんと使いこなしている人を見たことがないので。せめて報告書や引継関係の書類はめんどくさがらずに、テキストファイルでいいからきっちり文章を書いて欲しいのである。
ビジュアルな物にだまされちゃいけない。学生の頃に「ワープロで書くと文章の校正能力が落ちるんだよ」といわれたことがある。綺麗な外見にだまされて中身のチェックがおろそかになるぞという教訓であろうと思うのだが、なんでも綺麗なプレゼン資料にするという傾向はおかしいという状態を越えて、すでに病的であろうと思うのである。(文章のことは人のことを言えるようなレベルには全然到達していないわけだけども。)

2005年10月26日 水曜日

Visual C++ ToolkitでSTLPortとBoostを使えるようにする

まず最初に、お手軽にBoost+STLPortを使うなら、断然Debianでapt-getすることをお勧めします。apt-getさえしたら自動的に使えるようになります。それにもかかわらずVC++2003 Toolkitをインストールしてみた理由は、_VC++2003の方がC++98の準拠度が高そう_という単純な理由だったりする。Boostのサンプルプログラムを何個かgcc4でコンパイルしてみたのだけど、コンパイルできない物があったので、リファレンスとしてもう一つコンパイラが欲しくなったというわけだ。