CAREER: Programming Languages for Reliable and Secure Low-level Systems
University Of Maryland, College Park, College Park MD
Investigators
Abstract
Many critical systems, including operating systems, embedded systems, and communications systems, are low-level. That is, they require careful control over hardware resources to implement needed functionality and to perform well. Low-level software is increasingly common, so it must be reliable and secure, but its increasing complexity makes doing so quite difficult. This project is working to develop, implement, apply, and evaluate programming language technologies to ensure the security and reliability of low-level systems. The approach is to employ novel static analysis techniques, mostly novel type checking and inference systems, for automatically checking proper usage of idioms common to low-level software. These idioms include manual memory management, concurrency, and dynamic reconfiguration; their incorrect usage can lead to service failures, data corruption, and security exploits. For assessment, the new techniques are being incorporated into a new C-like programming language called Cyclone, which is then used to build or port real low-level software, including device drivers, network packet processors and servers, and embedded control software. These systems are experimentally compared against traditionally-developed systems to evaluate their flexibility, usability, and performance. This work will result in new tools and methodologies for building more reliable and secure low-level systems. By validating these techniques on real low-level software, they will have strong relevance and impact. All results will be presented in public forums (conferences and journals) and as part of graduate and undergraduate education. All developed software will be freely available, and usable to non-experts in industry and education.
View original record on NSF Award Search →