Team Pop Art

Overall Objectives
Scientific Foundations
Application Domains
New Results
Contracts and Grants with Industry
Other Grants and Activities

Section: New Results

New Programming Languages for Embedded Systems

Participants : Alain Girault [contact person] , Avinash Malik.

The DSystemJ Programming Language for Dynamic Distributed GALS Systems

We have extended the SystemJ programming language [13] with dynamic constructs to better design and implement dynamic distributed Globally Asynchronous Locally Synchronous (GALS) systems. The new language is called DSystemJ . We have studied its formal model of computation, its formal syntax and semantics, its compilation, and its implementation. DSystemJ is aimed at dynamic distributed systems, which use socket based communication protocols for communicating between components. The language allows the creation and control at runtime of asynchronous processes called clock-domains, their mobility on a distributed execution platform, as well as the runtime reconfiguration of the system's functionality and topology. Like in SystemJ , all the data computations can be efficiently programmed in Java . As DSystemJ is based on a GALS model of computation and has a formal semantics, it offers very safe mechanisms for implementation of distributed systems, as well as potential for their formal verification. The runtime support is implemented in the SystemJ GALS language, which can therefore be considered as a static subset of DSystemJ . A journal article has been submitted. This work has been done in collaboration with Zoran Salcic (University of Auckland).

The PRET-C Programming Language for Time Predictability

We have continued our work on the Pret-C language (Precision Timed C), for predictable and lightweight multi-threading in C. Pret-C supports synchronous concurrency, preemption, and a high-level construct for logical time. In contrast to existing synchronous languages, Pret-C offers C-based shared memory communications between concurrent threads that is guaranteed to be thread safe. Due to the proposed synchronous semantics, the mapping of logical time to physical time can be achieved much more easily than with plain C, thanks to a Worst Case Reaction Time (WCRT) analyzer (not presented here). Associated to the Pret-C programming language, we present a dedicated target architecture, called ARPRET, which combines a hardware accelerator associated to an existing softcore processor. This allows us to improve the throughput while preserving the predictability. With extensive benchmarking, we have demonstrated that ARPRET not only achieves completely predictable execution of Pret-C programs, but also improves the throughput when compared to the pure software execution of Pret-C . We have also shown that the Pret-C software approach is significantly more efficient in comparison to two other light-weight concurrent C variants (namely SC and Protothreads), as well as the well-known Esterel synchronous programming language [14] , [15] . This work has been done in collaboration with Partha Roop and Sidharta Andalam (University of Auckland).


Logo Inria