An ELI-to-C Compiler: Design, Implementation and Performance
ELI is a succinct array-based interactive programming language derived from APL. In this paper we present the overall design and implementation of a bootstrapped ELI-to-C compiler which is implemented in ELI. We provide a brief introduction to the ELI language, a high-level view of the code generation strategy, and a description of our bootstrapping process. We also provide a preliminary performance evaluation. Firstly, we use three existing C benchmarks to demonstrate the performance of the ELI-generated C code as compared with interpreted ELI and native C. Secondly, we use two benchmarks originally from APL to compare the ELI-generated C to interpreted ELI and a naive hand-generated C version. These preliminary results are encouraging, showing speedups over the interpreter and in many cases performance close to C. The results also show that some future optimizations, such as copy elimination/avoidance, would be beneficial.
Slides (chen-ecc-slides.pdf) | 962KiB |
Sun 18 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
11:00 - 12:30 | Morning talks 2ARRAY at Vertex WS218 Chair(s): Martin Elsman Department of Computer Science, University of Copenhagen | ||
11:00 30mTalk | An ELI-to-C Compiler: Design, Implementation and Performance ARRAY DOI File Attached | ||
11:30 30mTalk | Array Programming in Whiley ARRAY David J. Pearce Victoria University of Wellington DOI File Attached | ||
12:00 30mTalk | Flexible Data Views: Design and Implementation ARRAY DOI File Attached |