开发者

Prolog as a DSL to generate perl code?

开发者 https://www.devze.com 2023-02-12 08:13 出处:网络
Does anyone know of any examples of code written in prolog to implement a DSL to generate开发者_StackOverflow社区 perl code?DCGs might be an excellent choice!

Does anyone know of any examples of code written in prolog to implement a DSL to generate开发者_StackOverflow社区 perl code?


DCGs might be an excellent choice!

I have used a similar approach for generation of UML class diagrams (really, graphviz code for such diagrams) from simple English sentences (shameless-plug: paper here). It should be possible to do something similar with generation of Perl code instead.

In the paper above, we use a constraint store (CHR) as intermediate representation which allows some extra reasoning power. Alternatively you can build a representation as an output feature/argument of the DCG.

Note that DCGs can be useful both for the parsing of your sentences and the generation of your Perl code.


Well, not exactly what you are asking for, but maybe you can use AI::Prolog for what you are looking for. That way you may be able to use Perl and generate the Perl code you want.


I'm not sure why you would want to do that?

Perl is a very expressive language, I'm not sure why you'd want to try to generate Perl code from Prolog; in order to make it useful, you'd be getting closer and closer to Perl in your "DSL", by which point you'd be better off just writing some Perl, surely?

I think you need to expand this question a bit to cover what you're trying to achieve in a little more detail.


SWI-Prolog library(http/html_write) library builds on DCG a DSL for page layout.

It shows a well tought model for integrating Prolog and HTML, but doesn't attempt to cover the entire problem. The 'residual logic' on the client side remains underspecified, but this is reasonable, being oriented on practical issues 'reporting' from RDF.

Thus the 'small detail' client interaction logic is handled in a 'black box' fashion, and such demanded to YUI components in the published application (the award winner Cliopatria).

The library it's extensible, but being very detailed, I guess for your task you should eventually reuse just the ideas behind.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号