没有合适的资源?快使用搜索试试~ 我知道了~
LL网址:http://www.elsevier.nl/locate/entcs/volume62.html14页共享数据空间协调的表现力比较分析*A. Brogi1 N.布西湾Gabbrielli3 G.Zavattaro21比萨大学信息学系2博洛尼亚大学信息科学系3乌迪内大学数学和信息学系摘要我们研究了共享数据空间协调语言家族中最突出的代表,即Linda,Gamma和并发约束编程的表现力。调查是通过利用和集成三个不同的COM-并行技术:弱和强模块嵌入和属性保持编码。我们得到一个层次结构的协调语言,提供了有用的见解,协调语言的设计和使用1介绍协调语言正在成为使分布式应用程序的编程更容易的合适的体系结构。在文献中提出的大多数语言亲,亲是基于所谓的共享数据空间模型,其中进程通过生产,测试和从一个共同的存储库中删除数据进行交互Linda [11]、Concurrent ConstraintProgramming [13]、Gamma [1]等语言是这种协调模型最突出的代表。各种协调语言的可用性提出了一个有趣的问题,即这些语言的表达能力简单地说,在两种不同的语言L和LJ面前,一个自然的问题是:“更强大”比“?作者近期的一些作品一直致力于研究协调语言的表达能力。所采用的语言比较方法可分为两大类:*工作部分由意大利大学部支持- MURST 40% - Progetto TOSCA。×c2002由ElsevierScienceB. 诉 操作访问根据C CB Y-NC-N D许可证进行。2LLM• 相对表达能力。比较两种语言的相对表达能力的一种自然方法这个想法是形式化的概念,语言嵌入介绍,[14][2]中定义的模块嵌入的概念• 属性保持编码。另一种比较语言表达能力的方法依赖于计算理论。非正式地说,这个想法是为了表明程序的行为属性(例如,终止或发散)在一种语言中是可判定的,而在j中不是,因此不存在将一种语言编码成另一种语言以保持给定的属性。本文的目的是利用上述方法的集成,以获得上述共享数据空间语言的表达能力的比较分析,以及它们的一些相关变体请注意,即使所有这些语言都基于共享数据空间的共同理念,它们也利用了不同的数据格式(例如,元组、约束等)。我们通过考虑非结构化数据获得了一个通用的语言比较框架我们将通过使用三种不同的标准来建立这些语言的等价和分离结果:两种形式的模块嵌入(强和弱)和终止保持编码。本文的总体结果是一个层次的协调语言,提供了有益的见解的理论和实践的协调为基础的方法。2结石在本节中,我们将介绍我们将要分析的演算的语法和语义。定义2.1设Data是可数的数据集,设(Data)是Data上的有限多集的集合。程序的集合Prog由以下语法定义:ΣP::= i∈Iµ i.P i|P|P|Kµ::= out(a)|rd(a)|不(a)|在(a)段中,|最小值(A)其中P,Pi程序,K是程序常数,a∈Data,A∈ M(Data)。我们假设每个索引集I是有限的,并且每个程序常数具有一个单一的定义K=P,并且通常,recursionprostheticnl y [12]. 我们采用以下缩写:0=i∈Nµi。Pi,k. Pk=i∈{k}µi。Piandi∈IPi=P1|.... . . 你 好 。 . |Pn给出nI={1, . ,n}。演算的操作语义由转换系统定义表1的项,其中数据空间的状态由数据的多集合建模(即,M(Data)的元素),其中,n表示多集并。3↓−→−→(一)[out(a). P,DS]−→[P,DS<${a}](2)[rd(a)。P,DS<${a}]−→[P,DS<${a}](3)[not(a).P,DS]−→[P,DS]a/∈DS(4)[在(a)段中。P,DS<${a}]−→[P,DS](5)[min(A).P,DSA]−→[P,DS](六)Σ[Pk,DS]−→[PJ,DSJ]k∈I(七)[i∈IPi,DS]−→[PJ,DSJ][P,DS]−→[PJ,DSJ][P |Q,DS] −→ [P J|Q,DSJ] [P,DS] −→ [P J,DSJ](八)[K,DS]−→[PJ,DSJ]如果KP表1操作语义(省略(7)的对称规则每个配置都是一对,表示活动进程和数据空间,即, C〇nf={[P,DS]|P∈P rog,DS∈M(Data)}.out(a)原语在数据空间中产生数据a的新实例;rd(a)和not(a)测试数据空间的状态:如果至少存在数据a的实例,则rd(a)成功,而如果数据空间不包含数据a,则not(a)成功。in(a)操作删除数据a的实例,而min(A)操作从数据空间中删除数据的多集A 程序可以通过保护选择和并行组合操作来组合。程序常量允许定义递归程序。如果配置C没有传出转换,则它被终止(由C表示),即,当且仅当不存在CJ使得C CJ。一个配置C有一个终止计算(用C表示),如果C可以在有限数量的计算步骤后阻塞,即,存在CJ使得C−→<$CJ和CJ−→。给定一个程序序列P1,...,Pn,我们用n(P1,..., P n)出现在P1,.中的数据名称的集合, P n.在下文中,我们将考虑定义2.1中定义的微积分的不同子演算,它们因所使用的通信原语集而彼此不同在语法上,我们用L[X]表示只使用运算集合X的演算。例如,L[rd,out]是定义2.1的演算,其中rd和out是唯一考虑的通信操作。我们将重点比较五种代表著名并发语言的子演算的表达能力:• Linda- 完整的演算L[rd,not,in,out][11],其中代理可以添加,4O P→删除并测试数据空间中元组的存在和不存在• coreLinda- Linda的子集L[rd,in,out],不带not原语,用于测试数据空间中是否存在元组• ccp- 演算L[rd,out]类似于并发约束编程(ccp)[13],其中代理只能将令牌添加到数据空间并测试它们的存在,并且其中数据空间单调演化;• nccp-演算L[rd,not,out]类似于[4,16]中定义的定时ccp语言,因为not原语(用于测试信息的缺失)在[16]中引入,以建模基于时间的概念,如超时和抢占;• Gamma-演算L[min,out]表示语言Gamma [1],其特征在于共享数据空间上的多集重写规则。3模块嵌入3.1语言嵌入的概念比较两种语言的表达能力的一种自然方法是验证用一种语言编写的每个程序是否可以翻译成用另一种语言编写的程序,同时保留原始程序的预期可解释行为这个想法已经被形式化的嵌入的概念如下[14,2]。考虑两种语言L和LJ,设PL和PLJ分别表示可以用L和LJ假设程序的意义由两个函数(可观察量)O:PL→Obs和J:LJObsJ,将每个程序与其可观察属性的集合相关联(因此Obs和ObsJ被假设为一些合适的幂集)。那么我们说L比LJ更有表现力,或者等价地说LJ可以嵌入到L中,如果存在映射C:PLJ→ PL(编译器)和映射D:Obs→ObsJ(解码器),使得对于PLJ中的每个程序PJ,等式D(O(C(PJ)=OJ(PJ)成立。PJOJLC D❄O✲PL观察值换句话说,L可以嵌入LJ(也写作LJ ≤ L),当且仅当给定一个程序PJ在LJ中,它的可观测量可以通过解码由PJ到L的转换产生的程序C(PJ)的可观测量来获得。显然,如[2]中所讨论的,为了使用嵌入的概念作为语言比较的工具,应该对5OOCDCDL ≤LLLL ≤ L ≤ L解码器和编译器,否则前面的等式将被任何图灵完备语言满足(只要我们为目标语言选择足够强大的通常,这些条件表明翻译过程有多容易,解码器有多合理此外,请注意,嵌入的概念通常取决于可观的概念,这应该是足够的表达(考虑一个平凡的将同一元素关联到任何程序,显然我们可以将一种语言嵌入到任何其他语言中)。嵌入的概念可以用来定义语言族上的偏序,特别是,它可以用来建立分离结果(LJ ≤L和L /≤ LJ)和等价结果(LJ ≤L和L≤ LJ)。3.2模块嵌入正如在前一节中已经指出的,嵌入的基本概念太弱了,因为,例如,上面的方程可以被任何一对图灵完备语言所满足。因此,De Boer和Palamidessi在[2]中提出在编码器和解码器上添加三个约束 为了获得适合于比较并发语言的模块嵌入的概念(i) D应该以关于Obs的元素方式定义,即:X∈Obs: D(X)={Del(x)|x∈ X}对于一些适当的映射Del;(ii) 编码器C应该相对于所有的复合运算符以复合的方式定义,例如:C(A|B)= C(A)|C(B)。1(iii) 嵌入应该保持原始进程在死锁、失败和成功方面的行为(终止不变性):<$X∈Obs,<$x ∈X:tmJ(Del(x))=tm(x)其中tm和tmJ分别从L和LJ的可观测值中提取关于终止的信息如果一个嵌入满足上述三个性质,那么它被称为模化的从J到的模嵌入的存在性将表示为:J. 很容易看出这是一个前序关系。如果J那么J ,也就是说,任何语言都嵌入了它的所有子语言。这个属性直接从嵌入的定义派生而来,通过设置和等于恒等函数。模嵌入的概念在[5,6]中被用来比较Linda类语言家族的相对表达能力。文[5,6]中建立的分离和等价结果,仅限于语言1我们假设两种语言都包含并行复合运算符|.6✑✰L L L L L≤ L中共✑◗✑✑◗◗✑✰◗nccp核心琳达◗✑✑◗◗◗✑◗◗◗琳达·伽马图1.一、由模嵌入定义的层次结构在第2节中描述的,在图1中总结,其中从语言1到语言2的箭头意味着2嵌入1,即12。请注意,由于嵌入的传递性,该图仅包含少量的箭然而,除了这些归纳的关系,没有其他关系成立。特别是,当有一个从L1到L2的箭头,但没有从L2到L1的箭头时,则L1的表达性严格低于L2。在[5,6]中考虑的观察量定义如下:O(P)={(σ,δ+) :[P,]−→[ I0,σ]}<${(σ,δ−) :[P,]−→[Q,σ]−→,Q/=I 0}其中δ+和δ−是两个新的符号,表示特定的成功,(finite)failure.图1所示的结果表明,ccp对nccp和coreLinda的表达严格较低也就是说,这意味着非原语(的引入)和入原语(的引入)都严格地增加了基本演算L[rd,out]的表达能力。此外,nccp和coreLinda都不如完整的Linda演算表达,但它们彼此不可比最后,Gamma严格来说比coreLinda更有表现力,而Gamma和full Linda彼此之间没有可比这里值得一提的是[5]中建立的两个等价结果也就是说,语言L[rd,in,out]和L[in,out]具有相同的表达能力,也就是说,一个可以模块化地嵌入另一个,反之亦然。这同样适用于语言L[rd,not,in,out]和L[not,in,out],它们具有相同的表达能力。这意味着rd原语在coreLinda和Linda中都是多余的,因为它的消除并没有影响两种语言的表达能力3.3弱模嵌入在本节中,我们比较了ccp和nccp语言以及它们的变体,这些变体也使用了原语in,通过使用一个较弱的模嵌入概念的7C|→O这里给出的结果来自于[3]中出现的(定时)CCP的类似结果我们首先定义以下抽象的可观测量概念,它将有限计算与无限计算区分开来。定义3.1设P是一个过程。我们定义Oα(P)={θ|存在DS S. T。[P,DS]−→[Q,DSJ]/→且θ=α(P,DS···Q,DSJ)}其中α是从配置序列集合到合适集合的任何全(抽象)函数由于我们的结果是w.r.t. Oα,它们适用于任何可以被看作Oα的实例的可观测对象的概念(例如输入/输出对,有限迹等)。在下面的Oro:L[out,rd]→Obsro和Oron:L[out,rd,not]Obsron表示表示α的实例,α表示λ v。本节中考虑的两种语言的表格如3.2小节所述,为了使用嵌入作为语言比较的工具,需要对解码器和编译器进行一些限制很自然地,要求解码器不能从空集提取任何因此,用Obs表示目标语言的可观察性,我们要求:(i) 则D(O)= i O =.此外,要求编译器是态射也是合理的w.r.t.并行运算符,即:(ii) C(A)|B)= C(A)|C(B)。这些假设比[2]中的假设要弱,其中解码器被假设为在任何可观察集合的元素上逐点定义,并且被假设为保留(成功,失败或死锁)终止模式,而编译器被假设为也是w.r.t.态射。选择操作员显然,lycp可以嵌入到nccp中,因为前者是后者的子语言,类似地,对于这些语言的变体,也可以使用in来代替rd或作为进一步的原语。我们现在表明,的存在并不严格增加语言的表达能力,因为nccp不能嵌入到ccp。我们首先观察到,如果一个ccp过程P Q有一个有限计算,那么P和Q都有一个有限计算。这就是下面这个命题的内容,它的证明是直接的。8OO|∅O命题3.2设P是一个CCP过程。 如果α(P)= ,则α(P Q)=对于任何其它CCP过程Q。另一方面,以前的命题不适用于nccp。事实上,not结构的存在强制了一种非单调行为:向存储中添加更多信息可以抑制某些计算,因为相应的选择分支被丢弃。因此,我们有以下结果定理3.3当考虑作为α的实例的任何可观量的概念时,当满足条件(i)和(ii)时,语言nccp不能嵌入到ccp中。我们还有以下内容。推论3.4当考虑作为Oα实例的任何可观量概念时• 语言Linda不能嵌入coreLinda,• 语言L[out,not,in]不能嵌入到L[out,in]中同时满足条件(i)和(ii)。4保留终止的编码协调语言表达能力研究的另一种方法(例如,在[7])中,从计算理论中借用了一些技术,这些技术被用作语言比较的工具提供两种语言之间的分离结果的关键思想在于设计程序的行为属性(例如,终止计算的存在性或发散计算的存在性),这对于其中一种语言是可判定的,但对于另一种语言却是不可判定的;因此,我们可以得出结论,不存在一种语言在另一种语言上的编码,它保持了给定的属性。在本节中,我们证明了在Gamma、coreLinda和nccp中不存在Linda的保持终止的编码这些结果是以下事实的结果:(i) 存在随机存取机(RAM)[17]在琳达身上,它超越了终止行为。由于RAM是图灵等价物,因此对于Linda来说,终止是不可判定的。(ii) 在有限位置/变迁网上存在Gamma的终止保持编码。由于这类网的终止性是可判定的,因此Gamma也是如此。(iii) 在Gamma中存在coreLinda的终止保持编码由于终止是决定伽马,同样适用于核心琳达。9(iv) 在coreLinda中存在nccp的终止保持编码由于终止是可决定的核心琳达,同样适用于nccp。结果(iii)是存在从coreLinda到Gamma的模嵌入的结果;其余结果的证明如下所示。4.1终止对琳达来说我们表明,(rd-免费的片段)琳达是图灵等价的通过提供一个编码的随机存取机在琳达,保持存在的终止计算。(i)随机存取机随机存取机(Random Access Machine)[17],以下简称RAM,是由有限组寄存器r1... r n,可以容纳任意大的自然数,和一个程序I1. 这是一个简单的编号指令序列。程序的执行从第一条指令开始,然后依次执行其他指令,除非遇到跳转指令当指令数超过程序长度时,执行停止。以下两条指令足以对每个递归函数建模:• Succ(rj):将寄存器rj的内容加1;• DecJump(rj,s):如果寄存器rj的内容不为零,则将其减1并转到下一条指令,否则跳转到指令s。(计算)状态由(i,c1,c2,...,Cn),其中i表示要执行的下一条指令,并且cl是对于每个l∈ {1,.,n}。设R是一个程序I1. I k,以及(i,c1,c2,...,cn)是相应的状态;我们使用记法(i,c1,c2, . ,cn)−→R(iJ,cJ1,cJ2, . ,c,J,n)来声明在执行具有寄存器c,.,c n,程序计数器指向指令I iJ,寄存器包含taincJ1, . ,cJn.更进一步,我们使用(i,c1,c2, . ,cn)−→R表示(i,c1,c2,.,c n)是终端状态,即,i> k。在本节中,我们回顾Linda(的无rd片段)中RAM的编码[7]考虑状态(i,c1,c2,...,c n)与相应的RAM程序R。我们通过在数据空间中放置数据rl的cl次出现来表示每个寄存器rl的内容假设程序R是由指令序列I1...我们考虑k个方案P1. P k,每个指令一个。程序Pi的行为如下:如果Ii是寄存器rj上的Succ指令,则它仅发出数据rj的实例,然后激活程序Pi+1;如果它是n指令DecJump(rj,s),则程序Pi为10关于我们`阿姆斯壮→在数据rj上的消费和缺席测试之间进行选择。如果在数据空间中存在rj的实例,则执行in(rj)操作,并且执行Pi+1;否则,不执行t(rj)操作,并且后续程序为Ps。根据这种方法,我们考虑以下定义,对于每个i∈ {1,..., k}:Pi=out(rj).如果Ii=Succ(rj),则P i+1Pi=in(rj).Pi+1+not(rj).PsifIi =DecJump(rj,s)我们还考虑了定义Pi= 0,对于每个i一,K出现在以前的定义中。这是必要的,以便对当要执行的下一个指令具有范围1,.之外的索引时发生的计算终止进行建模,K.编码定义如下:[[(i,c1,c2,..., c n)]] R=[P i,1≤l≤n{rl, . ,rl}]cl次编码的正确性由以下定理说明定理4.1给定RAM程序R和状态(i,c1, c2,...,c n),我们有(i, c1,c2 , . , cn )−→R(iJ , cJ1 ,cJ2 , . ,cJn )当且仅当[[(i,c1 ,c2 , . ,cn)]]R−→[[(iJ,cJ1,cJ2, . ,cJn)]]R.作为这个定理的推论,我们有编码保持终止。推论4.2给定一个RAM程序R,我们有R终止当且仅当[[(1,0,0,...,0)]] R↓。4.2Gamma可决定终止为了证明在Gamma中不可能给出Linda的保持终止性的编码,我们证明了对于Gamma,终止性是可判定我们诉诸于基于Place/Transition网的语义,这是一种可判定终止的在这里,我们报告一个适合于我们目的的形式主义的定义定义4.3P/T网是一个三元组N=(S,T,m0),其中S是位置集,T是转移集(是对(c,p)∈ M(S)× M(S)),m0是有限多位置集。在位置集合S上的有限多集称为标记;m0称为初始标记。给定一个标记m和一个位置s,m(s)表示s在m内出现的次数,我们说,位置s包含m(s)个令牌。 P/T网是有限的,如果S和T都是有限的。跃迁t=(c,p)通常写成cp。标记c被称为t的预设,代表要消费的代币。标记p被称为t的后置集,表示要生成的标记。如果c≠m,则在m处启用转换t=(c,p)。的执行转换产生新的标记mJ,使得mJ(s)=m(s)-c(s)+p(s)。11dec([P,DS])=dec(P)DS2016年12月(Σi∈Iµi.Pi)=Σi∈Iµi.Pidec(K)=dec(P)如果K=Pdec(P |Q)= dec(P)dec(Q)min(A,Q,P)min(A).Q+P→dec(Q)out(a,Q,P) out(a).Q+P→adec(Q)表2分解函数dec和净转移T的定义。过程演算的操作网语义定义的基本思想是将一个项分解为多个顺序组件,这些组件可以被认为是并行运行的。每个顺序组件在网络中有一个对应的位置,并将由该位置的标记表示减少由消耗的转换表示并产生多组令牌。在我们的特殊情况下,顺序组件的形式为Σi∈Iµi.Pi.任何数据都由特定位置a中的标记表示。数据产品out(a)在位置a处产生新令牌,而min(A)从每个位置a移除A(a)令牌。表2的第一部分中的公理描述了相应标记中程序和数据空间的分解数据空间的分解对应于数据空间本身。顺序组件在相应的位置产生一个标记;程序常数被视为其相应的程序定义;并行组合被解释为多集并。表2第二部分中的公理定义了由T表示的可能的转换。定义4.4设C = [P,DS]是一个配置,使得P具有以下相关的程序常数定义:K1= P1,.,Kn= Pn。我们定义三元组Net(C)=(S,T,m0),其中:S={Q |Q是P,P1,.. . ,Pn}{a|a∈n(P,P1,.,(P n)(D)T={c→p∈T| c中的顺序压缩和数据也在S}m0= dec(C)中注意,给定一个配置C,相应的Net(C)是有限的12↓[[[P,DS]]=[P]],[[DS]][[ou t(a).P]]=in(a0).ou t(a+). [[P]]+in(a+).ou t(a+). [[P]][[rd(a).P]]=in(a+).ou t(a+). [[P]][[no t(a).P]]=in(a0).ou t(a0). [[P]][[P|Q]]=[[P]]|[[Q]]Σ[[i∈IPi]]=Σi∈I[[Pi]][[K]]=K[[DS]]={a+|a∈DS} {a0|a∈n(P,P1, … ,Pn){a/∈DS}表3coreLinda中nccp的编码P/T净值语义的正确性由以下定理陈述定理4.5设D是Gamma的一个构形,Net(D)是相应的网.设m是Net(D)的一个标记,使得对于某个配置C,m = dec(C)。我们在Net(D)中有C−→CJim→dec(CJ)。作为一个推论,我们有网语义保持终止计算的存在推论4.6给定一个Gamma的配置C,我们有这个C当且仅当Net(C)有一个终止激发序列。由于终止发射序列的存在性对于P/T网是可判定的,我们可以得出结论,终止对于Gamma是可判定的。4.3coreLinda中nccp的编码为了证明nccp中的终止是可判定的,我们在coreLinda中提供了nccp的终止保留编码编码报告于表3中。我们也将每个常数定义K=P替换为K= [[P]]。数据a的一个或多个实例的存在由数据空间中的单个数据a+表示,其中数据a的不存在由数据a0表示。非(a)的映射(相应地,rd(a))操作包括测试基准面a0(或 a+)在数据空间中。另一方面,输出操作的映射将0替换为+,或者将未更改的数据包大小替换为a+,这在数据空间中是一个非常复杂的过程。13✑✑×◗◗×◗✑◗◗◗中共✑✑✸w◗◗❦◗✑✑✰✑✑×✛×◗◗◗◗NCCP联系我们◗◗❦tp✑✑✑✸◗◗❦◗◗✑✰✑✑×✑tp◗◗Linda杨×伽马射线TP图二. 综合所有结果。定理4.7设C是nccp的构形。 如果C −→ CJ,则[[C]] −→+[[CJ]]。如果[[C]] −→+DJ,则存在CJs。t. C−→+CJ和DJ−→<$[[CJ]]。推论4.8设C是nccp的构形。 然后C↓i <$[[C]]↓。5总结发言在前面的章节中,我们已经讨论了使用三种不同的尺度来衡量一个类似琳达的语 言 家 族 的 表 达 能 力 。 特 别 是 我 们 关 注 的 五 种 语 言 ( ccp , nccp ,coreLinda,Linda和Gamma)分别通过模嵌入(≤)和弱模嵌入(≤w)以及通过保终止编码(≤tp)进行了比较图2综合了第3节和第4节中的结果,其中仅报告了最强的结果也就是说,模嵌入的存在性比弱模嵌入的存在性更强,而弱模嵌入的存在性又比保终止编码的存在性更强对于负面结果的情况,情况显然相反图2说明了如何通过模块化嵌入建立层次结构(见图1)。1)是丰富的弱模块嵌入和终止保持编码建立的结果。特别是,ccp和nccp之间的分离结果已经加强,在这个意义上,nccp不能模块化嵌入到ccp,即使对编码的modulity的约束是放松的,如节中所示。三点三nccp和Linda之间以及coreLinda和Linda之间的分离结果进一步得到了加强,因为nccp中Linda和coreLinda中Linda都不存在保留终止的编码。琳达和伽马的不可比性结果也得到了加强,表明没有在Gamma中的Linda的终止保持编码。◗×◗×◗14引用[1] J. P. Banaerobic和D. 我等你。用Multiset变换编程。Communication of the ACM,36(1)98[2] F.S. de Boer和C. Palamidessi。嵌入作为语言比较的工具。信息与计算,108(1):128 - 157,1991。[3] F.S. de Boer,M. Gabbrielli和M.C. Meo.时间并发约束语言的语义和表达能力。In G.斯莫尔卡第三届国际约束编程原理与实践会议LNCS,Springer-Verlag,1997年。[4] F.S. de Boer,M. Gabbrielli和M.C. Meo.一种定时CCP语言。信息与计算,161,2000。[5] A. Brogi和J.M.雅凯关于Linda类并发语言的表达能力。理论计算机科学电子笔记,16(2),2000年。[6] A. Brogi和J.M.雅凯论通过共享数据空间协调的表现力计算机程序设计科学。马上就来(一个简短的版本出现在P. Ciancarini和A.Wolf,editors,1999.史普林格出版社)的方式[7] N.布西河Gorrieri和G.萨瓦塔罗论琳达配位基元的表达性。信息与计算,156(1/2):90[8] N.布西河Gorrieri和G.萨瓦塔罗共享数据空间协调语言中的临时数据。FOSSACS2001,LNCS 2030,第121-136页。Springer-Verlag,柏林,2001年。[9] N. Busi和G.萨瓦塔罗关于数据驱动协调语言中事件通知的表达性。在ESOP 2000,LNCS 1782,第41-55页的程序中。施普林格出版社,柏林,2000年。[10] A. Cheng,J.Esparza,and J. 帕 尔 斯 伯格1-安全网的复杂性结果。在理论计算机科学,147:117[11] D.格勒恩 特琳达的生成 通信。ACM Transactions on Programming Languages andSystems,7(1):80[12] R.米尔纳 通信和并发。 普伦蒂斯-霍尔,1989年。[13] V.A. Saraswat和M.里纳德并发约束编程。第十七届ACM程序设计语言原理研讨会论文集,232[14] E. Y.夏皮罗并发逻辑编程语言的家族。ACM Computing Surveys,21(3):412-510,1989.[15] V.A.萨拉斯瓦特湾Rinard,and P. Panangelo.并发约束程序设计的语义基础。在Proc. Eighteenth ACM Symposium on Principles of Programming Languages,第333-353页。ACM Press,1991.[16] V.A. 萨 拉 斯 瓦 特 河 Jagadeesan 和 V. Gupta Timed Default Concurrent ConstraintProgramming。Journal of Symbolic Computation,22(5-6):475[17] J.C. Shepherdson和J.E. 斯特吉斯递归函数的可计算性。ACM 杂志,10:217 -255,1963年。
下载后可阅读完整内容,剩余1页未读,立即下载
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 京瓷TASKalfa系列维修手册:安全与操作指南
- 小波变换在视频压缩中的应用
- Microsoft OfficeXP详解:WordXP、ExcelXP和PowerPointXP
- 雀巢在线媒介投放策划:门户网站与广告效果分析
- 用友NC-V56供应链功能升级详解(84页)
- 计算机病毒与防御策略探索
- 企业网NAT技术实践:2022年部署互联网出口策略
- 软件测试面试必备:概念、原则与常见问题解析
- 2022年Windows IIS服务器内外网配置详解与Serv-U FTP服务器安装
- 中国联通:企业级ICT转型与创新实践
- C#图形图像编程深入解析:GDI+与多媒体应用
- Xilinx AXI Interconnect v2.1用户指南
- DIY编程电缆全攻略:接口类型与自制指南
- 电脑维护与硬盘数据恢复指南
- 计算机网络技术专业剖析:人才培养与改革
- 量化多因子指数增强策略:微观视角的实证分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)