Language Research
Extending Parallel Language Features to Traditional Language Constructs
One of the great challenges in effectively using the current and next generation computers is transitioning from traditional languages like Fortran to truly parallel languages that are designed to work on machines with muliticore processors and multiple hierarchies of memory and storage. Similar issues exist in simply utilizing existing systems in a productive, efficient way. There is a tremendous investment code and expertise that is tied to the traditional languages; however, parallelization or decomposition of programs written in traditional languages is extremely difficult.
We are investigating compiler-based tools for exploring new language features for parallelism, and techniques that can be applied to existing languages to perform analysis that is currently not possible. Given an infrastructure where components within compilers can be modified, one can easily experiment with incremental language improvements, making the user transition less painful than wholesale code redesign and rewriting.
Related Links:
- Addressing Heterogeneity and Large-Scale Parallelism with Compiler Infrastructure Tools and Transitional Languages. A white paper on next generation programming environments for next generation architectures.
- A Proposal to Produce Optimized Parallel Executables for Heterogeneous Architectures From Transitional Languages with a Component-based Compiler. A figure comparing current methods for extending traditional languages with the component compiler approach.
- fortran-parser. Fortran 2003 parsing capabilities
- chasm. F95/C/C++ language interoperability
- pdtoolkit. xmlgen tool for PDT for XML representations of source code interfaces