Implementing Tomorrow’s Programming Languages

Abstract

Compilers are the critical translators that convert a human-readable program into the code understood by the machine. While this transformation is already sophisticated today, tomorrow’s compilers face a tremendous challenge. There is a demand to provide languages that are much higher level than today’s C, Fortran, or Java. On the other hand, tomorrow’s machines are more complex than today; they involve multiple cores and may span the planet via compute Grids. How can we expect compilers to provide efficient implementations? I will describe a number of related research efforts that try to tackle this problem. Composition builds a way towards higher-level programming languages. Automatic translation of shared-address-space models to distributed-memory architectures may lead to higher productivity than current message passing paradigms. Advanced symbolic analysis techniques equips compilers with capabilities to reason about programs in abstract terms. Last but not least, through auto-tuning, compilers make effective decisions, even through there may be insufficient information at compile time

Keywords

compilers, human-readable program, code, multiple cores, computer grids, architecture, symbolic analysis, auto tuning

Date of this Version

2006

Comments

Parallel and Distributed Processing and Applications Lecture Notes in Computer Science, 2006, Volume 4330/2006, 3

Share

COinS