如果我想在 Ruby 1.9 或 JRuby 中构建 DSL,我是否需要手动完成以下任何阶段:
- 乐行
- 解释
- 解析
- 即时编译
显然,作为一名程序员,我不喜欢尽可能多地编写实际代码,所以我希望这些步骤都不需要手工劳动:)
如果我想在 Ruby 1.9 或 JRuby 中构建 DSL,我是否需要手动完成以下任何阶段:
显然,作为一名程序员,我不喜欢尽可能多地编写实际代码,所以我希望这些步骤都不需要手工劳动:)
这一切都是使用元编程完成的。你不必做任何你列出的事情。Jamis Buck 有一篇关于使用 Ruby编写特定领域语言的精彩博文。
这取决于你想要什么。对于编写内部(阅读:使用 ruby 语法)DSL,它一直是 ruby。如果你想构建一个不使用 ruby 语法的 DSL,你可以查看 treetop gem。
Jeremy Mcanally 有一个关于 DSL 的很好的介绍。他经历了外部和内部 DSL 的东西。