Functional Thursday #30


Details
Oleg Kiselyov 臨時來訪, 我們將邀請 Oleg Kiselyov 演講~
原本的講題將移至下一週 10.8
• [19:45 ~ 21:50] Embedding and optimizing domain-specific languages in the typed final style (by Oleg Kiselyov)
Typed final (aka, ``tagless-final'') style is a general method of embedding (typed, higher-order) domain-specific languages (DSL) in a typed functional language such as Haskell, OCaml, Scala and Coq. Once written, a DSL expression may be interpreted many times. Evaluator, compiler, partial evaluator, pretty-printer are all interpreters. At any time one may add more interpreters, and even more expression forms to the DSL while re-using the previous interpreters as they were. Only well-typed DSL terms are representable. Therefore, the type checker of the host language checks -- and even infers for us -- DSL types.
It was recently discovered how to transform, simplify, and generally, optimize DSLs embedded in this style. The optimization rules are reusable, modular, composable, and type- and scope-preserving by construction.
Using a familiar example of combinational circuits, this mini-tutorial will give an idea of the general framework for embedding and optimizing DSLs.
The typed-final style has been successfully used in Haskell, OCaml, Scala and even to some extent in Java. The tutorial thus should be applicable across the modern functional programming languages. We'll use Haskell in this tutorial.
• [21:50 ~ ] lightning talk & 自由交流
也歡迎大家來
https://funth.hackpad.com/Functional-Thursday-Topics-sGic3s4ncNn
填填看想投稿/想要聽的主題唷!

Functional Thursday #30