存在哪些接口将Erlang与C++联系在一起?将Erlang与C++集成
回答
Native implemented functions:在最新的Erlang/OTP版本,可以让你实现你的任何功能C.
Port drivers:您可以将所需的C代码到二郎山VM,和访问使用port_command。
C节点:通过ei库,您可以模拟虚拟机并使用Erlang分发格式与您的Erlang虚拟机交谈。
对于Zed的优秀答案,我会加open_port()
。它可以让你启动一个外部程序并使用标准的Erlang与Erlang进行通信。你可以通过给出{line,L}选项来像Unix管道一样使用它,或者也有长度前缀的{packet,N}选项,我发现它更安全和更高效。
这比NIF和端口驱动程序的优点是你的Erlang代码完全与C代码无关。 C程序可以粉碎它自己的堆栈,双倍空闲的内存块,进入无限循环等等。这些都不会阻止你的Erlang代码。最糟糕的是,如果事情变成梨形,你关闭Erlang端口并重新打开它。
任何有兴趣用Erlang/C++集成方面,也可能想看看这篇文章:Rewriting Playdar: C++ to Erlang, massive savings:
我听说过很多趣事和权利要求书有多少行代码,当你写保存在Erlang中而不是[C++/other language]。我很高兴地报告,我现在有第一手的经验和一些数据可以分享。
我最初在C++(使用Boost和Asio库)中编写Playdar,从今年2月份开始。我很幸运能够与一些有经验的开发人员合作,他们帮助我了解C++。直到几个月前,我们有三个人经常对它进行攻击,尽管对C++来说是相对陌生的事情,但我会说,我们最终设计了一个设计良好且健壮的代码库,所有事情都考虑在内。
他们开始编写了8,035行代码,几周后他们写了10,067行代码中,他们扔掉了80%的代码,在这个过程中没有添加新的功能,这是一个节约?必须是开源的东西,因为企业无法证明这一点。 (写在Erlang开始将是另一回事) – 2010-02-28 16:21:23
这是减少未来技术债务的主要节约。更少的代码行数=稍后更易于维护,调试和添加新功能。 – DSimon 2015-07-14 20:29:24
- 1. 将MATLAB与C集成#
- 2. 将Prolog与C集成#
- 3. 将TideSDK与C * .dll集成
- 4. 集成C#与Matlab
- 5. 将Java与C#集成在一起.net
- 6. 将pygame与C模块集成
- 7. 将C应用程序与WPF集成
- 8. 将C#集成到C++中
- 9. 将Spring MVC与Spring集成集成
- 10. 与Outlook 2010集成C#Winform?
- 11. 集成Prolog CLP(FD)与C#
- 12. Google Checkout与C#.net集成
- 13. 与C#的RDF集成
- 14. 集成与C#语言
- 15. 与Chartboost集成objective-c
- 16. C#与MySql的集成
- 17. PayPal集成。 C#POST与WSDL
- 18. 集成织物(Crashlytics)与C++
- 19. Excel与C#.NET集成
- 20. C#与Outlook的集成
- 21. 集成CouchDB与Erlang连接到服务器
- 22. rabbitmq - erlang客户端与ejabberd模块集成
- 23. 与C++集成的C#.NET开发集成
- 24. 将informatica与Kafka集成
- 25. 将Monkeyrunner与UI Automator集成
- 26. 将Sencha Touch与Rails集成
- 27. 将Kendo Grid与Coldfusion集成
- 28. 将CreditSafe与Sage CRM集成
- 29. 将ExtJS与JAX-RS集成
- 30. 将tumblr与ios集成
NFI仍然是实验性的...但我希望并热切地等待这些稳定的接口! – jldupont 2009-11-28 11:39:35
确实,它们是实验性的,但是有一个“后备”Erlang函数实现非常好,它甚至值得为每个即将发布的版本改变你的C代码:) – Zed 2009-11-28 15:44:46
是的,我同意! – jldupont 2009-11-28 16:58:32