Loading…
Loading grant details…
| Funder | National Science Foundation (US) |
|---|---|
| Recipient Organization | Princeton University |
| Country | United States |
| Start Date | Feb 01, 2025 |
| End Date | Jan 31, 2030 |
| Duration | 1,825 days |
| Number of Grantees | 1 |
| Roles | Principal Investigator |
| Data Source | National Science Foundation (US) |
| Grant ID | 2443589 |
Critical computer software is rife with programming errors that can lead to faulty systems or security vulnerabilities. One of the major sources of these errors is a lack of support for memory safety in traditional programming languages---it is easy to inadvertantly write programs that might read or write memory in invalid, even internally inconsistent ways.
There is a recent effort to replace these languages with safer alternatives that avoid many of these errors by construction. However given the vast amount of legacy software computer systems rely on, it will take decades to replace all components of critical systems with safe variants. This project is investigating strategies and building mechanisms to use legacy software libraries safely.
The project's novelties are in combining hardware-based and language-based techniques to encapsulate unsafe software libraries in such a way that guarantees errors in the library do not result in vulnerabilities of the system while retaining near ideal speed and resource efficiency. The project's broader significance and importance are to empower developers to transition to safer programming languages incrementally while gaining most of the safety benefits immediately.
To achieve this goal, the project devises new language and system mechanisms for isolating unsafe libraries and securing the interactions between libraries and a system. By adapting and improving on existing lightweight isolation techniques, as well as devising new techniques based on emerging hardware mechanisms, the project reduces the performance overhead of strongly isolating library.
By devising new interfaces for programming languages to interact with one another, the project extends safety guarantees to data and memory that is shared between languages with different requirements and expectations on that data. On the education front, the PI plans to
incorporate cross-layer thinking into systems courses at all levels—introductory, advanced undergraduate, and graduate. Further, the PI aims to teach systems in a hands-on way, through practical design and implementation assignments and projects that explore cross-layer interactions, coupled with readings and lectures that convey the principled and theoretical underpinnings of systems concepts,
particularly from a historical perspective.
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.
Princeton University
Complete our application form to express your interest and we'll guide you through the process.
Apply for This Grant