Giving Credit where Credit Is Due

ACM recognizes excellence through its eminent awards for technical and professional achievements and contributions in computer science and information technology. It also names as Fellows and Distinguished Members those members who, in addition to professional accomplishments, have made significant contributions to ACM's mission. ACM awards recognize achievements by young computing professionals, educators, theoretical computer scientists, software systems innovators, and pioneers who have made humanitarian and cross-discipline contributions.

How to Nominate

Award nominations deadlines occur throughout the year, with a heavy concentration in the Fall. Please refer to the Nomination Process page for each award, which includes not only information about the deadline but also guidance for preparing each type of nomination. ACM's conflict-of-interest guidelines apply to all award nominations.

Evan Cheng

USA - 2012

LLVM

citation

For designing and implementing LLVM, a persistent, language-independent program representation that enables code analysis and transformation, including compile time, link time, and run time optimizations, for arbitrary languages. Since its open source release in 2003, LLVM has become widely used in both commercial products and for computer science research.

LLVM is a persistent, language-independent program representation based on static single assignment (SSA) form that enables code analysis and transformation, including compile time, link time, and run time optimizations, for arbitrary programming languages. The openness of the LLVM technology and the quality of its architecture and engineering design are key factors in understanding the success it has had both in academia and industry.

Due to its clean and flexible design and easy to use programming interfaces, LLVM has quickly replaced GCC as the infrastructure of choice for doing research on program translation, optimization, and analysis. Researchers routinely use it for projects as diverse as building link-time interprocedural optimizers, just-in-time compilers, secure browser extensions, language virtual machines, static analysis tools, automatic vectorization, GPU programming, software verification, hardware synthesis tools, embedded code generators, and numerous language implementations.

In the years since its release, LLVM has been incorporated into commercial products by Apple, Adobe, AMD, Arxan, AutoESL, Cray, Google, Intel, National Instruments, nVidia, REAL Software, XMOS, and many others. LLVM has completely replaced GCC as the primary compiler in the latest OS X and iOS systems, so that every newly compiled application for Apple devices is compiled with LLVM. LLVM has also had significant commercial impact by enabling the design and implementation of powerful graphics languages like OpenCL and Renderscript. Every commercial implementation of OpenCL (e.g., from AMD, Apple, Intel and nVidia) is based on LLVM. All recent Android devices ship with LLVM to compile graphics code written in Renderscript.