Javascript must be enabled to continue!
Safe functional reactive programming through dependent types
View through CrossRef
Functional Reactive Programming (FRP) is an approach to reactive programming where systems are structured as networks of functions operating on signals. FRP is based on the synchronous data-flow paradigm and supports both continuous-time and discrete-time signals (hybrid systems). What sets FRP apart from most other languages for similar applications is its support for systems with dynamic structure and for higher-order reactive constructs.
Statically guaranteeing correctness properties of programs is an attractive proposition. This is true in particular for typical application domains for reactive programming such as embedded systems. To that end, many existing reactive languages have type systems or other static checks that guarantee domain-specific properties, such as feedback loops always being well-formed. However, they are limited in their capabilities to support dynamism and higher-order data-flow compared with FRP. Thus, the onus of ensuring such properties of FRP programs has so far been on the programmer as established static techniques do not suffice.
In this paper, we show how dependent types allow this concern to be addressed. We present an implementation of FRP embedded in the dependently-typed language Agda, leveraging the type system of the host language to craft a domain-specific (dependent) type system for FRP. The implementation constitutes a discrete, operational semantics of FRP, and as it passes the Agda type, coverage, and termination checks, we know the operational semantics is total, which means our type system is safe.
Title: Safe functional reactive programming through dependent types
Description:
Functional Reactive Programming (FRP) is an approach to reactive programming where systems are structured as networks of functions operating on signals.
FRP is based on the synchronous data-flow paradigm and supports both continuous-time and discrete-time signals (hybrid systems).
What sets FRP apart from most other languages for similar applications is its support for systems with dynamic structure and for higher-order reactive constructs.
Statically guaranteeing correctness properties of programs is an attractive proposition.
This is true in particular for typical application domains for reactive programming such as embedded systems.
To that end, many existing reactive languages have type systems or other static checks that guarantee domain-specific properties, such as feedback loops always being well-formed.
However, they are limited in their capabilities to support dynamism and higher-order data-flow compared with FRP.
Thus, the onus of ensuring such properties of FRP programs has so far been on the programmer as established static techniques do not suffice.
In this paper, we show how dependent types allow this concern to be addressed.
We present an implementation of FRP embedded in the dependently-typed language Agda, leveraging the type system of the host language to craft a domain-specific (dependent) type system for FRP.
The implementation constitutes a discrete, operational semantics of FRP, and as it passes the Agda type, coverage, and termination checks, we know the operational semantics is total, which means our type system is safe.
Related Results
Programming model abstractions for optimizing I/O intensive applications
Programming model abstractions for optimizing I/O intensive applications
This thesis contributes from the perspective of task-based programming models to the efforts of optimizing I/O intensive applications. Throughout this thesis, we propose programmin...
WEB PROGRAMMING
WEB PROGRAMMING
"Web Programming" is a comprehensive book that provides a detailed overview of various aspects of web programming. The book is co-authored by Dr. Chitra Ravi and Dr. Mohan Kumar S,...
Interdisciplinary perspective on architectural programming: current status and future directions
Interdisciplinary perspective on architectural programming: current status and future directions
PurposeArchitectural programming, as a critical phase in construction projects, has been widely recognized for its importance and advantages throughout the construction process. Wi...
Basic and Advance: Phython Programming
Basic and Advance: Phython Programming
"This book will introduce you to the python programming language. It's aimed at beginning programmers, but even if you have written programs before and just want to add python to y...
Forecasting, Programming, Planning in Public Administration
Forecasting, Programming, Planning in Public Administration
In modern conditions, problems of social and economic development in Ukraine explains the need to pay attention to forecasting, programming, planning improvement in public administ...
[RETRACTED] Keanu Reeves CBD Gummies v1
[RETRACTED] Keanu Reeves CBD Gummies v1
[RETRACTED]Keanu Reeves CBD Gummies ==❱❱ Huge Discounts:[HURRY UP ] Absolute Keanu Reeves CBD Gummies (Available)Order Online Only!! ❰❰= https://www.facebook.com/Keanu-Reeves-CBD-G...
Algorithm of reactive power dispatching "per generator" realization on TPP Nikola Tesla A
Algorithm of reactive power dispatching "per generator" realization on TPP Nikola Tesla A
The algorithm of reactive power dispatching "per generator" realization is presented in the paper. Dispatching "per generator" and "per grid" are two modes of reactive power dispat...
Safe Set Maneuverability, Restoration, and Protection for Aircraft
Safe Set Maneuverability, Restoration, and Protection for Aircraft
The safe set is the largest controlled invariant set within a prescribed region of the state space. Safe set theory has the potential to be a basis for the design of an envelope pr...

