Quals research talk: Warble: An embedded Domain Specific Language for Timed, Cyber-Physical Systems
Developers labor over the rates of hardware in their Cyber Physical
Systems. Developers observe how the hardware actuators act at runtime
to determine how to adjust timing properties of hardware sensor
polling and data transformation. For example, typical micro-controller
CPS programs insert delay statements into imperative code, but these
delay statements impact the timing behavior of subsequent statements
and may introduce bugs.
Warble, an embedded domain specific language (eDSL) for describing CPS programs, eliminates the labor over hardware rates with its three components. Expressions represent timed hardware calls and dataflow computation. The type system enforces regular hardware call rates and prevents dropped or redundantly transformed data without annotations in the expression language. A runtime system can be composed with Warble to execute an imperative, compiled representation; a runtime system for Haskell will be demoed and one for C will be discussed. To illustrate these three components of Warble, a running example will show the design and implementation of a smart umbrella.