Communicating sequential processes
Communicating sequential processes
The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proof, language, and interaction
What is in a Step: On the Semantics of Statecharts
TACS '91 Proceedings of the International Conference on Theoretical Aspects of Computer Software
Tutorial: Compiling concurrent languages for sequential processors
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Constructive Analysis of Cyclic Circuits
EDTC '96 Proceedings of the 1996 European conference on Design and Test
Computer
Scheduling-independent threads and exceptions in SHIM
EMSOFT '06 Proceedings of the 6th ACM & IEEE International conference on Embedded software
Compiling Esterel
Synchronous objects with scheduling policies: introducing safe shared memory in lustre
Proceedings of the 2009 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
SyncCharts in C: a proposal for light-weight, deterministic concurrency
EMSOFT '09 Proceedings of the seventh ACM international conference on Embedded software
Constructive Boolean circuits and the exactness of timed ternary simulation
Formal Methods in System Design
Hi-index | 0.00 |
Synchronous languages ensure deterministic concurrency, but at the price of heavy restrictions on what programs are considered valid, or constructive. Meanwhile, sequential languages such as C and Java offer an intuitive, familiar programming paradigm but provide no guarantees with regard to deterministic concurrency. The sequentially constructive model of computation (SC MoC) presented here harnesses the synchronous execution model to achieve deterministic concurrency while addressing concerns that synchronous languages are unnecessarily restrictive and difficult to adopt. In essence, the SC MoC extends the classical synchronous MoC by allowing variables to be read and written in any order as long as sequentiality expressed in the program provides sufficient scheduling information to rule out race conditions. The SC MoC is a conservative extension in that programs considered constructive in the common synchronous MoC are also SC and retain the same semantics. In this paper, we identify classes of variable accesses, define sequential constructiveness based on the concept of SC-admissible scheduling, and present a priority-based scheduling algorithm for analyzing and compiling SC programs.