GCC与LLVM见解

首先的说GCC(GNU Compiler Collection,GNU编译器集合)是一个优秀的编译器 ,但是它跟IDE之间的互操作性不够好,编译器分为编译器前端和编译器后端,前端主要负责展开预处理器宏定义并将原代码转换成中间代码,而后端编译器主要负责生成和优化机器代码,GCC严格来说是一个后端编译器,他负责将源代码转换成二进制代码,主要用来编译代码,而不是负责解析代码,这将意味着需要另外的解析器负责代码的解析,GCC采用的是GPL许可协议 (GPL,是General Public License的缩写,是一份GNU通用公共授权非正式的中文翻译。它并非由自由软件基金会所发表,亦非使用GNU通用公共授权的软件的法定发布条款─只有GNU通用公共授权英文原文的版本始具有此等效力),这使得苹果不能直接使用GCC代码,所以有时会导致解析的代码与GCC代码不一致,由于这种种原因促使了LLVM(LowLevelVirtual Machine)的诞生,虽然LLVM的代码生成效率不如GCC,但是LLVM有着更好的模块化和可扩展性,编译的速度是GCC的两倍,有许多为LLVM而开发的编译器前端,其中一个就是Clang,Clang支持增量编译,可以近乎实时的提示编译错误,对于开发者而言好处不言而喻,LLVM与xcode 的高度集成在遇到错误时可以提供对开发者有用的建议,这个功能就是Fit-it,LLVM对OC语言有了更大的控制权,我们现在能够使用字面量来简化代码也是LLVM的功劳,字面量就是比如:以前:nsarray *arr =[nsarry all]initwitharray:@"1",@"2",nl];     现在:nsarray *arr = @【@"1",@"2"】;字典登多种类型都支持,__has__feature用于检查字面量与下标可用性,还有就是LLVM支持实例变量的自动生成,如属性@property  将会自动生成set与get方法 也不需要写@synthesize  好处多多,相信会越来越完善 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值