Sebastien Mondet
C◦mp◦se :: Conference
www.composeconference.org/2017/
May 18, 2017
Slides: wr.mondet.org/slides/Compose2017-BioTTFI/smondet-b…
At Compose 2015, we quickly mentioned an experiment of a high-level well-typed EDSL to describe complex bioinformatics pipelines. It is a component of the Biokepi library. Its first implementation had grown to be our default API to describe workflows; it was based on a long GADT declaration that would get compiled to our workflow engine’s “lower-level” API. This worked quite well but we hit a couple of fundamental issues: i) the compiler code grew to become difficult to manage (huge “match” statements, and type errors unwelcoming to beginners), ii) more importantly, the EDSL could not be extended by users of the library (although there were a few “hooks” to achieve some tasks).
Enter “Typed Tagless Final Interpreters”… In July 2015, Oleg Kiselov introduced the Quel project to the OCaml mailing-list. The idea is to use OCaml’s module system, to provide typed EDSLs as module types and write compilers as modules matching the signature; “programs” and program transformations are then functors taking such an implementation as argument. The approach ensures that the EDSL is extensible.
We reimplemented our EDSL based on this approch, to significant success. The talk will walk through our implementation of Biokepi’s EDSL while trying to be an introductory tutorial on typed-tagless approaches.
コメント