5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

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

Prologサーバー

1 :Prolog:04/12/10 16:02:13 ID:???
Prologサーバー網の構築に向けて、
・ Prologサーバーとはなにか
・ Prologサーバーの共通仕様、機能
・ プログラミング技術
・ セキュリティについて
論じましょう。


76 :DNS未登録さん:2006/04/14(金) 12:35:53 ID:???
文字コードのエンコーディングやReferURL情報等
一切なしですか・・・。


77 :DNS未登録さん:2006/04/14(金) 17:10:09 ID:???
いや、Headerを解析してhttpプロトコルのHeaderだったら、
当然取得しておく。
何を以てプロトコルを認識するかは決めていない。

78 :DNS未登録さん:2006/04/15(土) 06:29:09 ID:???
>>63
ICOTの開発したプログラムは
http://www.icot.or.jp/ARCHIVE/Museum/IFS/abst/XXX-J.html
から現在でも入手できます。(XXは001-100)

79 :DNS未登録さん:2006/04/15(土) 08:06:02 ID:jel5navj
以前ム板で、PrologのユーザやベンダはPrologは
libraryをあまり作りたがらない、実際その時に
書けばよいから、作る必要がない。
と書いたら、「正規表現は作れますか」ときた。

Prologで正規表現なんて使わないよ。なんで
そんなの覚えなくちゃならないの?って答える
べきところをオタフタして答え損なったw。

正規表現は一種の言語だから論外としても、
辞書引き問題はこういうネットワークでは
結構深刻ですね。辞書、ここでは他ノードに
たいするlistingですが、これを引くコストは
ばかにならない。自分で書いた方がとどうしても
思ってしまう。



80 :DNS未登録さん:2006/04/15(土) 11:51:27 ID:???
Prologの場合要約っていうのができないからね。
コード自体が要約だw

81 :DNS未登録さん:2006/04/15(土) 17:06:35 ID:???
>>79
つまりperlとかの方が開発効率が良いと言うことですね。


82 :DNS未登録さん:2006/04/15(土) 17:52:27 ID:???
>>81
一般論としてですが、ライブラリが揃っていて、
その使い方を熟知している場合、開発効率は
高くなりますね。
ここでの文脈で言うと、知識(たとえば正規表現の
記法)を得るためのコストとプログラム作成時の
速度差の累計で評価しなくてはならないでしょう。

Javaのように言語を熟知していても、クラス名や
メソッド名が妙に長くて、効率が上がらないケースも
ありますが。Eclipseとかを駆使しない場合ですが。

Prologのような言語はライブラリ知識獲得のコストは
ゼロだということになります。常にその場でリスト処理で
済ませますから。

83 :DNS未登録さん:2006/04/15(土) 18:10:58 ID:???
Prologで使う述語といえば
member,repeat,forの他には、
副文字列を切り出す part_atom
文字列(atom)をリストに変換する
atom_chars,atom_codes
それから複数のatomを結合する concat_atom

くらいのものです。
これだけで、他のインタプリタと同等の
速度で対話実行ができるわけですから、
少なくとも初心者向きなのはこちら
ということになります。

84 :DNS未登録さん:2006/04/15(土) 18:12:22 ID:???
ごめんなさい。findall を落としました。

85 :DNS未登録さん:2006/04/15(土) 18:22:16 ID:jel5navj
先輩
true,fail,not,open,close,read,get_char,get_code,
consult,reconsult,assert,retract,abolish
が抜けてますよw

まあ、これで全部か。


86 :DNS未登録さん:2006/04/15(土) 18:38:08 ID:???
ハハハ
まだあるぞ。write,put_code,put_char
fuctor,argも使うね。

30個くらいにはすぐなっちゃう。
結構、知識がいるね。


87 :DNS未登録さん:2006/04/15(土) 18:53:41 ID:???
この際、思惑抜きに使う述語をあげてみよう。
上記の他に、
integer,float,number,atom,atomic,var,compound,の型判定述語
is,=も述語だ。
predicate_typeなんかも使うことがある。
それから述語ではないが関数も覚えなくちゃ。

まあ、こんなものだが、7-8割が
member,fail,true,atom_part,concat_atomで済むか。

88 :DNS未登録さん:2006/04/16(日) 05:46:29 ID:???
もしかすると一番重要な述語 system が抜けていた。

ファイルから情報を読み取るか、Prologプログラムとして、
あらかじめconsultしておくか、流儀はいろいろあるが、
基本的な組み込み述語の使用頻度はどんなプログラマでも
大差ないのがPrologの特徴かな。

89 :DNS未登録さん:2006/04/17(月) 14:08:42 ID:???
結局、Prologも使いこなすにはそれなりの知識がいる、と。

達人を集めて競わせるとどの言語も生産性に差はでない。
でも、PerlとPrologくらい目指す方向が異なると、
初心者、初級者、中級者、上級者とそれぞれの段階で
生産性に差が出てくるような気がする。実証というのは
難しいだろうが、面白いテーマなのでちょっと研究してみる。

90 :DNS未登録さん:2006/04/17(月) 14:23:22 ID:wrBcmWfA
初心者: 試合開始1秒 面が決まりPrologの勝ち。

3時間で全ての機能を覚えられるからね。

91 :DNS未登録さん:2006/04/17(月) 14:28:02 ID:???
いや、PerlだってCGI絡みにしなければそのくらいで説明できないか。

92 :DNS未登録さん:2006/04/17(月) 14:31:35 ID:Qe0R37ZJ
無限に拡がる軟体動物みたいなやつです。
無理ですね。

93 :DNS未登録さん:2006/04/17(月) 14:41:56 ID:FRz6ud02
ム板なんかにプログラムの基本っていうことをいう人がいる。
私はプログラミングに基本なんてないと思うが、この人達の
いう基本以外、Prologのプログラミングでは使わない。
一方、Perlの方は、ぜんぶ応用という感じで、基本部分の抽出
なんてばかばかしくなる。そういう意味で大変魅力ある言語
だと思う。

94 :DNS未登録さん:2006/04/17(月) 14:49:00 ID:???
つまり、Perlの場合全部「逆引き」で攻めていくって感じ?

95 :DNS未登録さん:2006/04/17(月) 14:54:32 ID:lp7KF6SW
ライブラリ=「逆引き」ですよ

96 :DNS未登録さん:2006/04/17(月) 14:55:43 ID:???
わかったから、sage進行にしてくれない。なにか恥ずかしい。

97 :DNS未登録さん:2006/04/17(月) 18:28:10 ID:???
Perl的な部分が利いてくるのは中級者から?

98 :DNS未登録さん:2006/04/17(月) 18:34:29 ID:???
ところで >>93
>この人達のいう基本以外、Prologのプログラミング使わない。
なんか、日本語がヘンなようで。
この人達のいう基本しか、Prologのプログラミングでは使わない。
じゃないか。

99 :DNS未登録さん:2006/04/18(火) 07:18:30 ID:???
考えてみると、Perlのような言語がPrologより
生産性が高い?という議論にマジで応対している
のだから、驚くべき事だ。20年前にはPrologの
生産性は群を抜いていた。Lispの倍くらいの
速度で仕上がっている感覚だった。
私はRubyくらいしか使わないが、これもしかすると
Prologといい勝負いけるんじゃないかと思うことが
ある。
ここ二十年のプログラム言語のの記法レベルの洗練は
相当なものだ。

100 :DNS未登録さん:2006/04/19(水) 19:55:59 ID:???
APLなどがそうだったと思うが、
素人が見ると何が書いてあるかさっぱりわからない。
達人から見るとこんな易しいものはない。

こういう言語は滅びる。Perlなどもちょっとこういう
臭いがする。

101 :DNS未登録さん:2006/04/20(木) 08:23:05 ID:???
略記法に?というものは多いが、
基本的には、
Perlはただ書けばよいだけで、
素直なものだと思うが。

102 :DNS未登録さん:2006/04/22(土) 10:45:33 ID:ENgCktJU
.NETではPrologは完全に無視されているようですが
その辺りの情報は何かありませんか。

103 :DNS未登録さん:2006/04/22(土) 10:51:29 ID:???
マイクロソフトがPrologを避けている理由や
経緯については全く知りません。内部資料と
してはその理由が記述されたものがありの
だろうから、社員が書き込んでくれると
ありがたいのですが。

104 :DNS未登録さん:2006/04/22(土) 19:38:08 ID:???
バッチ処理、Prologの負節実行をある時刻に
起動するような場合がありますね。他の
コンピュータのPrologの場合どんな手順に
なるのしょうか。

105 :DNS未登録さん:2006/04/22(土) 19:55:13 ID:???
私はLinuxなのでatコマンドで説明します。
第一にどこでatコマンドを切るかの選択があります。
自ノードでも可能ですし、リモートノードにatコマンド
を起動することも可能なわけです。
それから、ここでいう、Prologサーバーで負節を実行
するのか、それとも別にPrologを起動して実行するのかの
選択もあり得ます。どれも、可能で組み合わせは多岐に
渡りますが、私の方法を述べます。コードを書いてしまいましょう。
% *** user: '予約' / 3 ***
'予約'(_時,_分,Network :: _副目標) :-
'整数から文字列'(2,_時,_時文字列),
'整数から文字列'(2,_分,_分文字列),
'cgi述語表現'(Network,80,_副目標,_CGI述語表現),
tmpnam(F),
open(F,write,FO),
wr(FO,'w3c %t\n',[_CGI述語表現]),
close,
concat(['chmod 777 ',F],S),
system(S),
concat_atom(['echo "',F,'" | at ',_時文字列,_分文字列],S2),
system(S2),
! .
要するに自ノードでatコマンドを実行しています。ポート番号はここでは80。
w3cのURLにform情報を付加して質問をしっぱなしの仕様です。

106 :DNS未登録さん:2006/04/22(土) 19:56:29 ID:???
concat(['chmod 777 ',F],S),

concat_atom(['chmod 777 ',F],S),
の間違いです。

107 :DNS未登録さん:2006/04/22(土) 20:00:36 ID:whEFssI9
cgi述語表現の定義も教えてください。

108 :DNS未登録さん:2006/04/22(土) 20:07:05 ID:???
cgi述語表現(Network,PORTNO,_述語,_CGI述語表現) :-
url述語表現(_述語,_URL述語表現),
concat_atom(['http://',Network,:,PORTNO,prolog_file,'?query=%3F-+',_URL述
語表現],_CGI述語表現),
! .

url述語表現は例の漢字コードの変換です。

109 :DNS未登録さん:2006/04/27(木) 19:27:58 ID:???
httpプロトコルなのですか?



110 :DNS未登録さん:2006/04/27(木) 19:32:27 ID:???
この場合はそうです。
基本的にサーバーが要求するポート番号は自由です。
80を指定しているサーバーだと、多分httpを期待してる
のだろうと考えてhttpのheaderを付加して送りますね。

111 :DNS未登録さん:2006/04/27(木) 19:35:21 ID:???
遅くないですか?


112 :DNS未登録さん:2006/04/27(木) 19:38:13 ID:???
遅いですw
でも、セッション数などは変わらないわけですし、
若干Headerの情報が多いという程度ですから、実際は
どんなプロトコルでも似たようなものですね。
インターネット経由の場合は。

113 :DNS未登録さん:2006/04/27(木) 20:15:55 ID:???
クライアント側でmozillaのようなブラウザを介して、
ハンドリングすると極端に遅くなりますね。
コマンドの解読はたいしたコストではないと思いますが
やはりバッファーかなんかを確保するので時間がかかる
のでしょうか。w3cなんかそんなことしてないと思うの
ですが、やはり少しかかりますね。

114 :DNS未登録さん:2006/04/28(金) 11:45:47 ID:Kl9Nx86D
socket関係が組込述語になっている処理系というと
どんなものがありますか。


115 :DNS未登録さん:2006/04/28(金) 20:39:20 ID:???
私はIF/Prologを使っていて、最初からsocketは組み込みでした。
それで、直ぐにWebプログラムが書けました。現在でも、
メーラーなどに不満な点があると、Prologで書き直してしまいます。
K-Prolog、SWI-Prolog、Visial-prologについて、ちょっと確かめて
からお答えします。
IF/Prologの組み込み述語は、
socket/3,current_socket/3,select/3,socket_accept/3,
socket_bind/2,socket_connect/2,socket_listen/1/2,socket_close/1,
socket_receive/2/3,socket_raw_receive/4/5,
socket_send/2/3,socket_shutdown/1/2,alarm/1
です。

116 :DNS未登録さん:2006/04/29(土) 05:41:34 ID:???
前にIF/Prologの販売は2004年で停止となったと
書きましたが、どうもヨーロッパでは販売されて
いるようです。日本のIF/PrologのB氏がそんな
ことをいっていました。
直接ヨーロッパ向けのWebサイトで購入できそうです。
ただ、個人で買うには高いですね。人に勧めるのを
躊躇する価格帯です。

117 :DNS未登録さん:2006/06/02(金) 14:24:12 ID:???
最近IF/Prologのサイトを見たが、日本SGIのマシン上では
販売を続けるらしい。日本SGIのUNIXマシンにインストール
してということなので、日本SGIの将来が不透明でこの話も
どうなるかわからない。

118 :DNS未登録さん:2006/06/06(火) 08:57:13 ID:???
GNUにPrologぐらいあるんだが。
http://pauillac.inria.fr/~diaz/gnu-prolog/

気に入らないなら、codeをcontributeしまくって、自分好み
に誘導するのがbestだよ。

...日本のprolog屋がC/C++なんて書けるはずもないか。
無意味な論文積み上げて、博士や大学教員になる事しか考えて
ないからな。


119 :DNS未登録さん:2006/06/06(火) 09:59:03 ID:???
>>118 書き込みありがとうございます。
私は研究者ではありませんが、C/C++はほとんど使わないので、
gやSWIの拡張は日本語処理の部分以外試みたことがありません。
これまで使ってきたものを取り上げることが多くなります。
SWI-Prologの利用の方が優勢だと思いますが、gprologも大学での
利用は多いはずです。これこれの処理をするには、
どんな組込述語を用意すると便利かの一覧を用意するといいのでしょうね。

120 :DNS未登録さん:2006/06/17(土) 19:40:53 ID:???
上の方の質問と応答が痛々しい程に自演臭い。

121 :118:2006/06/18(日) 14:04:39 ID:???
>120
てめー、腐れProlog屋と一緒にすると頃すぞ。


122 :DNS未登録さん:2006/06/18(日) 18:45:34 ID:???
>>121
「上の」じゃなくて「上の方の」だろ。

>>22〜64あたり、
やたら丁寧な記者みたいな質問と
やたら早い反応の返答。
どう考えても不自然だ。

123 :DNS未登録さん:2006/06/21(水) 07:34:49 ID:???
>>120 >>122
完全な自演ではありませんが、うちの社員との Q & A です。
質問者もかなりわかった人間です。

124 :DNS未登録さん:2006/06/21(水) 07:49:43 ID:???
要するに、
Prologを利用するときは同時に
共用Prologデータベースも立ち上げるべきだ、
という主張をしているスレなのです。

125 :DNS未登録さん:2006/07/23(日) 09:32:55 ID:???
実用上、特に重要と
思われる組込述語を列挙すると(IF/Prologによる)

predicate_type/2
current_predicate/1
parse_atom/6
functor/3 (=..)/2
arg/3
op/3
current_op/3
clause_with_names/3
read_with_names/2 ほか入出力
system/2
findall/3
member/2
open/3
close/1
atom_chars/2
atom_code/2

unify述語( =/2 , ==/2 など )
型判定述語 socket関係述語

(= や unify関係は除外したけれど)

最も重要なのは parse_atom/6 と findall/3 かな


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

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)