「Prolog」を編集中
表示
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を公開して取り消しを完了してください。
最新版 | 編集中の文章 | ||
143行目: | 143行目: | ||
1990年代に入ると[[制約論理プログラミング]]が注目され処理系が多数誕生した。これは {{lang|en|Prolog}} から見ると引数の論理変数間の関係(制約)を記述可能に拡張したものである。'''制約論理型言語'''は、変数評価に遅延実行などを持ち込むことが必要となるが、連立方程式をはじめとする多くの課題で {{lang|en|Prolog}} より記述が柔軟になる。{{lang|en|Prolog}} の組込述語には引数が変数で渡るとエラーとなるものが多く、このため {{lang|en|Prolog}} プログラマは変数が具体化されるように副目標の記述順序に気を配る必要がある。結果としてプログラミングに逐次性が生じる。制約論理プログラミングにおいては、後に変数が具体化されたときに検査されるための変数の間の制約を記述するだけで、この逐次性の拘束を解決して通過することができる。実はこの制約はPrologから見ても自然な拡張であり、むしろ {{lang|en|Prolog}} の単一化が制約論理プログラミングの制約を「<code>=</code>」のみに限定したものだと解釈することができる。しかし、簡素で逐次的な性格を強く持つ {{lang|en|Prolog}} の処理系に慣れた利用者が、制約論理プログラミングの述語中に更に変数制約の宣言を追加しなくてはならない負担を、受け入れているとは言い難い。制約論理プログラム処理系が {{lang|en|Prolog}} のそれに置き換わる気配は、2013年11月現在においてもない。 |
1990年代に入ると[[制約論理プログラミング]]が注目され処理系が多数誕生した。これは {{lang|en|Prolog}} から見ると引数の論理変数間の関係(制約)を記述可能に拡張したものである。'''制約論理型言語'''は、変数評価に遅延実行などを持ち込むことが必要となるが、連立方程式をはじめとする多くの課題で {{lang|en|Prolog}} より記述が柔軟になる。{{lang|en|Prolog}} の組込述語には引数が変数で渡るとエラーとなるものが多く、このため {{lang|en|Prolog}} プログラマは変数が具体化されるように副目標の記述順序に気を配る必要がある。結果としてプログラミングに逐次性が生じる。制約論理プログラミングにおいては、後に変数が具体化されたときに検査されるための変数の間の制約を記述するだけで、この逐次性の拘束を解決して通過することができる。実はこの制約はPrologから見ても自然な拡張であり、むしろ {{lang|en|Prolog}} の単一化が制約論理プログラミングの制約を「<code>=</code>」のみに限定したものだと解釈することができる。しかし、簡素で逐次的な性格を強く持つ {{lang|en|Prolog}} の処理系に慣れた利用者が、制約論理プログラミングの述語中に更に変数制約の宣言を追加しなくてはならない負担を、受け入れているとは言い難い。制約論理プログラム処理系が {{lang|en|Prolog}} のそれに置き換わる気配は、2013年11月現在においてもない。 |
||
ISO の標準化作業は1987年頃から作業委員会(WG17 |
ISO の標準化作業は1987年頃から作業委員会(WG17)が作られ、日本委員も情報処理学会から15名ほどがこれに加わった。1995年 '''ISO標準規格'''がISO/IEC 13211-1 Prolog-Part 1: General Coreとして制定された。さらに、2000年にはISO/IEC 13211-2 Prolog-Part 2: Moduleとしてモジュール仕様が追加して規格化された。モジュール仕様については日本委員から、ICOTによって作成されたESP(Extended Self-contained Prolog)を以てその標準とする案が出されていたが、これは否決された。 |
||
ISO標準規格はエジンバラ仕様 {{lang|en|DEC-10Prolog}} を基調に既に一家をなしていた {{lang|en|Quintus Prolog}} など有力ベンダと主としてヨーロッパの学者を主体にこれに日本などの委員が参加して作成された。この規格は現在 Prolog 処理系の製作者に指針を与え、大きな逸脱を心理的に妨げる役割を果たしているが、組込述語の個々の仕様ではベンダの意向が強く反映されたものの、全体としては最初に述べた論理学的立場を尊重して保守的で極めて小さな仕様となっている。そのため多くの {{lang|en|Prolog}} 処理系はこの規格の述語を搭載しつつ、独自の拡張部分を修正したり削除することに消極的である。結果として個々の処理系の互換性の乏しさは残り、それは {{lang|en|Prolog}} の弱点として認識されている。 |
ISO標準規格はエジンバラ仕様 {{lang|en|DEC-10Prolog}} を基調に既に一家をなしていた {{lang|en|Quintus Prolog}} など有力ベンダと主としてヨーロッパの学者を主体にこれに日本などの委員が参加して作成された。この規格は現在 Prolog 処理系の製作者に指針を与え、大きな逸脱を心理的に妨げる役割を果たしているが、組込述語の個々の仕様ではベンダの意向が強く反映されたものの、全体としては最初に述べた論理学的立場を尊重して保守的で極めて小さな仕様となっている。そのため多くの {{lang|en|Prolog}} 処理系はこの規格の述語を搭載しつつ、独自の拡張部分を修正したり削除することに消極的である。結果として個々の処理系の互換性の乏しさは残り、それは {{lang|en|Prolog}} の弱点として認識されている。 |