星の贈り物

(テキスト未定)

2010年1月の日記

2010年1月13日

新年明けましておめでとうございます。今年もよろしくお願いします。

本物のプログラマはHaskellを使う 第37回掲載

[topic:Haskell]

ITpro に 本物のプログラマはHaskellを使う - 第37回 書き換え規則を使って不要な計算や中間データを除去 が掲載されました。

Haskell 処理系の一つである GHC では、「コンパイル時に、あるコードを別のより効率的なコードに書き換える」ための書き換え規則という機能を自前で用意しています。今回はこの機能の基本的な使い方と、GHC に付属のライブラリ(具体的には base パッケージ)でどのような形で利用されているかについて簡単に説明します。

書き換え規則を使って行うようなプログラムの効率化の多くは、本来処理系が行うべき仕事です。しかし、残念ながら現在の GHC の持つ最適化機能はまだまだその段階には入っていません。(GHC 本体とは別に開発が進められている ghc-ghs ブランチ でようやく、 map f (map g xs) のようなコードを融合変換できるようになった そうです。)また、処理系の最適化がどんなに高度になっていったとしても、実際のプログラムの実装について熟知しているプログラマーには適わないところがあるでしょう。一方、効率性を重視したプログラムをそのまま書き下すと、大変見通しの悪いものになってしまいます。

そこで実際に Haskell プログラムの効率化を図る場合には、書き換え規則を利用することが大切になってきます。Haskell を使ったプログラムの効率化について少しでも興味のある方は、是非今回の記事を読んでみてください。

今回の記事の内容はこれまでの話とは独立しているので、特にこれまでの回を読んでなくても読めると思います。一部でこれまでの回で説明したものを使っていますが、その部分だけリンクを辿ったり検索したりして過去の記事を参照すれば十分に把握できる程度のものだと思います。


2010年1月31日

並カン

[topic:Haskell、並列プログラミング]

並列プログラミングカンファレンス に参加しました。Haskell の講演の発表資料を以下に置いておきます。


声なき言葉へ