有谁知道用 prolog 编写的代码示例以实现 DSL 以生成 perl 代码?
4 回答
DCG 可能是个不错的选择!
我已经使用类似的方法从简单的英语句子(无耻插件:paper here )生成 UML 类图(实际上是此类图的 graphviz 代码)。应该可以通过生成 Perl 代码来做类似的事情。
在上面的论文中,我们使用约束存储(CHR)作为中间表示,它允许一些额外的推理能力。或者,您可以将表示构建为 DCG 的输出特征/参数。
请注意,DCG 可用于解析句子和生成 Perl 代码。
好吧,不完全是你所要求的,但也许你可以使用AI::Prolog来寻找你想要的东西。这样您就可以使用 Perl 并生成您想要的 Perl 代码。
SWI-Prolog库(http/html_write)库构建在 DCG 之上,是用于页面布局的 DSL。
它展示了一个很好的集成 Prolog 和 HTML 的模型,但并没有试图涵盖整个问题。客户端的“剩余逻辑”仍未明确,但这是合理的,面向 RDF“报告”的实际问题。
因此,“小细节”客户端交互逻辑以“黑盒”方式处理,并且对已发布应用程序中的 YUI 组件(获奖者Cliopatria)也是如此。
该库是可扩展的,但非常详细,我想对于您的任务,您最终应该重用背后的想法。
我不知道你为什么要这样做?
Perl 是一种表达能力很强的语言,我不确定你为什么要尝试从 Prolog 生成 Perl 代码;为了使它有用,你会在你的“DSL”中越来越接近 Perl,到那时你最好只写一些 Perl,确定吗?
我认为您需要稍微扩展这个问题,以更详细地涵盖您想要实现的目标。