Hosted miniKanren: Reconciling Optimizing Compilation and Extensibilityin-person
Most miniKanren implementations must sacrifice either optimizing compilation or user-extensibility as a consequence of the embedding strategies used for their implementation. The hosted-miniKanren system escapes this dilemma, thanks to the new syntax-spec macro system in Racket. A key design point is the foreign interface that connects miniKanren and Racket, which must allow useful interactions but also maintain the abstraction needed to make the optimizing compiler sound. I’ll walk through the implementation of hosted-miniKanren, including this foreign interface and some of the extensions and optimizations that it enables.
Michael Ballantyne is a PhD student at the Northeastern University Programming Research Laboratory, advised by Matthias Felleisen. He envisions a future where mainstream programmers regularly create, extend, and fluidly intermix domain-specific languages, with excellent support from their programming language and environment. Recently he’s been developing a formal characterization of macro hygiene that accounts for the full range of program transformations used in embedded DSL implementation, and also improving the type systems as macros approach to integrate macro expansion and typechecking.
Fri 6 SepDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
14:00 - 15:30 | |||
14:00 60mKeynote | Hosted miniKanren: Reconciling Optimizing Compilation and Extensibilityin-person miniKanren | ||
15:00 30mTalk | typedKanren: Statically Typed Relational Programming with Exhaustive Matching in Haskellremote miniKanren Pre-print |