我正在考虑为我的本科项目做一些领域特定语言的事情。我的一个问题是,我真的找不到任何有趣的例子,我可以到处寻找。有没有什么好的DSEL例子(最好是开源的)?
另外,我想研究的一个领域是用DSEL解决/解决并发问题(协程等)。有没有人在DSEL中使用过这种方法?如果这是一个愚蠢的DSEL应用程序,请解释为什么...
另一个需要探索的潜在领域是数据库编程。例如,在C#中添加一些疯狂的数据库操作语法会不会是一个很好的项目?
编辑:我希望实现的通用语言是Java、Python、Scala、C#等等,可能不是C++或C。
发布于 2011-03-18 19:10:56
可以将Linda实现视为eDSL。像CL-STM这样的STM实现肯定是eDSL。
与并发无关,但非常有用的是嵌入式Prolog实现,有很多针对Scheme、Lisp和Clojure的实现。解析eDSL已经被提到过了--它们的始祖Parsec绝对值得深入研究。
编辑:在您的实现语言列表中,您错过了最有趣的eDSL机会。最强大、最灵活的eDSL是通过元编程实现的。Scala风格(甚至是Haskell风格)的eDSL基于高阶函数,即基于迷你解释器。它们在设计上更加复杂,灵活性更低,并且受限于宿主语言的语法。
发布于 2011-03-18 19:02:56
如果你想要的是C++,boost::spirit是一个有趣的例子。引用:
精神是一组C++库,用于解析和生成输出,实现为特定于域的嵌入式语言(DSEL)...
(我不知道你所说的“解决并发性”是什么意思。一般来说,我不明白如何解决“并发问题”,或者DSEL如何提供帮助。)
https://stackoverflow.com/questions/5350948
复制相似问题