【ERC Coffee House】Collection Skeletons: Declarative Abstractions for Data Collections
Prof Bjoern Franke (University of Edinburgh) will give a talk, in person and online, for the Coffee House Tech Talk Series.
The details of the talk are below. A lunch will be provided after the talk.
When : 21 Feb 2023, 11am-12nn
Where (Physically) : Coffee House, 4/F, Bayes Centre, 47 Potterrow, Edinburgh EH8 9BT, UK
Where (Virtually) : https://welink.zhumu.com/j/0175308256
Title: Collection Skeletons: Declarative Abstractions for Data Collections
Abstract: Modern programming languages provide programmers with rich abstractions for data collections as part of their standard libraries, e.g. Containers in the C++ STL, the Java Collections Framework, or the Scala Collections API. Typically, these collections frameworks are organised as hierarchies that provide programmers with common abstract data types (ADTs) like lists, queues, and stacks. While convenient, this approach introduces problems which ultimately affect application performance due to users over-specifying collection data types limiting implementation flexibility. In this talk, we present Collection Skeletons which provide a novel, declarative approach to data collections. Using our framework, programmers explicitly select properties for their collections, thereby truly decoupling specification from implementation. By making collection properties explicit immediate benefits materialise in form of reduced risk of over-specification and increased implementation flexibility. We have prototyped our declarative abstractions for collections as a C++ library, and demonstrate that benchmark applications rewritten to use Collection Skeletons incur little or no overhead. In fact, for several benchmarks, we observe performance speedups (on average between 2.57 to 2.93, and up to 16.37) and also enhanced performance portability across three different hardware platforms.
Bio: Bjoern Franke is professor of Software Transformation, at Edinburgh University School of Informatics. His research focusses primarily on software tools for embedded systems, in particular optimising and parallelising compilers, instruction set simulators, design space exploration and performance estimation tools.