Plinth: A Plugin-Powered Language Built on Haskell (Experience Report)
This program is tentative and subject to change.
The Cardano blockchain is the first to use proof of stake, offers native support for multiple currencies and is evolving toward a distributed governance model. It supports smart contracts through Plutus, a language based on System F$_\omega$ with recursion. About half a dozen languages compile into Plutus, the first of which is \emph{Plinth} (formerly Plutus Tx) — a subset of Haskell in commercial use since 2021.
Our journey building Plinth has been unconventional in a number of ways. First, Plinth is a subset of Haskell rather than a traditional embedded DSL, which brings a number of advantages. Second, compilation is primarily handled by a GHC plugin, one of the most intricate we are aware of. Third, while some compiler optimizations mirror those in Haskell, others diverge significantly to meet on-chain execution constraints. Fourth, Plutus programs run on an instrumented CEK machine with a formal specification in Agda. This report reflects on our design choices, outlining effective practices, challenges, and key takeaways, with an emphasis on recent advances in the language, compiler, and runtime.
This program is tentative and subject to change.
Fri 17 OctDisplayed time zone: Perth change
13:45 - 15:30 | |||
13:45 70mKeynote | A Tale of Two Lambdas: A Haskeller's Journey into OCamlKeynote Haskell Richard A. Eisenberg Jane Street | ||
15:00 30mResearch paper | Plinth: A Plugin-Powered Language Built on Haskell (Experience Report) Haskell Ziyang Liu Input Output, USA, Kenneth MacKenzie Input Output, United Kingdom, Roman Kireev Input Output, United Kingdom, Michael Peyton Jones Input Output, United Kingdom, Philip Wadler University of Edinburgh, Manuel M. T. Chakravarty IOHK |