用Java和Scala实现微型Lisp解释器

2022年6月27日 285点热度 0人点赞 0条评论

什么是组合子逻辑?一般来说组合子逻辑是指一类函数式编程语言的编程模式,它将具有同一功能接口的不同逻辑功能 (算子) 组合为新的、更复杂的逻辑,同时保留同样的功能接口,使接口具有外在的一致性。这是函数式编程中的一个基本范式。在面向对象的设计模式中,也有一些类似的设计思想。

不少函数式编程语言的文本分析工具是用组合子实现的,例如 Haskell 的 Parsec 和 Scala 的 Parser.Combinators 库。这是因为组合子很适合表达抽象模式,例如重复、间隔、顺序依赖等。组合子的这种特性使其可应用于各种各样的序列分析,包括非线性序列。

OSCHINA 本期高手问答6 月 28 日 - 7 月 4 日)我们邀请到畅销书《微型 Lisp 解释器的构造与实现》的作者 @刘鑫 MarsLiu 老师和大家一起探讨 “用 Java 和 Scala 实现微型 Lisp 解释器” 的话题,包括:

  • 学习组合子逻辑要注意什么?
  • 实现这样一个解释器的难点在哪里?
  • 用组合子实现解释器的优势是什么?
  • 移植的这些解释器应用在了哪些项目?
有其他相关的问题,也欢迎提问。
长按识别下方二维码立即参与提问:
图片


嘉宾介绍:
刘鑫,资深程序员、架构师,2000 年毕业于兰州大学数学系,从事软件开发工作 21 年,参与过电子商务、政务、网游、互联网服务、移动应用等多个领域的项目开发。近十年来,致力于将 Haskell 的 Parsec 解释器移植到 Go、Swfit、Rust、Javascript、Python、Scala、Java 等编程语言中,主要成果包括基于 Scala 2.x 的 Jaskell Core 和基于 Java 8 的 Jaskell Java8。这些成果均已应用于实际软件开发。
图片
为了鼓励踊跃提问,我们会在问答结束后从提问者中抽取 5 名幸运会员赠予畅销书《微型 Lisp 解释器的构造与实现》一书。
图片
天猫有售:https://detail.tmall.com/item.htm?id=676914642112
京东购书:https://item.jd.com/10054541441323.html
下面欢迎大家向 @刘鑫 MarsLiu 老师积极提问,长按识别下方二维码/点击文末阅读原文即可。
图片

更多精彩



Linus:Rust或将出现在Linux 5.20

OpenJDK 提议将提供 Java 类文件 API

是不是“异常”让我的脑子糊涂了?



这里有最新开源资讯、软件更新、技术干货等内容
点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦~

76870用Java和Scala实现微型Lisp解释器

这个人很懒,什么都没留下

文章评论