多种网盘链接检测插件 购买前,请先检测网盘链接是否有效
《自制编程语言基于C语言》_郑钢_2018-8-17_1
《自制编程语言基于C语言》_郑钢_2018-8-17_2
《自制编程语言基于C语言》_郑钢_2018-8-17_3
内容简介:
蝙蝠侠学院
郑钢著
基于C语言
自制编程语
人民邮电出版社
北
京
图书在版编目(CIP)数据
社,2程语
言/郑钢著.一北京:人民邮电出版
ISBN978-7-115-48737-7
19281①0“1①C言一程序设计
中guo版本图书馆CIP数据核字(2018)第137473号
内容提要
本书是一本专门介绍自制编程语言的图书,书中深入浅出地讲述了如何开发一门编程语言,以
及运行这门编程语言的虚拟机。本书主要内容包括:脚本语言的功能、词法分析器、类、对象、原
生方法、自上而下算符优先、语法分析、语义分析、虚拟机、内建类、垃圾回收、命令行及调试等
本书适合程序员阅读,也适合对编程语言原理感兴趣的计算机从业人员学
责任编辑张涛
责任印制MA振武
◆人民郎电出版社出版发行北京市丰台区成寿寺路11号
组编100164电子件315@ptpress.comcn
固安县铭成印刷有限公司印刷
◆开本:787×10921n6
字数:743千字
018年9月第1散
印数:1-2400册
2018年9月河北第I次印刷
定价:89.00元
读者服务热线010)81055410印装质量热线010)81055316
反盗版热线010)81055315
广告经营许可证:京东工商广登字20170147号
推荐序
很高兴能成为本书的首批读者,也很高兴能为本书写推荐序
刚拿到本书手稿时,从书名上我意识到这是对我胃口的书。果然,整书阅读以后,收获颇多
如今程序员的开发成本已经很低了,项目中有各种成熟的框架和库可供选择和使用,但还有人能
静下心来研究编译器这么底层的技术,实属难得。本书犹如一把火炬,点燃了技术人内心对开发
的热情
依稀记得2010年年初在百度与郑钢初次见面的情景,那时他工作之余的时间基本都用在向各
个技术专家请教、讨论各类技术问题上,他是我带过的人中最勤奋的人之一。时光荏苒,一分耕
耘一分收获,看到他今天的成长,尤感欣慰
本书讲述了一门脚本语言( sparrow)的开发过程,这是一本“步步为营”式的书籍,延续了
他编写《操作系统真象还原》的风格,手把手地教读者从零实现一门语言,从原理到实践每一步
都有实际的代码和详尽的原理说明,通过运行书中各小节中的代码,读者可以很轻松地掌握各个
细节,因此本书的学习曲线并不陡峭,甚至很平坦。另外,值得欣喜的是,本书所编写的脚本语
言并不是用Java、C艹等入门难度略大的语言实现的,而是用C语言,这是我们学习编程的基础
语言。也就是说,本书不需要专业的开发经验即可上手学习。另外,在实现过程中并未用到复杂
的库函数或系统调用,可以负责地说,本书己经将学习成本降到最低
C语言是一种面向过程的语言,如何用一种面向过程的语言去实现一种面向对象的语言很有
意思。另外,PHP和Perl语言虽然也实现了类,但它们其实是一种面向过程的语言,并不是纯粹
的面向对象语言,而 sparrow语言是一种纯粹的面向对象语言,它在设计之初就采用对象的方式
来处理脚本语言中类的成员和方法,这仿佛让我们看到了面向对象编程语言的基因。众所周知
当今流行的脚本语言应属 Python, Python也是用C语言实现的,也许你很好奇 Python的内部原
理,但是想到它有将近4万行的源代码时,也许甚至不想看它的源程序了。那么研读本书中的
amow语言会是一种更好的选择,其源码不足7100行,阅读过程轻松愉快,但可以学到 Python
这种语言的实现原理。
对于脚本语言来说,两个重要方面就是垃圾回收和运行环境。垃圾回收就是我们平时所说的
GC( Garbage Collection)。有了GC,程序员不需要手工释放所分配的对象,可以使精力专注于业
务逻辑而不用担心_内.存_泄漏问题。在 sparrow语言中同样实现了GC,通过此部分代码你可以看到
GC的原理,以及哪些对象才能被回收。运行时环境就是脚本语言中的虚拟机,即wM(如Jav
语言的M也是一种VM)。脚本语言是通过虚拟机才能运行的,如何把编译器生成的操作码转换
为实际的代码,这里面的工作对大多数人来说很神秘。相信各位在源码中一探究竟之后会发现:GC
和ⅥM这两个神秘的黑盒子不过如此。另外,也许程序员最感兴趣的就是线程,关于线程在用户态
下是如何实现的、线程如何实现调度,本书将告诉你答案。总之,但凡涉猎,开卷有益
每个程序员都有实现属于自己编程语言的梦想,说其是梦想,原因是实现的难度很大本书
井的是纯粹的技术“于货”,符合郑钢一贯的写作风格,这是他静心写出来的东西,内容满满,很
值得阅读
于晓声
滴滴系统部技术高级总监
业界热评
本书详细阐述了设计编程语言所需的基本理论,并且以作者自己开发设计的 sparrow编程语
言为例,引导读者一步一步地实现一门完善的编程语言,本书还讲解了大量的基础类以及垃圾内
存回收功能,切实帮助读者从理论过渡到实践,再走向实用
Xiao金亮,_阿.里_蚂蚊金服技术专家
ri常有些运维、开发的工作之所以难以开展,很多时候就受限于对底层技术的不了解,本书
从独立开发一门编程语言和虚拟机的实践入手,对相关知识进行了阐述,讲解很清楚,实现的技
术很值得称赞
Chen晓聪,百度资深运维工程师
回顾计算机技术发展的这几十年,编程语言层出不穷,语言特性愈发抽象,语言使用则愈发
简洁,底层机制隐藏得也越来越深。这种情况下,程序员想深入理解编程语言原理愈发困难,需
花费大量精力去学习语言设计理论并深入阅读语言实现的源码,但往往事倍功半,收效甚微
本书另辟蹊径,带领读者从零开始自己动手实现一个编程语言及其运行环境,循序渐进,在实践
过程中透彻理解编程语言的来龙去脉
冯顾,360企业.安.全.集团政企云事业部技术总监
在云与人工智能时代的大背景下,软件从业者都有必要去了解一下虚拟机与一门编程语言
通过对这部分知识的了解能够对操作系统和语言编程有更深刻的理解。市场上介绍编程语言和操
作系统入门的书籍不多,而本书是一本较好的读物,很值得读者学习
陆景玉, ACFUN高级运维总监
自制编程语言和虚拟机,这是一个看似很深奥的课题,也涉及当今互联网流行的主题,许多
技术人员对其心驰神往,但要领悟其精髓步履维艰。本书循序渐进、由浅到深地讲解了丰富的基
础知识,覆盖了常见的编译原理入门知识,更难能可贵的是,作者讲解的知识具有其独特的理解
和视角,相信本书能让读者受益匪浅。
黄梦溪, Mobvista运维总監
|
|