Separate Compilation for Synchronous Modules
نویسندگان
چکیده
Synchronous models are useful for designing real-time embedded systems because they provide timing control and deterministic concurrency. However, the semantics of such models usually require an entire system to be compiled at once to analyze the dependencies among modules. The alternative is to write modules that can respond when the values of some of their inputs are unknown, a tedious and error-prone process. We present a compilation technique that allows a programmer to describe synchronous modules without having to consider undefined inputs. Our algorithm transforms such a description into code that does as much as it can with undefined inputs, allowing modules to be compiled separately and assembled later. We implemented our technique in a compiler for the Esterel language and present results that show the technique does not impose a substantial overhead.
منابع مشابه
Compositional synthesis of latency-insensitive systems from multi-clocked synchronous specifications
We consider the problem of synthesizing correct-by-construction globally asynchronous, locally synchronous (GALS) implementations from modular synchronous specifications. This involves the synthesis of asynchronous wrappers that drive the synchronous clocks of the modules and perform input reading in such a fashion as to preserve, in a certain sense, the global properties of the system. Our app...
متن کاملAn ML-Like Module System for the Synchronous Language SIGNAL
Synchronous languages such as Signal are best suited for the design of dependable real time systems Synchronous languages enable a very high level speci cation and an extremely modular implementation of com plex systems by structurally decomposing them into elementary synchronous processes Separate compilation in reactive languages is however made a dif cult issue by global safety requirements ...
متن کاملSeparate Compilation of Polychronous Specifications
As code generation for synchronous programs requires strong safety properties to be satisfied, compositionality becomes a difficult goal to achieve. Most synchronous languages, such as Esterel, Lustre or Signal require a given module or compilation unit to be insensitive to latency that communication with its environment may incur. In Lustre or Signal, for instance, a compilation unit must sati...
متن کاملA Higher-order Module Discipline with Separate Compilation, Dynamic Linking, and Pickling
We present a higher-order module discipline with separate compilation and concurrent dynamic linking. Based on first-order modules one can program security policies for systems that link modules from untrusted locations (e.g., Java). We introduce a pickling operation that writes persistent clones of volatile, possibly higher-order data structures on the file system. Our pickling operation respe...
متن کاملSeparate Compilation for
This paper presents the outline of a module system for the Scheme programming language in order to solve several problems commonly encountered with contemporary implementations. These problems include the lack of support for separate compilation and crossmodule type checking as well as the necessity for non-standard language extensions to aid certain compiler optimizations like open compilation...
متن کامل