Satnam Singh, Microsoft

Satnam Singh, Microsoft![]() |
Presentation: "Back to the Future: Functions + Transactions"
Track:
Abstractions for Concurrency
Time: Monday 14:30 - 15:30 Location: SAS Suecia
Abstract:
We explain why attempting to write applications using concurrency abstractions from the systems programming world is like trying to shave with a chainsaw. Instead, we advocate throwing away your locks and embracing transactions as a powerful programming language construct for sharing in-memory resources between concurrent tasks. Furthermore, we demonstrate the advantages of incorporating transactions into a functional language which include exploiting the type system to discipline the use of side effects at compile type. Several examples of functions + transactions will be illustrated using code written in the Haskell functional language extended with transactions. We show how well known concurrency abstractions can be encoded using functions + transactions as well as sharing our experience of how sequential programs may be incrementally parallelized using transactions. Incorporating transactions into a programming language requires more than just adding an "atomic" block. We argue for the need to have language level support for constructs to allow modular blocking (a retry primitive) as well as composing alternatives (orElse). This results in a system that is very compositional making it possible to write libraries and modules of an application in a way that fits in with conventional software engineering practices. Presentation: "Panel: Abstractions for Concurrency"
Track:
Abstractions for Concurrency
Time: Monday 17:00 - 17:45 Location: SAS Suecia |
![]() |
||