プログラミング

Intel Threading Building Blocksを使ってみる

Linuxのお勉強をVMWare上のUbuntsu 10.04でやっている。最近、C++でマルチスレッドもできるようになりたいなーということもあって、Intel TBB(Threading Building Blocks)をインストールした。そんなに難しい作業ではないはずなのだが、Linuxのディレクトリ…

a la russe法による乗算アルゴリズム

忙しすぎてネタを書く時間がない。しかし時間は作るものらしいので、日々の生活をちょっとずつ切り詰めて余暇を作る。乗算アルゴリズムの話。もし加算とビットシフトしか無かった場合、いかにして効率良く乗算を行うか? 単純な方法 a * bは、「aをb回足した…

最大公約数を求める2つのアルゴリズムを書いてみた

Cで多倍長整数演算のプログラムを書くのに熱中していた。既存のライブラリ*1を参考にしながら、自分でコードを書いてみている。勉強になるなあ。アルゴリズムの参考にしたのは、クヌース先生の『The Art of Computer Programming Volume 2 Seminumerical Alg…

これは気付かないわ

Common Lispについて。CLtL2の仕様書には邦訳があったので、今ちょっとだけ読んでいる。なぜそうしたのか? なぜそうあるべきなのか? 膨大な仕様記述の中に大量の解説が埋め込まれていて勉強になる。そもそも、CLOSとかコンディションシステムとかは複雑で…

視線の流れ

プログラミング言語には、プログラマの意図をコンピュータに伝えるという大事な仕事がある。そしてもちろん、プログラマ間でもコードを読み合うわけだから、読まれるという点では自然言語と同じ意味で「言語」でもある。 どうしても気に食わない事がある 『R…

C++にも手を出す

C++は外見からして使う気が起きなかったのだけれど、それじゃあただの食わず嫌いっぽくもあったので独習してみることにした。 Accelerated C++―効率的なプログラミングのための新しい定跡 (C++ In Depth Series) Effective C++ 原著第3版 (ADDISON-WESLEY PR…

買っちゃった

オライリーのビューティフルシリーズ第二弾。鮮やかな表紙に惹かれる。ビューティフルアーキテクチャ (THEORY/IN/PRACTICE)作者: Diomidis Spinellis,Georgios Gousios,久野禎子,久野靖出版社/メーカー: オライリージャパン発売日: 2009/11/27メディア: 大型…

コンパイラ界の竜虎

Appelさんの『最新コンパイラ構成技法』と、Ahoさんの『コンパイラ』(第二版)。図書館の本棚を見てて思うのだが、著者名Aの棚にはコンパイラの本が多いような気がする。……たぶん気のせい*1。 タイガーブックの渋い虎イラストと、ドラゴンブックのRPG風な表…

視覚的に見る浮動小数点数の誤差

数値計算分野の調べ物をしていたら、誤差を視覚化する話題があった。面白いなと思ったので書いておく。 題材 二次方程式 の解の公式 問題を単純化するためにとする。まず真の解を定め、その解に合うような方程式の係数を、解と係数の関係から で計算し、そこ…

Scala自習(その2)

すべてがオブジェクト オブジェクトとは何か? という重要かつ不毛な議論は省略。Scalaのオブジェクトシステムは、構文的にはJavaに近い……嘘。若干の面影があるというだけで、独自色はけっこう強い。しかしながら、基本的な概念はそう変わらない。クラスがあ…

Scala自習(その1)

以前のエントリで、『Scalaスケーラブルプログラミング』(以後:Scala本)をナナメ読みしたとか書いた。しかし所詮はナナメ読み。頭の中に入って血肉になっているかと言われると非常に疑問。というか、全部読むのに1週間しかかかってない時点で、全内容の何…

継承とselfに首をかしげる

変なところで引っかかってしまった。 # Ruby class C def print p self.class end end class C1 < C; end C1.new.print #=> C1 てっきり出力されるのはCだと思ってた。selfについて、『初めてのRuby』より 「現在の」オブジェクトを表します。C++やJava、C#…

Matzが教授になったらしい

Matzが教授になったと聞いて。 島根大学は2009年10月15日,Rubyの開発者まつもとゆきひろ氏が同大学の客員教授に就任したと発表した。まつもと氏はすでに同大学の研究員となっており,学生教育も行う。 まつもとゆきひろ氏は2008年7月から島根大学プロジェ…

MLをいじることに

授業で使う言語はML(SML)ということで、最近はMLをかじってみている。ネット上の情報は少ない。というか検索してもMailing Listと混ざる。ちょっと書いてみた感想。できあがるコードの品質は高いと思う。強い静的型付けによって大半のエラーはコンパイル時…

Lispをお勉強している

ここ最近、Lispのお勉強をしている。Lispと密接な関係があるのがS式。括弧が山のように連なるアレ。こんなやつ (define (fact n) (if (zero? n) 1 (* n (fact (1- n))))) S式はリスト構造を表現するためのリテラルであり、ほとんど構文木でもある。アルゴリ…

SICPから気に入った一節を

『計算機プログラムの構造と解釈』(通称SICP)より引用。とってもお気に入りな一節だったりする。 強力な言語には三つの仕掛けがある。 基本式 言語が関る最も単純なものを表す。 組合せ式 より単純なものから合成物を作る。 抽象化法 合成物に名をつけ、単…

宣言的プログラミングの「宣言的」って?

疑問 関数型言語を取り扱う書籍や記事を読んでいると、しばしば「宣言的」なる単語が飛び出してくる。どうやら、関数型言語で大事にされる概念らしい。 ところが意味を調べるとよく分からない。例えばWikipedia曰く、宣言的には2つの意味があるらしいのだが……