Programming with Context-Sensitive Holes using Dependency-Aware Tuning
Linnea Stjerna (1), David Broman (1) ((1) EECS, Digital Futures,, KTH Royal Institute of Technology)

TL;DR
This paper presents a new methodology for writing programs with decision variables called holes, which are expanded and tuned automatically using context sensitivity and dependency analysis to improve software performance and maintainability.
Contribution
It introduces context-sensitive holes and dependency-aware tuning, enabling automatic and efficient decision-making in program development without extensive code rewriting.
Findings
Effective automatic tuning of algorithm and data structure choices
Reduction of search space through static dependency analysis
Successful implementation in the Miking system
Abstract
Developing efficient and maintainable software systems is both hard and time consuming. In particular, non-functional performance requirements involve many design and implementation decisions that can be difficult to take early during system development. Choices -- such as selection of data structures or where and how to parallelize code -- typically require extensive manual tuning that is both time consuming and error-prone. Although various auto-tuning approaches exist, they are either specialized for certain domains or require extensive code rewriting to work for different contexts in the code. In this paper, we introduce a new methodology for writing programs with holes, that is, decision variables explicitly stated in the program code that enable developers to postpone decisions during development. We introduce and evaluate two novel ideas: (i) context-sensitive holes that are…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Parallel Computing and Optimization Techniques · Software System Performance and Reliability
