Difference between revisions of "NL-FP dag 2017"

From Clean
Jump to: navigation, search
(Talks)
(Talks)
Line 122: Line 122:
 
This graph can be executed using one of the available runners, making
 
This graph can be executed using one of the available runners, making
 
the approach scalable from laptop to cluster computer environments.
 
the approach scalable from laptop to cluster computer environments.
 +
 +
==== Jan de Muijnck-Hughes - Type-Driven Design of Communicating Systems using Idris ====
 +
 +
The idea of communicating systems is a cornerstone of modern technology and
 +
allows heterogeneous collections of components to communicate through
 +
well-defined protocols. However, there is a disconnect between the tooling and
 +
languages used to design, implement and reason about communication protocols.
 +
 +
Idris is a general purpose programming language that supports full-dependent
 +
types, providing programmers with the ability to reason more precisely about
 +
programs. Inspired by work on session types and algebraic effect handlers our
 +
research looks to leverage such state-of-the-art programming paradigms in a
 +
dependently typed setting to describe and reason about communication protocols
 +
and their implementation in different communication contexts.
 +
 +
This talk presents our current progress and introduces =Sessions=, a library
 +
for describing, and reasoning about, the interactions of a communicating
 +
system. Demonstrated is use of sessions to describe common communication
 +
patterns, and how the library enforces correctness of the pattern itself
 +
through type-level correct-by-construction guarantees.
 +
 +
Given time future work will also be presented detailing our next steps in
 +
linking these descriptions to implementations such that compile time
 +
correctness guarantees over the actions of an entity in a communicating system
 +
can be given respective to a known specification.
  
 
== Past NL-FP Days ==
 
== Past NL-FP Days ==

Revision as of 11:02, 29 November 2016

The Dutch Functional Programming Day is an annual gathering of researchers, students, and practitioners sharing a common interest in functional programming. The day features talks that cover the latest advances in research, teaching, and applications in the functional programming area. Coffee and lunch breaks provide ample opportunity for networking with your colleagues and meeting new people. Experts and newcomers to the field are equally welcome.

The NL-FP day 2017 takes place on Friday, January 6, 2017 at the Radboud University in Nijmegen.

Location

The FP dag takes place in room LIN 4, Linnaeusgebouw, Heyendaalseweg 137, 6525 AJ Nijmegen.

OpenStreetMap

Google Maps

uvb-linnaeus.jpg

How to get there

From Station Heyendaal to the Linnaeusgebouw

From Nijmegen Central Station, take any of the following busses to the bus stop Huygensgebouw.

  • 10 Heyendaal Shuttle (every 4 minutes)
  • 11 Beuningen Aalsterveld
  • 12 Druten Busstation
  • 13 Wijchen
  • 14 Brakkenstein
  • 15 Wijchen
  • 300 Nijmegen via Bemmel

The building is directly opposite of the bus stop.

Alternatively, there is a local train from the central station to the station "Nijmegen Heyendaal", from where you have to walk southwards over the bridge until you see the building on your left.

Registration, Cost, Deadline

Please register by sending an email to Markus Klinik including

  • Name
  • Affiliation
  • Whether you want to give a talk
  • Whether you want to participate in the dinner (please indicate dietary restrictions)

If you want to give a talk, please include the title and a short abstract. Aim for 20 minutes plus 5 minutes discussion.

There are no participation costs except for dinner, which everybody pays for themselves.

There is a soft registration deadline at the end of this year, primarily because we need to make dinner reservations.

Participants

Program

A preliminary sketch of the day.

  • 9:30 - 10:15 Registration
  • 10:15 - 10:20 Welcome and Opening
  • 10:20 - 10:45 Talk 1
  • 10:45 - 11:10 Talk 2
  • 11:10 - 11:40 Break
  • 11:40 - 12:05 Talk 3
  • 12:05 - 12:30 Talk 4
  • 12:30 - 14:00 Lunch
  • 14:00 - 14:25 Talk 5
  • 14:25 - 14:50 Talk 6
  • 14:50 - 15:15 Talk 7
  • 15:15 - 15:45 Break
  • 15:45 - 16:10 Talk 8
  • 16:10 - 16:35 Talk 9
  • 16:35 - 16:45 Closing
  • 18:00 Dinner

Dinner

After the program at the university we will have dinner at the restaurant De Hemel. They are going to serve us their Diner Churrasco. We'll be sitting in the Brouwerszaal where they actually brew the beer they serve. For people wo eat neither meat nor fish there are vegetarian options, but we have to tell them beforehand. The menu costs about 30 EUR, drinks not included. Everybody pays for themselves.

We'll go there by public transport. To find the way, team up with one of the locals or use modern technology.

De Hemel
Restaurant & Brouwerscafe
Franseplaats 1
6511 VS Nijmegen
OpenStreetMap

Contact

Markus Klinik

m.klinik@cs.ru.nl

Talks

Jeroen Bransen - Music in the Cloud

Using Cloud Haskell for automatic chord extraction

Chordify is a music e-learning platform that transforms any music source, such as a YouTube video, into chords. Learning to play your favorite songs has never been easier, it's like karaoke for the fingers. Chordify attracts 1.5M visitors every month, we have 550k registered users, and chordified over 4.8M songs.

The automatic chord extraction algorithm is implemented in Haskell. The work is distributed over multiple servers using the Cloud Haskell framework, which makes our service scalable and reliable. In this talk we show how functional programming, and the Cloud Haskell framework in particular, are used within Chordify and how they have helped Chordify to become a successful music e-learning platform.

Johan Hidding - Noodles, a functional concurrent programming model for Python

We present a new model for doing parallel/concurent programming in Python, targeted at managing complex computational workflows in distributed environments. The design of this model is geared towards minimal modification of existing Python code, and ease of use for domain scientists with limited computational expertise. We leverage the implicit parallelism present in a Python user-script by creating a directed acyclic graph of the function calls in the script. This graph can be executed using one of the available runners, making the approach scalable from laptop to cluster computer environments.

Jan de Muijnck-Hughes - Type-Driven Design of Communicating Systems using Idris

The idea of communicating systems is a cornerstone of modern technology and allows heterogeneous collections of components to communicate through well-defined protocols. However, there is a disconnect between the tooling and languages used to design, implement and reason about communication protocols.

Idris is a general purpose programming language that supports full-dependent types, providing programmers with the ability to reason more precisely about programs. Inspired by work on session types and algebraic effect handlers our research looks to leverage such state-of-the-art programming paradigms in a dependently typed setting to describe and reason about communication protocols and their implementation in different communication contexts.

This talk presents our current progress and introduces =Sessions=, a library for describing, and reasoning about, the interactions of a communicating system. Demonstrated is use of sessions to describe common communication patterns, and how the library enforces correctness of the pattern itself through type-level correct-by-construction guarantees.

Given time future work will also be presented detailing our next steps in linking these descriptions to implementations such that compile time correctness guarantees over the actions of an entity in a communicating system can be given respective to a known specification.

Past NL-FP Days