• 爱站资源网:专注活动 / 软件 / 教程分享资源站最稳定的资源站
当前位置:网站首页 > 易语言源码 > llvm编译器框架下clang编译器

llvm编译器框架下clang编译器

投稿作者:千战 围观人数:361 所属栏目:易语言源码

LLVM是Apple官方网支持的编译器,而该编译器的前端开发是Clang,这两个专用工具都被集成化来到Xcode里边。


在较长一段时间里,Apple一直应用GCC做为官方网的编译器。GCC做为开源世界的编译器规范一直做得非常好,但Apple对编译专用工具明确提出了高些的规定。


仗着自身在开源社区的影响力,GCC 开发人员对Apple的Objective-C语言增加的许多 特性不予理睬,乃至当Apple想干的许多 功能必须用模块化设计的方法来启用 GCC时,GCC却一直不给做。一般的企业碰到这类状况,将会都一些吃不消,更何况是史蒂夫乔布斯领导干部的Apple呢?


与GCC的不和让Apple一直在找寻一个高效率的、模块化设计的、协议书更释放压力的开源系统的编译器代替品。最后,Apple看中了Chris Lattner的LLVM。


如今仍然任职于Apple的Chris Lattner但是一位高手,他于2001年毕业于俄勒冈州波特兰大学电子信息科学技术专业,同一年前去UIUC(伊利诺伊大学厄巴纳香槟分校),修读电子信息科学硕士和博士学士学位。在UIUC期内,他的GPA是4.0(最高分),并不断科学研究探寻有关编译器的未知领域,发布了数篇毕业论文。在研究生论文中,他明确提出了一套详细的在编译时、连接时、运作时乃至是在闲置不用时提升程序流程的编译观念,确立了LLVM的基本。


LLVM在Chris Lattner念博士研究生时更为的完善。最先,LLVM应用GCC做为前端开发来对可执行程序开展文本挖掘造成 IF(Intermidiate Format),随后,LLVM应用剖析結果进行代码提升和转化成。此项科学研究让Chris Lattner在2006年大学毕业的情况下,变成了有名气的编译器权威专家。他也因而很早的被Apple看中,变成其编译器新项目的技术骨干。


进到Apple以后,Chris Lattner最先在OpenGL工作组做代码提升,把LLVM运作时的编译架在OpenGL栈上,那样OpenGL栈可以产出率更效率高的图型代码。这一强劲的OpenGL保持被用在了之后公布的Mac OS X 10.5上。另外,LLVM 的连接提升被立即添加到Apple的代码连接器上。


一个好的专用工具,务必要有立足之地。两年以后,LLVM的机遇就来了。Mac OS X 10.6 Snow Leopard的新功能,彻底归功于LLVM的技术性,而这一个版本号,也是将LLVM引向真实完善的重特大机会。


“一个篱笆墙三个桩,一个梁山好汉三个帮”,LLVM可以保持许多 绮丽的功能,要得益于LLVM本身的新前端开发——Clang。

GCC系统软件巨大而沉重,因而,Apple决策从零开始写C、C 、Objective-C语言的前端开发Clang,而求彻底取代掉GCC。


Clang于2012年刚开始开发设计,C编译器最开始进行,在2010年的情况下,Objective-C编译器早已彻底能够用以环境,而在一年以后,Clang基础保持了对C 编译的支持。

llvm编译器框架下clang编译器 

Clang一个关键的特性是编译迅速、占运行内存少,而代码品质还比GCC到来高。归功于自身健硕的构架和Apple的全力支持,Clang愈来愈全能型,支持的新项目愈来愈多,如Mac OS X 10.6时期的Xcode和Interface Builder等,皆由Clang编译。Clang的添加也意味着着LLVM真实走向成熟。


除此之外,Clang有一个关键的衍化新项目是静态数据分析工具,可以根据全自动分析程序的逻辑性,在编译时就找到程序流程将会的bug,这一功能称为ARC。ARC的保持让那时候的众多开发人员们大幅诧异。


除开LLVM关键和Clang之外,LLVM还包含一些关键的子项目,例如一个原生态支持调节c#多线程程序流程的调试器LLDB和一个C 的标准库libstdc 。不仅是Apple,许多 的新项目和计算机语言都从LLVM中获得了至关重要的技术性。


自然,上边全是胡扯,实际上这一控制模块就是说把clang的所有api、常量和基本数据类型申明出来,也有写到了汉语注解,可是这个东西并不常见,只有用以技术专业从业C/C 有关开发设计的才有效,例如上边提及的静态数据剖析,又或是我封裝它的目地,依据头文件全自动申明为易语言的API、常量、基本数据类型。自然这一功能也没有进行,只写了一半,由于辞职的缘故,代码在企业电脑,忘掉带去了,随后前不久企业给把电脑重装了,代码也没有了。因此因为我就把控制模块发上来了。



留意!!也没有提交clang.dll,这一几十M大,自身安裝个llvm,到安装文件下 D:\Program Files\LLVM\bin\libclang.dll (这一就是我的相对路径)拷贝到源代码下就可以玩了。


引入控制模块

无

引入支持库


源代码文件夹名称支持库文件夹名称支持库标志
libclang.e系统核心支持库 5.7d09f2340818511d396f6aaf844c7e325


the end
免责声明:本文发布在易语言源码频道,为本站整理编辑,但不代表本站的观点和立场。