3

Javaで任意の用語表現を使用して表現されたPrologプログラムをファイルにエクスポートする必要があります。アイデアは、Prologインタープリターが後で生成されたファイルを参照できるようにする必要があるということです。私の質問は、アトム用語を表すJava文字列をファイルに書き込む正しい方法についてです。

たとえば、文字列の中央にスペースがある場合は、ファイル内で一重引用符で囲む必要があります。

 helloworld      「helloworld」になります

また、エクスポーターは、エスケープする必要のある文字を考慮に入れる必要があります。

 '     '\''になります

誰かが私にこれらの規則が指定された場所を教えてもらえますか?そして:これらの規則が主要なProlog実装者によって尊重されていると仮定できますか?(つまり、これらのルールに従って生成されたPrologプログラムは、ほとんどのPrologインタープリターによって正しく解析されますか?)

4

2 に答える 2

4

このための正確な場所は、標準のISO / IEC 13211-1:1995ですquoted_token (* 6.4.2 *)。30米ドルで入手する方法については、この回答を参照してください。

継続行などの余分なものがたくさんあるため、正確な構文は非常に複雑です。Prologが読むべきアトムだけを書いているのなら、物事は少し簡単です。また、そのような状況では、いつでも引用することができます。これにより、書き直しが少し簡単になります。

注意すべき点:

引用符で囲まれたアトムのレイアウトとしては、単純なスペースのみが発生する可能性があります。\t他のすべてのスペースは、、\n( )のようにエスケープする必要がありますabrftnv。多くのシステムは他のレイアウトも受け入れますが、細部が非常に異なります。

バックスラッシュと引用符はエスケープする必要があります。

印刷可能なASCII範囲外の文字は、システムでサポートされているPCSによって異なります。準拠システムでは、付属のドキュメントで、追加の文字(拡張文字)の分類方法を定義する必要があります。ドキュメントの品質はさまざまです。

いずれにせよ、1.4.1以降のGNU-Prologでもインターフェースをテストしてください。現在のところ、構文に関する限り、GNU1.4.1+と標準の間に違いはありません。

240以上の構文関連のテストケースを次に示します。見落としがあれば報告してください!

于 2013-03-22T21:56:54.887 に答える
2

実用的なヒント: Prologでwriteqを発行し、知っておく必要のあるデータを使用すると、必要に応じて引用符が表示されます。

于 2013-03-23T10:35:50.723 に答える