Clang和LLVM学习(Day1)

Clang和LLVM学习(Day1)

这段时间,开始学习Clang和LLVM的相关内容,看了一些相应的资料和文档。在这里把每天学习的内容和自己的想法,做一些简单的汇总和总结。方便以后回顾之用,如果有写得不对的地方,请各位指出,我会尽快修正,谢谢。

首先,在正式学习Clang和LLVM之前,需要先明确一点,什么是宏观的LLVM,什么是微观的LLVM。

  • 宏观的LLVM,即LLVM compiler infrastructure project(正式的名称为 Low Level Virtual Machine),是“一个模块化和可重复使用的编译器和工具链技术的集合”,供用户进行前端以及后端的开发。—— [ 维基百科 ]
  • 微观的LLVM则是在实际开发和使用时,用户使用来做中间代码生成和优化等操作的package。这是由于随着LLVM这个项目不断的发展,越来越多的子项目加入进来。其中,Clang就是宏观的LLVM项目中的一个子项目。

通俗的来说,Clang可以看作是一个编译器的前端,而微观的LLVM则可以看作是这个编译器的后端。而我准备学习并研究的正式这两者之间的联系、架构等。故在以后的内容中,除了明确指出以外,LLVM都指代微观的LLVM,而不是整个编译器项目。


为什么要研究Clang和LLVM?或者说为什么Clang和LLVM现在被广泛的开发和使用?
我认为最主要的原因是他们使用的开源协议(BSD-Style license)。BSD开源协议是一个给于使用者很大自由的协议。使用者可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。所以大公司更愿意用BSD的代码来进行二次开发,这也就在一定程度上让更多的设计者集中在这个平台上,使其进一步的发展。

今天就先说到这,明天会对Clang做一个简介。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值