トップページ⇒tech
13コメント9KB

Prolog

■ このスレッドは過去ログ倉庫に格納されています
0001ピロキNGNG
 …は、もしかして完全に沈んでますか?
 並列性や、WAMとか、結構今でもイケると思うのですが。

 
0002名無しさん@お腹いっぱい。NGNG
ありがとうございました。
■■■■■■■■■終了■■■■■■■■■■
0003ピロキNGNG
が〜ん!
0004名無しさん@お腹いっぱい。NGNG
Mercuryはまだ元気っぽい
0005ピロキNGNG
う、嬉しい!

http://www.cs.mu.oz.au/research/mercury/index.html
ですね。

少し読みました。
型があって、Cにトランスレートする論理プログラミング言語。
という感じですか。
面白そうですね。
ありがとうございました!


0006名無しさん@お腹いっぱい。NGNG
Mercuryは型が付いてるから高階だと面倒になる事もあるみたいだね。
ところでPrologで並列と言えばAND並列やOR並列だっけ?
最近クラスタマシンなんかが流行ってるみたいだけどPrologなら結構簡単に載せられるかな?
あとICOTのあの言語、なんだっけ。
節がプロセスで論理変数がプロセス間通信の口ってのも面白いね。
0007名無しさん@お腹いっぱい。NGNG
入門サイト、入門書きぼん。
0008ピロキNGNG
http://ishss10.doshisha.ac.jp/haga/Lectures/Undergraduate/ProgrammingLanguage/prolog/intro.html

なんか、よろしいかと。
JAVA版のPrologがあるので、その場で試せます。
0009ピロキNGNG
>Mercuryは型が付いてるから高階だと面倒になる事もあるみたいだね。
 なるほど。
 でも型があればユニファイの効率はよくなりますよね。

 a(X):-integer(X)....

よりも

 a(int X):-....

 の方がユニファイ時にXの型チェックが行われるので、
 不要なマッチングによる失敗時のバックトラックのオーバーヘッドを回避できますよね。
 本当にそんな書き方をするかどうか知りませんが(笑

 あと制約を型の一つとして捉えると面白いかも。
 それとも既にそうなのかな?

 a(int X<3):-....

 とか書けたら強力そう。

>ところでPrologで並列と言えばAND並列やOR並列だっけ?
 あい、;(OR)と@`(AND)です。
 本当は並列マシン向けに並列論理仕様にしないと駄目ですが。

>最近クラスタマシンなんかが流行ってるみたいだけどPrologなら結構簡単に載せられるかな?
>あとICOTのあの言語、なんだっけ。
 並列論理言語KL1かな?
 マシンだとPSIとか。

 TAOとか名前だけ覚えてるけど、何だっけ?
 確かSmalltalk+Prolog+Lisp=TAOってビックネーム揃えた言語だったと思うけど。
 これはICOT関係ないのかな?

>節がプロセスで論理変数がプロセス間通信の口ってのも面白いね。
 ああ、そういう言い方出来ますね。
なるほど。
 深く考えた事無かった(笑

 JAVAみたいにスレッドの考え方が軽快(スタックマシン)だと楽なのに…
 Prologマシンって内部構造複雑過ぎ。
 ローカルスタック、グローバルスタック(ヒープ?)、トレイルスタック(にゃにコレ?)とか、
 わけわからん。

 もっとシンプルで軽快に出来なかったのかなぁ。
 でも好きだけど。
 
0010名無しさん@お腹いっぱい。NGNG
>あと制約を型の一つとして捉えると面白いかも。

これは大変そうですよね。
CLPなんかのように制約のドメインを限定しておかないと。
せいぜいのところ整数ドメインが精一杯なのかな。
だけどこれもICOT関連だけど cu-Prolog (Constraint Unification Prolog)
というのがあるね。
これは節に制約を貼り付けてます。
GHCのガードをグラウンドでない変数に貼り付けて引っ張り回しているという方がいいのかな?
個人的にはcu-Prologはかなり好き。

>本当は並列マシン向けに並列論理仕様にしないと駄目ですが。

んー、どんな変更が必要なのかな?

>並列論理言語KL1かな?

ああ、それです。Unix用のCへ変換するKLICってのがあったよね。

>TAOとか名前だけ覚えてるけど、何だっけ?
>確かSmalltalk+Prolog+Lisp=TAOってビックネーム揃えた言語だったと思うけど。
>これはICOT関係ないのかな?

これは元NTT、現電通大のT氏の奴ですよね?

>Prologマシンって内部構造複雑過ぎ。

これは実際のマシンアーキテクチャがという事?
それともWAMが?

いずれにしても一般受けしないから広まる事はないだろうけど、Prologは面白いですよね。
0011名無しさん@お腹いっぱい。NGNG
でも市場の見出せないPROLOGは衝撃的だった
ICOTはなんだったんだとおもったね
0012ピロキNGNG
>これは大変そうですよね。
>CLPなんかのように制約のドメインを限定しておかないと。
>せいぜいのところ整数ドメインが精一杯なのかな。
 それ以外に使い道が想像出来なかったというのがあります(笑

>だけどこれもICOT関連だけど cu-Prolog (Constraint Unification Prolog)
>というのがあるね。
>これは節に制約を貼り付けてます。
>GHCのガードをグラウンドでない変数に貼り付けて引っ張り回しているという方がいいのかな?
>個人的にはcu-Prologはかなり好き。
 ちらっと見ました。
 ……おお、カッコイイ。
 仕様としてはこっちの方がスリムで好感持てますね。

>ああ、それです。Unix用のCへ変換するKLICってのがあったよね。
↓に落ちてますね。
http://www.icot.or.jp/ARCHIVE/Museum/IFS/field-J.html

>>本当は並列マシン向けに並列論理仕様にしないと駄目ですが。
>んー、どんな変更が必要なのかな?
 …あ〜勘違いでした。
 たとえば、

a(1):-....
 a(X):-....

 は、並列でないと、a(1)の次にa(X)が評価される事を期待していますが、
 別に同時に評価してもおかしな事にはならないですよね。
 馬鹿でした忘れて下さい。

 WAMだと思います。
 Prolog仮想マシンを作ろうと思って、勉強中なのですが、
 お手本の教科書(「Prologマシン」金田悠紀夫 森北出版)が難しくて(TT
 厨房にはツライ!(><
(ちなみに学校の宿題とかじゃないですけど)←こんな課題出す中学ないって!

 で、VISOみたいなモノ作って、そのマクロ言語にPrologを使う。
 貼り付ける絵図にPrologでルール持たせて、
 コンピュータ同士を電源ケーブルで接続するようなお馬鹿な図がそもそも描けないエディタを作る。
 憧れの論理プログラミング+ビジュアルプログラミングを目指してます。
 作図と論理式は同等だって、誰かも言ってたみたいですが、
 僕も相性いいと思ってます。

 ちなみにリリースは推定2万年後。
 ベータは5千年後です。

 
0013ピロキNGNG
>>11
 うんうん、思いましたよ〜
 人工知能に想い馳せる、夢見がちな少年でしたもの、自分。

 今でも「ICOTの成果」という文字を見ると痛くてかなわない。
 動員したエンジュニアはン万人という話だし…
 連中今何やってんだろう…

 
■ このスレッドは過去ログ倉庫に格納されています