12:00 - Lunch
12:30 - Abstraction is not always theft: domain-specific
representations in code generation for mesh-based computational
Paul Kelly, Imperial College London.
We have become used to the idea that higher-level languages
supporting a higher level of abstraction come with a price in
performance. In contrast, we should expect that the more information
the compiler has about the structure and properties of our code, the
more scope it should have for optimisation. This talk is about our
experience of trying to make good on this idea. We are building
software tools for a class of computational science applications,
where we support a concise high-level programming model, while mapping
onto a high-performance implementation entirely automatically. Our
compiler is based around three layers of domain-specific program
representation, each supporting different optimisations. The resulting
software tools, implemented in Python, achieve higher performance than
established C++ and Fortran codes.
13:30 - Coffee & tea.
14:00 - Program Shaping for Parallelism.
Adam Barwell, St. Andrews University.
Whilst the ubiquity of multicore processors has all but necessitated
the leverage of parallelism for ever greater performance, the task of
its introduction remains predominantly difficult, tedious, and
error-prone. To help simplify this process, multiple approaches, such
as Algorithmic Skeletons, have been developed. Yet, regardless of the
method chosen, a program must fit a certain shape (i.e. fulfil certain
requirements) before any such parallel components may be introduced.
Most programs must therefore undergo a reshaping stage first, which,
at present, must be done by hand. We propose the (semi-)automation of
this stage via refactoring and the use of refactoring tools, making
reshaping both simpler and safer, and illustrate a set of such
refactorings that work with the Erlang skeleton library Skel.
14:30 - Traffic-Dependent Session Types.
Conor McBride, Strathclye University.
Session types describe communications protocols, that is, the
structure of traffic. The values of earlier traffic can affect the
structure of later traffic: in classic session types, this is achieved
by the & operator for protocols offering a choice and the + operator
for protocols selecting. But the general idea of earlier traffic
determining later structure provokes one to hope/fear that the session
type setup could be streamlined by dependent types, which seem rather
suited to that sort of contextualisation. After a certain amount of
initial perplexity, I can now make a positive preliminary report. The
key clue-question is "What is the stuff that session types classify,
upon which other session types might depend?". The answer is before
15:00 - Using Dependent Types to Reason about Structured Parallel
David Castro, St. Andrews University.
Despite the increasing importance of multi-core/many-core computers,
much treatment of parallel programmimg is still very informal. There
is a clear need for a formal, language-level treatment of parallelism
that marries high-level abstractions with strong reasoning. This talk
explores the use of dependent types to capture the structure,
semantics and execution costs of parallel programs, so enabling formal
reasoning about their run-time and functional behaviour. This formal
reasoning allows us to apply fully automatic, and provably correct,
transformations between functionally-equivalent programs with
different parallel structures, and also to rationally choose between
different parallel implementations, with varying execution costs,
directly through their types.
15:30 - Coffee, tea & biscuits.
16:00 - Intrinsic Security of Functional Languages: Outcome of the LaFoSec
Manuel Maarek, Heriot-Watt University.
aimed at investigating the impact of using functional
languages for the development of secure applications. The
investigation focused on three languages (OCaml, F# and Scala) and
their distributions. While key features such as strong typing,
encapsulation, pattern matching provide security on the cheap, some
implementation details should be taken care of. The study was funded
and initiated by the French Network and Information Security Agency
(ANSSI) and conducted by a consortium lead by SafeRiver. We present
the results of the security oriented analysis of the OCaml language,
compiler and tools, and the impact the study had.
16:30 - An expressive semantics of mocking.
Josef Svenningsson, Chalmers
University of Technology.
We present a semantics of mocking, based on a process calculus-like
formalism, and an associated mocking framwork. We can build expressive
mocking specifications from small, orthogonal set of operators. Our
framework detects and rejects ambiguous specifications as a validation
measure. We report our experience testing software components for the
car industry, which needed the full power of our framework.
SPLS is taking place in the Cedar room, Hugh Nisbet building in the
Edinburgh Conference Centre
at Heriot-Watt University. Below is
a campus map. If you know the campus well, then you may wish to
venture directly to the venue. Those who don't, I recommend you go
to the main University reception and ask for directions to the Hugh
Getting to Heriot-Watt
By bus from Princes Street
Take the numbers 25, 34 or 45 out to
Heriot-Watt University campus. The Edinburgh Conference Centre shares
its entrance with the main reception of Heriot-Watt University, which
will be in front of you.
By car from Princes Street
Come out by the west end of Princes
Street on to Shandwick Place. Take a left into Dalry Road. Follow
Dalry Road to the end, then take a right on to Gorgie Road (the A71).
Follow the A71 until you come to Calder Junction. Go straight across
the roundabout and continue down the A71. At the next roundabout take
the first exit. Follow this road and take the second exit on to
Riccarton Mains Road. At the following roundabout take the third exit
on to The Avenue; follow The Avenue until the end. The Edinburgh
Conference Centre shares its entrance with the main reception of
Heriot-Watt University, which will be in front of you. It should take
about 25 minutes.
There is extensive car parking on campus but for ease
visitors should use either car park C signposted as Conference Car
Park, located on the left just after the mini round-a-bout, or
Visitors Car Park A, entrance is located on the first right of the
From the airport
Take Eastfield Road out of the airport and
then left onto Glasgow Road. Follow Glasgow Road (the A8). Follow
Glasgow Road for about a mile then take a right on to Gogar Station
Road. Drive for another mile and a half and take the second exit at
the roundabout on to Riccarton Mains Road; then take the third exit at
the next roundabout on to The Avenue and follow it until it ends. The
Edinburgh Conference Centre shares its entrance with the main
reception of Heriot-Watt University, which will be in front of you. It
should take about 10 minutes.