Draco: a method for engineering reusable software systems
Software reusability: vol. 1, concepts and models
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Computer Vision, Graphics, and Image Processing
SIGSOFT '93 Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering
Compiler transformations for high-performance computing
ACM Computing Surveys (CSUR)
An array operation synthesis scheme to optimize Fortran 90 programs
PPOPP '95 Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming
An introduction to partial evaluation
ACM Computing Surveys (CSUR)
Compilation and delayed evaluation in APL
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Directions in Software Development and Maintenance
ICSM '93 Proceedings of the Conference on Software Maintenance
Software construction using components
Software construction using components
Reuse R&D: gap between theory and practice
SSR '99 Proceedings of the 1999 symposium on Software reusability
A perspective of generative reuse
Annals of Software Engineering
Control Localization in Domain Specific Translation
ICSR-7 Proceedings of the 7th International Conference on Software Reuse: Methods, Techniques, and Tools
Delocalization vs Performance: The Dilemma of Domain Translation
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
A New Architecture for Transformation-Based Generators
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
Combinatorial increases in programming productivity are possible by the introduction of high level operators and operands for composite data structures such as arrays, matrices, trees, record composites, etc. Such operators and operands can be composed to generate combinatorially many virtual components. However, the performance of such compositions is often inadequate because of code fragmentation and delocalization engendered by the building blocks. Attempts to automatically reorganize this code to optimize performance using conventional optimization strategies are usually impractical because of the large search spaces engendered. Anticipatory Optimization (AD) is a method for compiling such compositions directly to optimized code without large search spaces and indeed, without any search space at all. The keys to AO are 1) distributed optimization plans expressed via code annotations and 2) transformation based optimization planning that concurrently reasons over the domain information, the generated program and the evolving optimization plan.