从对象代数到无标记最终解释器

2020-10-07 08:08:06

上周六,我在基辅::Fprog Meetup上做了一次演讲。我真的很喜欢这次活动,借此机会我要感谢弗拉基米尔·基里洛夫(Vladimir Kirillov)组织这次活动。

演讲的幻灯片可以在这里找到,但我想我也可以把它写在博客上。

我将描述两种设计模式,“对象代数”和“最终无标记解释器”,它们是由面向对象和函数社区为解决表达问题而开发的。我希望我的演示文稿将作为对这两种模式的实际介绍,但更重要的是,我将争辩说它们实际上是相同思想的实现。

计划如下。首先,我们要回顾一下表达式问题是关于什么的。然后,我将介绍对象代数,我们将了解它们如何帮助解决表达式问题。最后,我们将看到对象代数的Java代码允许非常自然地转换为Haskell,这将引导我们进入最终的无标记编码。