[发明专利]仿真指针有效
申请号: | 201110445904.1 | 申请日: | 2011-12-27 |
公开(公告)号: | CN102609243A | 公开(公告)日: | 2012-07-25 |
发明(设计)人: | Y·莱瓦诺尼;朱伟荣;张玲莉;J·L·拉普;A·L·布利斯 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F9/34 | 分类号: | G06F9/34 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 胡利鸣 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及仿真指针。本发明涉及用于仿真指针的方法、系统和计算机程序产品。可以通过如下方式来仿真指针:用<变量#,偏移量>对替换该指针;以及用根据标签的switch和switch主体替换每个解除引用站点,该switch主体对该指针所指向的相应变量执行仿真的指针访问。可以使用数据流优化来减少switch的数目和/或减少在每个仿真的指针访问站点处需要考虑的case的数目。 | ||
搜索关键词: | 仿真 指针 | ||
【主权项】:
一种在包括一个或多个处理器和系统存储器的计算机系统处的用于对指针进行仿真的方法,所述方法包括:访问从较高级代码(111)的相应语句和表达式(112)中翻译的较低级代码(121)的多个较低级指令(122)的动作,所述多个较低级指令(122)包括表示来自该较高级代码的定义多个不同变量的语句和表达式的较低级指令,所述多个变量包括一个或多个指针(114)、一组局部变量、一组共享存储器变量、以及全局存储器资源,所述多个较低级指令还包括表示来自该较高级代码的向所述一个或多个指针中的指针(116)进行分配或解除引用的语句和表达式的指令;修改较低级代码(121)以对所述一个或多个指针的定义(114)和使用(116)进行仿真的动作,包括:将所述多个较低级指令内联到单个函数(123)中的动作,所述单个函数被配置为在所述处理器处执行时向处理器内核提供对该组局部变量、该组共享存储器变量、以及该全局存储器资源的直接知识;生成指针仿真指令(131)的动作,所述指针仿真指令:定义一个或多个数组(132),所述一个或多个数组用于存储该组局部变量和该组共享变量;将每个局部变量和每个共享变量分配给所述一个或多个数组(133)之一中的位置;通过定义一对变量来表示所述一个或多个指针中的每个指针,包括:定义标签变量(134),所述标签变量用于存储如下的值:该值用于标识出所仿真的指针指向的一个或多个数组之一或全局存储器资源;以及定义对应于所述标签变量的偏移量变量(133),所述偏移量变量用于存储用于标识出数组位置的值;针对该较低级代码中的向指针分配地址值之处的每个位置,向所述标签变量和相应偏移量变量中的一个或多个赋值以标识出 所述一个或多个数组之一或全局存储器资源内的位置以仿真向指针(137)分配地址值;针对该较低级代码中的对指针进行解除引用之处的每个位置,基于向标签变量所赋的值以及向相应偏移量变量所赋的值向所述一个或多个数组之一或全局存储器资源中的位置赋值以仿真对指针(138)的解除引用;以及用指针仿真指令(131)来替换如下较低级指令的动作:所述较低级指令表示来自该较高级代码的定义所述多个变量(114)以及向所述一个或多个指针中的指针(116)进行分配或解除引用的语句和表达式。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110445904.1/,转载请声明来源钻瓜专利网。
- 上一篇:一种具有杀菌功效的硬表面清洗剂
- 下一篇:一种松香改性有机硅树脂的制备方法