【技术实现步骤摘要】
【国外来华专利技术】交叉引用本申请要求2014年5月30日提交的临时申请62/005,918的权益,该申请据此全文以引用方式并入本文。
技术介绍
软件开发者能够使用集成开发环境提供的构建自动化工具和编译器或解释器来创建软件产品。在将高级语言编译成机器语言时,成熟的做法是在最终将源程序转换成机器语言之前,将源程序转换成一种或多种中间形式。各种中间形式可以由编译器基础结构的各种组件来处理。例如,LLVM(以前的低级虚拟机)是一种编译器基础结构,其能够提供完整编译器系统的中间层。LLVM被设计成对以任意编程语言编写的程序进行编译时、链接时、运行时和“空闲时”优化。LLVM具有语言无关性,能够用于各种前端。LLVM使用的一种前端是Clang,这是用于LLVM的C语言前端。一般地,C语言是一种通用编程语言,与UNIX操作系统密切关联。然而,已经发现C语言被用于软件开发的几乎所有方面。Clang可以被用作以Objective-C编写的软件的前端编译器。Objective-C是C编程语言的超集并提供了面向对象的能力和动态运行时。Objective-C继承了C的语法、原始类型和流控制语句,并添加了用于定义类和方法的语法。Objective-C还添加了用于对象图管理和对象文字的语言级支持,同时提供了动态类型和绑定,将很多责任一直延迟到运行时。Objective-C是C的“严格超集”。非面向对象的操作的语法,包括原始变量、预处理、表达式、函数声明和函数调用与C相同,而用于面向对象的特征的语法是从Smalltalk面向对象语言派生的消息传递的实施。因此,可以利用Objective-C编译器编译任何C程序 ...
【技术保护点】
一种其中存储有指令的非暂态计算机可读介质,所述指令在被处理器执行时,使所述处理器执行操作,所述操作包括:接收编译以第一高级语言编码的第一组程序指令的第一请求,所述第一高级语言是基于C语言的面向对象的编程语言;接收编译与所述第一组程序指令相关的第二组程序指令的第二请求,所述第二组程序指令是以包括面向对象的元素和过程元素的第二高级语言编码的,其中第二高级语言不与所述C语言严格兼容;以及使用包括多个前端编译器的模块化编译系统来编译所述第一组程序指令和所述第二组程序指令,所述第一组程序指令被编译成所述第一组程序指令的第一中间表示,并且所述第二组程序指令被编译成所述第二组程序指令的第二中间表示。
【技术特征摘要】
【国外来华专利技术】2014.05.30 US 62/005,918;2014.09.30 US 14/502,6971.一种其中存储有指令的非暂态计算机可读介质,所述指令在被处理器执行时,使所述处理器执行操作,所述操作包括:接收编译以第一高级语言编码的第一组程序指令的第一请求,所述第一高级语言是基于C语言的面向对象的编程语言;接收编译与所述第一组程序指令相关的第二组程序指令的第二请求,所述第二组程序指令是以包括面向对象的元素和过程元素的第二高级语言编码的,其中第二高级语言不与所述C语言严格兼容;以及使用包括多个前端编译器的模块化编译系统来编译所述第一组程序指令和所述第二组程序指令,所述第一组程序指令被编译成所述第一组程序指令的第一中间表示,并且所述第二组程序指令被编译成所述第二组程序指令的第二中间表示。2.根据权利要求1所述的介质,还包括用于执行附加操作的指令,所述附加操作包括:链接所述第一中间表示和所述第二中间表示;以及使用特定于目标处理器的后端编译器来编译所述第一中间表示和所述第二中间表示。3.根据权利要求1所述的介质,还包括用于执行附加操作的指令,所述附加操作包括:响应于所述第一请求,使用支持所述第一高级语言的第一前端编译器来编译所述第一组程序指令;以及响应于所述第二请求,使用支持所述第二高级语言的第二前端编译器来编译所述第二组程序指令。4.根据权利要求1所述的介质,其中所述第一中间表示或所述第二中间表示是LLVM中间表示。5.根据权利要求1所述的介质,还包括用于执行附加操作的指令,所述附加操作包括在编译时优化期间优化所述第一中间表示和所述第二中间表示。6.根据权利要求1所述的介质,还包括用于执行附加操作的指令,所述附加操作包括在链接时优化期间优化所述第一中间表示和所述第二中间表示。7.根据权利要求6所述的介质,还包括用于执行操作的指令,所述操作包括响应于在编译期间优化所述程序指令的请求来优化所述第一中间表示和所述第二中间表示。8.根据权利要求1所述的介质,其中编译所述第二组程序指令包括默认执行编译时数据类型溢出检查。9.根据权利要求1所述的介质,其中编译所述第二组程序指令包括默认执行编译时数据结构边界检查。10.根据权利要求1所述的介质,其中编译所述第二组程序指令包括结合一个或多个类型推断操作来执行一个或多个编译时类型安全操作。11.一种系统,包括:一个或多个处理器,所述一个或多个处理器耦接到存储器;一个或多个非暂态存储设备,所述一个或多个非暂态存储设备耦接到所述存储器和所述一个或多个处理器,所述存储设备包括第一高级语言的第一组程序指令和第二高级语言的第二组程序指令;应用开发系统,所述应用开发系统存储在所述一个或多个存...
【专利技术属性】
技术研发人员:C·A·拉特纳,D·P·格莱格,T·M·克莱门奈克,R·J·麦科尔,J·格洛夫,
申请(专利权)人:苹果公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。