首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >领域特定语言的有趣示例

领域特定语言的有趣示例
EN

Stack Overflow用户
提问于 2011-03-18 18:55:45
回答 2查看 744关注 0票数 3

我正在考虑为我的本科项目做一些领域特定语言的事情。我的一个问题是,我真的找不到任何有趣的例子,我可以到处寻找。有没有什么好的DSEL例子(最好是开源的)?

另外,我想研究的一个领域是用DSEL解决/解决并发问题(协程等)。有没有人在DSEL中使用过这种方法?如果这是一个愚蠢的DSEL应用程序,请解释为什么...

另一个需要探索的潜在领域是数据库编程。例如,在C#中添加一些疯狂的数据库操作语法会不会是一个很好的项目?

编辑:我希望实现的通用语言是Java、Python、Scala、C#等等,可能不是C++或C。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-18 19:10:56

可以将Linda实现视为eDSL。像CL-STM这样的STM实现肯定是eDSL。

与并发无关,但非常有用的是嵌入式Prolog实现,有很多针对Scheme、Lisp和Clojure的实现。解析eDSL已经被提到过了--它们的始祖Parsec绝对值得深入研究。

编辑:在您的实现语言列表中,您错过了最有趣的eDSL机会。最强大、最灵活的eDSL是通过元编程实现的。Scala风格(甚至是Haskell风格)的eDSL基于高阶函数,即基于迷你解释器。它们在设计上更加复杂,灵活性更低,并且受限于宿主语言的语法。

票数 1
EN

Stack Overflow用户

发布于 2011-03-18 19:02:56

如果你想要的是C++,boost::spirit是一个有趣的例子。引用:

精神是一组C++库,用于解析和生成输出,实现为特定于域的嵌入式语言(DSEL)...

(我不知道你所说的“解决并发性”是什么意思。一般来说,我不明白如何解决“并发问题”,或者DSEL如何提供帮助。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5350948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档