发明名称 事务型处理过程的数据流分析的方法和系统
摘要 提供一种XLANG/s编译方法,它用一个程序信号流图的数据流分析来确定一个数据对象的使用周期。根据抽象计算机指令创建一个信号流图。对基本程序块指定一个深度优先次序并确定基本程序块两两之间的支配关系。确定信号流图内是否存在循环,如果存在循环,标识该循环。还确定关于数据对象的一个创建点,撤消点和锁定点。在计算机代码中插入指令以在创建点创建数据对象,在撤消点撤销数据对象和在锁定点锁定数据对象。
申请公布号 CN100422933C 申请公布日期 2008.10.01
申请号 CN200410068484.X 申请日期 2004.07.23
申请人 微软公司 发明人 D·J·麦克拉迪;P·F·林塞斯;B·米赫塔
分类号 G06F9/45(2006.01) 主分类号 G06F9/45(2006.01)
代理机构 上海专利商标事务所有限公司 代理人 陈斌
主权项 1. 一种计算机实现的编译计算机代码的方法,该方法包括:根据抽象计算机指令创建一信号流图,其中该信号流图具有多个基本程序块和至少一个数据对象,其中将抽象指令转换成由计算机代码形成的一个语义分析树;对所述多个基本程序块指定一个深度优先次序;确定所述多个基本程序块两两之间的支配关系;确定所述信号流图内是否存在循环,如果存在循环,标识该循环;确定所述至少一个数据对象的应用;根据该应用、标识的循环、所述多个基本程序块的支配关系和深度优先次序来为所述至少一个数据对象确定一创建点、撤消点和锁定点;以及在所述计算机代码中插入指令以在所述创建点创建所述至少一个数据对象,在所述撤消点撤消所述至少一个数据对象并在所述锁定点锁定所述至少一个数据对象,其中:确定一创建点进一步包括:标识所述至少一个数据对象的第一次使用并从所述多个基本程序块中标识所述第一次使用发生在其中的第一基本程序块,其中包括所述第一次使用的所述数据对象的所述第一基本程序块是初始创建点;标识所述至少一个数据对象在所述第一次使用后的一次使用并从所述多个基本程序块中标识所述第一次使用后的所述一次使用发生在其中的第二基本程序块;计算所述第一基本程序块的预支配顶点与所述第二基本程序块的预支配顶点的交集;确定所述交集是否包含所述第一基本程序块;以及如果所述交集不包含所述第一基本程序块,则从所述交集中选择一新创建点;确定一撤消点包括:标识所述至少一个数据对象的最后一次使用并从所述多个基本程序块中标识第一基本程序块,所述最后一次使用发生在该第一基本程序块中,其中包括所述最后一次使用的所述数据对象的所述第一基本程序块是初始撤销点;标识所述至少一个数据对象在最后一次使用前的一次使用并从所述多个基本程序块中标识最后一次使用前的所述一次使用发生在其中的第二基本程序块;计算所述第一基本程序块的在后支配顶点与所述第二基本程序块的在后支配顶点的交集;确定所述交集是否包含所述第一基本程序块;以及如果所述交集不包含所述第一基本程序块,则从所述交集中选择一新撤消点;以及确定一锁定点进一步包括:标识所述至少一个数据对象的第一次使用并从所述多个基本程序块中标识所述第一次使用发生在其中的第一基本程序块,其中包括所述第一次使用的所述数据对象的所述第一基本程序块是初始锁定点;标识所述至少一个数据对象在所述第一次使用后的一次使用并从所述多个基本程序块中标识所述第一次使用后的所述一次使用发生在其中的第二基本程序块;计算所述第一基本程序块的预支配顶点与所述第二基本程序块的预支配顶点的交集;确定所述交集是否包含所述第一基本程序块;以及如果所述交集不包含所述第一基本程序块,则从所述交集中选择一新锁定点。
地址 美国华盛顿州