我面临着构建要集成到大型现有C代码库中的新组件的任务.该组件本质上是一种编译器,并且将足够复杂以至于我想在OCaml中编写它(出于与这里给出的原因一致的原因).我知道OCaml-C交互是可能的(根据手册和本教程),但它看起来有些痛苦.
我想知道的是,这里的其他人是否尝试过大规模集成OCaml和C代码,他们发现了一些意想不到的问题,以及他们最终是否认为他们会更好只需在C中编写新代码
注意,我不是要开始讨论功能性与命令式编程的优点:让我们假设我们假设OCaml恰好是我想到的工作的正确工具,并且集成的潜在困难是唯一的问题.我也没有选择重写代码库的其余部分.
提供有关任务的更多细节:我需要实现的组件是某种查询优化器,它结合了我在加州大学戴维斯分校工作的一些研究思路,并将集成到PostgreSQL中,以便我们可以运行实验.(查询优化器本质上是一个编译器.)组件将从C代码调用,它将主要独立运行,但会对其他PostgreSQL组件进行一定数量的调用以检索系统目录信息之类的东西,并构建一个复杂的C数据结构(表示物理查询计划)作为输出.
对于这个有些开放式问题的道歉,但我希望社区可以为我节省一点麻烦:)
谢谢,
TJ