关于《微型 Lisp 解释器的构造与实现》

今天,编辑老师告诉我,《微型 Lisp 解释器的构造与实现》已经正式出版销售。这本书,是我这几年业余时间学习和探索的一个总结。
这本书分两部分,一部分是致敬 Haskell 名著《Write Yourself a Scheme in 48 Hours》的 Lisp 解释器实现,这部分我分别用 Java 版 的 JISP 和 Scala 版的 SISP 为例,介绍了 Jaskell-Java8 和 Jaskell-Core 的用法;后半部分则是 Jaskell-Java8 和 Jaskell-Core 的主要组件实现。
通过这本书,我希望能向读者如何在 Java 和 Scala 项目中,使用来自 Haskell Parsec 组合子的文本信息解析方法。并且,通过对 Parsec 实现的介绍,展示这个组件库更多的可能性,我们可以用 Parsec 组合子,一致的解决信息流的解析问题。
这本书并不难,它没有涉及很复杂的算法,也没有很多“高级语法”,只是在 Scala 版本中引入了 Type Lambda 和一些高级的函数式编程特性,但是总的来说,它的难度仍然符合编程语言学习的“第二本书”。对于 Java 学习者,它提供了不依赖任何 Framework的实战机会,可以仅仅运用 Java 8+ 的语法,就能够自己开发组件,组装解释器;而对于 Scala 的学习者,第一步,学到 “Scala is a better Java”的程度之后,就可以从这本书进一步深入,了解 Scala 的那些比较深入的语法特性,例如 Scala 2 的 implicit class、implicit def 、implicit val,scala 3 的 given 、 extension等等 。
我在书中给出了 Scala 2 和 Scala 3在实现中的区别,无论2 还是 3,type lambdas 都是重要的元素,通过这个技巧,我在形式上将 Parsec 的 `State[E] => T` 的有副作用映射,模拟成了 `Monad[T]` 和 `E => T` ,使得 Scala 的 ADT 系统可以与 Parsec 融合在一起。这些功能一旦掌握,对 Scala 程序员是很大的提升,可以体会到突破瓶颈后,Scala 强大的表达能力和生产力。
本书中,无论解释器实现,还是组合子,我都提供了Java 8+(为了节省版面,我用了一些 Java 11 的 var 语法)、Scala 2.13 和 Scala 3 的版本。而在实际工作中,Scala 2.13、Java 8、Go 和 Python 的 Parsec 实现,都曾经在我工作中发挥过作用,现在CSDN AI组的技能树产品和质量分服务,就有我的 pyparsec 组件在里面。
目前,我刚刚完成了 jaskell core 对 scala 2.11 和 2.12 的支持。这样,我们就可以在一些主流云平台厂商提供的 spark 和 flink 环境,使用 jaskell。这也是我下一步工作可能涉及的情况。后面我会着重提供一些预制功能,例如符合 Java 、 C 、Python、Javascript、Scala 语法的字符串字面量解析。
回顾这几年的业余生活,固然编程和写作有辛苦的时候,但是总的来说,这是一段开心的经历。就像 HAM 收集通信卡片,像一些锻造爱好者锻打钢铁,我很享受这个精心设计程序代码的过程。写书的时候,我曾经希望自己进入一个“认真且严肃”的状态,所以全书都是毫无修饰的在叙述内容。但现在我最希望和同行们分享的是,写代码可以是一个很有趣的过程。我将一个有趣的,像乐高积木一样灵活精巧的工具库,从Haskell移植到了 Scala 和 Java 中,现在,我们可以一起享受这个有趣的体验。希望这本书能给学习者一些帮助,也希望我的老朋友们能和我一样,在这段旅程中得到快乐。

 

感谢邹欣老师为本书作序。这些年来,邹欣老师是我写作中的榜样。这本书的出版,离不开我从《构建之法》中得到的知识和启发。


 

 最后,这本书已经在各个图书销售平台上架:
https://detail.tmall.com/item.htm?id=676914642112https://detail.tmall.com/item.htm?id=676914642112微型Lisp解释器的构造与实现 9787568082457 华中科技大学出版社https://shop15040017.m.youzan.com/wscgoods/detail/2fqbhvweoecix0i《微型Lisp解释器的构造与实现》【摘要 书评 试读】- 京东图书京东JD.COM图书频道为您提供《微型Lisp解释器的构造与实现》在线选购,本书作者:,出版社:华中科技大学出版社。买图书,到京东。网购图书,享受最低优惠折扣!https://item.jd.com/10054541441323.html《微型Lisp解释器的构造与实现》 【简介_书评_在线阅读】 - 当当 - 华中科技大学出版社旗舰店当当华中科技大学出版社旗舰店在线销售正版《微型Lisp解释器的构造与实现》。最新《微型Lisp解释器的构造与实现》简介、书评、试读、价格、图片等相关信息,尽在DangDang.com,网购《微型Lisp解释器的构造与实现》,就上当当华中科技大学出版社旗舰店。http://product.dangdang.com/11178800137.htmlEnjoy it!

  • 12
    点赞
  • 7
    收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 6

打赏作者

ccat

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值