Perlコードを生成するDSLを実装するためにprologで書かれたコードの例を知っている人はいますか?
4 に答える
DCGは優れた選択肢かもしれません!
私は、単純な英語の文(恥知らずなプラグ:ここの紙)からUMLクラス図(実際には、そのような図のgraphvizコード)を生成するために同様のアプローチを使用しました。代わりに、Perlコードの生成と同様のことを行うことができるはずです。
上記の論文では、いくつかの追加の推論力を可能にする中間表現として制約ストア(CHR)を使用しています。または、DCGの出力機能/引数として表現を作成することもできます。
DCGは、文の解析とPerlコードの生成の両方に役立つ可能性があることに注意してください。
まあ、あなたが求めているものとは正確には異なりますが、おそらくあなたはあなたが探しているもののためにAI::Prologを使うことができます。そうすれば、Perlを使用して、必要なPerlコードを生成できる可能性があります。
なぜあなたがそれをしたいのか分かりませんか?
Perlは非常に表現力豊かな言語です。なぜ、PrologからPerlコードを生成しようとするのかわかりません。それを便利にするために、あなたはあなたの「DSL」でPerlにどんどん近づいていくでしょう、その時点であなたは確かにいくつかのPerlを書くほうがよいでしょう?
達成しようとしていることをもう少し詳しく説明するために、この質問を少し拡張する必要があると思います。
SWI-Prologライブラリ(http / html_write)ライブラリは、ページレイアウト用のDSLをDCG上に構築します。
これは、PrologとHTMLを統合するためのよく練られたモデルを示していますが、問題全体を網羅しようとはしていません。クライアント側の「残留ロジック」は未だ指定されていませんが、これは合理的であり、RDFからの「レポート」の実際的な問題に向けられています。
したがって、「細部」のクライアントインタラクションロジックは「ブラックボックス」方式で処理され、公開されたアプリケーション(受賞者のCliopatria)のYUIコンポーネントに要求されます。
ライブラリは拡張可能ですが、非常に詳細であるため、最終的には背後にあるアイデアだけを再利用する必要があると思います。