Language Abstractions For Low Level Optimization Techniques

Gergely Dévai1, Zoltán Gera1 and Zoltán Kelemen1

  1. Faculty of Informatics, Eötvös Lorand University,
    Pazmany P. stny. 1/C, 1117 Budapest, Hungary
    {deva,gerazo,kelemzol}@caesar.elte.hu

Abstract

Programmers are often forced to implement performance-critical applications at a low abstraction level. This leads to programs that are hard to develop and maintain because the program text is mixed with low level optimization tricks and is far from the algorithm it implements. Even if compilers are smart nowadays and provide the user with many automatically applied optimizations, practice shows that in some cases it is hopeless to optimize the program automatically without the programmer’s knowledge. A complementary approach is to allow the programmer to fine tune the program by providing him with language features that make the optimization easier. These are language abstractions that make optimization techniques explicit without adding too much syntactic noise to the program text. This paper presents such language abstractions for two well-known optimizations: bitvectors and SIMD (Single Instruction Multiple Data). The language features are implemented in the embedded domain specific language Feldspar which is specifically tailored for digital signal processing applications. While we present these language elements as part of Feldspar, the ideas behind them are general enough to be applied in other language definition projects as well.

Key words

Optimization, bitvector, SIMD

Digital Object Identifier (DOI)

https://doi.org/10.2298/CSIS130224080D

Publication information

Volume 11, Issue 4 (October 2014)
Special Issue on Advances in Systems, Modeling, Languages and Agents
Year of Publication: 2014
ISSN: 1820-0214 (Print) 2406-1018 (Online)
Publisher: ComSIS Consortium

Full text

DownloadAvailable in PDF
Portable Document Format

How to cite

Dévai, G., Gera, Z., Kelemen, Z.: Language Abstractions For Low Level Optimization Techniques. Computer Science and Information Systems, Vol. 11, No. 4, 1499–1514. (2014)