大阪さんがPrologの事を知りたがっているようです

主謀者(??)だったのに、ちと忙しくて参加記が遅くなってしまいました。


Prologで大阪さんの事を論理的に考える集い : ATND
上記のイベントが3/21に行われました。
阪急グランドビルに入ったの初めて!!そういえば31階だったにもかかわらず、31階らしさというものを感じている暇が無いぐらいでした。
方々からこんなに素晴らしい人達に集まってもらってボキは幸せだなーとか・・・。いやはや本当にありがとうございました。


振り返って。

高級言語マシンの話

私がnagiseさんに、Java(co-)Processorとか、個人で持つと大変幸せに違いない( 参考:http://d.hatena.ne.jp/Nagise/20090322/1237723661 )と言うと、PicoJavaの話がまず飛び出したりで!
PicoJavaは実は買いたいなーとか。

そういえば、当日SunSpotの話を持ち出したんですが、アレはコレです。http://jp.sun.com/products/software/sunspot/

この仕様とかを見た感じだと、ARMの上にSquawk VMを載せて、それの上で動かすっていう、まぁ割と普通な感じになってるんですが、ハードが固定されているならJavaプロセッサに置き換えちゃって良いんじゃないですかねぇ・・・というのは思っていて。


速さな意味合いも勿論あるんですけど、それよりはどっちかというともう生活空間を丸ごとそこで、みたいなのがあって。完全なJava人間になるかどうかみたいな。ただコストを考えると、それこそ速さの話であると98%から99%にする為の労力っていうのは50%から51%にするのとは訳が違う様な所もあって大変だなとは思うんですが、ハードウェアに出来る分はちゃんとハードウェアにするのが妥当であろうという。


でもVMの実装にしても模索してる最中であるし、そういう中でどの部分をじゃあハードウェアに持って行くんですかとかになるとぐぬぬっていう。今の汎用プロセッサの上でやりたいのであれば、それなら「コプロセッサ」としてJavaVM CodeからNativeCodeに落とすのをやらせるていうのはどうでしょう、という。


そういうことで、曖昧にでもどれぐらい良く成るかとかいうのを表したものがあると私に良いなー。

どこでもLisp(多分Common Lisper)

ポケステでLispやっちゃってたzickさんはじめ、Lisp厨はもうスライムのようにどこにでも入り込んでくるなーというある種のおののきを感じました。
最近のゲーム機はメモリでか過ぎてくそつまらんわい!とかおっしゃっていて、やっぱりPS3のCell1つを、Lispで言うところのCell1つと見るような大富豪アプローチをする為に違いないとか1人考えていた。


でもLisperは本当にどこでも入り込んでくるので、言い方は悪いですが、ゴキブリの如く力強く生きるのでは無いかとも思います。あの類いの精神力とかはどこで培われるんでしょうかね。やっぱりマクロなんでしょうか。S式には無い気がするんですが。
後、ちゃんと自分の言語の意味論を知ろうとする所とか...??

GCC周りの話

GCCのfront/middle/backendの話をalohakunさんから少し。


GENERICとかGIMPLEとかRTLの単語ぐらいは知っていたんですが、それ以外の物も飛び出して、最近は最近でまた変更があったとかで、私にはとても追いつく事は出来ないでござるなとか・・・。


しかしながら、GCC弄り回して関わっていた事が仕事でも生きているとおっしゃっていて、どこでどうなるのかって分からないんだな、深いなんて思ってました。

型周辺の質問

ikegamiさんに、Curry-Howard同型対応って、予想みたいなもので、何で対応付くのか形式的な証明されてるわけじゃないんですよね、というかあれそもそも何なんすかとかいうバカ丸出し脳みそ丸出しの質問をしてしまったんですが、落ち着いて龍田先生の型理論ちゃんと読めと教えて貰ったので、今落ち着いて読もうとしています。( http://madscientist.jp/~ikegami/diary/20090324.html )


他には

f g = (g (1::Int), g ('a'::Char))

型推論失敗するので許せないでござる・・・という事を質問したり。

f :: (forall a.a -> a) -> (Int,Char)
f g = (g (1::Int), g ('a'::Char))

とした後にランク2多相オプションをちゃんと書くのだけで一苦労(...!!!まぁ-XRankNTypes付けろって言われるんですが)で、他にも

f' g a b = (g a,g b)

だと

f' :: (t -> t1) -> t -> t -> (t1, t1)

で、そこは -> t -> tちゃう... -> t1 -> t2や・・・。

f' :: (forall a.a -> a) -> b -> c -> (b,c)
f' g a b = (g a,g b)
-- Rank2TypesかNか

などで、人間型付け機に成って来てるのでうーむという。


単相性制限の話とか、理論方向から現実プログラミング言語を見るんじゃなくて、現実プログラミング言語(Haskellとか)とかで腑に落ちなくなった時に理論を持ち出す様な形じゃないと私が困るのでそういうのをやるべきなのでは!とかえらそーに言ってしまったのでありました...。

今はそういうネタを詰め込んでて(過去の自分のつま付きばっかりですけど)、型会議の時にQ&Aで「ひたすら私が教えて貰う」方式でやるしか無いと。

ソリテスパラドクス

h_iwkさんが謎な人過ぎるとかで。http://canonicallife.blogspot.com/2009/03/prolog.html
あまりプログラミングはやらないらしいのですが、第五世代の話とか型の話とか、論理の話とかをしていて、やはり謎であるというか、日本の未来は明るいのでは無いでしょうかという事を勝手に思っていました。


h_iwkさんには、飯田隆さん編の「論理の哲学」(http://www.amazon.co.jp/dp/4062583410/)や「言語・知識・信念の論理」(http://www.amazon.co.jp/dp/4274202119/)もオススメしてもらって、今貪り読んでるんですが、本当に面白いです。

Prologでメモ化

m0h1canさん曰くそれは矢張りassertを使うべきであると。
なんかそれはProlog的にはヤバいんじゃないかと思ったら、やはり事実を加えるというのは(述語)論理的には公理を加えるとかで、ダイナミックに恐ろしい事をしているんだとか・・・。


しかし、やはりPrologといえども歴史の流れの中で、Pureな心を失ってしまったとかで、実用を考えると色んな事が出来る様になっているみたいです。( http://ratiwo.blogspot.com/2009_03_15_archive.html )


Prologそのものと、周りの流れをもっと知って、今度はもっと深い(意味論とか、それこそ処理系がどーだとか)話をさせてもらえたらなーとか。
取りあえず、PureなPrologの実装とかやろう。

キャッチーなプラットフォームでナウな若者を洗脳する

http://alohakun.blog7.fc2.com/blog-entry-991.html
nagiseさんが帰られた後は、まだ時間もあったので30階に移って、その時は如何に言語で洗脳するかとかいう話にも成り。
Objective-Cが流行ってる(ObjCはErlangよりやっぱり流行ってないと思うんですよ!!私調べですが...)のはiPhoneの為であるとか、私はちょいと前にブラウザの上でろくでも無い事してて、やっぱりあそこにはJavaScriptしか使えるものが無いような状況なわけで、そうすると必然的に流行ってもおかしく無い<-むしろこれは洗脳に近い、ので、マイナーな言語を流行らせるにはプラットフォームと共に、アプリケーションと共に、である必要がという。
確かに、具体的なものがある方が人々は勝手にイメージ作ってしまうので取っ付き易いんじゃないかなってのは。
HaskellとかOCamlとか言ってる人達はタオとか仙人道でイっちゃってるっぽくて、意味が分からないから誰も近づいてこないんじゃないかと。


じゃあそういう中でいかにしてHaskellを流行らせるかというと、λマシンを作って街中で配り、そこではHaskellしか書けない。
若いうちからHaskellで英才教育、遅延評価で心も体ものびのび健やかに(そういう研究は実際あったとikegamiさんがその場でも紹介してくれました!)、型と共に生きる(ナウシカ的な意味で)、とかでそれを作ると素晴らしい。


ただそれは私出来る気もしないので、取りあえずzickさんになんとかしてブラウザの上でCommon LispSchemeが動くようにしてくださいとお願いしておきました。


「共に生きる」発想で見た言語一覧(私調べ)

腐海 ナウシカ
Rails Ruby
iPhone Objective-C
Flash ActionScript
ブラウザ JavaScript
Unix gcc??
Inferno Limbo

大阪さん

確かzickさんが、大阪さんが神戸に居た頃と阪神大震災は重なっていて...とか。・・・確かにそうだっけ。
それを受けてalohakunさんが、実は大阪さんがああなのは、二重人格で...とかで、私は大阪さんの表面以外を知り切なくなり。


や、大阪さんの話は全然しなかった記憶が!でもikegamiさんはあずまんが大王全巻買われたらしい。ひえええ...。


しかし以後、大阪さんと論理型プログラミング言語が密接に関係付いて行くとはこの時誰も思っていなかったのだ...。

おわりに

他にも色んな話をしたのですが、この辺で。
第五世代の話ももっと伺いたかったんですが、alohakunさんから本を貸してもらったので、それを読んでニヤニヤしています。


次回はPure Prolog Implementation Marathonとか!