在了解了LLVM的工作方式之后,我对如何生成可移植的低级代码以及该模块化的“事物”的构建感到非常兴奋。

但是今天我发现了C的存在 - 似乎与LLVM共享了一些概念。

因此,我正在寻找一些信息,以帮助我了解这两个项目之间的主要区别以及为什么两者都存在。

对我而言,LLVM看起来有点像是编译器基础设施的终极瑞士军刀,C-看起来不太先进。

有帮助吗?

解决方案

它们在低级机器类型系统的表现性方面有所不同。

LLVM 机器表现得很富于。这 C - 另一方面,机器在语言前端承担了很多责任。引用 C-常见问题解答: “简单地, C - 没有高级类型 - 甚至没有将浮点变量与整数变量区分开。该模型给出了表示形式和类型系统的前端总控制“

同样在视觉上它们看起来有很大不同。 C - 看起来很像C,LLVM看起来很像汇编器。

务实地,LLVM现在具有更多的动力。它有一个JIT编译器,Apple正在将其用于 3D管道的东西 人们正在使用它 连接到GCC 以及各种各样的 奇怪的精彩的 事物。有人称其为“几乎很容易使用".

另一方面 C -很多 较小,可能更容易完全理解。 (我想一个有一些奉献精神的普通人可以完全理解 全部 它的各个方面。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top