【技术实现步骤摘要】
专利说明事务型处理过程的数据流分析 专利
本专利技术总地涉及计算机软件编译程序。具体地,本专利技术涉及在编译时执行程序代码的静态数据流分析的一种XLANG/s编译方法。更具体地,本专利技术涉及这样一种方法,其借助于静态数据流分析而在编译时自动确定数据对象创建,锁定和撤消点。
技术介绍
商行可以经由一个诸如国际互联网或万维网那样的分布式环境用网络服务来与其他实体相互作用。为了确保成功地完成这样一个交互,必须设置一个或多个协议用于传送信息给参加者或传送来自参加者的信息,而且还必须在每一个参加者结束处安装特殊的商务应用程序。这种交互是信息驱动地。例如,购买者发送一个订货单给销售者。然后销售者核查他的存货清单来确定它是否能够提供所列项目。如果可以提供,销售者发送一个带有价格的回执返回给购买者。最后,购买者接受或拒绝销售者的报价(和/或可能发出另一个订单)。就如该实例中显然的,每一个参加者商务应用程序对信息的收到作出反应。 网络服务使用基于软件代码的计算机程序来执行诸如以上所描述的那些基于信息的业务往来。用一种程序设计语言交替地执行这种软件代码。程序设计语言一般允许程序员声明一个或多个保持程序状态的数据对象,诸如一个变量。 在一种能够执行上述业务往来的面向消息的语言中,数据对象可以是来自一些外部信号源并作为输入的一个信息。这样一个信息可以很大,因而存储多个数据对象可能损耗大量的存储资源。因此,一旦软件的正常运行不再需要一个数据对象的时侯就应该删除或“撤消”该数据对象。通常,由程序员手工地往软件代码中插入撤消点,该撤消点是用来撤消一个或多个数据对象的代 ...
【技术保护点】
一种编译计算机代码的计算机执行方法,包括:根据抽象计算机指令创建一个信号流图,其中该信号流图具有多个基本程序块和至少一个数据对象,其中将抽象指令转换成由计算机代码形成的一个语义分析树;对多个基本程序块指定一个深度优先次序; 确定多个基本程序块两两之间的支配关系;确定信号流图内是否存在有循环,如果存在有循环,标识该循环;确定至少一个数据对象的应用;根据该应用,标识的循环,基本程序块的支配关系和深度优先次序来为至少一个数据对象确定一个 创建点,撤消点和锁定点;以及在计算机代码中插入指令以在创建点创建至少一个数据对象,在撤消点撤消至少一个数据对象并在锁定点锁定至少一个数据对象。
【技术特征摘要】
US 2003-8-26 10/648,4611.一种编译计算机代码的计算机执行方法,包括根据抽象计算机指令创建一个信号流图,其中该信号流图具有多个基本程序块和至少一个数据对象,其中将抽象指令转换成由计算机代码形成的一个语义分析树;对多个基本程序块指定一个深度优先次序;确定多个基本程序块两两之间的支配关系;确定信号流图内是否存在有循环,如果存在有循环,标识该循环;确定至少一个数据对象的应用;根据该应用,标识的循环,基本程序块的支配关系和深度优先次序来为至少一个数据对象确定一个创建点,撤消点和锁定点;以及在计算机代码中插入指令以在创建点创建至少一个数据对象,在撤消点撤消至少一个数据对象并在锁定点锁定至少一个数据对象。2.根据权利要求1所述的计算机执行方法,其中确定一个创建点进一步包括标识至少一个数据对象的第一次使用并标识一个第一基本程序块,在该基本程序块中第一次使用发生自多个基本程序块,其中该至少一个数据对象的第一次使用是初始创建点;标识至少一个数据对象在第一次使用后的一次使用并标识一个第二基本程序块,在该基本程序块中接下来的使用发生自多个基本程序块;计算第一基本程序块的预支配顶点与第二基本程序块的预支配顶点的交集;确定交集是否包含第一基本程序块;以及如果交集不包含第一基本程序块,则从交集中选择一个新创建点。3.根据权利要求2所述的计算机执行方法,其中从交集中选择一个新创建点包括确定是否新创建点与初始创建点在不同的循环内,如果是这样,那么选择一个新创建点,它绕过在初始创建点和新创建点之间的所有内部循环。4.根据权利要求1所述的计算机执行方法,其中确定一个撤消点包括标识至少一个数据对象的最后一次使用并标识一个第一基本程序块,在该基本程序块中最后一次使用发生于多个基本程序块,其中该至少一个数据对象的最后一次使用是初始撤消点;标识至少一个数据对象在最后一次使用前的一次使用并标识一个第二基本程序块,在该基本程序块中先前的使用发生自多个基本程序块;计算第一基本程序块的在后支配顶点与第二基本程序块的在后支配顶点的交集;确定交集是否包含第一基本程序块;以及如果交集不包含第一基本程序块,则从交集中选择一个新撤消点。5.根据权利要求4所述的计算机执行方法,其中从交集中选择一个新的撤消点包括确定是否新撤消点与初始撤消点在不同的循环内,如果是这样,那么选择一个新撤消点,它绕过在初始撤消点和新撤消点之间的所有内部循环。6.根据权利要求1所述的计算机执行方法,其中确定一个锁定点包括确定一组至少一个数据对象;从多个向至少一个数据对象进行写操作的基本程序块中创建第一组基本程序块;从多个对至少一个数据对象进行读操作的基本程序块中创建第二组基本程序块;从不包含在一个同步范围内的第一和第二组多个基本程序块的任何一组中消除;以及确定要为每一个至少一个数据对象设置的一类锁定。7.根据权利要求6所述的计算机执行方法,其中确定对每一个至少一个数据对象的一类锁定包括在第一集合为空时,选择对至少一个数据对象的一个读锁定,否则选择一个写锁定。8.根据权利要求6所述的计算机执行方法,其中确定一个锁定点进一步包括标识至少一个数据对象的第一次使用并标识一个第一基本程序块,在该基本程序块中第一次使用发生自多个基本程序块,其中该至少一个数据对象的第一次使用是初始锁定点;标识至少一个数据对象在第一次使用后的一次使用并标识一个第二基本程序块,在该基本程序块中接下来的使用发生自多个基本程序块;计算第一基本程序块的预支配顶点与第二基本程序块的预支配顶点的交集;确定交集是否包含第一基本程序块;以及如果交集不包含第一基本程序块,则从交集中选择一个新锁定点。9.根据权利要求8所述的计算机执行方法,其中从交集中选择一个新的撤消点包括确定是否新锁定点与初始锁定点在不同的循环内,如果是这样,那么选择一个新锁定点,它绕过在初始锁定点和新锁定点之间的所有内部循环。10.根据权利要求1所述的计算机执行方法,其中该计算机代码是XLANG/s。11.根据权利要求1所述的计算机执行方法,其中该至少一个数据对象是变量。12.根据权利要求1所述的计算机执行方法,其中该至少一个数据对象是标记。13.根据权利要求1所述的计算机执行方法,其中该至少一个数据对象是一个消息。14.根据权利要求1所述的计算机执行方法,其中该信号流图相当于一个长期运行的事务处理。15.根据权利要求1所述的计算机执行方法,其中该信号流图相当于一个原子事务处理。16.根据权利要求1所述的计算机执行方法,其中该信号流图相当于带有一个异常处理程序的长期运行的事务处理。17.根据权利要求1所述的计算机执行方法,其中该信号流图相当于带有补偿的长期运行的事务处理。18.根据权利要求1所述的计算机执行方法,其中该信号流图相当于带有补偿的原子事务处理。19.根据权利要求1所述的计算机执行方法,其中该信号流图相当于带有一个异常处理程序和补偿的长期运行的事务处理。20.一种带有编译计算机代码的计算机可执行指令的计算机可读介质,该方法包括根据抽象计算机指令创建一个信号流图,其中该信号流图具有多个基本程序块和至少一个数据对象,其中将抽象指令转换成由计算机代码形成的一个语义分析树;对多个基本程序块指定一个深度优先次序;确定多个基本程序块两两之间的支配关系;确定信号流图内是否存在有循环,如果存在有循环,标识该循环;确定至少一个数据对象的应用;根据该应用,标识的循环,基本程序块的支配关系和深度优先次序来为至少一个数据对象确定一个创建点,撤消点和锁定点;以及在计算机代码中插入指令以在创建点创建至少一个数据对象,在撤消点撤消至少一个数据对象并在锁定点锁定至少一个数据对象。21.根据权利要求20所述的计算机可读介质,其中确定一个创建点进一步包括标识至少一个数据对象的第一次使用并标识一个第一基本程序块,在该基本程序块中第一次使用发生自多个基本程序块,其中该至少一个数据对象的第一次使用是初始创建点;标识至少一个数据对象在第一次使用后的一次使用并标识一个第二基本程序块,在该基本程序块中接下来的使用发生自多个基本程序块;计算第一基本程序块的预支配顶点与第二基本程序块的预支配顶点的交集;确定交集是否包含第一基本程序块;以及如果交集不包含第一基本程序块,则从交集中选择一个新创建点。22.根据权利要求21所述的计算机可读介质,其中从交集中选择一个新创建点包括确定是否新创建点与初始创建点在不同的循环内,如果是这样,那么选择一个新创建点,它绕过在初始创建点和新创建点之间的所有内部循环。23.根据权利要求20所述的计算机可读介质,其中确定一个撤消点包括标识至少一个数据对象的最后一次使用并标识一个第一基本程序块,在该基本程序块中最后一次使用...
【专利技术属性】
技术研发人员:DJ麦克拉迪,PF林塞斯,B米赫塔,
申请(专利权)人:微软公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。