GGrantIndex
← Search

Collaborative Research: CNS Core: Small: RUI: Intelligent Developer Infrastructure

$176,018FY2020CSENSF

Grinnell College, Grinnell IA

Investigators

Abstract

Software engineers use development tools to help develop software. The tools may compile computer code into runnable programs, debug programs to find and fix errors, and deploy software across systems. Existing tools used for these tasks are complex. The misuse of tools can introduce errors and inefficiencies. For example, a popular tool for compiling code, called "make", automates compilation with a user-provided encoding of the task. Users of "make" must produce either a simple but inefficient encoding, or an efficient but complex encoding with an increased risk of error. This project introduces techniques that correctly and efficiently automate compilation, debugging, and deployment tasks without programming. This project proposes a core technique built on dependency graphs. A dependency graph is generated by observing a piece of software interacting with its environment as it runs. This project proposes three tools that leverage dependency graphs to automate software development tasks. First, Riker correctly and efficiently automates compilation tasks based on a single example compilation. Second, Scotty answers high-level queries about where a program went wrong by observing the program's execution. Third, Locutus automates software deployment tasks by observing the user during an example deployment. This project has the potential to impact the day-to-day work of software developers significantly. Automating support tasks with minimal developer input reduces the cost of software development and guarantees that support tasks are correct by construction. These changes free software developers to focus on their core tasks. This project will provide undergraduate students at Grinnell College and Williams College with opportunities to participate in research, and will broaden participation by including students from underrepresented groups. All products of this project will be hosted at https://github.com/curtsinger-lab/idi-grant. Code produced in the course of this project will be released under the MIT license. Modifications to existing software will be released under a compatible open source license. Any non-code products will comprise only publicly-available, non-confidential information, and will be released under a Creative Commons license. All products of this project will be preserved for at least five years after the conclusion of the project. This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.

View original record on NSF Award Search →