很抱歉提出这样一个开放式问题,但我想在 C++ 中模拟一些合成程序集(不是用于真正的处理器),并且我想将程序集与其运行的模拟器的实现分离。
编写 DSL 或类似的方法似乎是显而易见的方法,我对此有一些经验,在 Groovy 中做过类似的事情(实际上是 DSL 和解释器的混合体)。
boost::proto 似乎是显而易见的选择,但我发现文档完全无法理解,尽管正如我所说,我掌握了一些基础知识。
是否有任何替代教程或类似教程可以解释 - 以侧重于编写 DSL 的实用性而不是 AST 理论等的方式 - 如何做到这一点。还是有替代方案?现在,我坚持将汇编指令实现为构成模拟器的类的方法,这使得它们的绑定非常紧密,并且极难维护代码库。