# On Modelling and Analysing Concurrent Systems

[Doktorsavhandling]

In order to verify program correctness one needs an appropriate programming language, a specification of the program correctness, and some methods to prove the program correct. We examine two of these aspects: a language for writing a particular kind of concurrent programs, that is modelling concurrent systems, and methods to prove certain correctness properties of concurrent programs, that is analysing concurrent systems.

Modelling: Ethernet-style broadcast is a pervasive style of computer communication. In this style, the medium is a single nameless channel. Previous work on modelling such systems proposed CBS. In this dissertation, we propose a fundamentally different calculus called HOBS. Compared to CBS, HOBS 1) is higher order rather than first order, 2) supports dynamic subsystem encapsulation rather than static, and 3) does not require an "underlying language" to be Turing-complete. Moving to a higher order calculus is key to increasing the expressivity of the primitive calculus and alleviating the need for an underlying language. The move, however, raises the need for significantly more machinery to establish the basic properties of the new calculus. This dissertation develops the basic theory for HOBS and presents two example programs that illustrate programming in this language. The key technical underpinning is an adaptation of Howe's method to HOBS to prove that bisimulation is a congruence. From this result, HOBS is shown to embed the lazy λ-calculus, and partially encode π-calculus and its broadcasting version bπ-calculus.

Analysing: The concept of session types has been proposed as an approach to statically verify the interaction between clients and servers: accurately matching service requests, and replies when appropriately-typed clients and servers are plugged together. The current theories of session types have two fundamental limitations. Firstly, session types capture only completely synchronous protocols. Secondly, session types assume that the underlying computational model has the ability to create separate channels for each interaction, making it difficult to apply to concurrent languages lacking such facilities, as for example Erlang. These two limitations motivate a new type system of multi-session types, which builds on and extends earlier work on session types, and a generic type system for the π-calculus. The resulting system has an undecidable typing relation for the complete language. Therefore, two decidable fragments are studied: properly nested multi-session types, and certain one-to-many interaction patterns.

Denna post skapades 2006-08-25. Senast ändrad 2013-09-25.

CPL Pubid: 12160