Primrose: Selecting Container Data Types by Their Properties
Xueying Qin (University of Edinburgh, UK), Liam O'Connor (University, of Edinburgh, UK), Michel Steuwer (University of Edinburgh, UK)

TL;DR
Primrose is a tool that helps developers select the most efficient container data type based on specified properties and runtime performance, improving application efficiency.
Contribution
It introduces a language-agnostic approach for automatically selecting and ranking container implementations based on semantic properties and empirical performance data.
Findings
Successfully preprocesses Rust code to select optimal containers.
Ranks container implementations based on real-world performance.
Supports semantic property specifications for container behavior.
Abstract
Context: Container data types are ubiquitous in computer programming, enabling developers to efficiently store and process collections of data with an easy-to-use programming interface. Many programming languages offer a variety of container implementations in their standard libraries based on data structures offering different capabilities and performance characteristics. Inquiry: Choosing the *best* container for an application is not always straightforward, as performance characteristics can change drastically in different scenarios, and as real-world performance is not always correlated to theoretical complexity. Approach: We present Primrose, a language-agnostic tool for selecting the best performing valid container implementation from a set of container data types that satisfy *properties* given by application developers. Primrose automatically selects the set of valid…
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
TopicsAdvanced Software Engineering Methodologies · Logic, programming, and type systems · Parallel Computing and Optimization Techniques
