【发布时间】:2010-08-11 00:41:41
【问题描述】:
我面临的任务是构建一个新组件以集成到现有的大型 C 代码库中。该组件本质上是一种编译器,并且足够复杂,以至于我想用 OCaml 编写它(原因与here 相同)。我知道 OCaml-C 交互是可能的(根据manual 和这个tutorial),但它看起来有些痛苦。
我想知道的是这里的其他人是否尝试过大规模集成 OCaml 和 C 代码,他们发现了哪些意想不到的问题,以及他们最终是否得出结论认为他们会最好只用 C 编写新代码。
注意,我不是试图就函数式编程与命令式编程的优点展开辩论:假设我们假设 OCaml 恰好是我心目中工作的正确工具,而集成的潜在困难是唯一的问题。我也没有重写代码库其余部分的选项。
提供更多关于任务的细节:我需要实现的组件是某种查询优化器,它结合了我在加州大学戴维斯分校的小组正在研究的一些研究想法,并将集成到 PostgreSQL 中,以便我们可以运行实验。 (查询优化器本质上是一个编译器。)该组件将从 C 代码中调用,大部分独立运行,但会对其他 PostgreSQL 组件进行一定数量的调用以检索系统目录信息等内容,并构造一个复杂的C 数据结构(表示物理查询计划)作为输出。
对于这个有点开放式的问题,我深表歉意,但我希望社区可以为我省点麻烦 :)
谢谢,
TJ
【问题讨论】:
-
出于好奇,您希望 C 必须解压缩什么 ocaml 类型?
标签: c postgresql ocaml