SI2-SSE: Supporting Generic Programming in C++ for Modular and Reliable Large-Scale Software
Texas A&M Engineering Experiment Station, College Station TX
Investigators
Abstract
Generic programming has the potential of an effective methodology for building large-scale, reliable, maintainable, and efficient software artifacts. It is supported by the C++ programming language through the "template" mechanism. In the hands of experts, C++ templates are formidable abstraction tools, key to the success of libraries such as the Standard Template Library, and many freely available and commercial software libraries and products. Unfortunately, the practice of template-based structured generic programming remains restricted to relatively few highly trained individuals. A primary objective of this project is to investigate and develop software tools and programming models that support scalable and modular generic libraries. Bringing structured generic programming methodology to mainstream at the scale done for object-oriented programming entails the invention of new programming language constructs and compiler construction techniques that go beyond conventional technologies. In particular, the apparent complexities of templates and arcane technical details must be concealed; code generation has to surpass C++'s current successful applications of templates both in quality and compile time for industrial scale programs. At the core of this project is the investigation of a direct linguistic support for requirements on template arguments ("concepts"), and their implementations in an open source compiler and libraries made freely available to the public, the research and education community.
View original record on NSF Award Search →