处理值类型的制作方法

文档序号:11160868阅读:来源:国知局

技术特征:

1.一种用于通过生成和执行对应的较低级别的指令来实现较高级别的指令的方法,所述较低级别的指令针对对于所述较高级别的指令透明的一个或多个存储机构,所述方法包括:

接收指定将特定值类型的值指派到多个容器中的特定容器的一个或多个较高级别的指令,其中所述多个容器表示用于在代码块的执行期间维护一个或多个变量的数据结构,其中所述多个容器中的至少两个容器具有不同的尺寸;

基于根据所述特定值类型将一个或多个指派规则应用于所述一个或多个较高级别的指令,生成将所述值指派到所述特定容器的一个或多个较低级别的指令;

执行所述一个或多个较低级别的指令;

其中所述方法由一个或多个计算设备执行。

2.如权利要求1所述的方法,其中所述一个或多个指派规则包括以下中的一个或多个:

限制哪些值类型能够被指派到所述特定容器的约束,

在向所述特定容器中加载所述值的拆箱表示或对保持所述值的第二容器的引用之间进行选择的规则。

3.如权利要求2所述的方法,其中在向特定容器中加载所述值的所述拆箱表示或对保持所述值的第二容器的引用之间进行选择的规则基于以下中的一项或多项:所述值是否是不可变的、所述值是否能够适配在所述特定容器内、所述值是否超出了特定的尺寸阈值、所述多个容器中的另一个容器是否已经存储了所述值、所述值的组成成分的性质、或者所述一个或多个较低级别的指令将如何利用所述值。

4.如权利要求2-3中的任一项所述的方法,其中所述多个容器被存储在为多个线程中的特定线程预留的存储器位置中,并且所述第二容器在由所述多个线程共享的存储器位置中位于所述多个容器的外部。

5.如权利要求2-4中的任一项所述的方法,其中所述约束基于以下中的一项或多项:

(1)确定所述特定容器已经被分配为适配一个或多个值类型,并且将对所述特定容器的指派限制为所述一个或多个值类型的值,

(2)将对所述特定容器的指派限制为与所述特定容器共享尺寸的值或具有比所述特定容器小的尺寸的值,

(3)将对所述特定容器的指派限制为一个或多个特定值类型直至接收到重置所述特定容器的指令。

6.如权利要求2-5中的任一项所述的方法,还包括:

响应于确定要在所述特定容器中加载所述值的所述拆箱表示以及确定所述特定容器不能适配所述值,调整所述特定容器的尺寸以适配所述值。

7.如权利要求1-6中的任一项所述的方法,还包括:

接收指定改变第二特定容器中存储的第二值的组成部分的一个或多个第二较高级别的指令,其中所述第二值具有第二特定值类型;

至少部分地基于与所述第二特定值类型相关联的元数据来生成识别所述第二特定容器的与所述成分部分对应的部分的单个较低级别的指令;

执行所述单个较低级别的指令。

8.如权利要求7所述的方法,其中识别所述第二特定容器的所述部分包括以下中的一项或多项:使用对应于所述第二特定值类型的值类型定义的字段定义来定位所述部分,使用所述值类型定义的访问控制信息来实行对所述部分的访问限制,或者基于所述值类型定义来执行类型检查。

9.如权利要求1-8中的任一项所述的方法,还包括:

接收指定访问第二特定容器中存储的第二值的组成部分的一个或多个第二较高级别的指令,其中所述第二值具有第二特定值类型;

基于与所述第二特定值类型相关联的元数据来确定对所述组成部分的访问是否应当是原子的;

响应于确定对所述组成部分的访问应当是原子的,确定所述组成部分是否存储在不可变容器中;

响应于确定所述组成部分存储在不可变容器中,生成不提供原子保证的一个或多个第二较低级别的指令并且执行所述一个或多个第二较低级别的指令;

响应于确定所述组成部分没有存储在不可变容器中,选择能够提供对所述组成部分的原子访问的一个或多个机制中的特定机制,基于所述特定机制生成提供原子保证的一个或多个第三较低级别的指令,以及执行所述一个或多个第三较低级别的指令。

10.如权利要求9所述的方法,其中所述第二值存储在第一容器中,并且所述方法还包括:

响应于确定所述组成部分没有存储在不可变容器中,确定所述组成部分的访问频率是否超过访问阈值;

响应于确定所述组成部分的所述访问频率超过所述访问阈值,将所述组成部分存储在分开的第二容器中并且针对所述组成部分在所述第一容器中存储对所述第二容器的引用。

11.如权利要求9-10中的任一项所述的方法,其中能够提供对所述组成部分的原子访问的所述一个或多个机制基于由所述一个或多个计算设备的一个或多个处理器支持的一组指令。

12.存储有指令的一个或多个计算机可读介质,所述指令当被一个或多个计算设备执行时使得执行如权利要求1-11中的任一项所述的步骤。

13.一种系统,该系统包括一个或多个计算设备,所述一个或多个计算设备包括至少部分地由计算硬件实现的、被配置为实现如权利要求1-11中的任一项所述的步骤。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1