University of Birmingham > Talks@bham > Theoretical computer science seminar > Primrose: Selecting Container Data Types by their Properties

Primrose: Selecting Container Data Types by their Properties

Add to your list(s) Download to your calendar using vCal

If you have a question about this talk, please contact George Kaye.

Zoom details


Container data types such as sets, lists, and trees, represent collections of data that, are commonly used in computer programs. Much work have been done in the past decades to design better abstraction, improve performance and verify correctness for container data types. However, one crucial problem still exists. Currently, when choosing a container data type, programmers can not choose an abstract container only based on the desired container’s behaviours, but they must choose a concrete implementation of that abstract container as well. For example, instead of being able to request a container with unique elements, programmers must choose between possible implementation such as trees or hash sets. One serious drawback is that the chosen concrete implementation cannot provide the desirable performance or memory efficiency in all usage scenarios. Also, the portability of programs is limited as one concrete implementation might only have optimised performance for certain hardware systems.

To resolve this problem, we present Primrose, a language-agnostic tool allowing: 1) programmers to specify expected behaviours of a container in a program instead of how the container is implemented as property specifications; 2) the compiler to select all implementations from a container library where their library specifications match the desired property specifications; 3) a best implementation for the program to then be chosen automatically.

In this talk, I will present the status of our ongoing work. I will demonstrate how an application developer can specify desired properties of container types in our system, how a library developer provides a specification of container implementations, and how Primrose is able to select the valid container implementations that satisfy the desired properties.

This talk is part of the Theoretical computer science seminar series.

Tell a friend about this talk:

This talk is included in these lists:

Note that ex-directory lists are not shown.


Talks@bham, University of Birmingham. Contact Us | Help and Documentation | Privacy and Publicity.
talks@bham is based on from the University of Cambridge.