Describing parallel hardware and software is difficult, especially in an embedded setting. Five years ago, we started the shim project to address this challenge by developing a programming language for hardware/software systems. The resulting language describes asynchronously running processes that has the useful property of scheduling-independence: the i/o of a shim program is not affected by any scheduling choices. This paper presents a history of the shim project with a focus on the key things we have learned along the way
Most compilers focus on optimizing performance, often at the expense of memory, but efficient memory...
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer...
Most compilers focus on optimizing performance, often at the expense of memory, but efficient memory...
Embedded systems demand concurrency for supporting simultaneous actions in their environment and par...
Virtually every system designed today is an amalgam of hardware and software. Unfortunately, softwa...
Concurrent programming languages are good for embedded systems because they match the parallelism of...
Concurrent programming languages should be a good fit for embedded systems because they match the in...
Concurrent programming languages should be a good fit for embedded systems because they match the in...
Multicore shared-memory architectures are becoming prevalent and bring many programming challenges. ...
Concurrent programming languages should be a good fit for embedded systems because they match the in...
Programming concurrent systems is substantially more difficult than programming sequential systems, ...
Typical embedded hardware/software systems are implemented using a combination of C and an HDL such ...
Nondeterminism is a central challenge in most concurrent models of computation. That programmers mus...
Parallel architectures are the way of the future, but are notoriously difficult to program. In addit...
Concurrent programming languages are growing in importance with the advent of multicore systems. Two...
Most compilers focus on optimizing performance, often at the expense of memory, but efficient memory...
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer...
Most compilers focus on optimizing performance, often at the expense of memory, but efficient memory...
Embedded systems demand concurrency for supporting simultaneous actions in their environment and par...
Virtually every system designed today is an amalgam of hardware and software. Unfortunately, softwa...
Concurrent programming languages are good for embedded systems because they match the parallelism of...
Concurrent programming languages should be a good fit for embedded systems because they match the in...
Concurrent programming languages should be a good fit for embedded systems because they match the in...
Multicore shared-memory architectures are becoming prevalent and bring many programming challenges. ...
Concurrent programming languages should be a good fit for embedded systems because they match the in...
Programming concurrent systems is substantially more difficult than programming sequential systems, ...
Typical embedded hardware/software systems are implemented using a combination of C and an HDL such ...
Nondeterminism is a central challenge in most concurrent models of computation. That programmers mus...
Parallel architectures are the way of the future, but are notoriously difficult to program. In addit...
Concurrent programming languages are growing in importance with the advent of multicore systems. Two...
Most compilers focus on optimizing performance, often at the expense of memory, but efficient memory...
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer...
Most compilers focus on optimizing performance, often at the expense of memory, but efficient memory...