当前位置: 首页 > 专利查询>苹果公司专利>正文

用于应用开发的编程系统和语言技术方案

技术编号:14646571 阅读:30 留言:0更新日期:2017-02-16 03:22
本发明专利技术的一个实施方案中提供了一种用于应用开发的改进的编程系统和语言,其组合了C语言和Objective‑C语言的元素,但没有因要求维持与C语言的兼容性而施加的限制。该语言提供了在某些领域中C语言兼容性的功能,以改善以该语言编写的软件的固有安全性。该新语言包括默认安全考虑,诸如边界和溢出检查。

【技术实现步骤摘要】
【国外来华专利技术】交叉引用本申请要求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程序,并在Objective-C类之内自由地包括C代码。Objective-C的C兼容性提供了优点和缺点。C语言就高级编程语言来讲是相对“低级”的语言,利用与底层计算机系统类似的对象执行操作,诸如字符、数字和地址。然而,C是弱类型的语言,固有地涉及不安全的存储器操作。这样的特征在历史上向以C语言编写的应用提供了性能优势,但可能需要应用开发者足够细心,以防范意外的安全漏洞。
技术实现思路
在一个实施方案中,提供了一种改进的用于应用开发的编程系统,其包括新的编程语言。在一个实施方案中,该编程系统包括具有编译器基础结构的集成开发环境,该编译器基础结构允许以新语言编写的软件与以其他语言编写的现有软件混合。可以利用以新语言编写的新模块替换现有的软件模块,而不损害现有应用的功能。在一个实施方案中,一种其中存储了指令的非暂态计算机可读介质使包括一个或多个处理器的处理系统执行操作,包括:接收编译以第一高级语言编写的第一组程序指令的第一请求。该第一高级语言可以是基于C语言的面向对象的编程语言。操作可进一步包括接收编译与第一组程序指令相关的第二组程序指令的第二请求。第二组指令可以以第二高级语言编写,该第二高级语言包括面向对象的元素和过程元素。第二组程序指令中的指令不与C编程语言严格兼容。操作可进一步包括利用模块化编译系统编译第一组程序指令和第二组程序指令。该模块化编译系统可以包括多个前端编译器,第一组程序指令被编译成第一组程序指令的第一中间表示,并且第二组程序指令被编译成第二组程序指令的第二中间表示。在一个实施方案中,一种系统包括耦接到存储器的一个或多个处理器以及耦接到存储器和一个或多个处理器的一个或多个非暂态存储设备。该存储设备可以包括第一高级语言下的第一组程序指令和第二高级语言下的第二组程序指令。附加地包括一个或多个存储设备上存储的应用开发系统。该应用开发系统能够被配置为利用第一组程序指令和第二组程序指令来构建应用。该应用开发系统包括具有第一前端编译器和第二前端编译器的模块化编译系统,并附加地包括链接器,该链接器用于将符号引用链接到第一组程序指令和第二组程序指令中的函数。该第一高级语言可以是基于C语言的面向对象的编程语言。第二高级语言包括面向对象的元素和过程元素,并且不与C编程语言严格兼容。通过附图以及通过以下具体实施方式,本专利技术的其他特征将显而易见。以上概述不包括本专利技术的所有方面的详尽列表。预期本专利技术包括可根据以上概述的各方面以及以下具体实施方式部分中所公开的那些的所有合适组合来实践的所有系统和方法。附图说明在本说明书中对“一个实施方案”或“实施方案”的引用是指结合该实施方案描述的特定特征、结构或特性可以被包括在本专利技术的至少一个实施方案中。各种实施方案是通过举例而非限制的方式例示的。在附图的各图中,类似的附图标记表示类似元素。图1是示出了支持新语言的模块化编译器系统的一个实施方案的框图。图2是根据一个实施方案的数据处理系统的系统运行时环境的一个实施方案的框图。图3是根据一个实施方案的用于将以多种语言编写的多组指令编译成一种通用语言的逻辑流程图。图4是根据一个实施方案的用于编译包括以新语言编写的指令的混合语言应用的逻辑流程图。图5示出了框图,示出了根据一个实施方案的示例性数据处理系统,该系统适于执行以移动或手持设备领域为目标的应用。图6示出了框图,示出了根据一个实施方案的附加示例性数据处理系统。具体实施方式将参考下述细节描述用于应用开发的改进的编程系统和语言的各种实施方案和方面。该新的编程语言构建于由C和Objective-C语言提供的元素之上,而没有C兼容性施加的约束。改进的编程系统和新语言提供了在某些领域中做出改进的C语言的功能,以增强以该语言编写的软件的安全性。例如,新语言包括默认的安全考虑,诸如当前基于C语言的编程语言中没有的界限和溢出检查。在下文中描述了众多的具体细节以提供对本专利技术各种实施方案的全面理解。然而,在某些实例中,众所周知或常规的细节并未被描述以便提供对本文所述的实施方案的简明论述。语言特性的概述该编程系统的实施方案包括集成开发环境,该集成开发环境提供了对新语言的支持,该新语言采用了安全编程模式以及超越C和Objective-C提供的那些之外的现代特征。例如,Objective-C的命名参数和动态对象模型连同新特征一起存在于新语言中,以简化应用的开发。新语言的实施方案提供了其自己的基本C和Objective-C类型的版本,包括用于整数的“Int”;用于浮点值的“Double”和“Float”;用于布尔值的“Bool”和用于文本数据的“String”。该新语言还提供了两种基本集合类型,“Array”和“Dictionary”的多个版本。可以使用变量存储并通过标识名称引用值。还有常数,其具有超越C语言中常数提供的那些的功能。在给定值明显不应在运行时改变时,该语言对常数进行扩展使用。另外,新语言的实施方案引入了Objective-C中没有的高级类型。这些类型包括Tuples和Optionals。Tuples使得开发者能够创建并传递值的分组。Tuples将多个值分组为单个合成值。元组(tuple)之内的值可以是任何类型,并且不必彼此是相同类型。可以在定义元组时,在元组中命名各个元素。元组作为函数的返回值特别有用。在一个实施方案中,Tuples基本可以用作相关值的临时组,并可能不适于创建复杂的数据结构。在一个实施方案中,提供了任选(optional)类型,该类型处理不存在值的情况。Optionals是表示“有一个值,等于x”或“根本没有值”的一种方本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201580028329.html" title="用于应用开发的编程系统和语言原文来自X技术">用于应用开发的编程系统和语言</a>

【技术保护点】
一种其中存储有指令的非暂态计算机可读介质,所述指令在被处理器执行时,使所述处理器执行操作,所述操作包括:接收编译以第一高级语言编码的第一组程序指令的第一请求,所述第一高级语言是基于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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1