本を読む

読書やコンピュータなどに関するメモ

「Shibuya.lispテクニカルトーク #7」参加

 Lispコミュニティ「Shibuya.lisp」のテクニカルトークイベント「Shibuya.lisp TT #7」に参加してきました。

 今回はLTに応募してしゃべってきました。小心者なので、終わったあと緊張で吐きそうになりましたが、懇親会でビールを飲んで回復しました。

 自分はさておき、ほかの方々の話はいずれも深くて興味深いものでした。中でも、FPGAでLispマシンを作ったという小黒さんの話は、びっくりしながら聞きました。

 以下、簡単なメモ。

括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか(松山朋洋)

 Common Lispで実際に書いている立場から、「Lispがすごい」と言われていることに対して懐疑的な点を具体的に上げつつ、ではどこがすごいかという話をしていました。

 いわく、ポール・グレアムなどが「Lispは凄い」というが具体的にどう凄いかわからないこと、キラーアプリが少ないこと、標準化が進まないこと、LispのGCやラムダ式などの機能はほかの言語にも取り入れられてきていること、ライブラリのパッケージをuse-packageするときやexportするときの面倒な問題、CLOSでアクセサが衝突すること、パターンマッチングが遅いことなどを上げていました。

 また、「便利系のマクロを作ると、なぜか使わなくなることが多い」とか、みんなで同じようなライブラリを書いてるとかいうことから、マクロなどでうまく使いやすいように抽象化するのは難しいと指摘していました。

 それでもLispを使う理由として、Guy Steele Jr.の「Grwoing Language」という言葉を紹介して、成長可能であることを上げました。また、Lispを書いているときは言語に縛られずに自由に書ける、と語っていました。

Secure Scheme Script(TOD)

 スクリプト言語はソースが見え、変数や関数も実行時に変えられることに対して、それらを制御する機能をSchemeに追加した実装を紹介していました。

 具体的には、セルに読み・書き・実行の認可のロックのフラグと、認証情報へのリンクを持たせて、ロックされたセルの処理にはパスワード認証が必要にしたとのこと。また、データは暗号化してBASE64してファイル保存するということでした。

 さらに、認証情報をプロセス間で交換できるようにし、ネットワーク越しにRPC的にほかのプロセスに式を投げられるようでした。

 質疑応答では用途の質問があり、PayPalみたいなことをやりたいという話がありました。

Lispマシンを作ってみた(小黒直樹)

 FPGAでLispマシン「Spica」を作ったということで、実機デモつきで説明をし、会場を驚愕させていました。

 Spartan-3A評価キットというのがベースで、ヘネパタ本ベースのMIPS風CPUインストラクションと3imp論文ベースの処理系で、GCもCPUの機能として持っているとのこと。また、REPLも毎回コンパイラでネイティブコードにコンパイルして実行しているとのことでした。また、いま多倍長整数はサポートしていないが、例えばCPUの乗算命令で桁あふれになるとソフトウェアの例外となるのでそれを掴まえて実装できるという話もありました。

 苦労としては、メモリコントローラが大変なので同じデータを送り続けてタイミング合わせを省略したとか、FPGAで全部書くのは大変なのでmicroSpica CPUを作ってその上でSpica CPUを作ったとか、アセンブラやエミュレータなどのツールも作ったとか。あと、GCがバグっていてnamed letが循環参照になってメモリが足りなくなり30秒で固まるというバグも起きたとか。

 あと、なんとなく遅いと感じてプロファイルをとってみたら、GCのためのリファレンスカウントの増減に37%の処理時間を使っていて、直したいがそのままになっている、という話もありました。

 ちなみに、製作期間は数か月とのこと。すごいなあ。

LT:scheme to c++0x(新妻弘崇)

 ここからLT。自分のトークの心配でよく聞けてなくてすみません。

 1番手は画像解析だったかをやっている方で、Schemeで書いたコードをC++に変換するツールを作って使っているとのこと。型推論がまだ甘いので手で直せるようにしているとか、boost::lambdaに期待とかいう話だったと思います。

LT:(文型素人による)実用を目指したArc処理系の(孤独な)開発(青山新)

 芸大でメディアアートをやっているそうで、Twitterでは「ハッカーが画家」とうまいこと言っている方もいました。

 Common LispでPICを制御して作品を作ったりしているとのこと。今回の発表は、SICPのメタサーキュラーインタープリタを参考に、C++でArc処理系を作っているとのことで、実際にデモもしていました。

LT:Web Applicationが思うがままに書ける(call-in-remote-instance)の作り方と使い方(橋本隼人)

 Webアプリケーションで、サーバーからブラウザに処理を送り込んで実行する機構を開発iて紹介していました。ブラウザ側はBiwaSchemeを使っているとのことです。

LT:長いの(emasaka)

LT:Clojure によるバイトコードプログラミング(太田 正悟(athos0220))

 Clojureにインラインアセンブラを実装した話で、「これでClojureはわからないけどJava VMのアセンブラを書ける人もOK」とw。ただ、Clojureコードと比べてみたら速度メリットはまだ弱く、autoboxingがオーバーヘッドなこと、Clojure 1.3でプリミティブ型の最適化が強力になったこと、そしてJava VMのJITが強力すぎることを上げていました。

LT:「The Lifeboat PERSPECTIVE 1989 AUGUST 特集/LISPミニツール」の紹介(田中洸一)

 「Gaucheがわかる」と言ったらRubyで開発している株式会社万葉に採用されたそうですw。

 20年前にLifeboat社が作った小冊子を紹介し、「リストをコンスセルの図で表示」「pretty print」「表計算ソフト」の3つの問題を出題していました。

LT:SchemeでFacebookアプリ作ってみた(ひげぽん)

 アプリ「王様の耳はロバの耳」がMoshで動いているそうです。「JSONは人間に読めないので、人間に読めるS式で」という発言が大ウケしましたが、「データをS式で保存するのはやりすぎだった。MySQLのほうがよかった」とも言っていました。

LT:KondoLisp(hayamiz)

 Arduinoのごく小さなハードウェアリソースで動くLisp処理系を作って、Arduino用プログラムを書いてコンパイルしなくても制御できるという発表でした。センサーに反応してLEDを光らせるデモを動画で見せていました。

LT:CL Libraries(深町英太郎)

 タイトルは上記のものと変わっていましたが、メインのトークをしていた松山さんたちとcl-annotなど、最近作ったいくつかのCommon Lispライブラリの紹介でした。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/944-5544bab9

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad