X-zcer / Articles

0 stars 0 forks source link

(一)LLVM和Clang #1

Open X-zcer opened 5 years ago

X-zcer commented 5 years ago

Low Level Virtual Machine (LLVM) 是一个开源的编译器架构,它已经被成功应用到多个应用领域。Clang ( 发音为 /klæŋ/) 是 LLVM 的一个编译器前端,它目前支持 C, C++, Objective-C 以及 objective-c++ 等编程语言。Clang 对源程序进行词法分析和语义分析,并将分析结果转换为 Abstract Syntax Tree ( 抽象语法树 ) ,最后使用 LLVM 作为后端代码的生成器。 Clang 的开发目标是提供一个可以替代 GCC 的前端编译器。与 GCC 相比,Clang 是一个重新设计的编译器前端,具有一系列优点,例如模块化,代码简单易懂,占用内存小以及容易扩展和重用等。由于 Clang 在设计上的优异性,使得 Clang 非常适合用于设计源代码级别的分析和转化工具。Clang 也已经被应用到一些重要的开发领域,如 Static Analysis 是一个基于 Clang 的静态代码分析工具。 Clang 的开发背景 : 由于 GNU 编译器套装 (GCC) 系统庞大,而且 Apple 大量使用的 Objective-C 在 GCC 中优先级较低,同时 GCC 作为一个纯粹的编译系统,与 IDE 配合并不优秀,Apple 决定从零开始写 C family 的前端,也就是基于 LLVM 的 Clang 了。Clang 由 Apple 公司开发,源代码授权使用 BSD 的开源授权。

X-zcer commented 5 years ago

GNU计划,又称革奴计划,是由Richard Stallman在1983年9月27日公开发起的。它的目标是创建一套完全自由的操作系统。Richard Stallman最早是在net.unix-wizards新闻组上公布该消息,并附带《GNU宣言》等解释为何发起该计划的文章,其中一个理由就是要“重现当年软件界合作互助的团结精神”。为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件都有一份在禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款,GNU通用公共许可证(GNU General Public License,GPL)。即“反版权”(或称Copyleft)概念。 GNU 认为任何软件都应当以 自由软件 发布。要让一个软件成为自由软件,您需要把它以自由软件许可证发布。我们通常使用 GNU 通用公共许可证 (GNU GPL) 发布软件,但有时我们也使用 其它自由软件许可证 发布软件。在 GNU 软件包中,GNU 只使用与GNU GPL兼容的许可证。 自由软件的文档应当是 自由文档 ,以便人们可以随着软件的改进去更新它或是重新发布它。若要把文档以自由文档的形式发布,您需要使用自由文档许可证。我们通常使用 GNU 自由文档许可证 (GNU FDL) ,但少数情况下我们也使用 其它的自由文档许可证 。 如果您开展了一个新的项目,但不太确定应该选用何种许可证,那么 “如何为您的作用选择一个许可证” 一文可以以一种简单且容易遵循的方式给您以帮助。我们正在进一步修订我们的文档许可证,同时欢迎听到您对提案的建议。请访问 许可证更新网站 阅读最新的草案并参与到修订过程中。