|Title:||OLL Compiler Project|
|Conference:||Communicating Process Architectures 2015|
Barry M. Cook
OLL is the latest iteration of a series of compiler projects I've written over the past 20+ years. During that time I've targeted C, VHDL (hardware), ARM and Java's JVM. Each has concentrated on a different aspect of the challenge.
I've also designed, by hand, a lot of high-performance test equipment hardware/ firmware and control/interface software; also a little bit of a flight system for a satellite. All have required care to (try to) ensure reliable operation, eliminating run-time failures. CSP has been a critical framework that has worked very well.
I am more convinced than ever that I, and maybe others, could use a design language that equally well describes algorithms regardless of whether they are to be run as hardware or software — not Hardware/Software Co-Design but Hardware/Software Same-Design.
Support for eliminating run-time errors is essential but it is theoretically impossible to adequately analyse arbitrary programs - and relatively easy to create pathological cases that would break the compiler. The interesting question, however, is whether it is possible to handle a large-enough set of real (not contrived) programs to be useful. This project aims to explore the bounds of practicality.
I will give a brief overview of the aims of this ongoing project and report its current status.