This Article 
 Bibliographic References 
 Add to: 
KLAIM: A Kernel Language for Agents Interaction and Mobility
May 1998 (vol. 24 no. 5)
pp. 315-330

Abstract—We investigate the issue of designing a kernel programming language for mobile computing and describe KLAIM, a language that supports a programming paradigm where processes, like data, can be moved from one computing environment to another. The language consists of a core Linda with multiple tuple spaces and of a set of operators for building processes. KLAIM naturally supports programming with explicit localities. Localities are first-class data (they can be manipulated like any other data), but the language provides coordination mechanisms to control the interaction protocols among located processes. The formal operational semantics is useful for discussing the design of the language and provides guidelines for implementations. KLAIM is equipped with a type system that statically checks access rights violations of mobile agents. Types are used to describe the intentions (read, write, execute, etc.) of processes in relation to the various localities. The type system is used to determine the operations that processes want to perform at each locality, and to check whether they comply with the declared intentions and whether they have the necessary rights to perform the intended operations at the specific localities. Via a series of examples, we show that many mobile code programming paradigms can be naturally implemented in our kernel language. We also present a prototype implementaton of KLAIM in Java.

[1] M. Abadi and A. Gordon, "A Calculus for Cryptographic Protocols: the Spi-Calculus," Proc. Fourth ACM Conf. Computer and Comm. Security, 1997.
[2] R. Amadio and S. Prasad, "Localities and Failures," FCT&TCS 14, Proc., P.S. Thiagarajan, ed., Lecture Notes in Computer Science 880, pp. 205-216. Springer-Verlag, 1994.
[3] K. Arnold and J. Gosling, The Java Programming Language, Addison-Wesley, Reading, Mass., 1996.
[4] G. Berry and G. Boudol,“The chemical abstract machine,”Theoretical Comput. Sci., vol. 96, pp. 217–248, 1992.
[5] L. Bettini, "Progetto e Realizzazione di un Linguaggio di Programmazione per Codice Mobile," in Italian, Tesi di Laurea, Dipartimento di Sistemi e Informatica, Universitàdi Firenze, 1998.
[6] G. Boudol, I. Castellani, M. Hennessy, and A. Kiehn, "Observing Localities," Theoretical Computer Science, vol. 114, 1993.
[7] L. Cardelli, "A Language with Distributed Scope," Computing Systems, vol. 8, no. 1, pp. 27-59. MIT Press, 1995.
[8] L. Cardelli, "Global Computation Manuscript," 1996. Available at URLhttp:/
[9] L. Cardelli and A.D. Gordon, "Mobile Ambients," Foundations of Software Science and Computation Structures, Lecture Notes in Computer Science, vol. 1378, Springer-Verlag, Berlin, 1998, pp. 140-155.
[10] N. Carriero and D. Gelernter, "Linda in Context," Comm. ACM, vol. 32, no. 4, Apr. 1989, pp. 444-458.
[11] N. Carriero, D. Gelernter, and J. Leichter, "Distributed Data Structures in Linda," Proc. ACM Symp. Principles of Programming Languages,New York: ACM, pp. 236-242, 1986.
[12] P. Ciancarini and D. Rossi, "Jada: Coordination and Communication for Java Agents," Mobile Object Systems: Towards the Programmable Internet, J. Vitek and C. Tschudin, eds., Lecture Notes in Computer Science 1,222, pp. 213-228.Berlin: Springer-Verlag, 1997.
[13] F. Corradini and R. De Nicola, "Locality Based Semantics for Process Algebras," Acta Informatica, vol. 34, pp. 291-324, 1997.
[14] G. Cugola, C. Ghezzi, G. Picco, and G. Vigna, "Analyzing Mobile Code Languages," Mobile Object Systems: Towards the Programmable Internet, J. Vitek and C. Tschudin, eds., Lecture Notes in Computer Science, 1222, pp. 93-111, Springer-Verlag, Apr. 1997.
[15] R. De Nicola, G. Ferrari, and R. Pugliese, "Locality Based Linda: Programming with Explicit Localities," TAPSOFT '97, Proc., M. Bidoit and M. Dauchet, eds., Lecture Notes in Computer Science 1214, pp. 712-726. Springer-Verlag, 1997.
[16] R. De Nicola, G. Ferrari, and R. Pugliese, "Coordinating Mobile Agents via Blackboards and Access Rights," Coordination '97, Proc., D. Garlan and D. Le Metayer, eds., Lecture Notes in Computer Science 1282, pp. 220-237, Springer-Verlag, 1997.
[17] R. De Nicola, G. Ferrari, R. Pugliese, and B. Venneri, "Types for Access Control," submitted for publication, 1998. URL
[18] R. De Nicola and R. Pugliese, "A Process Algebra Based on Linda. Coordination '96, Proc., P. Ciancarini and C. Hankin, eds., Lecture Notes in Computer Science 1061, pp. 160-178. Springer-Verlag, 1996.
[19] C. Fournet, G. Gonthier, J.-J. Lévy, L. Maranget, and D. Rémy, "A Calculus of Mobile Agents," Proc. Int'l Conf. Concurrency Theory. Lecture Notes in Computer Science 1,119, pp. 406-421. Springer-Verlag, 1996.
[20] D. Gelernter, "Generative Communication in Linda," ACM Trans. Programming Languages, Vol. 7, No. 1, Jan. 1985, pp. 80-112.
[21] D. Gelernter, "Multiple Tuple Spaces in LINDA," Proc. Conf. Parallel Architectures and Languages Europe, Vol. 2, Lecture Notes in Computer Science, No. 366, 1989, pp. 20-27.
[22] D. Gelernter, N. Carriero, and S. Chandran et al., "Parallel Programming in Linda," Proc. Int'l Conf. Parallel Programming, IEEE, pp. 255-263, 1985.
[23] A. Giacalone, P. Mishra, and S. Prasad, "Facile: A Symmetric Integration of Concurrent and Functional Programming," Int'l J. Parallel Programming, vol. 18, no. 2, 1989.
[24] M. Hennessy and H. Lin, "Symbolic Bisimulations," Theoretical Computer Science, vol. 138, pp. 353-389, 1995.
[25] C.A.R. Hoare, Communicating Sequential Processes, Prentice Hall, Englewood Cliffs, N.J., 1985.
[26] IBM Aglets Workbench—Home Page, 1996. URL address:http: //
[27] A. Ingolfsdottir, "Semantic Models for Communicating Processes with Value-Passing," PhD thesis, Univ. of Edinburgh, 1994.
[28] N. Kobayashi, B. Pierce, and D. Turner, “Linearity and the$\pi{\hbox{-}}{\rm Calculus}$,” Proc. ACM SIGPLAN-SIGACT Symp. Principles of Programming Languages (POPL '96), 1996.
[29] J. Leitcher, Shared Memories, Buses and LANs—Linda Implementations Across the Spectrum of Connectivity," Research Report YALEU/DCS/TR-714, Dept. of Computer Science, Yale Univ., 1989.
[30] R. Milner, Communication and Concurrency, Prentice-Hall, Englewood Cliffs, N.J., 1989.
[31] R. Milner, "The Polyadicπ-Calculus: A Tutorial," Technical Report, ECS-LFCS-91-180, 1991.
[32] R. Milner, J. Parrow, and D. Walker, “A Calculus of Mobile Processes,” Information and Computation, vol. 100, pp. 1-77, 1992.
[33] B. Pierce and D. Turner, "Concurrent Objects in a Process Calculus," Theory and Practice of Parallel Programming, T. Ito and A. Yonezawa, eds., Lecture Notes in Computer Science 907, pp. 186-215, 1994.
[34] B. Pierce and D. Sangiorgi, "Typing and Subtyping for Mobile Processes," Proc. LICS '93, IEEE Press, 1993. A full version appears in Mathematical Struction in Computer Science.
[35] G.D. Plotkin, "A Structural Approach to Operational Semantics," Technical Report DAIMI FN-19, Dept. of Computer Science, Aarhus Univ., 1981.
[36] G.D. Plotkin, "Lectures Notes in Domain Theory," Univ. of Edinburgh, 1983.
[37] R. Pugliese, "Semantic Theories for Asynchronous Languages," PhD thesis VIII-96-6, Dip. Scienze dell'Informazione, Univ. di Roma 'La Sapienza', 1996.
[38] J. Reppy, "Higher Order Concurrency," PhD thesis, Cornell Univ., Tr-92-1285, 1992.
[39] B. Thomsen, L. Leth, and A. Giacalone, "Some Issues in the Semantics of Facile Distributed Programming," Proc. REX Workshop Semantics: Foundations and Applications, J.W. de Bakker, W-P. de Roever, and G. Rezenberg, eds., Lecture Notes in Computer Science 666, pp. 563-593. Springer-Verlag, 1992.
[40] D. Volpano and G. Smith, "A Typed-Based Approach to Program Security," Proc. TAPSOFT '97, Lecture Notes in Computer Science 1214, pp. 607-621. Springer-Verlag, 1997.
[41] J.E. White, "Mobile Agents," in Software Agents, J.M. Bradshaw, ed., MIT Press, Cambridge, Mass., 1997, pp. 437-472.

Index Terms:
Programming languages, mobile code languages, semantics of programming languages, language design, coordination models.
Rocco De Nicola, Gian Luigi Ferrari, Rosario Pugliese, "KLAIM: A Kernel Language for Agents Interaction and Mobility," IEEE Transactions on Software Engineering, vol. 24, no. 5, pp. 315-330, May 1998, doi:10.1109/32.685256
Usage of this product signifies your acceptance of the Terms of Use.