From Flow Logic to Static Type Systems for Coordination Languages ✩ Rocco De Nicola a, , Daniele Gorla b , Ren´ e Rydhof Hansen c , Flemming Nielson d , Hanne Riis Nielson d , Christian W. Probst d , Rosario Pugliese a,∗ a Dipartimento di Sistemi e Informatica, Universit` a di Firenze b Dipartimento di Informatica, Universit` a di Roma “La Sapienza” c Department of Computer Science, Aalborg University d Informatics and Mathematical Modelling, Technical University of Denmark Abstract Coordination languages are often used to describe open-ended systems. This makes it challenging to develop tools for guaranteeing security of the coordinated systems and cor- rectness of their interaction. Successful approaches to this problem have been based on type systems with dynamic checks; therefore, the correctness properties cannot be stati- cally enforced. By contrast, static analysis approaches based on Flow Logic usually guar- antee properties statically. In this paper we show how the insights from the Flow Logic approach can be used to construct a type system for statically ensuring secure access to tuple spaces and safe process migration for an extension of the language K. Key words: Global computing, Coordination languages, Formal methods, Flow logic, Type systems 1. Introduction Coordination languages allow two or more components of an application to commu- nicate, by reading/removing/adding data to a shared communication medium, in order to ✩ This work is partially based on two preliminary papers, [12] and [17]. The work has been partially supported by the EU project SENSORIA, IST-2005-016004. ∗ Corresponding author Email addresses: rocco.denicola@unifi.it (Rocco De Nicola), gorla@di.uniroma1.it (Daniele Gorla), rrh@cs.aau.dk (Ren´ e Rydhof Hansen), nielson@imm.dtu.dk (Flemming Nielson), riis@imm.dtu.dk (Hanne Riis Nielson), probst@imm.dtu.dk (Christian W. Probst), pugliese@dsi.unifi.it (Rosario Pugliese) Science of Computer Programming, 75(6):376–397. c Elsevier, 2010.