另一个thread有这个引用
- Erlang VM BEAM和HiPE主要用C语言编写。
- 链接驱动程序主要用C语言编写。(它们插入VM 并与外界沟通 世界。)
醇>
我读过一些意见,认为Ada的强类型,模块化,运行时检查,并行处理等等都比C更好。
使用Ada编译的Erlang会比用C语言制作的Erlang更好还是更差?
只是一个假设的问题。
答案 0 :(得分:11)
通常情况下,我会在这样的话题上向你抛出一堆狡猾的话,但事实证明这个问题has been studied(它是一个.doc文件。抱歉)。
Rational有一个编译器,在两种语言中都有大量代码,并且在错误率,修复时间等方面编译了大量数据。出于好奇,他们的一位工程师对这些数字进行了抨击。
答案是“C的开发成本超过Ada的成本”。如果您阅读了摘要标题,您会发现他们认为在Ada中编写相同的代码需要花费大约一半的代价来用C代码编写。
我知道每个读这篇文章的人都急于在这个结论中挖洞。我也是。但是他们在报告的每一个角度都看得很近。
答案 1 :(得分:3)
“更好”以什么方式?更快更快?更少的错误更好?更便携的更好?更好,更可读?更好,更可扩展?
对于任何合适的“更好”的定义,可以采用任何一种方式。然而,没有编译的语言比C更便携,这只是神圣的令状。因此,如果您的目标之一是使您的应用程序具有高可移植性,那么C是一个很好的选择。
比Ada更了解C语言。如果使用Ada编写erlang扩展可能要困难得多,只是因为较少的人熟悉该语言。
C代码可以高性能,但我知道C和Ada w / r与编译器优化之间没有比较。
Ada的类型检查可能有用,或者它可能是一个真正的问题。有人假设VM会对与其相关的部分进行自己的类型检查。 Ada的RTTC开销可能会带来完全不必要的负担。
答案 2 :(得分:0)
也许,但你的Ada编译器用什么语言编写?阿达?编写FIRST Ada编译器的编译器怎么样?
在构建软件的某些时候,形式语义和软件过程比编码的语言重要得多。