【技术实现步骤摘要】
【国外来华专利技术】动态型阵列的表达和变换
本主题技术总体涉及动态型输入程序代码,并具体涉及表达运行时的动态型程序 代码的阵列。
技术介绍
许多静态型语言,如C语言和C++语言在存储器中以打包和有效的原始形式存 储双精度浮点值(或双精度值),例如使用每个占据64位存储器的双精度值(例如,使 用IEEE 754 64位形式)。因为当程序在这些语言中被编译时,值的类型和因此它们的表达 是已知的,编译器可生成在存储器中载入、存储并操作双精度值的有效的代码。在动态型语 言中(例如JavaScript),值的类型通常直到运行时才知道。这导致对于语言实现,难以为 双精度值使用简单且有效的原始存储形式。
技术实现思路
本公开主题涉及表达运行时的动态类型程序代码中的阵列的机器实现方法。该方 法包括在运行时访问程序代码,该程序代码对应于动态型程序语言,并在程序代码内检测 用于添加、更新或删除阵列的一个或多个元素的指令。该阵列与第一类元素相关,该第一类 元素包括第一表达形式和第一打包形式。该方法进一步包括基于指令或一个或多个元素中 的至少一种确定第二类元素,该第二类元素包括第二表达形式或第二打包形式中的至少一 种,并且基于第一和第二表达形式或第一和第二打包形式之间的不一致性,确定第一类元 素与第二类元素不一致。另外,该方法包括变换阵列,使得第一类元素与第二类元素一致, 并且根据指令,添加、更新或删除变换的阵列的一个或多个元素。 所述公开主题进一步涉及用于表达运行时的动态型程序代码中阵列的系统。该系 统包括一个或多个处理器和机器可读介质,其包含存储于其中的 ...
【技术保护点】
一种用于表达运行时的动态型程序代码中的阵列的机器实现的方法,所述方法包括:在运行时访问程序代码,所述程序代码对应动态型编程语言;在所述程序代码内,检测用于添加、更新或删除阵列的一个或多个元素的指令,其中所述阵列与第一类元素相关,所述第一类元素包括第一表达形式和第一打包形式;基于指令或一个或多个元素中的至少一种确定第二类型元素,所述第二类元素型包括第二表达形式或第二打包形式中的至少一个;基于所述第一表达形式和所述第二表达形式或所述第一打包形式和所述第二打包形式之间的不一致性,确定所述第一类元素与所述第二类元素不一致;变换所述阵列,使得所述第一类元素与所述第二类元素一致;以及基于所述指令添加、更新或删除变换的阵列的一个或多个元素。
【技术特征摘要】
【国外来华专利技术】2012.06.01 US 13/487,0901. 一种用于表达运行时的动态型程序代码中的阵列的机器实现的方法,所述方法包 括: 在运行时访问程序代码,所述程序代码对应动态型编程语言; 在所述程序代码内,检测用于添加、更新或删除阵列的一个或多个元素的指令,其中所 述阵列与第一类元素相关,所述第一类元素包括第一表达形式和第一打包形式; 基于指令或一个或多个元素中的至少一种确定第二类型元素,所述第二类元素型包括 第二表达形式或第二打包形式中的至少一个; 基于所述第一表达形式和所述第二表达形式或所述第一打包形式和所述第二打包形 式之间的不一致性,确定所述第一类元素与所述第二类元素不一致; 变换所述阵列,使得所述第一类元素与所述第二类元素一致;以及 基于所述指令添加、更新或删除变换的阵列的一个或多个元素。2. 根据权利要求1所述的方法,其中所述第一表达形式和所述第二表达形式中的每个 是小整型、双精度值型或标记值型中的一种。3. 根据权利要求2所述的方法,其中所述标记值型对应于对象指针、小整数或堆数。4. 根据权利要求3所述的方法,其中所述指令用于添加或更新所述阵列的一个或多个 元素,且其中所述第二表达形式基于所述一个或多个元素的数据类型。5. 根据权利要求4所述的方法,其中所述变换包括变换所述阵列,使得所述第一表达 形式从小整型变为双精度值型,从小整型变为标记值型,或从双精度值型变为标记值型。6. 根据权利要求1所述的方法,其中所述第一和第二打包形式中的每个对应于不具 有空位的阵列的已打包形式,或对应于可能具有至少一个空位的阵列的非打包形式中的一 种。7. 根据权利要求6所述的方法,其中所述指令用于删除所述阵列的一个或多个元素, 或用于在所述阵列结尾处之后添加一个或多个元素,且其中所述第二打包形式是非打包形 式。8. 根据权利要求7所述的方法,其中所述变换包括将所述第一打包形式从已打包形式 变为非打包形式,以标记所述阵列,使得访问所述阵列的指令预先将空位作为可能的元素。9. 根据权利要求1所述的方法,其中所述阵列包括隐藏类数值,所述隐藏类数值表示 与所述阵列相关的所述第一类元素。10. 根据权利要求1所述的方法,进一步包括: 确定所述变换与所述程序代码中的循环相关;以及 提供将所述变换吊出所述循环,使得与所述循环关联的变换不会重复发生。11. 根据权利要求1所述的方法,进一步包括: 访问关于与所述阵列相关的元素类别的信息,所述信息对应所述程序代码之前的运 行; 减少基于被访问的信息执行确定或变换中的至少一个的次数。12. 根据权利要求1所述的方法,进一步包括: 对应于所述阵列中的空位在所述阵列中存储第一位模式的值;以及 在所述阵列中存储第二位模式的值,所述第二位模式的值是非数字的(NaN), 其中所述第一位模式不同于所述第二位模式。13. 根据权利要求1所述的方法,其中所述指令与第三类元素相关,所述第三类元素与 第三表达形式相关,所述第三表达形式基于用于添加或更新一个或多个阵列的一个或多...
【专利技术属性】
技术研发人员:丹尼尔·肯尼思·克利福德,雅各布·马丁·鲁迪格·库梅罗,扬·郭,
申请(专利权)人:谷歌有限公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。