Extended Rebeca: A Component-Based Actor Language with Synchronous Message Passing Marjan Sirjani Frank de Boer Ali Movaghar Amin Shali Department of Electrical and Computer Engineering University of Tehran, Karegar Ave., Tehran, Iran School of Computer Science Institute for Studies in Theoretical Physics and Mathematics, Niavaran Square, Tehran, Iran Department of Software Engineering Centrum voor Wiskunde en Informatica, Kruislaan 413, 1098 SJ, Amsterdam, The Netherlands Department of Computer Engineering Sharif University of Technology , Azadi Ave., Tehran, Iran @ @ @ @ Abstract In this paper, we propose extended Rebeca as a tool- supported actor-based language for modeling and verify- ing concurrent and distributed systems. We enrich Rebeca with a formal concept of components which integrates the message-driven computational model of actor-based lan- guages with synchronous message passing. Components are used to encapsulate a set of internal active objects which react asynchronously to messages by means of meth- ods and which additionally interact via a synchronous mes- sage passing mechanism. Components themselves inter- act only via asynchronous and anonymous messages. We present our compositional verification approach and ab- straction techniques, and the theory corresponding to it, based on the formal semantics of Rebeca. These techniques are exploited to overcome the state explosion problem in model checking. Keywords: the actor model, reactive systems, Rebeca, component, modular verification. 1 Introduction With the increasing use of concurrent and distributed systems, establishing a reliable approach in developing such systems is a critical problem. This problem can only be solved in a rigorous manner by verification methods which are based on a formal semantics. In a formal verification approach, we need a modeling language to represent the behavior of the system, a specification language to embody the required properties, and an analysis method to verify the behavior against the required properties. Despite the recent successful application of formal meth- ods, further research is still required. One of the major prob- lems in practice is the difference in abstraction level and the resulting semantic gap between the modeling and pro- gramming languages used by software designers and pro- grammers and the modeling languages used by the verifi- cation tools. Deductive approaches in formal verification are mostly based on mathematical oriented languages which cannot be easily used by software engineers, and modeling languages supported by model checker tools usually are not very close to programming languages used by practition- ers. On the other hand, languages used by practitioners, as modelers or programmers, are too informal or too heavy to be analyzed. Another problem lies in the analysis meth- ods. Deductive methods need a high expertise and interac- tion with theorem provers, and model checkers suffer from the state explosion problem, when the number of system components grows. Rebeca ( ) is an actor- based language with a formal foundation, introduced in [14, 16] and which is designed in an effort to bridge the gap between formal verification approaches and real applica- tions. Rebeca is supported by a front-end tool for the trans- lation of Rebeca codes into existing model-checker lan- guages [15, 17]. Compositional verification and abstrac- tion techniques are introduced to reduce the state space and make it possible to verify complicated reactive systems. In this paper, we introduce an extended version of Re- beca, by enriching the model of computation with a formal concept of a component. The motivation is to provide a 1 Proceedings of the Fifth International Conference on Application of Concurrency to System Design (ACSD’05) 1550-4808/05 $ 20.00 IEEE