Probably the biggest challenge of programming language research today is finding ways to make programming multi-core processors feasible and safe. 25 years of concurrency research have brought us a large variety of constructs and formalisms, but no clear contender for a general programming methodology has emerged. Should one stick with threads and locks, use STMs, or switch to message passing? In this talk I will argue that it might be premature to settle on detailed language constructs for concurrent programming. A better alternative at the present time could be to explore concurrency patterns and constructions through various libraries. These libraries can themselves be based on a standard thread model. Using Scala as my host language, I demonstrate that its advanced general abstraction capabilities are sufficient for also providing advanced concurrency constructs. The talk gives a quick introduction to Scala, with a focus of Scala''s general abstraction constructs. It shows how one can use these constructs in the design of libraries for concurrent programming of many different styles. As a concrete example, the talk presents a library for Erlang-style actors, and then explores a more scalable variation, which disassociates actors from threads.
Official Website: http://irbseminars.intel-research.net
Added by robennals on October 30, 2006