Loading…

Loading grant details…

Completed STANDARD GRANT National Science Foundation (US)

SHF:Medium: Studying and Exploiting the Bimodality of Software

$12M USD

Funder National Science Foundation (US)
Recipient Organization University of California-Davis
Country United States
Start Date Oct 01, 2021
End Date Sep 30, 2025
Duration 1,460 days
Number of Grantees 5
Roles Principal Investigator; Co-Principal Investigator
Data Source National Science Foundation (US)
Grant ID 2107592
Grant Description

Software, as written, has two audiences: the machine(s) that run it, and the human(s) who maintain it. Machines understand formal operational semantics; humans, however, understand code via the informal, noisy information latent in variable names, comments, coding styles etc. Human readers can certainly mentally "simulate" code execution, but it’s not easy.

Developers therefore (while always striving to ensure that the code has the correct computational semantics) try to write code  that  is easy to read and understand. Code is thus bimodal, carrying information in two channels: 1) a precise, formal one that carries the exact computational meaning to the execution platform, and 2) an informal ``natural" one for human readers that is designed to facilitate the fast, noisy process of human comprehension.

This project aims to exploit these two channels, and their synergies, to improve software tools, in several ways.

First, the formal channel will be used to generate the training data for the informal channel in order to train tools to "leniently" parse inchoate, erroneous code, as created by student developers or found on StackOverflow and other informal documentation. Second, the formal channel (e.g., a typechecker) will be used to train probabilistic learners to create type annotations in a reinforcement-learning setting.

Third, the use of learned models will be studied using signals (e.g., variable names) on the informal channel to help static analysis algorithms make precision-speed tradeoffs; finally, the bimodality of code will be leveraged to create finely-tuned code samples that preserve meaning (but are different in form) for pyscho-linguistics studies aimed at improving human code comprehension and production. The project will develop a new introductory programming curriculum that teaches beginning programmers to learn to think "bimodally" about problems requiring IT solutions: not just in terms of computational abstractions, but also more holistically, about the impacts on society and the environment.

The project is enabled by an interdisciplinary team, consisting of scholars in Software Engineering, Psycho-linguistics, and Science and Technology studies.

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.

All Grantees

University of California-Davis

Advertisement
Discover thousands of grant opportunities
Advertisement
Browse Grants on GrantFunds
Interested in applying for this grant?

Complete our application form to express your interest and we'll guide you through the process.

Apply for This Grant