Today アクセスカウンター Yesterday アクセスカウンター

ホワット・ア・ワンダフル・ワールド

私は知識に何ものかを付け加え,また他の人々がより多くのものを付け加える手助けをした --- G.H.ハーディ

全記事一覧 << 2008/07 12345678910111213141516171819202122232425262728293031 2008/09 >>

プロフィール

あろは (alohakun)

  • Author:あろは (alohakun)
  • 若槻俊宏 (WAKATSUKI toshihiro)

    連絡先 : alohakun ___at___ gmail.com
    mixi : http://mixi.jp/show_friend.pl?id=182927
    twitter : http://twitter.com/alohakun

    abstract

    プログラミングという人間の知的行為を体系化し,単なる職人芸ではなく,サイエンスにするための研究をしています.

    具体的には,等価変換計算モデルに基づいた,仕様記述からのプログラム合成の研究をしています.

    もっと噛み砕くと,プログラムの正しさをどのように定式化し,どのような枠組みで,どのように変換を進めていけば,正しさを保証したまま,効率的なプログラムを手に入れることができるのか,ということについて研究しています.

    キーワード : equivalent transformation, computation model, programming paradigm, formal specification, program synthesis













    あわせて読みたい


    この日記のはてなブックマーク数


    スカウター : ホワット・ア・ワンダフル・ワールド


    Map









    FC2 BLOG RANKING

FC2カウンター

ブロとも申請フォーム

この人とブロともになる

知識表現とProlog / KR

2008/07/20(日) 21:21:25

えらく古い本 (1985) ですが,たまたま研究室に転がっていたので眺めていたら,けっこう面白かったのでメモ.

知識表現とPROLOG/KR

ET 言語の,D ルールの定義構文 (as *Head | *Body) とか,変数の頭に * (アスタリスク)が付くのとかも,Prolog/KR の as 構文 (assert の略らしい) なのかな ? Prolog/KR も変数の頭に * が付くのか,とか,こういう由来系の情報ってのは面白いです.

Prolog/KR ってのは Lisp と Prolog の融合を進めたような言語のようです.というか,Lisp で書かれた Prolog 処理系のようです.

知識表現の利便性のために拡張された Prolog であり,多重世界の概念でプログラムの階層化(モジュール化)を可能にするそう.特に,AI における知識フレームなどが,一世界一概念という形で素直に対応付けられるらしい.

Prolog/KR は,もともと Utilisp [Chikayama 1981] (日立,富士通のMシリーズ,IBM370 で動く)上に作製されたが,現在 Franzlisp (VAX Unix),Maclisp (DEC-20),Zetalisp (Lisp マシン) の版がある.Lisp マシン版は多重世界機構の拡張とともに Uranus と呼ばれている. (p.70)

あたりに,非常に時代を感じますが,本の内容自体は (非アカデミックの水準では ?) それほど古びてない感じですね.

多重世界機構とか,リストでプログラムが表現されている(メタ記述が容易)とか,パターンマッチング機能がある,自動バックトラッキング部分と,決定的な部分が分離されているのでユーザが任意のプログラミングスタイルを選択できる,などは,まんま ET 言語にもあてはまりますね.なるほど,かなり大きな影響を受けているようです.ET のワールド機構,D ルールと N ルールの区別,単一化とパターンマッチングの分離 (Prolog から,より純粋なルール型言語へ.高レベルから低レベルまでを柔軟に記述可能) などにそのまま対応します.

多重世界機構の応用例として,Smalltalk の持つクラス間の階層構造を,そのまま素直に多重世界の入れ子構造で表現して,Tiny Smalltalk の処理系を十数行で実装したりしたりとか,なかなか面白い本です.

ちょっと検索したみたら,こんな記述も.

100 年 Windows 横山哲也 2006年09月12日 渕一博氏を偲ぶ

Prologは,プログラム言語としてはかなり未完成であった。例えば,まともなプログラムを書くには,カットオペレータという演算子が必須である。ところが,カットオペレータの強力さと単純さはGOTO文の比ではなく,結果としてプログラムの見通しは極めて悪いものとなった。そこで,研究者の間では,述語論理型言語にどのような制御構造が必要かという考察が行われていたことを記憶している。私は,自分の研究に,中島秀之氏(現公立はこだて未来大学学長)の作成したProlog/KRを使うことにした。当時,オンライン・コミュニティはあまり発達しておらず,中島氏が所属していた東京大学まで電話をして磁気テープを送ってもらったことを覚えている。もちろんオープンリールである。

 Prolog/KRは,LispとPrologと融合した言語で,十分な制御構造が備わっていた。ただし,追加された制御構造は手続き型の側面が強く,述語論理の特徴を生かせていたとは言い切れない。ところで,どうでもいいことだが,1986年に広島で開催された情報処理学会全国大会で偶然中島氏をお見かけしたので,著書にサインをいただいた。今でも大事にとってある。

 一方,ICOTではPrologを拡張したGHC(Guarded Horn Clause)をベースに,KL-1を開発した。こちらは,述語論理の特徴を生かし,さらに並列処理まで実現していた。ただ,Prolog固有の構文が色濃く残っており,慣れないと使いこなすのは難しいだろう。





追記

Common Lisp 上で動く Prolog/KR 処理系が存在するようです.

Uranus Prolog/KR
BookTB:0CM:0 このエントリーを含むはてなブックマーク | livedoorクリップ livedoorクリップ BuzzurlにブックマークBuzzurlにブックマーク newsing it!
コメント
コメントの投稿

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

トラックバック

トラックバックURLはこちら
http://alohakun.blog7.fc2.com/tb.php/958-9644cb30

最近のコメント

リンク

このブログをリンクに追加する

最近のトラックバック

人生の残り日数

日本人男性の平均寿命は 28700日.

RSSフィード

カテゴリー