Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
APL '95 Proceedings of the international conference on Applied programming languages
An introduction to partial evaluation
ACM Computing Surveys (CSUR)
The implementation and evaluation of fusion and contraction in array languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Accelerating APL programs with SAC
Proceedings of the conference on APL '99 : On track to the 21st century: On track to the 21st century
Types and programming languages
Types and programming languages
The Functional Imperative: Shape!
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
ISCOPE '98 Proceedings of the Second International Symposium on Computing in Object-Oriented Parallel Environments
Single Assignment C: efficient support for high-level array operations in a functional setting
Journal of Functional Programming
On optimising shape-generic array programs using symbolic structural information
IFL'06 Proceedings of the 18th international conference on Implementation and application of functional languages
Index vector elimination: making index vectors affordable
IFL'06 Proceedings of the 18th international conference on Implementation and application of functional languages
Descriptor-free representation of arrays with dependent types
IFL'08 Proceedings of the 20th international conference on Implementation and application of functional languages
Semantics-preserving data layout transformations for improved vectorisation
Proceedings of the 2nd ACM SIGPLAN workshop on Functional high-performance computing
Partial evaluation as universal compiler tool: experiences from the SAC Eco system
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
Performance of generic array programs crucially relies on program specialisation wrt. shape information. Traditionally, this is done in a rather ad hoc fashion by propagating all shape information that is available. When striving for a compositional programming style that adheres to good software engineering principles this approach turns out to be insufficient. Instead, static value information needs to be propagated as well which introduces all the well known problems of partial evaluation in general. In this paper, we propose a static analysis that identifies to what extent specialisation needs to be employed in order to achieve a certain level of shape information. This narrows the scope of specialisation far enough to make specialisation for shape information feasible despite a compositional programming style. Some examples to this effect are presented.