Traditional imperative synchronous programming languages heavily rely on a strict separation between data memory and communication signals. Signals can be shared between computational units but cannot be overwritten w...
详细信息
Traditional imperative synchronous programming languages heavily rely on a strict separation between data memory and communication signals. Signals can be shared between computational units but cannot be overwritten within a synchronous reaction cycle. Memory can be destructively updated but cannot be shared between concurrent threads. This incoherence makes traditional imperative synchronouslanguages cumbersome for the programmer. The recent definition of sequentially constructive synchronouslanguages offers an improvement. It removes the separation between data memory and communication signals and unifies both through the notion of clock synchronized shared memory. However, it still depends on global causality analyses, which precludes black-box procedural abstraction. This complicates reuse and composition of software components. This article shows how black-box procedural abstraction can be accommodated inside the sequentially constructive model of computation. We present the Sequentially Constructive Procedural language (SCoPL) and its semantic theory of policy-constructive synchronous processes. SCoPL supports black-box procedural abstractions using policy interfaces to ensure that procedure calls are memory-safe and wait-free and their scheduling is determinate and causal. At the same time, a policy interface constrains the level of freedom for the implementation and subsequent refactoring of a procedure. As a result, policies enable separate compilation and composition of procedures. We present our extensions abstractly as a formal semantics for SCoPL and motivate it concretely in the context of the open-source, embedded, real-time language Blech.
ESTEREL is a synchronous concurrent programminglanguage dedicated to reactive systems (controllers, protocols, man-machine interfaces etc.). ESTEREL has an efficient standard software implementation based on well-def...
详细信息
ESTEREL is a synchronous concurrent programminglanguage dedicated to reactive systems (controllers, protocols, man-machine interfaces etc.). ESTEREL has an efficient standard software implementation based on well-defined mathematical semantics. We present a new hardware implementation of the pure synchronization subset of the language. Each program generates a specific circuit that responds to any input in one clock cycle. When the source program satisfies some statically checkable dynamic properties, the circuit is shown to be semantically equivalent to the source program. The hardware translation has been effectively implemented on the programmable active memory PERLE0 developed by J Vuillemin and his group at Digital Equipment.
暂无评论