Blogs (61) >>
Mon 16 Jul 2018 16:45 - 17:25 at Matterhorn III - Track 3

What would you get if you combined a cutting edge, state of the art macro system with a tried and true, industrial-strength type system? The answer is Hackett, a programming language that embeds the power of the Haskell type system within the Racket macro system. Traditional approaches to macro-enabled Haskells have been relatively straightforward, bolting a macroexpander onto the frontend of an otherwise mundane compiler, but this is a shallow, unsatisfying embedding—by its very nature, the typechecker does not run until macroexpansion is complete, so the wealth of static information embedded in the type system is inaccessible to macro authors. In contrast, Hackett applies and extends recent research first presented at POPL 2017 that enables interleaving macroexpansion and typechecking, opening up entirely new ways for programmers to tinker with their language and construct embedded DSLs.

While Hackett is still in development, it is already starting to bear fruit as a vehicle to explore this relatively unexplored design space. In this talk, we will take a look at some real Hackett code to get a feel for what the language is like, survey some of the underlying Racket technologies that make a sampling of Hackett’s features possible, and also discuss some of the ways Hackett is likely to grow and develop in the near future. Finally, we’ll compare and contrast Hackett’s approach to metaprogramming with other approaches in the design space to see what makes Hackett unique.

Mon 16 Jul
Times are displayed in time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

15:55 - 17:25
15:55
40m
Talk
Papers we love - Elixir edition
CurryOn Curry On Talks
16:45
40m
Talk
Hackett: a metaprogrammable Haskell
CurryOn Curry On Talks
Alexis KingNorthwestern University