Programming Language Approaches to Concurrency
and Communication-cEntric Software
June 7, 2008, Oslo, Norway
Workshop affiliated with the
Theme and Goals
Applications on the web today are built using numerous interacting services; soon an off-the-shelf CPUs will host thousands of cores, and sensor networks will be composed from a large number of processing units. Many normal applications will soon need to make effective use of thousands of computing nodes. At some level of granularity, computation in such systems will be inherently concurrent and communication-centered.
To exploit and harness the richness of this computing environment, designers and programmers will utilise a rich variety of programming paradigms, depending on the shape of the data and control flow. Plausible candidates for such paradigms include structured imperative concurrent programming, stream-based programming, concurrent functions with queues, and the use of types for communication and data structures (such as session types and linear types), to name but a few. Combinations of these abstractions will be used even in a single application, and the runtime environment needs to ensure seamless execution without relying on differences in available resources such as the number of cores.
Thus the development of effective programming methodologies for the coming computing environments demands exploration and understanding of a wide variety of ideas and methodologies. PLACES aims to offer a forum where researchers from different fields exchange new ideas on one of the central challenges in programming in near future, the development of programming methodologies and infrastructures where concurrency and distribution are a norm rather than a marginal concern.
Jan Vitek _ Purdue University