TY - CHAP ID - eprints317 T2 - Global Computing. Programming Environments, Languages, Security, and Analysis of Systems EP - 150 TI - The Klaim Project: Theory and Practice AV - none KW - Process Calculi - Mobile Code - Distributed Applications - Network Awareness - Tuple Spaces - Type Systems - Temporal Logics - Java UR - http://dx.doi.org/10.1007/978-3-540-40042-4_4 SN - 3-540-20583-7 M1 - 2874 N2 - Klaim (Kernel Language for Agents Interaction and Mobility) is an experimental language specifically designed to program distributed systems consisting of several mobile components that interact through multiple distributed tuple spaces. Klaim primitives allow programmers to distribute and retrieve data and processes to and from the nodes of a net. Moreover, localities are first-class citizens that can be dynamically created and communicated over the network. Components, both stationary and mobile, can explicitly refer and control the spatial structures of the network. This paper reports the experiences in the design and development of Klaim. Its main purpose is to outline the theoretical foundations of the main features of Klaim and its programming model. We also present a modal logic that permits reasoning about behavioural properties of systems and various type systems that help in controlling agents movements and actions. Extensions of the language in the direction of object oriented programming are also discussed together with the description of the implementation efforts which have lead to the current prototypes. ED - Priami, Corrado Y1 - 2003/// A1 - Bettini, Lorenzo A1 - Bono, Viviana A1 - De Nicola, Rocco A1 - Ferrari, GianLuigi A1 - Gorla, Daniele A1 - Loreti, Michele A1 - Moggi, Eugenio A1 - Pugliese, Rosario A1 - Tuosto, Emilio A1 - Venneri, Betti PB - Springer SP - 88 T3 - Lecture Notes in Computer Science ER -