Skip to main content
European Commission logo
polski polski
CORDIS - Wyniki badań wspieranych przez UE
CORDIS
CORDIS Web 30th anniversary CORDIS Web 30th anniversary
Zawartość zarchiwizowana w dniu 2024-05-27

Mobile Calculi Based on Domains

Rezultaty

Klaim is a formalism that supports a programming paradigm where processes, like data, can be moved from one computing environment to another. Klaim naturally supports programming with explicit localities; it consists of a core Linda with multiple tuple spaces and of a set of operators for building processes. X-Klaim is a programming language, based on Klaim, for programming distributed applications with (object-oriented) mobile code. It permits exchanging data and processes and programming mobile agents to retrieve information over the net. The xklaim compiler produce Java code, by translating X-Klaim into a Java program that uses KLAVA, a Java package that implements the run-time system for Klaim. The Klaim approach can be exploited by programming directly in Java and while taking advantage the KLAVA package.
This result gathers all the scientific results all the Mikado project, in the form of a public Web site with all the major project deliverables, published papers and technical reports. Mikado results fall into four categories: - Models for distributed and mobile computing. The project has developed a generic membrane calculus and studied several models of distributed and mobile programming, including the MiKO calculus (an object-based declination of the generic membrane calculus), Dpi and its variants (notably Safe Dpi, a typed higher-order variant of Dpi, and Dpi with failures), Klaim and its variants (notably Klaim with explicit links and failures), variants of Ambients (notably, the M3 calculus), the ULM calculus, and the Kell calculus. While the project has not succeeded in unifying these different calculi in a single model, the generic membrane calculus provides a common frame of reference for these models and their different types of localities, with the exception of the Kell calculus which can be seen as a lower level calculus in which the membrane calculus itself can be encoded. These different calculi constitute contributions to a general understanding of domains or localities in distributed and mobile programming. It is expected that they can be exploited to serve as a basis for future programming models and languages. - Type systems for domain-based calculi. The project has developed several static and dynamic type systems for calculi developed in the Mikado project. There are three main areas where innovative type systems have been proposed: access control, mobility control, and information flow control. Access control and mobility control are crucial elements for the security of global computations. The work done in Mikado notably around the Safe Dpi calculus and the Klaim calculus, shows how a combination of static and dynamic type systems can provide an effective support of policies controlling access to, and moves between localities. The work done in Mikado on information flow control extends considerably classical work on the topic. This work on type systems addresses important safety properties for distributed and mobile programming, and it is expected that they can be exploited to verify basic correction properties of Web service workflows and compositions. - Co-inductive proof techniques for domain-based calculi. The definition of co-inductive proof techniques for models of distributed and mobile programming is notoriously difficult, for such models, as exemplified by the different calculi studied in Mikado, are inherently higher-order. Nevertheless, the project can claim several achievements in this area, in particular, the co-inductive characterization of contextual equivalences for higher-order Mikado calculi such as Safe Dpi and variants of Klaim, as well as the development of a bisimulation-based theory for domain-based calculi with failures (Dpi with failures and Klaim with explicit links and failures). These results are more theoretical in nature, and are still partial, with respect e.g. to the more elaborate behavioral theory of the p-calculus, however they constitute important stepping stones to advance the study of the behavioral theory of domain-based higer-order programming models. - Implementation of distributed calculi. The project has developed the IMC framework, and its used it for the implementation of distributed calculi and languages. While there has been in the past decade several works targetting the development of communication frameworks, the IMC framework developed by Mikado is noteworthy for the direct support it provides to implementers of distributed calculi, and the compositionality of its communication framework. In addition, the project has developed or extended implementations of several programming languages based on Mikado models: Klaim and its variants, ULM, and TyCO, Chalk (based on the Kell calculus).
ULM is a programming model that adds reactive programming, distribution and mobility to functional programming. The current implementation is by means of an embedding in the Scheme programming language, and contains a compiler and a virtual machine for the resulting language.
The IMC software framework has been developed to build run-time support for languages oriented aiming at programming global computing applications, including distribution, mobility and migration properties. It provides language designers and developers with primitives to design and implement run-time systems for distributed process calculi and distributed programming languages. It enables platform designers to customize communication protocols and network architectures, and guarantees transparency of name management and code mobility in distributed environments.
TyCO - Typed Concurrent Objects, is an implicitly typed polymorphic concurrent language based on an extension of the asynchronous pi-calculus featuring first class objects, asynchronous messages and process definitions. Definitions allow, among other things, for object classes to be modelled. A type system assigns monomorphic types to variables and polymorphic types to definition identifiers. TyCO provides a very clean model for a concurrent object-based language, which combines the benefits of the formal framework of process calculi with the characteristics of Hewitt's actor system.

Wyszukiwanie danych OpenAIRE...

Podczas wyszukiwania danych OpenAIRE wystąpił błąd

Brak wyników