eprintid: 351 rev_number: 15 eprint_status: archive userid: 32 dir: disk0/00/00/03/51 datestamp: 2011-06-10 12:20:53 lastmod: 2014-01-15 10:23:37 status_changed: 2011-06-10 12:20:53 type: article metadata_visibility: show item_issues_count: 0 creators_name: De Nicola, Rocco creators_name: Ferrari, GianLuigi creators_name: Pugliese, Rosario creators_id: r.denicola@imtlucca.it creators_id: creators_id: title: KLAIM: A Kernel Language for Agents Interaction and Mobility ispublished: pub subjects: QA75 divisions: CSA full_text_status: public keywords: Programming Languages, Mobile Code Languages, Semantics of Programming Languages, Language Design, Coordination Models. note: (c) 1998 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other users, including reprinting/ republishing this material for advertising or promotional purposes, creating new collective works for resale or redistribution to servers or lists, or reuse of any copyrighted components of this work in other works. 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. date: 1998 date_type: published publication: IEEE Transactions on Software Engineering volume: 24 number: 5 publisher: IEEE Computer Society pagerange: 315-330 id_number: 10.1109/32.685256 refereed: TRUE issn: 0098-5589 official_url: http://doi.ieeecomputersociety.org/10.1109/32.685256 citation: De Nicola, Rocco and Ferrari, GianLuigi and Pugliese, Rosario KLAIM: A Kernel Language for Agents Interaction and Mobility. IEEE Transactions on Software Engineering, 24 (5). pp. 315-330. ISSN 0098-5589 (1998) document_url: http://eprints.imtlucca.it/351/1/tse_1998a.pdf