登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書

『簡體書』微型Lisp解释器的构造与实现

書城自編碼: 3762941
分類:簡體書→大陸圖書→計算機/網絡程序設計
作者: 刘鑫
國際書號(ISBN): 9787568082457
出版社: 华中科技大学出版社
出版日期: 2022-06-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:HK$ 87.4

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
渡鸦的文化史
《 渡鸦的文化史 》

售價:HK$ 94.8
韦伯政治著作选
《 韦伯政治著作选 》

售價:HK$ 94.8
世界园林艺术史:500年经典绘画中的园林全书
《 世界园林艺术史:500年经典绘画中的园林全书 》

售價:HK$ 477.6
觉醒(百万畅销书《格局》作者何权峰新作,影响数百万人命运的觉醒之书)
《 觉醒(百万畅销书《格局》作者何权峰新作,影响数百万人命运的觉醒之书) 》

售價:HK$ 47.8
金色沼泽:柏林的严谨与叛逆(列城志)
《 金色沼泽:柏林的严谨与叛逆(列城志) 》

售價:HK$ 129.6
大学问·实践与理论:中国社会经济史与法律史研究(以立足本土的国际视野,手把手教你做科研)
《 大学问·实践与理论:中国社会经济史与法律史研究(以立足本土的国际视野,手把手教你做科研) 》

售價:HK$ 141.6
体系模型理论与建模仿真技术
《 体系模型理论与建模仿真技术 》

售價:HK$ 117.6
图解服装立体裁剪与板样
《 图解服装立体裁剪与板样 》

售價:HK$ 70.8

 

建議一齊購買:

+

HK$ 247.5
《 Java核心编程从问题分析到代码实现(第3版·上下册)深入理解java核心技术虚拟机 java从入门到精通 java并发编程实战 java web jvm 》
+

HK$ 72.2
《 Modern PHP(中文版) 》
+

HK$ 99.8
《 JavaScript+Vue.js Web开发案例教程 》
+

HK$ 133.7
《 动手玩转Scratch 3.0编程:人工智能科创教育指南 》
+

HK$ 201.2
《 Java核心技术 卷I 基础知识 第11版 英文版 上下册 》
+

HK$ 92.1
《 零基础轻松学C++:青少年趣味编程(全彩版) 》
編輯推薦:
中国人自己实现和维护的开源项目,成功将Haskell的Parsec解释器移植到Java和Scala。
內容簡介:
本书从零开始,将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.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
第10章 List和Quote
10.1 Quote 148
10.2 宏和宏编程 154
10.3 LIST 156
10.4 工具函数 158
第11章 内置函数和解释器模块 177
第12章 Parsec的原理和组成
12.1 状态管理 183
12.2 算子 191
随书代码 225
后记 226
內容試閱
本书将利用组合子逻辑实现一个简单的LISP解释器。什么是组合子逻辑?一般来说组合子逻辑是指一类函数式编程语言的编程模式,它将具有同一功能接口的不同逻辑功能(算子)组合为新的、更复杂的逻辑,同时保留同样的功能接口,使接口具有外在的一致性。这是函数式编程中的一个基本范式。在面向对象的设计模式中,也有一些类似的设计思想。
不少函数式编程语言的文本分析工具是用组合子实现的,例如Haskell的Parsec和Scala的Parser.Combinators库。这是因为组合子很适合表达抽象模式,例如重复、间隔、顺序依赖等。组合子的这种特性使其可应用于各种各样的序列分析,包括非线性序列。
在学习Haskell的时候,我接触到了Parsec组合子。我结合手头的工作,开始尝试用一些“常规”编程语言实现Parsec算子。接下来十余年,我用Go、Swfit、Rust、Javascript、Python、Scala、Java等多种编程语言进行了探索和尝试,包括对Parsec解释器进行移植、实现规则引擎等。最后,主要做出了两项成果:用Scala开发出了Jaskell Core Parsec,以及专门为Java 8项目完成的Jasekll Parsec Java 8。这些成果也在我目前的工作中得到应用,收到了良好的效果。
本书从一些简单的例子入手,逐步介绍Parsec组合子的原理、应用和实现,重点是讲解它在Java和Scala中的实现方式,并给出相应的代码。因为示例解释器是分别用Java和Scala实现的,所以本书也可以作为Java和Scala语言的补充教材。
为了方便书籍的排版和印刷,我对书中代码做了一些格式上的处理,这些处理并不影响代码的功能。读者可以在书尾找到最新版本的代码。

我是一个任性的人,急躁而缺少规划,总是为了兴趣冲动地投入大段人生。我庆幸自己生活在一个好时代,有程序员这样有趣的工作可以做,有方便的现代生活和发达科学技术。
我做的很多事,都远远超出了我最初的想法。当初,我只是想学一些方便、优雅的编程语言,可以让懒惰的我更自如地表达思考成果,并完成工作。后来,我又希望自己能够学会一些基本的编译器知识,包括代码的解析技术。这两个方向的学习把我神奇地引向了组合子。
这是一个有趣的方向。回头看看,这个领域并没有我最初想象的那么神奇,它可以说是一个很特定的编程模式,能漂亮地解决一些问题,但是它并不是万能的,也有很多它不能优雅地解决的问题。
在我们那个年代非常热门的函数式编程同样如此,它有不小的价值,但也不是银弹,并不比流行的编程语言更“高级”。如今我最喜欢的、最常用的编程技术,都不是“纯粹的”函数式的或面向对象的,它们都是精彩的组合体。
感谢发明这些编程语言和技术的同行,他们创造了这么多有用且有趣的东西,让我不仅仅限于日常的业务开发,更能在编程中找到乐趣,指引我思考是否有更好的工作方式。计算机科学家和天才工程师对“纯粹”的追求,贡献了很多有价值的思想,进而才有了我现在喜爱的各种工具。
年轻时,我曾幻想在学习编程的过程中建立“思想”。现在,工作二十几年后,我甚至不确定是否还有这种想法,但是我很确定,我找到了很多乐趣。
此时此刻,我才发现完成这本书的感受是“我做了一件有趣的事”。
写这本书时,我尽量使用朴素的语言,不带任何情绪。但是我希望它可以给读者带去乐趣。这本书介绍了一个有趣的编程范式,可以通过精巧的设计,实现对复杂信息模式——尤其是文本——的分析和处理。
初学者学习了Java或Scala的语法后,可以把这本书当作补充教材。它完整地实现了一个精巧却相对简单的项目,可以让读者在不依赖额外复杂框架和技术工具的情况下,完整地体验一个软件项目的全过程。编写这个解释器需要的Parsec组合子库也是由常规代码构成,它简单到我们可以在书中讨论如何从零构造。
这本书也可以作为有经验同行的一本业余读物。我喜欢看一些有趣的手工作品,例如木制计算机、乐高积木拼出的复杂机械装置、蔚为壮观的多米诺骨牌等。我觉得这本书也可以算在此列——我们可以用“常规”的编程技术实现通常认为需要专业工具构建的文本(甚至任意信息“串”)分析程序。它不仅有用,而且还很有趣。
这本书的写作灵感来自著名的Haskell教材《Write Yourself a Scheme in 48 Hours》。我在自己使用的编程语言中实现了Parsec组合子库,然后实现了若干微型LISP解释器。在回顾开发过程时写了这本书。通过实现LISP解释器讲解组合子技术、介绍函数式编程的方式是从那本书里借鉴的。我不是伟大的先行者,我只是一个吟游诗人,站在前人走过的路上,努力向后来者述说沿途的风景。如果有读者从中收获了知识和技巧,找到了共鸣和乐趣,那就是我的荣幸了。
有幸写完这本书,要感谢妻子多年来对我的包容和支持。我为了兴趣做了太多任性的事,花了太多时间学习一些工作中不太可能用到的编程技术。
本书的编辑徐定翔老师,是我多年来选购和阅读技术书籍时非常信任的人。因为徐老师的工作,我读到了很多精彩的书籍,学到了很多知识。这次能够与他合作出版这样一本书,是我的荣幸。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.