Scottish Programming Languages SeminarWelcome to the site of the Scottish Programming Languages Seminar (SLPS) 2014 summer meeting. The seminar will be held on Wednesday 18th of June at the School of Computing Science, the University of Glasgow. The organisers are Simon Gay, Ornela Dardha, and Natalia Chechina.Please, register here if you intend to attend the seminar. LocationSchool of Computing Science, University of GlasgowSir Alwyn Williams Building (SAWB) Room 422 Lilybank Gardens, Glasgow G12 8QQ Information on travelling to the School of Computing Science of the University of Glasgow can be found here. AcknowledgementThis meeting of SPLS has received financial support from the Complex Systems Engineering theme of the Scottish Informatics and Computer Science Alliance (SICSA).Programme12.00 Lunch13.00 Stream-processing for Functional Programmers Ryan Newton, Indiana University Functional programming and stream-processing have shared history -- from early work on dataflow architectures, VAL, and SISAL, to Haskell's use of stream-based IO (before monads) or the modern-day resurgence of Haskell stream libraries (iteratees, pipes, conduit). These days, "streaming" can mean a lot of things; StreamIt, based on synchronous-dataflow, has totally ordered streams and will not duplicate stateful stream processors, whereas Apache Storm makes the opposite decisions. The first part of this talk will overview this broad landscape.14.00 Tea/coffee break 14.30 An Automaton Programming Language for Dynamic, Distributed, Complex Event Processing Systems Joe Sventek, Glasgow University In the current era of "Big Data", distributed complex event processing is the prevailing approach to analyzing streams of raw data in real time. The sheer volume of raw data events demands that aggregation operations take place as close as possible to the sources of raw data. Many such sources are constrained, wireless sensor nodes (such as constitute the Internet of Things); increasingly, smart phones are also providing socially-related streams of raw data. Traditional complex event processing technologies, based upon stream database management systems or publish/subscribe systems, are adept at handling many demands for complex event processing. A growing number of hybrid complex event detection scenarios require features of both technologies. Previous work in my group [1] has focused on a unification of publish/subscribe and stream database concepts to tackle all complex event processing scenarios, with particular emphasis upon hybrid scenarios. Fundamental to this unification is an automaton programming language for specifying aggregation operations and an asymmetric publish/subscribe broker architecture for aggregating at different levels of abstraction. This architecture enables runtime composition of ensembles of automata, an essential feature for an open, distributed complex event processing platform. It also enables the placement of aggregation operations into the infrastructure.15.00 The New SYCL for OpenCL Standard: C++ Metaprogramming for Heterogeneous Systems Andrew Richards, CEO, Codeplay We have just finished the first provisional release of a standard we have been working on with a group of semiconductor companies and software developers. It's called SYCL and it enables C++ metaprogramming on a wide range of heterogeneous processors supported by OpenCL. This talk will cover some of the problems standardizing a programming model on a range of heterogeneous devices and operating systems and how as a group we overcame those problems with SYCL. We came up with some interesting new solutions to the challenges posed by heterogeneous systems, such as:15.30 Session Type-like Reasoning Using Multi-sorted Term Algebras Stevan Andjelkovic, University of Strathclyde I'll show how (a type theoretic generalisation of) multi-sorted signatures and their terms algebras can be used to write client and server programs that interact according to some pre-specified protocol. The programs written in this style will be correct-by-construction with regard to the protocol, similar to programs written in a language with session types. It's not clear to me how far this approach can be pushed, in particular it's not obvious how to handle concurrency nor recursive protocols -- if there's time, I shall try to touch upon those topics.16.00 Tea/coffee break 16.30 Resource-dependent Algebraic Effects for Communication Protocols Edwin Brady, University of St Andrews There has been significant interest in recent months in finding new ways to implement composable and modular effectful programs using handlers of algebraic effects. In previous work, I have shown how an algebraic effect system can be embedded directly in a dependently typed host language, Idris. In this talk I will show how, additionally, parameterising algebraic effects over a resource state allows us to reason about run-time state transitions, where a transition may depend on run-time information about resource usage.17.00 How domain specific are Domain Specific Languages? Greg Michaelson, Heriot-Watt University DSLs are supposed to capture abstractions appropriate for well characterised classes of problems. But if a DSL is Turing complete (TC), or embedded in a TC language, or its domain maps to other domains, then is it really domain specific? Perhaps domain specific-ness is a pragmatic rather than a semantic property?17.30 Pub |