微型Lisp解釋器的構造與實現

劉鑫

買這商品的人也買了...

商品描述

本書從零開始,將Haskell的Parsec解釋器移植到Java和Scala,
並通過詳細的程序實例,深入淺出地介紹了組合子邏輯這個函數式編程的基本範式,給讀者展示了Parsec組合子的原理、實現和應用。
閱讀本書,讀者不但可以掌握Parsec解釋器的實現方法,而且可以加深對Parsec組合子的理解。
本書也可以作為學習Java和Scala編程語言的補充教材。

作者簡介

劉鑫
資深程序員、架構師,2000年畢業於蘭州大學數學系,從事軟件開發工作二十多年,
參與過電子商務、政務、網絡遊戲、互聯網服務、移動應用等多個領域的軟件項目開發。
近十年來,致力於將Haskell的Parsec解釋器移植到Go、Swfit、Rust、Javascript、Python、Scala、Java等編程語言中,
主要成果包括基於Scala 2.x的Jaskell Core Parsec和基於Java 8的Jasekll Parsec Java 8。
這些成果均已應用於實際軟件開發,收到了良好的效果。

目錄大綱

前言1
章環境準備
1.1 準備Java開發環境4
1.2 準備Scala開發環境6
1.3 JISP項目6
1.4 SISP項目7
第2章開始構建簡單的解釋器
2.1 Hello REPL 10
2.2 Read Print Loop 13
2.3 算術表達式14
第3章數值解析
3.1 回顧21
3.2 識別數值24
3.3 前綴表達式28
3.4 表達式求值29
第4章文本解析
4.1 文本和文本字面量50
4.2 轉義字符——在字符串中包含字符串51
4.3 整合解釋器57
第5章解釋器環境
5.1 命名作用域59
5.2 變量定義62
5.3 “不可變”命名70
第6章語句塊和結構化編程
6.1 do 74
6.2 let 78
第7章邏輯運算和比較運算
7.1 邏輯判定true?和false? 86
7.2 比較運算95
第8章邏輯分支
8.1 if的實現106
8.2 cond的實現112
第9章定義函數
9.1 具名函數和匿名函數120
9.2 遞歸與循環124
9.3 靜態綁定、動態綁定與閉包134
0章List和Quote
10.1 Quote 148
10.2 宏和宏編程154
10.3 LIST 156
10.4 工具函數158
1章內置函數和解釋器模塊177
2章Parsec的原理和組成
12.1 狀態管理183
12.2 算子191
隨書代碼225
後記226