CoPilot
CoPilot

CoPilot is a domain-specific, embedded-stream language for generating hard real-time C code for monitors. Copilot is a runtime verification framework written in Haskell. It allows the user to write programs in a simple but powerful way using a stream-based approach.

Programs can be interpreted for testing, or translated into C99 code to be incorporated in a project or as a standalone application. The C99 backend output is constant in memory and time, making it suitable for systems with hard realtime requirements.

 

Image removed.
This is a simple example showing basic usage. It implements a home heating system: It heats when temp gets too low, and stops when it is high enough. It reads temperature as a byte (range -50C to 100C) and translates this to Celsius.

 

Acknowledgements

This work is supported in part by the  DARPA Assured Autonomy  program.

Contacts
ORGANIZATION

NASA

Galois, Inc.