对我来说,解释器模式听起来非常像一个反模式,即 Greenspun 的第十条规则:
或者,另一种方法是将一个已知且规范良好的语言嵌入到您的应用程序中,例如 Guile(GNU 可嵌入 Scheme 语言),或者使用 Haskell 作为嵌入式领域特定语言。
但我没有在实践中看到这个--你们在构建自己的嵌入式语言方面有什么经验吗?这是一个好主意吗?比嵌入一个已经存在的语言更好吗?
(我并不是一个特别喜欢 Lisp 的粉丝。它不错,但 C、Haskell、Python 和许多其他语言也很棒。)
也就是说,如果需要使用解释器,你很可能会创建出一些缺乏规范、低效且临时性质的东西。正确的解决方法是从一开始就使用合适的语言。任何足够复杂的 C 或 Fortran 程序都包含了一半 Common Lisp 的临时实现,没有经过正式规范,并且存在漏洞和低效率。
或者,另一种方法是将一个已知且规范良好的语言嵌入到您的应用程序中,例如 Guile(GNU 可嵌入 Scheme 语言),或者使用 Haskell 作为嵌入式领域特定语言。
但我没有在实践中看到这个--你们在构建自己的嵌入式语言方面有什么经验吗?这是一个好主意吗?比嵌入一个已经存在的语言更好吗?
(我并不是一个特别喜欢 Lisp 的粉丝。它不错,但 C、Haskell、Python 和许多其他语言也很棒。)