只需14天,从零开始设计和实现脚本语言
从解释器到编译器,支持函数、数组、对象等高级功能
东京大学&东京工业大学教授执笔
日本编译器专家中田育男作序推荐
千叶滋
东京工业大学研究生院信息技术理工系研究科教授,兼任东京大学研究生院信息技术理工系研究科教授。著有《面向切面入门——从Java语言?面向对象步入AspectJ语言程序设计》《简明Java程序设计——Great Ideas for Java Programming》《GUI库机制——软件设计案例研习》等。
这是一本优秀的编译原理入门读物,它尝试以一种现代的方式设计一种现代的语言,即使读者对编译器已有一定程度的了解,也一定能从中学到很多。——日本编译器专家 中田育男
本书是一本编译原理的入门读物。过去,大家普遍认为编译器与解释器之间存在很大的差异,因此会分别编写针对编译器与解释器的图书。不过,最近编译器与解释器之间的界限越来越模糊,我们只要稍微了解一下常见的程序设计语言,就会发现两者已不再是对立的概念。
因此,与其说本书是编译原理的入门书,不如说是语言处理器的入门读物更为恰当。语言处理器是用于执行程序设计语言的软件,它同时包含了编译器与解释器。本书看似用了大量篇幅讲解解释器的原理,其实是在讲解编译器与解释器通用的理论。第1 章将详细介绍各章节的具体内容。
本书采用了Java 语言来实现语言处理器。在设计语言处理器时,C 语言或C++ 语言更为常见,加之本书没有借助yacc 等常用的工具来生成语言处理器,因此读者也许会认为本书的实用性不足。
本书在介绍语言处理器的设计方式时,尽可能采用了较新颖的手段。C 语言或C++ 语言结合yacc 的方式性能较差,且是上世纪80 年代的实现方式。在那之后,程序设计语言飞速发展,已不可同日而语,其运行性能也大幅提升。入门读物也应该与时俱进,讲解与过去不同的设计方式,展现它们的实践价值。
时至今日,软件领域的发展依然日新月异,并逐渐渗透至生活的方方面面,这一势头无疑将持续下去。在此期间,各类技术必将不断发展,为了跟上技术更新的步伐,软件应当以略微领先于时代的设计思路开发。
很久以前,笔者曾使用C++ 语言开发过适用于工作站的语言处理器,当时,时钟频率仅有100 兆赫,内存也不过几百兆字节。那套软件幸运地在各种环境下运行了十年以上。有一天,我收到了一封邮件。我记得好像是一个德国的年轻人,他洋洋洒洒写了很多,批评那套软件的设计有不少问题。还说开发者应当合理使用模板,并灵活运用各种库,要学习使用设计模式,还要用XML 来表示抽象语法树,等等。
他指出我太节省内存,只顾着提升性能,结果程序难以阅读。从当时的主流软硬件标准来看,这些批评确实合情合理,但那套系统毕竟是十年前的产物。在当时软硬件性能孱弱的情况下,如果遵循他的建议,最终完成的语言处理器恐怕会被打上缺乏使用价值的标签(顺便一提,提出批评的那位年轻人虽然说了很多,却没有写一行代码)。
然而,从这件事中我深刻体会到,软件有着惊人的生命力,即使在开发时采用了最佳设计,最终还是会随着时代的进步而被迅速淘汰。因此,前文说软件应当以略微领先于时代的设计思路开发有其合理性。当然,我们也可以不关心他人的批评,尽可能缩短软件的生命周期,并积极抛弃过时的内容。具体采用哪种策略因人而异。
希望读者能够在阅读本书时始终记住这些理念。读过本书之后,如果大家觉得收获良多,我将深感荣幸与喜悦。
2012 年 新春
千叶滋
初识《两周自制脚本语言》,脑海中浮现的,并非枯燥的代码行,而是那种亲手搭建起一座功能性建筑的成就感。一直以来,我对于“编程”这个词,总带着些许敬畏,觉得那是少数天才的游戏。但这本书的名字,如同一个温暖的邀请,告诉我,原来构建一个属于自己的“小工具”,一个能够替我处理琐碎事务的“脚本”,并非遥不可及。我期待的是,它能像一个循序渐进的向导,带领我一步步揭开脚本语言的面纱,从最基础的概念讲起,比如变量是如何存储信息的,函数是如何封装操作的,再到如何让这些元素相互协作,形成一个完整的逻辑。我希望这本书能提供足够多的实际案例,让我能够一边阅读,一边动手实践,感受代码在指尖跳跃,转化为具体功能的喜悦。哪怕只是一个简单的文件批量重命名工具,或者一个自动整理下载文件夹的脚本,那份“我做到了”的满足感,我想是无与伦比的。我相信,这本书不会仅仅教授我一门语言的语法,更重要的是,它将传递给我一种解决问题的思维方式,一种将复杂任务分解,然后用代码去自动化的能力。这种能力,在如今这个信息爆炸的时代,无疑是一项宝贵的财富。
评分《两周自制脚本语言》这本书,给我最大的感受就是“赋能”。它让我意识到,原来我也可以成为那个“创造者”,而不是仅仅“使用者”。我不再被动地接受现有的工具,而是拥有了改造和创造工具的能力。在阅读的过程中,我惊叹于作者将那些复杂的编程原理,用如此简练且富有诗意的方式表达出来。例如,对于递归函数的讲解,作者用了一个非常生动的比喻,让我瞬间就理解了它的精妙之处。而对于异步编程的探讨,也让我对程序的运行方式有了更深的认识,不再局限于线性的思维模式。这本书的魅力在于,它不仅仅教授技术,更传递了一种“掌握技术,掌控生活”的理念。它鼓励我去探索,去尝试,去打破界限。我迫不及待地想要将书中学到的知识,应用到我正在进行的一些个人项目中,看看能否让它们变得更智能,更高效。这本书,无疑是我通往更广阔数字世界的一块敲门砖,让我看到了无限的可能性。
评分阅读《两周自制脚本语言》的过程中,我仿佛置身于一个充满惊喜的实验室。作者巧妙地将那些看似晦涩的编程概念,用一种极为直观且易于理解的方式呈现出来。例如,关于数据结构的讲解,不再是冰冷的图示,而是被比喻成各种日常物品的收纳方式,让我瞬间就能领会其精髓。而控制流的部分,更是如同一个精明的管家,根据不同的指令,做出恰当的决策,让整个脚本的运行流程变得井井有条。我尤其欣赏作者在书中对“调试”这一环节的重视。过去,我总是在代码出错时感到沮丧,无从下手。但这本书教会我,调试并非惩罚,而是探索和理解代码运行机制的绝佳机会,它指导我如何像侦探一样,一步步追踪问题的根源,最终找到解决方案。这种寓教于乐的学习方式,让我在不知不觉中,攻克了一个个技术难关。更重要的是,它培养了我独立思考和解决问题的能力。当遇到新的需求时,我不再盲目地寻求他人的帮助,而是能够主动思考,尝试用脚本语言来解决,这种自信心的提升,是金钱无法衡量的。
评分《两周自制脚本语言》这本书,对我而言,更像是一把开启创意之门的钥匙。在翻阅的过程中,我脑海中不断闪现出各种可以被自动化的场景:繁琐的数据录入、重复性的报告生成、甚至是日常生活中那些令人厌烦的“小麻烦”。我开始想象,如果我能够掌握脚本语言,就可以将这些耗时耗力的任务,轻松地委托给我的“数字助手”。书中对于不同应用场景的讲解,极大地激发了我的创造力。它不仅仅是教我如何写代码,更是引导我思考“可以用代码做什么”。从自动化办公到简单的网页抓取,再到个人项目管理,每一个章节都像是一扇新的窗户,让我看到更广阔的世界。我期待着能够利用书中学到的知识,为我的工作和生活带来真正的改变。也许是开发一个能够自动监控网站更新的工具,也许是编写一个能够管理我庞大数码照片库的脚本,这些想法,在读完这本书后,似乎都变得触手可及。这种将想象转化为现实的能力,让我对未来充满了期待。
评分这本书,与其说是一本技术手册,不如说是一位经验丰富的导师,耐心地引导着我从零开始,构建自己的技术体系。《两周自制脚本语言》的结构设计非常合理,每一个知识点都层层递进,确保初学者不会感到 overwhelmed。我喜欢它循序渐进的讲解方式,从最基本的“Hello, World!”开始,逐步深入到更复杂的概念,比如错误处理和模块化编程。作者并没有回避编程过程中可能遇到的坑,而是坦诚地分享了自己曾经的经验和教训,让我能够少走弯路。更让我感动的是,书中提供的那些精心设计的练习题,它们紧密结合了理论知识,让我能够及时巩固所学,并将抽象的概念转化为具体的实践。每一次成功地完成一个练习,都能给我带来巨大的成就感,也让我更加坚定了继续学习下去的信心。这本书不仅仅教会了我如何编写脚本,更重要的是,它让我明白了学习编程并非一蹴而就,而是一个需要耐心、毅力和不断实践的过程。
评分书的质量很好,印刷精美,京东送货很快。
评分图书是正版,到货快,我一直相信京东自营的商品,
评分不错的编译原理入门书,上来就开始写代码,比较适合喜欢实战的人。
评分书的内容不错,讲的有点浅。
评分真版,很好,加油。。。
评分刚highhighhighhighhighhi
评分非常好的一本书,对于变成不懂编程的人,这不能算是一本启蒙书,但是却是一本入门级别的书。
评分书是好书,适合新人
评分刚highhighhighhighhighhi
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有