{"title":"A relational trace logic for simple hierarchical actor-based component systems","authors":"I. Kurnia, A. Poetzsch-Heffter","doi":"10.1145/2414639.2414647","DOIUrl":null,"url":null,"abstract":"We present a logic for proving functional properties of concurrent component-based systems. A component is either a single actor or a group of dynamically created actors. The component hierarchy is based on the actor creation tree. The actors work concurrently and communicate asynchronously. Each actor is an instance of an actor class. An actor class determines the behavior of its instances. We assume that specifications of the behavior of the actor classes are available. The logic allows deriving properties of larger components from specifications of smaller components hierarchically.\n The behavior of components is expressed in terms of traces where a trace is a sequence of events. A component specification relates traces of input events to traces of output events. Generalizing Hoare-like logics from states to traces and from statements to components, we write {p} C {q} to mean that if an input trace satisfies p, component C produces output traces satisfying q; that is, p and q are assertions over traces. Such specifications are partial in that they only specify the reaction of C to input traces satisfying p.\n This paper develops the trace semantics and specification technique for actor-based component systems, presents important proof rules, proves soundness of the rules, and illustrates the interplay between the trace semantics, the specification technique and the proof rules by an example derived from an industrial Erlang case study.","PeriodicalId":287804,"journal":{"name":"Workshop on Programming based on Actors, Agents, and Decentralized Control","volume":"39 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2012-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"6","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Workshop on Programming based on Actors, Agents, and Decentralized Control","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2414639.2414647","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 6
Abstract
We present a logic for proving functional properties of concurrent component-based systems. A component is either a single actor or a group of dynamically created actors. The component hierarchy is based on the actor creation tree. The actors work concurrently and communicate asynchronously. Each actor is an instance of an actor class. An actor class determines the behavior of its instances. We assume that specifications of the behavior of the actor classes are available. The logic allows deriving properties of larger components from specifications of smaller components hierarchically.
The behavior of components is expressed in terms of traces where a trace is a sequence of events. A component specification relates traces of input events to traces of output events. Generalizing Hoare-like logics from states to traces and from statements to components, we write {p} C {q} to mean that if an input trace satisfies p, component C produces output traces satisfying q; that is, p and q are assertions over traces. Such specifications are partial in that they only specify the reaction of C to input traces satisfying p.
This paper develops the trace semantics and specification technique for actor-based component systems, presents important proof rules, proves soundness of the rules, and illustrates the interplay between the trace semantics, the specification technique and the proof rules by an example derived from an industrial Erlang case study.
提出了一种证明并发组件系统功能特性的逻辑。组件可以是单个参与者,也可以是一组动态创建的参与者。组件层次结构基于角色创建树。参与者并发地工作并异步地通信。每个参与者都是参与者类的一个实例。参与者类决定其实例的行为。我们假设参与者类的行为规范是可用的。该逻辑允许从较小组件的规范中分层地派生较大组件的属性。组件的行为用跟踪表示,其中跟踪是一系列事件。组件规范将输入事件的跟踪与输出事件的跟踪联系起来。将类似hoare的逻辑从状态到轨迹和从语句到组件进行一般化,我们写{p} C {q}表示如果输入轨迹满足p,组件C产生满足q的输出轨迹;也就是说,p和q是轨迹上的断言。这些规范是局部的,因为它们只规定了C对满足p的输入轨迹的反应。本文发展了基于参与者的组件系统的跟踪语义和规范技术,提出了重要的证明规则,证明了这些规则的合理性,并通过一个工业Erlang案例研究说明了跟踪语义、规范技术和证明规则之间的相互作用。