Blogs (28) >>
ICFP 2017
Sun 3 - Sat 9 September 2017 Oxford, United Kingdom

ML is a family of programming languages that includes Standard ML, OCaml, F#, Alice ML, Dependent ML, Flow Caml, JoCaml, Manticore, MetaOCaml, SML#, and many others. All ML languages share several fundamental traits, besides a good deal of syntax. They are higher-order, strict, mostly pure, and typed, with algebraic and other data types. Their type systems are derived from Hindley-Milner. The development of these languages has inspired a significant body of computer science research and influenced the design of many other programming languages, including Haskell, Rust, and Scala.

ML workshops have been held in affiliation with ICFP continuously since 2005. This workshop specifically aims to recognise the entire extended ML family and to provide a forum for presenting and discussing common issues, both practical (compilation techniques, implementations of concurrency and parallelism, programming for the Web) and theoretical (fancy types, module systems, metaprogramming). The scope of the workshop includes all aspects of the design, semantics, theory, application, implementation, and teaching of the members of the ML family. We also encourage presentations from related languages (such as ATS, Eff, F*, Koka, Links, Rust, Scala, Swift, etc.), to exchange experience of further developing ML ideas. Last year’s ML Family workshop included talks covering eight different ML dialects and related languages: Eff, F#, F*, Links, Manticore, OCaml, SML, and SML#.

The ML family workshop will be held in close coordination with the OCaml Users and Developers Workshop.

The official ML family workshop 2017 home page is here.

Invited speaker

Edwin Brady (University of St Andrews, UK)

State machines all the way down

A useful pattern in dependently typed programming is to define a state transition system, for example the states and operations in a network protocol, as an indexed monad. We index each operation by its input and output states, thus guaranteeing that operations satisfy pre- and post-conditions, by typechecking. However, what if we want to write a program using several systems at once? What if we want to define a high level state transition system, such as a network application protocol, in terms of lower level states, such as network sockets and mutable variables?

In this talk, I will present an architecture for dependently typed applications based on a hierarchy of state transition systems, implemented in a generic data type ST. This is based on a monad indexed by contexts of resources, allowing us to reason about multiple state transition systems in the type of a function. Using ST, we show: how to implement a state transition system as a dependent type, with type level guarantees on its operations; how to account for operations which could fail; how to combine state transition systems into a larger system; and, how to implement larger systems as a hierarchy of state transition systems. I will illustrate the system with a high level network application protocol, implemented in terms of POSIX network sockets.

Accepted Papers

Title
Effectively tackling the awkward squad
ML
Effects without monads: non-determinism
ML
Efficient representation of large, dynamic sequences in ML
ML
First-class subtypes
ML
Making SML# a general-purpose high-performance language
ML
Mergeable types
ML
Relational conversion for OCaml
ML
Tierless modules
ML
Towards abductive functional programming
ML
Typer: an infix statically typed Lisp
ML
VOCAL -- a verified OCAml Library
ML

Call for Papers

Scope

We acknowledge the whole breadth of the ML family and aim to include languages that are closely related, such as Rust and Scala. Those languages have implemented and investigated run-time and type system choices that may be worth considering for OCaml, F# and other ML languages. We also hope that the exposure to state of the art ML might favourably influence those related languages. Specifically, we seek research presentations on topics including (but not limited to):

  • Language design: abstraction, higher forms of polymorphism, concurrency, distribution and mobility, staging, extensions for semi-structured data, generic programming, object systems, etc.

  • Implementation: compilers, interpreters, type checkers, partial evaluators, runtime systems, garbage collectors, foreign function interfaces, etc.

  • Type systems: inference, effects, modules, contracts, specifications and assertions, dynamic typing, error reporting, etc.

  • Applications: case studies, experience reports, pearls, etc.

  • Environments: libraries, tools, editors, debuggers, cross-language interoperability, functional data structures, etc.

  • Semantics: operational and denotational semantics, program equivalence, parametricity, mechanization, etc.

Four kinds of submissions will be accepted: Research Presentations, Experience Reports, Demos and Informed Positions.

  • Research Presentations: Research presentations should describe new ideas, experimental results, or significant advances in ML-related projects. We especially encourage presentations that describe work in progress, that outline a future research agenda, or that encourage lively discussion. These presentations should be structured in a way which can be, at least in part, of interest to (advanced) users.

  • Experience Reports: Users are invited to submit Experience Reports about their use of ML and related languages. These presentations do not need to contain original research but they should tell an interesting story to researchers or other advanced users, such as an innovative or unexpected use of advanced features or a description of the challenges they are facing or attempting to solve.

  • Demos: Live demonstrations or short tutorials should show new developments, interesting prototypes, or work in progress, in the form of tools, libraries, or applications built on or related to ML and related languages. (You will need to provide all the hardware and software required for your demo; the workshop organisers are only able to provide a projector.)

  • Informed Positions: A justified argument for or against a language feature. The argument must be substantiated, either theoretically (e.g. by a demonstration of (un)soundness, an inference algorithm, a complexity analysis), empirically or by substantial experience. Personal experience is accepted as justification so long as it is extensive and illustrated with concrete examples.

Format

The ML 2017 workshop will continue the informal approach followed since 2010. Presentations are selected from submitted abstracts. There are no published proceedings, so contributions may be submitted for publication elsewhere. We hope that this format will encourage the presentation of exciting (if unpolished) research and deliver a lively workshop atmosphere.

Each presentation should take 20-25 minutes, except demos, which should take 10-15 minutes. The exact time will be decided based on the number of accepted submissions. The presentations will likely be recorded.

Post-proceedings

ML 2017 is an informal workshop without proceedings. We are planning to publish a post-proceedings and to invite interested authors of selected presentations to expand their abstracts for inclusion.

Coordination with the OCaml Users and Developers Workshop

The OCaml workshop is seen as more practical and is dedicated in significant part to OCaml community building and the development of the OCaml system. In contrast, the ML family workshop is not focused on any language in particular, is more research-oriented, and deals with general issues of ML-style programming and type systems. Yet there is an overlap, which we are keen to explore in various ways. The authors who feel their submission fits both workshops are encouraged to mention it at submission time or contact the programme chairs.

Submission details

Submissions should be at most two pages, in PDF format, and printable on US Letter or A4 sized paper. A submission should have a synopsis (2–3 lines) and a body between 1 and 2 pages, in one- or two-column layout. The synopsis should be suitable for inclusion in the workshop programme. The bibliography will not be counted against the page limit.

Submissions must be uploaded to the workshop submission website

https://icfp-mlworkshop17.hotcrp.com/

before the submission deadline (Wednesday 31st May). If you have a question concerning the scope of the workshop or the submission process, please contact the programme chair.

You're viewing the program in a time zone which is different from your device's time zone change time zone

Thu 7 Sep

Displayed time zone: Belfast change

09:00 - 09:05
WelcomeML at L3
Chair(s): Sam Lindley University of Edinburgh, UK
09:00
5m
Day opening
Welcome
ML

09:05 - 10:00
Invited talkML at L3
Chair(s): Sam Lindley University of Edinburgh, UK
09:05
55m
Talk
State machines all the way down
ML
Edwin Brady University of St. Andrews, UK
10:30 - 11:45
Types and modulesML at L3
10:30
25m
Talk
Mergeable types
ML
Gowtham Kaki Purdue University, KC Sivaramakrishnan University of Cambridge, Samodya Abeysiriwardane Purdue University, Suresh Jagannathan Purdue University
10:55
25m
Talk
Tierless modules
ML
Gabriel Radanne Université Denis Diderot Paris 7, PPS, Jérôme Vouillon Univ Paris Diderot, Sorbonne Paris Cité, BeSport
11:20
25m
Talk
First-class subtypes
ML
Jeremy Yallop University of Cambridge, UK, Stephen Dolan
12:00 - 12:25
VerificationML at L3
12:00
25m
Talk
VOCAL -- a verified OCAml Library
ML
Arthur Charguéraud Inria, Jean-Christophe Filliatre CNRS, Paris, France, Mário Pereira LRI - Université Paris-Sud, François Pottier Inria, France
14:00 - 15:15
Programming language designML at L3
14:00
25m
Talk
Typer: an infix statically typed Lisp
ML
Pierre Delaunay Université de Montréal, Vincent Archambault-Bouffard Université de Montréal, Stefan Monnier Université de Montréal
14:25
25m
Talk
Relational conversion for OCaml
ML
Petr Lozov Sain Petersburg State University, SPbGU, Dmitri Boulytchev
14:50
25m
Talk
Towards abductive functional programming
ML
Koko Muroya University of Birmingham, UK
15:30 - 16:20
PerformanceML at L3
15:30
25m
Talk
Making SML# a general-purpose high-performance language
ML
Atsushi Ohori Tohoku University, Japan, Kenjiro Taura The University of Tokyo, Katsuhiro Ueno Tohoku University
15:55
25m
Talk
Efficient representation of large, dynamic sequences in ML
ML
16:50 - 17:40
EffectsML at L3
16:50
25m
Talk
Effects without monads: non-determinism
ML
17:15
25m
Talk
Effectively tackling the awkward squad
ML
Stephen Dolan , Spiros Eliopoulos Jane Street Group, Daniel Hillerström The University of Edinburgh, Anil Madhavapeddy OCaml Labs, KC Sivaramakrishnan University of Cambridge, Leo White Jane Street