C++ 用C++;互操作
我正在设计一种用于测试实时嵌入式系统的简单解释语言。控制流受到严格限制,以提供关于脚本将做什么以及它们将运行多长时间的强大静态保证。例如,您只能在常量条件上分支或在固定范围上循环 <>在C++中有一个很大的现有代码库,它有相关的模型和IO LIB,所以这个语言必须能够调用C++。测试中的系统有严格的定时要求,所以我们不能容忍测试框架中的太多抖动。我们过去的解决方案是嵌入在C++运行时中的自定义DSL,但最终我们重新发明了太多的轮子(解析器、链接器、交互式解释器等),以实现我们需要的静态保证。p>C++ 用C++;互操作,c++,haskell,testing,dsl,soft-real-time,C++,Haskell,Testing,Dsl,Soft Real Time,我正在设计一种用于测试实时嵌入式系统的简单解释语言。控制流受到严格限制,以提供关于脚本将做什么以及它们将运行多长时间的强大静态保证。例如,您只能在常量条件上分支或在固定范围上循环 在C++中有一个很大的现有代码库,它有相关的模型和IO LIB,所以这个语言必须能够调用C++。测试中的系统有严格的定时要求,所以我们不能容忍测试框架中的太多抖动。我们过去的解决方案是嵌入在C++运行时中的自定义DSL,但最终我们重新发明了太多的轮子(解析器、链接器、交互式解释器等),以实现我们需要的静态保证。p> 我
- 使用免费的monad方法嵌入JS
- 使用更多的外部DSL方法,但通过TH嵌入。这不是我的选择
hs_init()
启动运行时,或者使用从Haskell加载并运行Haskell源代码,或者从C++中加载预编译的Haskell代码共享库。(后者是他们在Facebook上使用代码的方式。)