SPLASH 2022
Mon 5 - Sat 10 December 2022 Auckland, New Zealand

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 paper, we develop 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.

Tue 6 Dec

Displayed time zone: Auckland, Wellington change

15:30 - 17:10
Session 4. Programming Languages: Modularity, Composition and LibrariesSLE at Seminar Room G007
Chair(s): Jörg Kienzle McGill University, Canada
15:30
24m
Talk
Collection Skeletons: Declarative Abstractions for Data CollectionsResearch PaperIn Person
SLE
Björn Franke University of Edinburgh, Zhibo Li University of Edinburgh, Magnus Morton Huawei, Michel Steuwer University of Edinburgh
DOI
15:54
24m
Talk
iCoLa: A Compositional Meta-language with Support for Incremental Language DevelopmentResearch PaperIn Person
SLE
Damian Frölich University of Amsterdam, L. Thomas van Binsbergen University of Amsterdam
DOI Pre-print
16:18
24m
Talk
BatakJava: An Object-Oriented Programming Language with VersionsResearch PaperIn Person
SLE
Luthfan Anshar Lubis Tokyo Institute of Technology, Yudai Tanabe Tokyo Institute of Technology, Tomoyuki Aotani Mamezou, Hidehiko Masuhara Tokyo Institute of Technology
DOI
16:42
24m
Talk
Yet Another Generating Method of Fluent Interfaces Supporting Flat- and Sub-chaining StylesVirtualResearch Paper
SLE
Tetsuro Yamazaki University of Tokyo, Tomoki Nakamaru University of Tokyo, Shigeru Chiba University of Tokyo
DOI