
NSF Org: |
CCF Division of Computing and Communication Foundations |
Recipient: |
|
Initial Amendment Date: | September 17, 2013 |
Latest Amendment Date: | June 19, 2015 |
Award Number: | 1302327 |
Award Instrument: | Standard Grant |
Program Manager: |
Anindya Banerjee
abanerje@nsf.gov (703)292-7885 CCF Division of Computing and Communication Foundations CSE Directorate for Computer and Information Science and Engineering |
Start Date: | October 1, 2013 |
End Date: | September 30, 2019 (Estimated) |
Total Intended Award Amount: | $850,000.00 |
Total Awarded Amount to Date: | $866,000.00 |
Funds Obligated to Date: |
FY 2015 = $16,000.00 |
History of Investigator: |
|
Recipient Sponsored Research Office: |
150 MUNSON ST NEW HAVEN CT US 06511-3572 (203)785-4689 |
Sponsor Congressional District: |
|
Primary Place of Performance: |
47 College Street Suite 203 New Haven CT US 06520-8047 |
Primary Place of
Performance Congressional District: |
|
Unique Entity Identifier (UEI): |
|
Parent UEI: |
|
NSF Program(s): |
Software & Hardware Foundation, PROGRAMMING LANGUAGES |
Primary Program Source: |
01001516DB NSF RESEARCH & RELATED ACTIVIT |
Program Reference Code(s): |
|
Program Element Code(s): |
|
Award Agency Code: | 4900 |
Fund Agency Code: | 4900 |
Assistance Listing Number(s): | 47.070 |
ABSTRACT
Functional Reactive Programming, or FRP, is a declarative programming paradigm based on two fundamental abstractions: a continuous (functional) modeling of time-varying behaviors, and a discrete (reactive) calculus of user and process interaction. FRP provides a novel and effective approach to solving problems in which there is a combination of both continuous and discrete entities such as found in computer animation, robotics, control systems, GUIs, and interactive multimedia. FRP?s broader impact is seen in its adoption by several other research projects, and its use in several applications different from those at Yale. The proposed work will strengthen these existing projects, and further broaden the applicability of FRP. The proposed improvements in implementation will make FRP more suitable for compute-intensive applications, such as interactive 3D graphics and real-time audio processing. It will also benefit the modeling and simulation community, which often uses declarative approaches to specifying and solving problems.
Previous research at Yale helped to establish the foundations of FRP, and demonstrated its utility in several application domains. Despite this preliminary success, more work is needed to make "FRP for real." That is, to develop a system that facilitates writing natural and concise descriptions of reactive behaviors, responds well enough to satisfy most common real-time constraints, reifies real-world objects as first-class signal functions, runs efficiently through program optimization and parallel execution on multicore architectures, and has been validated in a real-world application domain, specifically audio signal processing. The proposed research will advance the overall FRP methodology in three areas: Language Design (type system extensions to capture resource constraints, a redesign of the mediation between the discrete and continuous, and a better syntax to capture the essence of FRP); Language Implementation (program optimizations, multicore execution, asynchronous sub-processes); and Validation and Testing (with a focus on real-time audio signal processing).
PUBLICATIONS PRODUCED AS A RESULT OF THIS RESEARCH
Note:
When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external
site maintained by the publisher. Some full text articles may not yet be available without a
charge during the embargo (administrative interval).
Some links on this page may take you to non-federal websites. Their policies may differ from
this site.
PROJECT OUTCOMES REPORT
Disclaimer
This Project Outcomes Report for the General Public is displayed verbatim as submitted by the Principal Investigator (PI) for this award. Any opinions, findings, and conclusions or recommendations expressed in this Report are those of the PI and do not necessarily reflect the views of the National Science Foundation; NSF has not approved or endorsed its content.
Software is continuously interacting with the world around us,
modeling the many complexities of reactive systems our world. In order
to build this type of software reliably, programmers require tools and
languages, such as Functional Reactive Programming, that are designed
specifically for such reactive systems. Functional Reactive
Programming, or FRP, is a declarative programming paradigm based on
two fundamental abstractions: a continuous (functional) modeling of
time-varying behaviors, and a discrete (reactive) calculus of user and
process interaction.
Without formal foundations for reactive programming, software will
continue to fail in the spectacular ways that costs both capital and
human lives. Because FRP is a critical direction in the development of
modern reactive systems, this work has made a significant impact on
the future of safe reactive systems design.
In order to improve the language design of FRP, the work done on this
grant introduced a new specification language, called Temporal Stream
Logic, that can be used to describe reactive systems. We used Temporal
Stream Logic to synthesize complex systems that were previously
out-of-scope for existing tools, such as an autonomous vehicle
controller that is formally guaranteed to correctly implement the
specified driving behavior.
This project also explored the use of Temporal Stream Logic to
synthesize FRP code that can be run on an FPGA - significantly
improving the runtime performance of FRP systems. In order to further
improve the performance of FRP program code, this project additionally
looked to various type systems and language design extensions. In
particular, the work of this project helped to better support
asynchrony in FRP, as well as take better advantage of optimizations
such as Causal Commutative Arrows.
One of the application domains this project focused on was computer
music - a notoriously challenging domain for reactive systems, which
requires continuous and discrete interactions to be processed in real
time. This project built the open source computer music library,
Euterpea, as well as began the first exploration of programming by
example for digital signal processing.
These results have been published in papers that have appeared in
major publication venues (PLDI, CAV, OOPSLA, ICFP). In addition this
work has also resulted in the publication of a textbook on FRP "The
Haskell School of Music: From Signals to Symphonies". Results from
this project has additionally been presented in a number of colloquium
and symposium speaking events.
In addition, we maintain a repository of software tools and benchmarks
that have been developed during the course of this project. These are
publicly available under non-restrictive open source licenses. Moreover,
we provide a synthesis tool chain to automatically generate FRP program
from specifications in this language.
Several of the synthesis benchmarks that we have developed during this
project are being reused by other researchers in the reactive
synthesis community. In addition, we contributed our benchmarks that
were generated by our FRP synthesis tool to the SYNT benchmark
suite. These benchmarks play a major role in evaluating reactive
synthesis tools and driving their development.
The project has provided training opportunities for three PhD students
and two postdoctoral students who conducted research related to the
project. Two of these PhD students have successfully graduated during
the project duration and have subsequently found employment in
research institutes and the software industry. The third PhD student
is on track to complete his thesis shortly.
Eight undergraduates and four high school students have gained
research experience by contributing to this project. Six of these
undergraduates completed REUs with funding from this grant, and two
completed senior projects as extensions of this project's work. Three
of these undergraduates were females, underscoring the PI's commitment
to increasing the diversity in computer science through this
project. We have published a paper based on these interactions
specifically addressing pedagogical techniques of involving more
undergraduates in computer science research.
Last Modified: 01/09/2020
Modified by: Ruzica Piskac
Please report errors in award information by writing to: awardsearch@nsf.gov.