Abstract
The C programming language is widely used for programming space flight software and other safety-critical real time systems. C, however, is far from ideal for this purpose: as is well known, it is both low-level and unsafe. This paper describes Spot, a language derived from C for programming space flight systems. Spot aims to maintain compatibility with existing C code while improving the language and supporting verification with the SPIN model checker. The major features of Spot include actor-based concurrency, distributed state with message passing and transactional updates, and annotations for testing and verification. Spot also supports domain-specific annotations for managing spacecraft state, e.g., communicating telemetry information to the ground.
We describe the motivation and design rationale for Spot, give an overview of the design, provide examples of Spot's capabilities, and discuss the current status of the implementation.
- G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986. Google Scholar
Digital Library
- G. Holzmann. The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley Publishing Company, 2003. Google Scholar
Digital Library
Index Terms
Spot: a programming language for verified flight software
Recommendations
Spot: a programming language for verified flight software
HILT '14: Proceedings of the 2014 ACM SIGAda annual conference on High integrity language technologyThe C programming language is widely used for programming space flight software and other safety-critical real time systems. C, however, is far from ideal for this purpose: as is well known, it is both low-level and unsafe. This paper describes Spot, a ...
Tackling the awkward squad for reactive programming: the actor-reactor model
REBLS 2017: Proceedings of the 4th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and SystemsIn his famous paper entitled "Tackling the Awkward Squad", Peyton Jones studies how features that traditionally did not fit in the functional programming paradigm can be added to a functional language via careful language design (e.g. using monads), ...
Inheritance and Synchronization in Concurrent OOP
ECOOP '87: Proceedings of the European Conference on Object-Oriented ProgrammingThis paper discusses knowledge sharing (inheritance) mechanisms for Object-Oriented Programming (OOP) in the context of concurrent (distributed) languages. We review three different schemes: inheritance, delegation and copy. A fourth model, called ...







Comments