<<< Previous speaker Next speaker >>>

Satnam Singh, Microsoft

 Satnam  Singh Satnam Singh currently works in Microsoft's Developer Division on concurrency projects. A long time ago he was an academic at the University of Glasgow, UK, where he researched reconfigurable computing and hardware description languages. In 1998 he joined Xilinx in San Jose, California where we worked on novel ways to program and use FPGA chips. In 2004 he joined Microsoft in Redmond, Washington, to work on a variety of concurrency projects. This presentation occurs on the first day of his new position at Microsoft Research, Cambridge, UK. See more at Satnam's website

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.

Password protected Download slides

Presentation: "Panel: Abstractions for Concurrency"

Track:   Abstractions for Concurrency

Time: Monday 17:00 - 17:45

Location: SAS Suecia