4
A
回答
0
关于第一个问题一点谷歌搜索就足够了。
至于第二个问题:你可以实现在任何语言的DSL。您甚至可以用几乎任何语言实施eDSL。但是有些语言比其他语言好得多。主要特点是元编程 - 在你的主机的语言,这意味着你可以在你的EDSL的编译器插件的任何地方生成代码的能力。有利于编译器构造的特性也很有用 - 例如,即开即用的解析工具,主机语言的可扩展或者只是灵活的语法,用于表示AST的代数数据类型,用于简化编译器转换的模式匹配等。存在一系列可能性,一面是完全静态和不可扩展的语言,另一面是绝对灵活的语言。
0
“领域专用语言”是一类问题(或问题的解决方案)可以简洁地表达,通常是因为词汇与问题领域的词汇一致,并且符号相似(可能的话)与在该领域工作的专家使用的相同。
这是什么真正的意思是代表你能说什么语法和语义集,它定义了那些说事的意思。这使得DSL的只是就像它们是如何实现的条件等传统编程汉语语言(如Java的)。而事实上,你可以认为这些常规的语言为“DSL” S是擅长描述(在描述他们,但不是必需的好)程序解决问题的办法。其含义是,您需要使用相同的机器来处理DSL,就像处理传统语言一样,这本质上就是编译器机器。
Groovy有一些这样的机器(通过设计),这就是为什么它可以“支持”DSL。
请参阅Domain Specific Languages以了解关于DSL的一般讨论,以及一种对实现它们非常有用的特定元编程机制。
相关问题
- 1. 什么是动作特定语言(ASL)?
- 2. 什么是测试域特定语言的好参考?
- 3. 域特定语言IDE
- 4. F# - 领域特定语言
- 5. 什么是语言绑定?
- 6. 什么时候应该使用域特定语言?
- 7. 为什么Ruby on Rails称为域特定语言?
- 8. 创建特定于域的查询语言的步骤是什么?
- 9. 是特定的API语言
- 10. 代表我的领域特定语言
- 11. 域名特定语言博客
- 12. 音频领域特定语言与Python
- 13. 编写便携式域特定语言
- 14. 特定领域语言资源
- 15. .NET自然语言编程/别名/(域特定语言)框架
- 16. 什么是MySQL的SQL特定编程语言名称?
- 17. 无限语言不能定期?什么是有限语言?
- 18. 这是什么语言?
- 19. 这是什么语言?
- 20. 这是什么语言?
- 21. 那是什么语言?
- 22. 什么语言是c#?
- 23. 什么是模板语言?
- 24. 什么是胶水语言?
- 25. 这是什么语言?
- 26. 什么是脚本语言?
- 27. 这是什么语言(javascript?)?
- 28. 如何解析Python之上的领域特定语言?什么架构与IPython?
- 29. 语言语法的特征是什么定义它将被解释或编译?
- 30. “模板语言如HTMLBars”是什么意思?什么是HTMLBars?一种语言?
https://secure.wikimedia.org/wikipedia/en/wiki/Domain-specific_language –
@FelixKling:实际上我已经阅读过这篇文章,但并没有太大帮助。例如,一个任意语言如何“支持(任意的?)域特定的语言”?它与元编程有关吗?我猜这个术语本身的定义可能是有道理的,但是这个用法让我很困惑...... – Mehrdad