A. Borusan

04.06.2018, 10:30 s.t. TU Berlin, EN building, seminar room EN 719 (7th floor), Einsteinufer 17, 10587 Berlin: "Fearless Metaprogramming with Squid" (Lionel Parreaux, EPFL (Switzerland))

Metaprogramming gives a programmer super powers, but often at great costs in terms of complexity and reliability – when designing a metaprogram, it is all too easy to make mistakes that result in failures that are hard to diagnose and debug (for example: unintended variable capture, type mismatches, undefined symbols, etc. in the generated code). This greatly limits the applicability of metaprogramming and restricts many of its more powerful uses to experts in programming languages and compilers. Thankfully, strong type systems can help regain some confidence in the difficult art of writing metaprograms. In this talk I will present Squid, a type-safe metaprogramming framework for Scala that lets users define statically-checked code generators and optimizers with a great deal of flexibility. I will briefly touch upon an application of Squid at the center of an ongoing effort to create an efficient Scala query engine that is, still, type-safe "all the way down". I aim to show that with such help from the compiler, it becomes possible to generate and optimize domain-specific code at both compile time and run time without much of the worry – hence the "fearless metaprogramming".