%R 10.1016/j.entcs.2005.12.110 %J Electronic Notes in Theoretical Computer Science %X We briefly describe the motivations and the background behind the design of Klaim, a process description language that has proved to be suitable for describing a wide range of distributed applications with agents and code mobility. We argue that a drawback of Klaim is that it is neither a programming language, nor a process calculus. We then outline the two research directions we have pursued more recently. On the one hand we have evolved Klaim to a full-fledged language for distributed mobile programming. On the other hand we have distilled the language into a number of simple calculi that we have used to define new semantic theories and equivalences and to test the impact of new operators for network aware programming. %L eprints297 %D 2006 %K Process Algebras; Network Aware Programming; Behavioural Equivalences; Formal Specifications; Systems Verification %A Rocco De Nicola %V 162 %I Elsevier %O Proceedings of the Workshop "Essays on Algebraic Process Calculi" (APC 25) %T From Process Calculi to Klaim and Back %P 159-162