Seminar - Designing Small and Versatile Collection Libraries
School of Engineering and Computer Science Seminar
Speaker: Stefan Marr (University of Kent)
Time: Friday 22nd June 2018 at 12:00 PM - 01:00 PM
Location: Cotton Club, Cotton 350
Collection libraries differ significantly between languages, but there are some indications that we could make do for most use cases simply with sequence, map, and set collections. Modern dynamic languages show this form of minimalism and compensate by making their collections highly versatile. For instance, an array is usually dynamically sized and provides operations to act as queue, dequeue, or stack. However, this design comes with implementation challenges and dynamic language implementations apply various optimizations to make it efficient.
So far, these optimizations have been one of the reasons that languages such as Ruby and Python do not yet have implementations that are efficient and allow parallel execution while providing a thread-safe implementation that does not expose any races from the VM implementation to the language.
This talk presents a technique to ensure implementation-level thread-safety for such collections. With it, we enable an idiomatic dynamic language programming style for parallel code. In practice this means, VMs do not need a global interpreter lock to guarantee safety while avoiding to compromise single-threaded execution performance.
Stefan Marr is lecturer at the School of Computing at the University of Kent. His work focuses on programming language implementation techniques and concurrent and parallel programming. Stefan designed an ownership-based metaobject protocol as a unifying substrate for concurrency support in multi-language VMs, and is currently working on combining concurrency models in a safe manner and to enable developers to make sense of complex concurrent programs with appropriate tools.