![](common/images/x.gif) |
![](common/images/x.gif) |
![](common/images/x.gif) |
Award Abstract #0346989
CAREER: Programming Languages for Reliable and Secure Low-level Systems
![](common/images/greenline.jpg)
NSF Org: |
CNS
Division of Computer and Network Systems
|
![divider line](common/images/x.gif) |
![divider line](common/images/x.gif) |
Initial Amendment Date: |
March 30, 2004 |
![divider line](common/images/x.gif) |
Latest Amendment Date: |
March 30, 2004 |
![divider line](common/images/x.gif) |
Award Number: |
0346989 |
![divider line](common/images/x.gif) |
Award Instrument: |
Standard Grant |
![divider line](common/images/x.gif) |
Program Manager: |
David Hung-Chang Du
CNS Division of Computer and Network Systems
CSE Directorate for Computer & Information Science & Engineering
|
![divider line](common/images/x.gif) |
Start Date: |
June 1, 2004 |
![divider line](common/images/x.gif) |
Expires: |
May 31, 2009 (Estimated) |
![divider line](common/images/x.gif) |
Awarded Amount to Date: |
$550000 |
![divider line](common/images/x.gif) |
Investigator(s): |
Michael Hicks mwh@cs.umd.edu (Principal Investigator)
|
![divider line](common/images/x.gif) |
Sponsor: |
University of Maryland College Park
3112 LEE BLDG
COLLEGE PARK, MD 20742 301/405-6269
|
![divider line](common/images/x.gif) |
NSF Program(s): |
ADVANCED NET INFRA & RSCH
|
![divider line](common/images/x.gif) |
Field Application(s): |
0000912 Computer Science
|
![divider line](common/images/x.gif) |
Program Reference Code(s): |
HPCC,9218,2876,1187,1045
|
![divider line](common/images/x.gif) |
Program Element Code(s): |
4090
|
ABSTRACT
![](common/images/bluefade.jpg)
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.
PUBLICATIONS PRODUCED AS A RESULT OF THIS RESEARCH
![](common/images/bluefade.jpg)
(Showing: 1 - 8 of 8).
Gareth Stoyle, Michael Hicks, Gavin Bierman, Peter Sewell, and Iulian Neamtiu.
"Mutatis Mutandis: Safe and Flexible Dynamic Software Updating,"
Proceedings of the ACM Conference on Principles of Programming Languages (POPL),
2005,
p. 183.
Gareth Stoyle, Michael Hicks, Gavin Bierman, Peter Sewell, and Iulian Neamtiu.
"Mutatis Mutandis: Safe and Flexible Dynamic Software Updating (full version).,"
Transactions on Programming Languages and Systems,
v.29,
2007,
p. 22.
Iulian Neamtiu, Michael Hicks, Gareth Stoyle, and Manuel Oriol.
"Practical Dynamic Software Updating for C,"
Proceedings of the ACM Conference on Programming Language Design and Implementation,
2006,
p. 72.
Iulian Neamtiu, Michael Hicks, Jeffrey S. Foster, and Polyvios Pratikakis.
"Contextual effects for version-consistent dynamic software updating and safe concurrent programming,"
Proceedings of the ACM Conference on Principles of Programming Languages (POPL),
2008,
p. 37.
Jeffrey S. Foster, Michael W. Hicks, and William Pugh.
"Improving Software Quality with Static Analysis,"
Proceedings of the ACM Workshop on Program Analysis for Software Tools and Engineering (PASTE),
2007,
p. 83.
Michael Hicks, Greg Morrisett, Dan Grossman, and Trevor Jim.
"Experience with Safe Manual Memory Management in Cyclone,"
Proceedings of the ACM International Symposium on Memory Management (ISMM),
2004,
p. 73.
Nikhil Swamy, Michael Hicks, Greg Morriset, Dan Grossman, Trevor Jim.
"Safe Manual Memory Management in Cyclone,"
Science of Computer Programming,
v.62,
2006,
p. 122.
Peter Sewell, Gareth Stoyle, Michael Hicks, Gavin Bierman, and Keith Wansbrough.
"Dynamic Rebinding for Marshalling and Update, via Redex-time and Destruct-time Reduction,"
Journal of Functional Programming,
2007,
(Showing: 1 - 8 of 8).
Please report errors in award information by writing to: awardsearch@nsf.gov.
|
![](common/images/x.gif) |
![](common/images/x.gif) |