text-only page produced automatically by LIFT Text Transcoder Skip all navigation and go to page contentSkip top navigation and go to directorate navigationSkip top navigation and go to page navigation
National Science Foundation
Search  
Awards
design element
Search Awards
Recent Awards
Presidential and Honorary Awards
About Awards
Grant Policy Manual
Grant General Conditions
Cooperative Agreement Conditions
Special Conditions
Federal Demonstration Partnership
Policy Office Website


Award Abstract #0346989
CAREER: Programming Languages for Reliable and Secure Low-level Systems


NSF Org: CNS
Division of Computer and Network Systems
divider line
divider line
Initial Amendment Date: March 30, 2004
divider line
Latest Amendment Date: March 30, 2004
divider line
Award Number: 0346989
divider line
Award Instrument: Standard Grant
divider line
Program Manager: David Hung-Chang Du
CNS Division of Computer and Network Systems
CSE Directorate for Computer & Information Science & Engineering
divider line
Start Date: June 1, 2004
divider line
Expires: May 31, 2009 (Estimated)
divider line
Awarded Amount to Date: $550000
divider line
Investigator(s): Michael Hicks mwh@cs.umd.edu (Principal Investigator)
divider line
Sponsor: University of Maryland College Park
3112 LEE BLDG
COLLEGE PARK, MD 20742 301/405-6269
divider line
NSF Program(s): ADVANCED NET INFRA & RSCH
divider line
Field Application(s): 0000912 Computer Science
divider line
Program Reference Code(s): HPCC,9218,2876,1187,1045
divider line
Program Element Code(s): 4090

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.


PUBLICATIONS PRODUCED AS A RESULT OF THIS RESEARCH

(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.

 

 

Print this page
Back to Top of page
  Web Policies and Important Links | Privacy | FOIA | Help | Contact NSF | Contact Web Master | SiteMap  
National Science Foundation
The National Science Foundation, 4201 Wilson Boulevard, Arlington, Virginia 22230, USA
Tel: (703) 292-5111, FIRS: (800) 877-8339 | TDD: (800) 281-8749
Last Updated:
April 2, 2007
Text Only


Last Updated:April 2, 2007