Programming for the Planet / May 2024
I was invited by Mary Sheeran to deliver a keynoted at Lambda Days, and I decided to go along to talk about my work on Programming for the Planet. The conference was a really vibrant crowd and I would definitely go along in future years. It's best summarised via an interview video they took of all the speakers.
Parallel traversal effect handlers for OCaml / Jan 2024
This is an idea proposed as a Cambridge Computer Science Part II project, and is currently being worked on by Sky Batchelor. It is supervised by Patrick Ferris and Anil Madhavapeddy.
Most existing uses of effect handlers perform synchronous execution of handled
effects. Xie et al proposed a traverse
handler for parallelisation of
independent effectful computations whose effect handlers are outside the
parallel part of the program. The paper [^1] gives a sample implementation as a
Haskell library with an associated λp calculus that formalises the parallel
handlers. […162 words]
Implementing a higher-order choreographic language / Jan 2024
This is an idea proposed as a Cambridge Computer Science Part II project, and has been completed by Rokas Urbonas. It was supervised by Dmirtij Szamozvancev and Anil Madhavapeddy.
This project aims to implement a functional choreographic language inspired by the Pirouette calculus. This language was meant to make the notoriously difficult process of implementing distributed algorithms easier, while offering a practical execution model for multi-participant programs. Additionally, it aimed to match the expressiveness and performance of similar existing solutions.
The project completed very successfully, and resulted in ChorCaml, an embedded DSL for choreographic programming in OCaml. The language facilitates the implementation of distributed algorithms, while offering a clear syntax and safety via the type system. ChorCaml also improves upon existing alternatives in certain common use cases, both in terms of program conciseness and performance. The practicality of the DSL was verified by successfully implementing well-known distributed algortihms such as Diffie-Hellman key exchange and concurrent Karatsuba fast integer multiplication. […163 words]
Functional Programming for the Planet / Sep 2023
Keynoted at ICFP 2023 on Functional Programming for the Planet
The 2nd ed of Real World OCaml is available in shops / Oct 2022
I'm delighted to report that the second edition of Real World OCaml is now available from Cambridge University Press! It's also freely available online, and CUP also kindly agreed that the PDF version could be freely available online thanks to sponsorship from Tarides. […105 words]
Homogeneous Builds with OBuilder and OCaml / Sep 2022
Paper on our incremental computation DSL ocurrent presented in OCaml Workshop 2022
Retrofitting effect handlers onto OCaml / Jun 2021
Paper on retrofitting effects in OCaml presented in PLDI 2024
Banyan: Coordination-Free Distributed Transactions over Mergeable Types / Nov 2020
Paper on Banyan for coordination-free distributed transactions in ASPLAS 2020
Retrofitting parallelism onto OCaml / Aug 2020
Won best paper award at ICFP 2020 for our paper on retrofitting parallelism onto OCaml!
Retrofitting parallelism onto OCaml
KC Sivaramakrishnan, Stephen Dolan, Leo White, Sadiq Jaffer, Tom Kelly, , Sudha Parimala, and Anil Madhavapeddy.
Journal paper in Proceedings of the ACM on Programming Languages (vol 4 issue ICFP).
Parallelising your OCaml Code with Multicore OCaml / Aug 2020
Paper on how to parallelise OCaml code at the OCaml Workshop
Bounding data races in space and time / Jun 2018
Paper on the OCaml memory model and underlying theory at PLDI 2018
Concurrent System Programming with Effect Handlers / Apr 2018
Paper on concurrent systems programming with effect handlers at TFP 2017
Probabilistic Programming in OCaml / Jan 2018
This is an idea proposed as a Cambridge Computer Science Part II project, and has been completed by Hari Chandrasekaran. It was supervised by Tom Kelly, Liang Wang and Anil Madhavapeddy.
With increasing use of machine learning, it is useful to develop frameworks that support rapid development and functional specification of probabilistic models for inference and reasoning. Probabilistic Programming Languages aim to support concise syntax for specifying models and consequently making inference easier. This can pave way to improvements of the model created, more data gathering and further model refinement in an iterative sense.
PPL enables easier development of statistical models and allows decoupling inference from modelling. There is a lot of recent work on PPLs, and this project seeks to incorporate them into functional languages. This project aims to develop a small PPL with a graph based model for Bayesian inference (similar to the Edward PPL) into the Owl numerical library written in OCaml. […277 words]
Effectively tackling the awkward squad / Sep 2017
Paper on how to tackle awkward IO patterns with effect handlers
Effectively tackling the awkward squad
Stephen Dolan, Spiros Eliopoulos, , Anil Madhavapeddy, KC Sivaramakrishnan and Leo White.
Paper in the the ACM ML Workshop.
DaLi: Database as a Library / May 2017
Position paper on building databases-as-a-library at SNAPL 2017
Gowtham Kaki, KC Sivaramakrishnan, Thomas Gazagnaire, Anil Madhavapeddy and Suresh Jagannathan.
Paper in the 2nd Summit on Advances in Programming Languages (SNAPL).
Displaying the 15 most recent news items out of 36 in total (see all the items).