ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment
Journal of the ACM (JACM)
Proof, language, and interaction
Efficient compilation of ESTEREL for real-time embedded systems
CASES '00 Proceedings of the 2000 international conference on Compilers, architecture, and synthesis for embedded systems
Toward a discipline of real-time programming
Communications of the ACM
Synchronous Programming of Reactive Systems
Synchronous Programming of Reactive Systems
Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications
Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications
Real-Time Systems and Programming Languages: ADA 95, Real-Time Java, and Real-Time POSIX
Real-Time Systems and Programming Languages: ADA 95, Real-Time Java, and Real-Time POSIX
Reliable and Precise WCET Determination for a Real-Life Processor
EMSOFT '01 Proceedings of the First International Workshop on Embedded Software
A Giotto-Based Helicopter Control System
EMSOFT '02 Proceedings of the Second International Conference on Embedded Software
Time-Safety Checking for Embedded Programs
EMSOFT '02 Proceedings of the Second International Conference on Embedded Software
A programmable microkernel for real-time systems
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
Composable code generation for distributed giotto
LCTES '05 Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Low-latency time-portable real-time programming with Exotasks
ACM Transactions on Embedded Computing Systems (TECS)
Separate compilation of hierarchical real-time programs into linear-bounded Embedded Machine code
Science of Computer Programming
Hi-index | 0.00 |
The Embedded Machine is a virtual machine that mediates in real time the interaction between software processes and physical processes. It separates the compilation of embedded programs into two phases. The first phase, the platform-independent compiler phase, generates E code (code executed by the Embedded Machine), which supervises the timing, not the scheduling of, application tasks relative to external events such as clock ticks and sensor interrupts. E code is portable and, given an input behavior, exhibits predictable (i.e., deterministic) timing and output behavior. The second phase, the platform-dependent compiler phase, checks the time safety of the E code, that is, whether platform performance (determined by the hardware) and platform utilization (determined by the scheduler of the operating system) enable its timely execution. We have used the Embedded Machine to compile and execute high-performance control applications written in Giotto, such as the flight control system of an autonomous model helicopter.