Chapter

Formal Methods for Multicore Programming

Volume 9104 of the series Lecture Notes in Computer Science pp 1-56

Date:

Parallel Objects for Multicores: A Glimpse at the Parallel Language Encore

  • Stephan BrandauerAffiliated withDepartment of Information Technology, Uppsala University
  • , Elias CastegrenAffiliated withDepartment of Information Technology, Uppsala University
  • , Dave ClarkeAffiliated withDepartment of Information Technology, Uppsala University Email author 
  • , Kiko Fernandez-ReyesAffiliated withDepartment of Information Technology, Uppsala University
  • , Einar Broch JohnsenAffiliated withDepartment of Informatics, University of Oslo
  • , Ka I. PunAffiliated withDepartment of Informatics, University of Oslo
  • , S. Lizeth Tapia TarifaAffiliated withDepartment of Informatics, University of Oslo
  • , Tobias WrigstadAffiliated withDepartment of Information Technology, Uppsala University
  • , Albert Mingkun YangAffiliated withDepartment of Information Technology, Uppsala University

* Final gross prices may vary according to local VAT.

Get Access

Abstract

The age of multi-core computers is upon us, yet current programming languages, typically designed for single-core computers and adapted post hoc for multi-cores, remain tied to the constraints of a sequential mindset and are thus in many ways inadequate. New programming language designs are required that break away from this old-fashioned mindset. To address this need, we have been developing a new programming language called Encore, in the context of the European Project UpScale. The paper presents a motivation for the Encore language, examples of its main constructs, several larger programs, a formalisation of its core, and a discussion of some future directions our work will take. The work is ongoing and we started more or less from scratch. That means that a lot of work has to be done, but also that we need not be tied to decisions made for sequential language designs. Any design decision can be made in favour of good performance and scalability. For this reason, Encore offers an interesting platform for future exploration into object-oriented parallel programming.