将Erlang与C+集成+; 存在什么接口来将Erlang与C++结合?< /P> < UL>

将Erlang与C+集成+; 存在什么接口来将Erlang与C++结合?< /P> < UL>,c++,erlang,C++,Erlang,:在最新的Erlang/OTP版本中提供,允许您在C中实现任何函数 :您可以将C代码链接到Erlang VM,并使用port_命令访问它 C节点:使用该库,您可以模拟VM,并使用Erlang分发格式与您的Erlang VM通信 我所知道的将Erlang直接与C++接口的最接近的东西是。当然,它依赖于Erlang发行版附带的经过测试的Cerl\u接口。对于Zed的出色回答,我要添加open\u port()。它允许您启动一个外部程序,并使用其标准输入和输出从Erlang与之通信。通过提供{line

:在最新的Erlang/OTP版本中提供,允许您在C中实现任何函数

  • :您可以将C代码链接到Erlang VM,并使用port_命令访问它

  • C节点:使用该库,您可以模拟VM,并使用Erlang分发格式与您的Erlang VM通信


  • 我所知道的将Erlang直接与C++接口的最接近的东西是。当然,它依赖于Erlang发行版附带的经过测试的C
    erl\u接口

    对于Zed的出色回答,我要添加
    open\u port()
    。它允许您启动一个外部程序,并使用其标准输入和输出从Erlang与之通信。通过提供{line,L}选项,您可以像Unix管道一样使用它,或者还有一个长度前缀为{packet,N}的选项,我发现它更安全、更有效


    与NIFs和端口驱动程序相比,它的优点是Erlang代码与C代码完全隔离。C程序可以粉碎自己的堆栈,加倍空闲内存块,进入无限循环,等等。所有这些都不会阻止您的Erlang代码。在最坏的情况下,如果事情进展顺利,您可以关闭Erlang端口并重新打开它。

    任何对Erlang/C++集成方面感兴趣的人,也可以查看本文:

    我听过很多关于用Erlang而不是[C++/其他语言]编写时可以节省多少行代码的轶事和说法。我很高兴地报告,我现在有了第一手的经验和一些数据可以分享

    我最初在C++中使用Prdar编写了(使用Boost和Asio库),从今年二月开始。我很幸运能与一些有经验的开发人员合作,帮助我与C++达成一致。直到三个月前,我们中有超过三的人对它进行了黑客攻击,尽管C++是比较新的,但是我认为我们最终得到了一个设计良好、健壮的代码库,所有的事情都考虑在内。
    NFI仍处于实验阶段。。。但我满怀希望,并热切期待着这些稳定的界面!没错,它们是实验性的,但是有一个“回退”Erlang函数实现非常好,甚至值得为每一个即将发布的版本更改您的C代码:)EPAPI是0.7版,所以我认为还有一个仍然是实验性的:o)它非常稳定:-)他们开始编写8035行代码,几周后,他们编写了10067行代码,其中80%被扔掉了,在这个过程中没有添加新功能,这是节省吗?必须是一个开源的东西,因为一个企业不可能证明这一点。(一开始用Erlang编写是另一回事)在减少未来技术债务方面,这是一项重大节约。更少的代码行=更易于维护、调试和以后添加新功能。