Scottish Programming Languages Seminar (SPLS) at St Andrews - 22th April 2013
The SLPS is a forum for discussion of all aspects of programming languages. We meet for a day once every few months, at some congenial location in Scotland.
- Coffee "early" arrivals : 11.00 -> 11.30
- Talk 1 : 11.30 -> 12.00
Christopher Jefferson - University of St Andrews -
"Concepts in C++ - How we messed up adding concepts to C++ for C++11, and how hope to fix it for C++14 (or 17)"
Templates are one of the most important features of C++. They provide a type-safe way of implementing highly efficient generic functions, and also provide a turing complete language which is executed at compile time. Templates however are often pushed far beyond their original intention, leading to the need for ugly workarounds and leading to famously long and incomprehensible error messages when compiling fails. 'Concepts' were a new language feature, to be introduced into C++ in 2011, which provided much greater control on when templates were instantiated. They would clean up both error messages and also made maintaining and extending large code bases much simpler. However, a decision was made close to the release of C++11 to remove concepts from the draft standard, and release the new standard without them, due to an increasing feeling that concepts added some major new problems to C++. This talk will discuss what concepts were, what went wrong, and the current work on coming up with a new, slimmer, pragmatic definition of concepts for the next version of C++.
- Talk 2 : 12.00 -> 12.30
Ward Jaradat - PhD student at the University of St Andrews -
"Decentralised Orchestration of Service-oriented Workflows"
Centralised orchestration of service-oriented workflows presents significant scalability challenges, these include: the consumption of network bandwidth, degradation of performance, and single points of failure. These challenges are particularly prominent when dealing with highly distributed data-intensive workflows, which involve large quantities of intermediate data that need to be routed through a centralised engine. In this talk we present a dataflow specification language and a distributed architecture that attempt to address these scalability challenges. Our language provides simple abstractions for orchestrating large-scale web service workflows and separates between the workflow logic and its execution. It is based on a data-driven execution model that permits parallelism to improve the workflow performance. Unlike classical approaches of distributed computing, our architecture allows the computation to be moved "closer" to services in the workflow; this is achieved by partitioning the workflow specification into smaller fragments that may be sent to remote locations for execution.
- Talk 3 : 12.30 -> 13.00
Patrick Maier - Heriot-Watt University, Edinburgh -
"Reliable Scalable Symbolic Computation: The Design of SymGridPar2"
Symbolic computations are challenging to parallelise as they have complex data and control structures, and both dynamic and highly irregular parallelism. The SymGridPar framework has been developed to address these challenges on small-scale parallel architectures. However, as the number of cores in compute clusters continues to grow exponentially, and as the communication topology is becoming increasingly complex, an improved parallel symbolic computation framework is required: SymGridPar2.
In this talk, I'll explain how two main aspects of the design of SymGridPar2, fault tolerance and locality control, interact with dynamic scheduling of parallelism. Fault tolerance is achieved by tracking the location of tasks as they are scheduled across the network, and by replicating tasks that were affected by node failure. Locality control exposes an abstraction of the communication topology so programs can control how close together tasks shall be placed by the dynamic scheduler.
- Lunch : 13.00 -> 14.00
- Talk 4 : 14.00 -> 14.30
Ghaffari Amir - Heriot-Watt University, Edinburgh -
The RELEASE project aims to improve the scalability of Erlang onto commodity architectures with 100000 cores, working at VM, language and framework levels. The talk describes work at the distributed Erlang level, and starts by investigating scalable persistent storage options for Erlang. We outline the theory and apply it to popular Erlang distributed database management systems (DBMS): Mnesia, CouchDB, Riak and Cassandra. We identify Dynamo-style NoSQL DBMS as suitable scalable persistent storage technologies. We investigate the scalability limits of the Riak NoSQL DBMS, and explore the scalability bottlenecks of distributed Erlang, and hence Riak.
- Talk 5 : 14.30 -> 15.00
Simon Dobson - University of St Andrews -
"Virtual machine support for concurrency"
Virtual machines such as the JVM and CLI provide an abstraction between language, compiler and hardware. But actually they do more than this: they provide an interesting opportunity to refactor some aspects of compiler and run-time design. This talk will present a small but (we think) interesting observation on the effect that using a VM has on the implementation of concurrency in a language.
- Talk 6 : 15.00 -> 15.30
Neil Ghani - University of Strathclyde, Glasgow -
Parametricity, also known as logical relations is a fundamental concept within programming languages designed to capture the idea that programs map related inputs to related outputs. Originally formulated by John Reynolds in the 1970s, parametrictiy has been a key tool in reasoning about programming languages ever since. However, as programming languages have advanced, parametricity has struggled to keep up. I think that part of the reason for this is that its not really clear what parametricity really is. We have lots of specific constructions of what a parametric model is but not overarching theory which can then be instantiated to a variety of different settings (operations, game-theoretic, constructive, domain theoretic etc).
In this talk I'll explain some work we have been doing in Strathclyde recently whose goal is to suggest that while the usual semantics of programming languages can be given abstractly in terms of a categorical universe using concepts such as categories, functors and natural transformations, parametricity amounts to working in a fibrational universe consisting of fibred categories, fibred functors and fibred natural transformations.
- Coffee break : 15.30 -> 16.00
- Talk 7 : 16.00 -> 16.30
Simon Gay - University of Glasgow -
"Programs + Communication Structures = Systems"
The title of Niklaus Wirth’s classic 1976 textbook, “Algorithms + Data Structures = Programs”, captured the essence of software design in the era of sequential computing. Now, however, we need a new slogan for the era of communication-intensive distributed computing. I will describe the use of session types to specify and verify the communication protocols that form the structure of concurrent and distributed systems. Ultimately session types should form the basis for new approaches to the design and engineering of large-scale communication-oriented systems.
- Talk 8 : 16.30 -> 17.00
Philip Wadler - University of Edinburgh -
"Propositions as Sessions"
Continuing a line of work by Abramsky (1994), by Bellin and Scott (1994), and by Caires and Pfenning (2010), among others, this paper presents CP, a calculus in which propositions of classical linear logic correspond to session types. Continuing a line of work by Honda (1993), by Honda, Kubo, and Vasconcelos (1998), and by Gay and Vasconcelos (2010), among others, this paper presents GV, a linear functional language with session types, and presents a translation from GV into CP. The translation formalises for the first time a connection between a standard presentation of session types and linear logic, and shows how a modification to the standard presentation yield a language free from deadlock, where deadlock freedom follows from the correspondence to linear logic.
- Talk 9 : 17.00 -> 17.30
Sam Lindley - University of Strathclyde, Glasgow -
"Generalising algebraic effects to support idioms and arrows"
Plotkin and Power's algebraic effects combined with Plotkin and Pretnar's effect handlers provide a compelling alternative to monads as a tool for writing effectful computations. I will present preliminary work on generalising algebraic effects and effect handlers to support other kinds of effectful computations corresponding to McBride and Paterson's idioms (aka applicative functors) and Hughes's arrows.
Room C0.35 from 11:00 to 13:00,
At 14:00 in Purdie Lecture Theatre C until 17:30,