Skip to content

Functional Thursday #30

Photo of Geoffr Su
Hosted By
Geoffr S. and 5 others
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

填填看想投稿/想要聽的主題唷!

Photo of Functional Thursday group
Functional Thursday
See more events
Mozilla Space
台北市信義區信義路五段 106 號 4 樓 A-1 · Taipei