トップ 最新 追記

follow ikegami__ at http://twitter.com

イネムリネズミ日記

いけがみを召喚するには、出現予定を参考にしてください。三週間前までにメールをくだされば、日程を追加するなどしてスケジュールに組み込むことができるかもしれません。勉強会や個人的な会合、中途採用面接などに応じます。日記に書かないことはこちら

2003|04|05|06|07|11|12|
2004|01|02|03|04|05|06|07|10|11|
2005|01|02|03|04|05|06|07|08|11|
2006|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|11|12|
2010|03|04|12|
2011|02|03|04|06|08|09|10|

2009-04-01 Isotoma(いそとま)ノ告知 [長年日記]

_ 絶望的はすける處理系豫約販賣ノオ知ラセ

果断で、むこう見ずで、激しい性格と、人生の不幸に遇って発達した想像力があれば、希望はさらに少なくてもよい。

Stendhal(スタンダール 1783-1842)『恋愛論』大岡 昇平訳 新潮文庫

でふぁくと標準はすける處理系 GHC ニ対抗スベク、新シイ處理系ガ求メラレテヰマス。

本邦ニ於ケル絶望的文化ト技術ヲ結集セシメ、昭和八十五年十一月四日ニ「絶望的はすける處理系」ヲ之ノ度販賣致シマス事、本日ノ慶事ト皆様ニオ傳ヱデキルノハ、モッテノ他ノ幸ヒニ存ジアゲマス。

でじたるカラあなろぐヘノ画期的「逆変函」ガ施サレル為、大変申シ上ゲニクイ事デハアリマスガ、眞ニ勝手乍ラ受注限定販賣トサセテ頂キマス。皆様ノゴ勘弁ノ程、宜シク低頭シテ申シ上ゲマス。配布媒體ハでいぶいでいデスガ、三十分デ消滅致シマス。皆様ノオ気ニナサル價格ハ、昭和八十五年ノ“参千四百七拾円”トナリマス。

目下ノ作業ハ、是「PEG(解析表現文法)」ノ代數化ニアリマス。之ハ、「正規表現」ガ、有限おーとまとんトくりーに代数、「文脈自由文法」ガぷっしゅだうんおーとまとんトくりーに代数ノ亞種トシテ表現デキルト云フ、數學ノ美シイ背景ガ在ルノデス。然シ、“PEG”ハ他ノ言語くらすト異ナリ、あるごりずむニ依ッテ定式化サレテオリマス。之ヲ代數化スル事ノ困難ハ、米國ト欧州ヲとんねるデ繋グ様ナ物デアリマス。然シ、世界ノ科學ノ發展ニ与セントスル、其ノ意気ヤ好シ、學子タル者ノ本懐デハ或リマセンカ。

あなろぐト申シ上ゲマシタノハ、之ノ様ナ事情デアリマシテ、即チ、處理系ハ『あにめーしょん』トシテ實現サレルノデアリマス。數學ヲ理解スルノニ、あにめーしょん程便利デ愉快ナ物ハ在リマスマイ。はすけるノ型ヤ函数ハ総テあにめーしょんト為リマス。ぷろぐらむハ文藝デアリ、其ノ処理ハあにめーしょん表現ガ相応シイト考ヱルノモ、此処ニキテ初メテ当然ト思ワレルノデアリマス。

尚、「PEG デナクテモ GLR デ良ヰジヤナイカ」ト云フノハ野暮デアリマス。新規ノ処理系ニハ新規ノ文法くらすガ相応シイノデス。

_ 型れべるぷろぐらみんぐノ会ニ於ケル「型理論Z」弁舌ノオ知ラセ

余は又更に日本を欧羅巴大陸に比せんと欲す、余は巳に之を希蝋に比せり、而して希蝋は小欧羅巴なり、日本亦小欧羅巴ならざるを得んや。

『地人論』内村 鑑三(1861-1930) 岩波文庫

之ノ昭和ノ世ニ、Girard(じらーる)ノ逆理ヲ、簡素ニシテ、スイット理解スル和文ガ「いんたーねっと」に見当タラナイノハ、忸怩タル思ヰガ致シマス。「型理論」ノ限界ヲ知ル事ハ、是レ即チ人類ノ英知ノ壁ヲ見ル事デアリマス。其ノ壁ヲ破ル技法、或ヒハ、工學トシテ、別ノあぷろーちニヨリ逆理ヲ回避スル術在リ、我々知識人ハ声ヲ大ニシテ議論スル時ガ来タノデハアリマセンカ。

而シテ、「らむだZ」ノ着想カラ「らむだC」ニ至ッタ、伊太利亜とりの大学 Stefano Berardi (すてふぁの・べらるでぃ) 教授ノ博士論文[RTF] ヲ簡明ニ解説シ、じらーるノ逆理ヲ導出セズニ一ツノ型理論ガ構成シ得ル事ヲ弁舌致シマス。学徒ノ皆様ノ叱責ニ耐ヘ、にこにこ動画デ罵倒サレル事コソ、絶望デアリ小生ノ望ム希望足リエル事ヲ此処ニ予告スルモノデアリマス。


2009-04-18 エキゾチックなAlstroemeria [長年日記]

_ 型レベルプログラミングの会

に参加しました。感想や説明の補足、発表資料などはすべてこの日付のログにつけることにします。今週以降、時間をかけてのんびり追加する予定です。よろしくお願いします。内容の濃い話を沢山聞けたので、整理する必要があります。主催してくださったいなばさん、会場を提供してくださったサイボウズ・ラボ様、ありがとうございました。

[2009-04-28:追記]428の日にようやく下書きを清書することができました。ふいー。

_ 型レベルプログラミングの会 予告(注:2009-04-18に行われ、無事楽しく終了しました)

申し訳ありませんが、ここには SWF (Adobe Systems Flash) が置いてあります。お見せすることができなくてすみません。

ustream配信あるそうです。発表プログラムは、型レベルプログラミングの会のページをご確認下さい。

みんなも Wii の セガ・チュンソフトプロジェクト | 428 〜封鎖された渋谷で〜を遊ぼう!この、セガ・チュンプロジェクトのサイトにあるムービーデモを見れば、だいたいどんなゲームかわかります。

すっかり近野さんのファンになってしまいましたよ。特典付きを買ったので、メイキングDVDがついてきました。それで、ついカッとなって私もパロディを作ってしまった。偉い人に怒られはしないかと、今は後悔している。

_ 発表資料(“428メソッド”)

自動再生されないので、SWFプレイヤーで再生を開始してください。最初のフレームは真っ黒です。異常ではありません。予告トレイラー、発表資料ともに、4:3 のサイズに変更しておきました。そうしておくと世の中いろいろと便利らしいです。

しかし、こちらは予告トレイラーよりもますます偉い人に怒られそうな内容です。428の売り上げが再び上がってくれて、許してもらうことをお願いする次第です。

わたしは映像についてはまったくの素人ですが、ネーム・絵コンテからはじめて、構図や人物ポーズ、その他もろもろを準備した上で臨みました。力入れるところが、完全に斜め上で間違ってますね。そういう、小ネタというか、どうやって作ったかみたいなのも、自分のために文章化しておこうと思います。

申し訳ありませんが、ここには SWF (Adobe Systems Flash) が置いてあります。お見せすることができなくてすみません。

_ 二十一世紀ひのまる動画、略して二○動用リソース

ぼくはなんだかよくわからないのですが、まとめ wiki のエンコード設定を参考に、.mp4 に変換してみたので置いておきます。これをあれこれすることについて、僕に断る必要はまったくないですが、セガ・チュンソフトさんのことは頭においてください。

二○動はアカウント持ってないんです。ホントーです。ぼくは面白いものをみつけると、ずーっと見てしまう人なので。前にもそんなこと、ここで書いた気がする。

一方で、『ハックス!(1巻)』の主人公のとあるセリフは、今回のスライド作りならびに予告トレイラー作りへの衝動をかきたてるに十分だったので、ここに紹介しておきます。二十一世紀ほにゃららもハックス!に出てきます。

みよし

アニメ作りませんか!

たぶん みんなで アニメ作ったら すごい面白いです

アニメのすごい… すごい!っていう エネルギーを使って アニメを作るんです!

[ハックス!第一巻 Cut 2. 「スイッチオン」53 ページより引用]

_ いなばさんとこのまとめ

皆さんの発表がまとまってます。いなばさんも忙しいひとなので、のんびり更新待ってます。更新しなくても、別の人がまとめてたら、そこ参照するようにします。

私の発表は、ustream.tv に録画されています。

  1. 02:01:42 あたりから 02:21:26 あたりまで : 発表
  2. 02:21:26 あたりから 02:33:55 あたりまで : 質疑応答

聞こえにくい部分もあったかもしれないので、あとでテキストとしてここに書き残す予定。あと、一次会、二次会で特記しておくことがなんかあったらそれも。[2009-04-28:追記しました]

_ 型レベルプログラミングの会・依存型(HaskellとAgda2で)

映し出される前の、ぼそぼそとした独り言が私のメッセージです。残りのスライドはおまけです。ustream でよく聞こえていないので、ここに台本おいときます。02:02:49-02:04:49 の、「2分」で言いたいことは言い終えていました。

わたし

で、えっと、じゃあ、あの、ちょっと接続に時間がかかっているんで、あの、喋りながらやりますけど、えっと、型レベルプログラミングとは何か、って僕ずっと考えて、えー、ま、そんなに考えていないんですけど、ずっと考えて、結局、型レベルプログラミングっていうのは first class が型なんだと。つまり、普通のプログラミング言語では first, first object は値なので、えーと動かしてみて決まって、えーとあの、それが動的に、あれ、どうしよう、決まるんだけど、型レベルでやれば、コンパイル時にわかるから、だからいろんなことが省けて、で、コンパイル時にバグが取り除ける。

要するに、コンパイル時に、打ち間違い、さっきの(いなばさんの発表)、uvの打ち間違い、みたいなバグを取り除きたいということがやりたいわけですけど、それを究極的にやるとどうなるかっていうわけですけど、引数を持つ型とか、型の型とか、型の型の型とか、あー、もうどんどんあがっていくわけですけど、やれることが増えていくわけです。

で、そういうことを、まあ、いろんな人が考えていて、ひとつは、依存型、ですけど、残念ながら、依存型は、絶望的です。ということで、トレードオフが必要で、まー、いままでみなさんが、たとえば Scala とか D とか、ま Haskell はいずれ勝手に絶望するんですけど、手続き型言語でトレードオフを取るのが現実解。

僕の話は、理想を追い詰めてしまったがために、絶望する、そういう話です。(以下略)

静的型付け関数型言語好きなひとにはおなじみの、「型安全」の枠組みは、所詮は箱庭(λ-cube)にすぎなくて、できることには限界(Girard's paradox)がある。んだけど、そーゆー話を C++ とかに興味がある人の前で喋ってもすべるだけなので、私の発表は全力疾走で斜め上を駆け抜けました。

とはいえ、発表枠の中では、Conor McBride, "Faking it - Simulating depending types in Haskell", Journal of Functional Programming, Vol. 12, Issue 5, pp. 375--392, July, 2002.の中に現れる、「有限長のベクトル」を紹介しました。この具体例は、他の人のプレゼン(Scala, C++, Haskell, D, G'caml)のすべてに現れていて、見ている人にはよい比較になったのではないかと思います(私除く、スライド早すぎて見えないので)。

依存型や Haskell が絶望する、というのは、一見、他のプログラミング言語よりも凄いことができそうにみえますが、今回の型レベルプログラミングの会でわかったように、他の静的型検査でも faking it できるわけです。

じゃあどこに違いはあるのか、というと、Haskell や依存型プログラミングが小難しい型理論を背景にしている割には、肝心のところに手が届かない。結論:「プログラムを書く人は賢くなければならない←それって、最初の出発点(プログラマがうっかりバグを書いてしまうのを防ぎたい)に戻っているじゃないか」「理想を追い求めると、型検査が停止しない(一階述語論理のクラスが決定不能、に帰着)」「実行速度が遅い、空間計算量が大きい」→動的言語+テスト網羅で、あきらめるのがいいよね。ああ、絶望した!机上の空論だったことに絶望した!!もう圏論なんか知らない!

とかいうふうな結論を勝手につけるわけです。(つづく)

_ 型レベルプログラミングの会・依存型の質疑応答(の聞こえにくかった最初だけ、テキストに)

質疑応答の部分は、ustream 02:21:30-02:33:52.

証明の自動化

例として、SAT solver に代行させるというのを挙げました。他には、Coq の auto. tactics や omega. tactics。Isabelle/HOL のいくつかの自動証明ツールが非常に強力です。CSP prover についても何か言えばよかったな、すみません。

いっぽう Agda 2.2 にはありません。Agda 1 (prototype) の Fredrik & Martin の auto prover はどこへいってしまったのだろうか...

Fredrik Lindblad and Marcin Benke. A tool for automated theorem prov-
ing in agda. In TYPES 2004, volume 3839 of Lecture Notes in Computer
Science, pages 154–169. Springer, 2006

Fredrik も Marcin も非常に好人物で、Chalmers 滞在時はお世話になったのだが、今調べると二人とも Chalmers にいなさそうだという...うぐう。

Agda2 の Haskell FFI 以降の話は、さかいさんとの私的な会話だね、と勝手に決めつけ。あと他にも諸々の質問が出ましたが、スライドと一緒にしないとテキストに落とせなかったので、残念。

証明できないものの取り扱い

みんなで絶望しよう!(エンドカード)

_ 型レベルプログラミングの会:記憶

Scala

MetaScala がもとになっている、Visitor パターンで。というのなら、Haskell の Scrap Your Boilerplate (SYB)でもできるのかなーと思いました。SYB は邪悪な Haskell 技の一つですので、ここはひとつ試してみたいところです。

C++

C や C++ の「型と一階述語論理もどきDSLによるランダムテスト」構想、つまり、Haskell の QuickCheck を C, C++ にも、というアイデアは前からずーっと暖めておりまして、gdb に一皮かぶせるか、あるいは横取りしてもげもげしたいと思ってます。誰かやってください。で、方針が一つに決まらないのは、暗黙の型キャストをどう取り扱うかで、C++ の知識が足りない私には、今回のアキラさんの話はとてもためになりました。これが一番聞きたかった発表で、内容もわかりやすかったです。

C++テンプレートテクニックは、買いました。

D

いなばさんの説明はとても上手ですよね。Boost とか、G'caml とか。すごいお人である。

Boost C++ Librariesプログラミングは買いました。

Haskell

うん、知ってた。GHC Head は追いかけてないので、Shelarcy さんの話は相変わらず新鮮だ。

G'caml

型レベルプログラミングを目的にするなら、lazy をデフォルトにすればいいのでは、などと思わず口走ってしまい本当にすみません。

私は当分の間は Haskell でいいみたいです。

_ 型レベルプログラミングの会:一次会の記憶

会場までは ranha さんと一緒だった。感想をどこかに書いてくれていたけど、ここだけの話はここだけにしてくれて助かった。ぎりぎりパーで、もう少しでボギーです。

アキラさんに「C++ってバランスのとれたいい言語ですね」と言った。私がかわいいと思っているのは C だったり Objective-C だったりするんだけど、これらはあまりにもキャストで proxy なので、ほどほどにがんばってる C++ がいいとおもう。

ぱきらぽんの人は日本の狭い世界を知りすぎているので気をつけてください(もう脱出したのかな)。僕は町田で接待してクチ止めしなくてはならないと固く心に誓った。

びくびくするのももうすぐで、苦界から脱出してしまえばこっちのものだ、フフフ。

_ 型レベルプログラミングの会:二次会の記憶

さかいさんと二人でしんみりとした話をしんみりとする。など。途中でいなばさんが来てくれたので、プログラミングは楽しいですよねーとか、問題を解決するアルゴリズムを考え抜くのがいいんですよねーとか、そういう普通の話をした。めでたし。


出現予定(召喚方法 ikegami@madscientist.jp):

RSS feed を再開しました。RSS の思想を尊重するために全文配信はしません、あしからず。