As systems are increasingly integrated within a global computing environment, a crucial challenge is how to manage the resulting software complexity. Metaprogramming can help meet this challenge. To reconcile the gap between language/compiler efforts and systems practice, this work will explore the following research questions: how can an unsafe and low-level programming language, C, be safely extended, including with new definitional constructs, such as objects, and new kinds of types, such as classes and how can language and compiler extensions be factored to maximize reuse, and what support is necessary for managing and composing the resulting fine-grained extensions . The project will develop and build a macro system for C, called xtc for eXTensible C, but unlike the C preprocessor, xtc macros are specified and implemented as transformations on a program's abstract syntax tree (AST) and preserve macro hygiene . The project will also explore methods such as a tree querying language that supports complex AST transformations, an extensible type system, which supports the introduction of new kinds of types, and will investigate how to disable select language features, such as pointers, and how to express domain-specific compiler optimizations. Software built with xtc will be more reliable and secure, which is of critical importance as business and government increasingly depend on IT for their livelihood. Furthermore, by opening up C, the proposed work enables language and compiler researchers to have more impact and educators to more easily explore new approaches to teaching computer science. To emphasize the last point, the project will leverage xtc in all appropriate courses, including the graduate-level compilers and will also develop a new undergraduate courseon object-oriented programming and the corresponding textbook, which explore not only the relevant concepts but also their underlying implementation (as xtc macros).

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Network Systems (CNS)
Application #
0448349
Program Officer
Mohamed G. Gouda
Project Start
Project End
Budget Start
2005-02-15
Budget End
2011-01-31
Support Year
Fiscal Year
2004
Total Cost
$400,000
Indirect Cost
Name
New York University
Department
Type
DUNS #
City
New York
State
NY
Country
United States
Zip Code
10012