Communicating sequential processes
Communicating sequential processes
The ESTEREL synchronous programming language: design, semantics, implementation
Science of Computer Programming
Bounded scheduling of process networks
Bounded scheduling of process networks
Eraser: a dynamic data race detector for multithreaded programs
ACM Transactions on Computer Systems (TOCS)
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Communicating and mobile systems: the &pgr;-calculus
Communicating and mobile systems: the &pgr;-calculus
Type-based race detection for Java
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Guava: a dialect of Java without data races
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Concepts and Notations for Concurrent Programming
ACM Computing Surveys (CSUR)
CCured: type-safe retrofitting of legacy code
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A parameterized type system for race-free Java programs
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Efficient and precise datarace detection for multithreaded object-oriented programs
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Preemption in Concurrent Systems
Proceedings of the 13th Conference on Foundations of Software Technology and Theoretical Computer Science
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
The Join Calculus: A Language for Distributed Mobile Programming
Applied Semantics, International Summer School, APPSEM 2000, Caminha, Portugal, September 9-15, 2000, Advanced Lectures
A type and effect system for atomicity
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Rationale for the design of the Ada programming language
ACM SIGPLAN Notices - Rationale for the deisgn of the Ada programming language
Atomizer: a dynamic atomicity checker for multithreaded programs
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Monitors and Concurrent Pascal: a personal history
History of programming languages---II
SHIM: a deterministic model for heterogeneous embedded systems
Proceedings of the 5th ACM international conference on Embedded software
Associating synchronization constraints with data in an object-oriented language
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
FairThreads: mixing cooperative and preemptive threads in C: Research Articles
Concurrency and Computation: Practice & Experience
SHIM: a deterministic model for heterogeneous embedded systems
IEEE Transactions on Very Large Scale Integration (VLSI) Systems
Static elaboration of recursion for concurrent software
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Proceedings of the conference on Design, automation and test in Europe
SystemJ compilation using the tandem virtual machine approach
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Celling SHIM: compiling deterministic concurrency to a heterogeneous multicore
Proceedings of the 2009 ACM symposium on Applied Computing
Compositional deadlock detection for rendezvous communication
EMSOFT '09 Proceedings of the seventh ACM international conference on Embedded software
SyncCharts in C: a proposal for light-weight, deterministic concurrency
EMSOFT '09 Proceedings of the seventh ACM international conference on Embedded software
Concurrency and Communication: Lessons from the SHIM Project
SEUS '09 Proceedings of the 7th IFIP WG 10.2 International Workshop on Software Technologies for Embedded and Ubiquitous Systems
Buffer sharing in CSP-like programs
MEMOCODE'09 Proceedings of the 7th IEEE/ACM international conference on Formal Methods and Models for Codesign
SystemJ: A GALS language for system level design
Computer Languages, Systems and Structures
WCRT algebra and interfaces for Esterel-style synchronous processing
Proceedings of the Conference on Design, Automation and Test in Europe
Buffer sharing in rendezvous programs
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems - Special section on the ACM IEEE international conference on formal methods and models for codesign (MEMOCODE) 2009
Deterministic OpenMP for race-free parallelism
HotPar'11 Proceedings of the 3rd USENIX conference on Hot topic in parallelism
Exploiting parallelism in deterministic shared memory multiprocessing
Journal of Parallel and Distributed Computing
ACM Transactions on Embedded Computing Systems (TECS) - Special section on ESTIMedia'12, LCTES'11, rigorous embedded systems design, and multiprocessor system-on-chip for cyber-physical systems
Proceedings of the Conference on Design, Automation and Test in Europe
Hi-index | 0.00 |
Concurrent programming languages should be a good fit for embedded systems because they match the intrinsic parallelism of their architectures and environments. Unfortunately, typical concurrent programming formalisms are prone to races and nondeterminism, despite the presence of mechanisms such as monitors.In this paper, we propose SHIM, the core of a deterministic concurrent language, meaning the behavior of a program is independent of the scheduling of concurrent operations. SHIM does not sacrifice power or flexibility to achieve this determinism. It supports both synchronous and asynchronous paradigms-loosely and tightly synchronized threads-the dynamic creation of threads and shared variables, recursive procedures, and exceptions.We illustrate our programming model with examples including breadth-first-search algorithms and pipelines. By construction, they are race-free. We provide the formal semantics of SHIM and a pre-liminary implementation.