A typical compiler is designed to apply its optimizations to built-in types of the language it is compiling. Although built-in general-purpose optimizations might be generally beneficial, they cannot be directly applied to user-defined types because their correctness cannot be determined a priori. Extending a compiler to optimize some particular userdefined type would be useful for that particular type, but this approach becomes burdensome if the compiler must be extended on a type-by-type basis. A more powerful approach would be to enable compiler optimizations that are generic, i.e., that can be applied to any type (built-in or user-defined) that meets fundamental semantic requirements.

Intellectual Merit

-Formal concept definitions. We will integrate concept-based optimization with our on-going research on formalization of concepts and generic programming. -Language support for concepts. Concept-based optimization will leverage and inform our on-going research on direct language support for concepts and generic programming. -Compiler support for concepts. Our initial efforts incorporating concepts into the GNU C++ compiler will be extended to support concept-based optimizations. - Concept-based optimizations. We will leverage generic programming mechanisms to define optimizations using concepts so that such optimizations apply to user-defined types, simply by stating that the types model (i.e., meetthe requirements of) particular concepts. -Deployment and library evolution. Selected generic libraries, including the Standard Template Library, the Boost Graph Library, and the Vector, Signal, and Image Processing Library will be upgraded to take advantage of language extensions for generic programming and to take advantage of concept-based optimization. -Evaluation suite. We will collect optimizations for a suite of high-level benchmarks that can be used to evaluateconcept-based optimizations. An important benchmark in this regard will be to demonstrate that generic optimizations offer the same performance benefits when applied to built-in types as do traditional type-specific optimizations.

Broader Impact

- Direct impact on the future development of mainstream programming languages that support generic programming (e.g., C++, C#, and Java), and on their standard libraries. - Collaborate with language and compiler implementors, and work to introduce language features that better support generic programming. -Support for generic programming in these languages will provide valuable high-level information about user-defined types,making high-level and concept-based optimization more widely applicable. -This project will directly train graduate students and post-doctoral researchers in the emerging field of generic programming. -Results from our research will be integrated into graduate programming courses that we teach and (as we have done in the past) into textbooks that we write.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Type
Standard Grant (Standard)
Application #
0541014
Program Officer
Almadena Y. Chtchelkanova
Project Start
Project End
Budget Start
2006-02-15
Budget End
2010-03-31
Support Year
Fiscal Year
2005
Total Cost
$274,709
Indirect Cost
Name
Texas Engineering Experiment Station
Department
Type
DUNS #
City
College Station
State
TX
Country
United States
Zip Code
77845