本を読む

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

「Shibuya.lispテクニカルトーク #6」観覧

「Shibuya.lispテクニカルトーク #6」観覧

 Lispコミュニティ「Shibuya.lisp」のテクニカルセミナーイベント「Shibuya.lispテクニカルトーク#6」が開催されました。今回も興味深く話を聴かせていただきました。いろいろ面白かった中でも、自分は特にMOPの話を興味深く聞きました。いや理解できてませんが。

 以下、メモほぼそのまま。

記号処理言語と記述言語(大野邦夫)

  • ELISの開発や事業展開にかかわった
  • 復活祭
  • 若い人に語り伝えたい
  • 記述言語=マークアップランゲージ
  • 大学は機械工学
    • 1年後輩に官直人氏w
    • 学部:冶金材料の研究
      • 熱伝導を電気伝導で計る
    • 大学院:ボールベアリングの自励振動の研究
  • NTT
    • 現場の技術の問題点をフィードバックする部門
      • クロスバー交換機の接点消耗予測
      • 1990年代までクロスバー交換機は残っていた
    • プリンタ、マウス
    • ELISの商品化
  • ジャストシステム xfy
  • 最近になってアカデミックの世界に
  • LISPに関わったきっかけ
  • 通信端末にAI?
  • Winstonの本でLispに出会う
  • エキスパートシステム
  • Symbolics 3600
    • ほしいリストにあげたら、アメリカが製品買えという圧力で、買えたw
    • 富士Xeroxの人もSmalltalkマシンよりいいとかなんとか
    • Flavor
    • CSKのKEE
      • Symbolicsユーザーに無償提供
      • 意外に使いにくかった
    • KEEで接点消耗予測システムを実装
      • エキスパートシステム
  • ルールシステムへの疑問に
    • ルール競合を排除すると決定木
    • ルールより決定木?
    • MGSS(Menu Guided search shell)の開発
      • Yes/Noの命題をノードにする
    • 研究者はAIじゃないというが、実用システムは価値基準が異なる
  • オブジェクト指向による非扇形微分方程式の解法
    • 微分方程式を解くよりは解のカテゴリを知ることが重要
    • 振動:減衰するか、発散するか
      • 条件分岐をサブクラスとして定義
    • TAOで
      • 計算のときはTAOのオブジェクト指向の中置記法が便利
  • 接点寿命予測エキスパートシステム
    • 影響を与える要因
    • MGSSで
    • CLOS
  • あとで学位
    • 論文にはELISの回路図も
  • NTT-ITでのELIS事業に
  • MOT
    • 基礎研究→実用化→商品化→市場制覇
    • ELISはあまり特許とか論文とかなかったw
    • ドキュメントも少なくて上に起こられたw
      • 人が直接情報を伝達していた
  • ELISの顧客
    • NTTグループ
    • 大手企業の研究開発部門
    • 大学、公的研究機関
    • 医療検査システム
      • ELISのPrologは速かった
    • 建築設計システム
      • ほかで動かなかったのがTAOならすんなり動いた
    • Lispでのマルチタスクが制御系で関心をもたれた
      • ELISボードを複数並列で使う研究も
  • GUIまわりの評判がよくなかったw
    • 東京電機大に、Interlisp-D互換ツールを提供
  • Interleaf
    • 1980年代のDTPのハイエンド製品
      • 3000万円ぐらい
    • 作者はヘーゲルの研究家で「ドキュメントは弁証法的に発展する」という考え
    • XとNFSを利用
    • Lispによるオブジェクト指向技術
      • 単一継承
      • クラスを生成する関数の返りをsetqしてクラス名と結びつける
      • 関数を定義してオブジェクトに登録
    • Interleafの文書モデル
      • DOMのようにツリー構造で扱う
    • SGML処理系の最初の製品はInterleaf Lispで実装された
  • SGMLデータブレード
    • マルチメディアDBでSGMLエレメントを管理
  • Lisp教育
  • モデルからWebまでのジョブカードの実装
    • UML→CLOS→S式→XML
    • 難しい
    • S式の部品化
    • 連想リストをXMLに変換
    • XSLTでWeb表示
    • mix-in
    • 記述言語、オブジェクト指向言語、プログラミング言語の役割分担
    • ジョブカードは仕分けされちゃったw
  • Q: S式でどのぐらい記述量が減る?
    • A: だいたい3割ぐらい。終了タグがなくなるだけで短くなるw
  • Q: UMLからCLOSへの自動変換は
    • A: やっていない
  • Q: 微分方程式でのLispの(当時の)優位性
    • A: オブジェクト指向の継承による拡張性、グラフィック表示など。Mathematicaより速かった
  • Q: 教育でLispを使う抵抗があると聞くが
    • A: そういう先入観のない人に教えているw。教官のほうが抵抗感がある

CLOS/MOP入門とOWL Full処理系開発事例紹介(小出誠二)

  • CLOS
    • 西海岸はシーロス、東海岸はクロスと呼ぶらしい
  • 主にFlavorとLOOPSが元になった
  • MOPはANSI Lispには入っていないが、たいていの処理系に入っている
  • MOPの書籍
  • "Object-Oriented Programming: The CLOS Perspective"
    • 概要だけ
  • "The Art of the Metaobject Protocol"
    • 実装を知りたければこれ
  • CLOSは本当にオブジェクトシステム?
  • 否定論
    • 隠蔽がない
    • メッセージパッシングがない
  • generic functionは名前とarityが同じメソッドの集合
    • 一級オブジュクト
  • 引数のクラスで起動メソッドが決まる
  • 隠蔽
    • LisperはLisperを信用するw
    • 能力の低い人はLisperになれないw
  • CLOS標準プロトコル
  • CLOSのベース
  • クラスベースシステム
    • インスタンス生成を生成するにはクラス定義が、クラスを定義するにはメタクラス定義が必要
    • インスタンスの属するクラスは1つ
    • スロットはクラス定義時に定義
    • などの制約
  • MOP
    • CLOSの内部構造が解放されている
  • ACLの内部コードで説明
  • make-instance
  • initialize-instance
    • shared-initializeを呼んでいる
  • reinitialize-instance
    • インスタンスの再定義
    • これもshared-initializeを呼んでいる
  • make-instanceに複数のクラスを指定できるようにする
    • 意味論として多重継承と同じ
  • 未定義スロットを自動定義
    • メタクラスを継承して自分のメタクラス
    • mop:standard-direct-slot-definition
      • スロットを定義するクラス
    • direct-slotsに入れる
    • mop:finalize-inheritance
      • 継承したスロットを決定
      • これをもう一回呼ぶ
  • メソッド修飾子
    • primary、before、after、around
    • 就職子のないのはprimary
    • 引数に手を加えるときにaround
  • メソッド結合
    • 修飾子と継承による、メソッド呼び出しの順番
  • reinitialize-instanceの:afterで、継承クラスにすべて適用
  • 名前つきインスタンスをできるようにしてみる
  • :nameスロット
  • Class Precedence List
    • クラス優先リスト
    • 包摂律、遷移律
  • クラスが自分のインスタンスを知っているようにするメタクラス
  • 多重継承
    • finalize-instanceしたときに決定される
    • 半順序・全順序
    • トポロジカル・ソート
      • くわしくはCLtLを
    • mixin(Flavor)
  • 実効スロット定義
    • スロットの定義もMOPでいじれる
    • 実装によって大きく違う
  • リフレクション
    • 言語の実装を変更
    • 無限のシステム階層が必要
      • 3Lisp
  • CLOS/MOPでは
    • standard-classのクラスはstandard-class
    • ループで無限階層
    • ラッセルのパラドックス
  • TwistedRelation
  • Semantic Web Layer Stack
    • ACLならUnicodeが使える
    • その上をすべて実装した
  • これから
    • Web Service Discoveryは総称関数として扱う
    • Linked Open Data (LOD)
    • Common Logic
      • OWLの限界
  • Q: OWL。数学的な厳密性に欠ける。
    • A: 私の考え。RDFは厳密な意味論。OWLは3種類。OWL DLは厳密だが実用性に欠ける。OWL FullはRDFベース。OWLはDL派が牛耳った。厳密的すぎる
  • Q: ラッセル。自己参照を避けるために型。
    • A: 神学論争になるのでw。ラッセルのパラドックスはさまざまな方法で回避されている

Lisp今昔物語(安村通晃)

  • 自己紹介
  • 大学院
    • Pascal処理系。Lispは全然
  • 日立中研
    • スパコン
      • 実習で作ったプログラムが実戦投入w
      • スパコンコンパイラ
    • Lisp処理系
  • SFC
    • スーパーファミコンと同じ年にできたw
  • 昔話(1)
  • 高速Lispコンパイラの開発(日立中研)
    • 第5世代コンピュータプロジェクト全盛の時期
    • 「Lispは遅い」という先入観を覆したい
    • UtiLispをターゲットに
  • HiLisp処理系
    • 大型機(M280H)のパフォーマンス
      • でも今のパソコンから見ると全然w
    • 中間コード経由のコンパイル
      • 中間コードLcode
      • LAP(アセンブラ)
    • 最適化
      • 呼び出し先ごとに最短命令生成、末尾再帰のループ化、インライン展開、自己再帰関数の自動展開
        • ハードの技術者が近くにいたので、パイプラインのボトルネックなどがわかった
    • 型判定の最適化
    • 局所最適化
      • 分岐命令の最適化、不要なスタックチェックの削減、パイプラインを意識した命令の並べかえ
  • 対UtiLispでベンチマーク
    • だいたい勝った
  • 対Pascalでベンチマーク
    • だいたい勝った
    • 浮動小数点数や配列は負けた
  • 昔話(2)
  • Lispのプログラミングパラダイム
  • 従来のプログラムを高水準化し、プログラム変換によって高速化
    • prog、go、setqを使ったコードを、再帰呼び出しのコードに
    • 末尾再帰をmapを使って高水準化
      • 組み込みのmapの速さ
    • Portable Prolog
      • 大域変数をやめて、多値
    • tarai関数をクロージャで遅延評価
      • 3000倍の速度
      • 呼び出しを遅延し、比較でforce
  • Lisp都市伝説
    • 「Lisperには紅茶好きが多い」(米国)
    • レストランで「Coffee?」と聞かれて「t」と答えるw
  • 講義としてのLisp
    • 理系・文系の区別のない授業
    • SICPは数学の例題が並んでるのでダメ
    • Lispの表現力を伝えたい
    • Cに慣れていないほうがいい
    • 代入やループを避ける
  • 2回目でリストとコンスセル
  • 課題:自然言語、ボードゲーム、数学的ゲーム、パズル、など
  • これからのLisp
    • 日曜プログラマーがもっとLispでお手軽プログラミング
    • シンタックスシュガー化したLisp
    • ほかの言語にあまりない多倍長演算、複素数、クロージャなど
    • 軽量な実行環境。組み込めるもの
    • マルチメディア処理
  • これからのプログラミング
    • 家事、ロボットへの指示、建築、アート、脚本、人生設計
  • PascalとLispの比較
  • Programming 2.0
    • 意味論指向
    • 認知的
      • 論理的じゃなくて
    • ユーザ主導
    • エラーフリー
      • スルーしろよw
    • 許容、いいかげん
    • 太っ腹
  • 情報処理学会のプログラミングシンポジウムの発表資料
  • HMMMML(宮下芳明)
    • カッコが抜けてもセミコロンが抜けても動くw
    • すごくアバウトw
    • YouTubeに動画あり
  • Context Free Art
  • 「アルゴリズミックアーキテクチャ」
  • 洗濯物たたみロボット
  • Q: プログラム変換していいことの判断
    • A: 結果があうこと。
  • Q: 自動的?
    • A: 手動
  • Q: Programming 2.0。自然言語との融合のアプローチが必要。Simplified Technical English。
    • A: 言ったときには実装については考えていなかった。英語でrとlの区別がつかなくてもいい。
  • Q: ピジン、クレオールは異文化コミュニケーションの基本。そういう分野との関係。
    • A: クレオールは同じ考え。昔ハワイに移民した日本人。へんな英語でも通じる。HTMLもそんな感じ。
  • Q: Common LogicのDialects。意味論を決めて文法はあとで決めればいい。つながっているのか。
    • A: セマンティックスもシンタックスもぐちゃぐちゃだと難しい。どちらを重視するかというと意味論。
  • Q: 「認知的」とは
    • A: 会議とかで、正論だけど今そういう話をしているんじゃないよという意見を言う人がいる、ということ。「モーゼは方船に動物をどれだけ乗せたか」というひっかけ問題。ゲームハードの性能競争じゃない世界。
  • Q: エキスパートシステム?
    • A: 段取りはプログラミング
  • Q: プログラミングではなく自然言語?
    • A: 設計のあるもの
  • Q: 人生設計って自分でわからないものだが
    • A: 保険会社の人生設計。プログラムみたいなもの。自分でやりたい。
  • Q: Programming 2.0で、コミュニケーション力の問題に?
    • A: 飲んだくれてるときは話を半分に聞くとかw

LT:○○から始めるScheme(HAYASHI Kentaro)

  • TrackPoint 愛好家
  • Schemeとの出会い
    • Schemeのサブセットを積んだ製品から
  • Gaucheへ
    • 最近Windowsサポート強化
    • Gauche Box
  • コンパイルされたバイナリが配布されていないライブラリ
    • cygwinに依存したくない
    • ほかの言語ではActive Perlなど
    • Gaucheでもお手軽インストール
  • Gauche Nightly TesterBuilds
    • グラフィック:OpenGL、SDL、GTK+ なども
    • DB:PostgreSQL、SQLiteなども
    • 拡張子の関連付けなど
  • ダウンロード104件
    • 実はクローラからが多かったw

LT:スキーマクラフトの紹介(k_kinukawa)

  • スキーマクラフト
    • アニオマジック社
    • 光る腕輪
    • 次世代ファッション、テクノ手芸
  • Webのインターフェイスからプログラムできる
    • 光でプログラムを送信
  • コードが書ける
    • カッコの多い言語
    • defineも
    • 再帰
  • でもバグが多い
  • JSで書かれている
  • 6000円ぐらい

Gaucheを使った簡易出版システム(Yuumi3)

  • Shibuya.lispのおかげで仕事の案件が
  • 教育
    • テキストを作る
    • DTPを使うほどのことでもない
  • 以前
    • FreeStyle Wiki
    • PDFが作成できる
    • Snow Leopardにしたら動かなくなった
  • Shibuya.lisp TT #4
    • ひげぽんさんのトーク「さあ家に帰ったらSchemeのコード書いてみよう」
    • 自分が使うものをLispで
  • 新システム
    • Wiliki
    • wkhtmltopdfコマンド
    • Gaucheから操作
  • 近日公開予定

Lispで仕事をするために(nitro_idiot)

  • みんなどのぐらいLispを使っている?
    • 仕事でLisp書いている人?
      • 何人か
    • 趣味
      • 一杯
    • 仕事でLispを書きたい人
      • 一杯
    • なんで僕は仕事でJava書いてんだろう
  • ありがちな状況
    • 「ハッカーと画家」→Gaucheインストールしてみる→Kahuaインストールしてみる→SBCLインストールしてみる→SLIMEインストールしてみる→Clojureインストールしてみる→あーおもしろかった→終わり
  • 実際に使おうぜ
  • 自分ですら使わない言語を仕事で使えるはずがない
  • ロードマップ
  • Shibuya.lisp活性化
    • 実用例をふやす
      • →ライブラリやドキュメントが豊富に
    • →Lisperが増える
    • →企業が導入

多値で簡単パーサーコンビネータ(鹿野桂一郎 オーム社)

  • TeX
  • 立派なプログラミング言語
  • チューリング完全
    • FizzBuzzも書ける
  • Lispと同じく拡張可能な言語
    • Paul Grahamが言っている
      • 「ハッカーと画家」
      • 宣伝w
  • 昔、萩谷先生がdisってた
    • 「要するに馬鹿である」
  • 数値の規則
  • BNFっぽい
  • パーサコンビネータさえあれば
    • パーサコンビネータの詩
      • 「プログラミングHaskell」に書いてある
      • 宣伝w
    • 「結果と文字列を返す」
    • 多値
  • エラーも返す
    • 止まってしまう
    • conditionを定義
  • 正規表現だと辛いパースも簡単
  • 元ネタはHaskellのParsec
  • 「Scheme手習い」よろしくw

ClojureとePubで「普通のやつらの上をいく」方法(deltam)

  • ClojureからLispに入門したゆとり世代
  • 電子書籍が流行している
    • それはまったく興味ない
  • ブログでは長文が読みづらい
  • iBooksが無料で使える
    • 長文を読める環境がひろまった
  • EPUB
  • 新しいメディア
    • いままで評価されなかった文章がネットに
  • EPUBのツールは本格的で難しい
  • プレーンテキストをエディタで書いてコマンド一発でEPUBを作れればいい
  • EPUBを作成配信する一番簡単ツール
    • text2epub-clj
    • feed2epub-clj
  • ToolをGAE/Jにのせてみた
    • Clojureだから簡単
    • RSS/ATOMをEPUBに変換してPodcastに

コメント

コメントの投稿

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

トラックバック

http://emasaka.blog65.fc2.com/tb.php/842-336def71

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

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

Monthly


FC2Ad