Hostname: page-component-74656f9884-c52kr Total loading time: 0 Render date: 2026-11-09T09:57:37.279Z Has data issue: false hasContentIssue false

Runtime verification and validation of functional reactive systems

Part of: ICFP2017

Published online by Cambridge University Press:  26 August 2020

IVAN PEREZ
Affiliation:
National Institute of Aerospace, Hampton, VA, 23666, USA (e-mail: ivan.perez@nianet.org)
HENRIK NILSSON
Affiliation:
School of Computer Science, University of Nottingham, Nottingham, NG8 1BB, UK (e-mail:henrik.nilsson@nottingham.ac.uk)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

Many types of interactive applications, including reactive systems implemented in hardware, interactive physics simulations and games, raise particular challenges when it comes to testing and debugging. Reasons include de facto lack of reproducibility and difficulties of automatically generating suitable test data. This paper demonstrates that certain variants of functional reactive programming (FRP) implemented in pure functional languages can mitigate such difficulties by offering referential transparency at the level of whole programs. This opens up for a multi-pronged approach for assisting with testing and debugging that works across platforms, including assertions based on temporal logic, recording and replaying of runs (also from deployed code), and automated random testing using QuickCheck. When combined with extensible forms of FRP that allow for constrained side effects, it allows us to not only validate software simulations but to analyse the effect of faults in reactive systems, confirm the efficacy of fault tolerance mechanisms and perform software- and hardware-in-the-loop testing. The approach has been validated on non-trivial systems implemented in several existing FRP implementations, by means of careful debugging using a tool that allows the test or simulation under scrutiny to be controlled, moving along the execution time line, and pin-pointing of violations of assertions on personal computers as well as external devices.

Information

Type
Research Article
Copyright
© The Author(s), 2020. Published by Cambridge University Press
Submit a response

Discussions

No Discussions have been published for this article.