图灵社区会员 leezom([email protected]) 专享 尊重版权 数字版权声明 图灵社区的电子书没有采用专有客 户端,您可以在任意设备上,用自 己喜欢的浏览器和PDF阅读器进行 阅读。 但您购买的电子书仅供您个人使 用,未经授权,不得进行传播。 我们愿意相信读者具有这样的良知 和觉悟,与我们共同保护知识产 权。 如果购买者有侵权行为,我们可能 对该用户实施包括但不限于关闭该 帐号等维权措施,并可能追究法律 责任。 图灵社区会员 leezom([email protected]) 专享 尊重版权 图灵社区会员 leezom([email protected]) 专享 尊重版权 图灵社区会员 leezom([email protected]) 专享 尊重版权 图书在版编目(CIP)数据 两周自制脚本语言 /(日)千叶滋著 ;陈筱烟译 -- 北京:人民邮电出版社,2014.6(2016.12 重印) (图灵程序设计丛书) ISBN 978-7-115-35564-5 Ⅰ. ①两… Ⅱ. ①千… ②陈… Ⅲ . ① JAVA 语言-程 序设计 Ⅳ. ① TP312 中国版本图书馆 CIP 数据核字(2014)第 093603号 内 容 提 要 本书是一本优秀的编译原理入门读物。全书穿插了大量轻松风趣的对话,读者可以随书中的人 物一起从最简单的语言解释器开始,逐步添加新功能,最终完成一个支持函数、数组、对象等高级 功能的语言编译器。本书与众不同的实现方式不仅大幅简化了语言处理器的复杂度,还有助于拓展 读者的视野。 本书适合对编译原理及语言处理器设计有兴趣的读者以及正在学习相关课程的大中专院校学 生。同时,已经学习过相关知识,有一定经验的开发者,也一定能从本书新颖的实现方式中受益良多。 [日]千叶 滋 ◆著 译 陈筱烟 责任编辑 徐 骞 责任印制 焦志炜 ◆ 人民邮电出版社出版发行 邮编 100164 北京市丰台区成寿寺路11号 电子邮件 [email protected] 网址 http://www.ptpress.com.cn 北京 印刷 ◆ 开本:800×1000 1/16 印张:18.75 字数:429 千字 2014 年 6 月第 1 版 印数:5 001- 5 300 册 2016 年12 月北京第 5 次印刷 著作权合同登记号 图字:01-2013-6220 号 定价:59.00 元 读者服务热线:(010)51095186 转 600 印装质量热线:(010)81055316 反盗版热线:(010)81055315 广告经营许可证:京东工商广字第 8052 号 图灵社区会员 leezom([email protected]) 专享 尊重版权 译者序 在大学时代,编译原理就是我十分感兴趣的一门课程。无论是手工进行语法分析计算,还是 尝试设计一些简单的语言处理器,都给我留下了深刻的印象。为某些特殊用途的软件设计专用的 程序设计语言,也是我一度着迷的课题。当时,阿尔弗雷德所著的《编译原理技术与工具》是自 己包中的常客,我常带着英文原版辗转于教室、图书馆与自己的房间。 怀着对编译原理的这份兴趣与热忱,我一直都希望能做一些与之相关的工作。遇到这本《两 周自制脚本语言》 ,算是一种缘分。 初见书名,我还有些犹豫。国内以速成为卖点的计算机书籍不少,真正值得一读的好书却不 多。诱惑读者靠走捷径学到真知,常常最终使他们绕了弯路。不过在了解到作者是东京大学和东 京工业大学计算机系的资深教授后,我又对这本书产生了好奇。一位仍活跃在科研与教学第一线 的学者,会怎样在两周内教会读者设计一种脚本语言呢? 读完本书,我颇为惊喜,原本的担心消失殆尽。这是一本有趣而实用的书,内容编排十分独 特,作为一本编译原理的入门读物,本书的很多编写思路都围绕这点展开。作者没有为了增添噱 头而加入大量初学者不易理解也无需急着掌握的知识与技术,而是始终以够用为本,逐步扩展语 言的语法规则,帮助读者从最基础的概念到一些常用的进阶设计理念,逐步掌握语言处理器的运 行原理,以及设计一门新的语言的必要步骤。书中随处可见的老师与学生、学生与学生间的轻松 对话是本书的一大特色,几位性格迥异的出场人物时而为读者解惑,时而提出一些更深层次的问 题,引发读者的思考。 尽管书名是自制脚本语言,但本书的内容却是自制脚本语言处理器。作者花了大量篇幅讲解 语言处理器的功能增强与性能优化。与同类书相比,本书使用了一种较为新颖的实现方式,能够 有效简化语言处理器的设计与维护成本。尽管它还无法完全胜任实际生活中更为复杂的系统,这 种解决问题的思路却对开拓读者的眼界很有帮助。 得益于作者丰富的教学科研经验,本书涉及了不少实践中可能遇到的问题。作者没有直接给 出解答,而是引导读者思考,无论是初学者还是有一定基础知识的读者,都能在阅读本书后有新 的发现。在翻译本书时,我也有所收获。其中,为了深究一些细节问题,我曾专门致信向作者请 教。作者立刻对我的疑问进行了解答,并附上了细致的说明,在他的帮助下,中译本的质量得到 了进一步提升。在此谨对作者的支持表示衷心的感谢。此外,中译本已经参照原书的勘误及补遗 表做了修改与调整,一些细节问题得到了修正。 图灵社区会员 leezom([email protected]) 专享 尊重版权 iv 译者序 在翻译过程中,我得到了许多人的帮助与支持。家人为自己创造了能够安心翻译的环境,并 始终给予理解与关心。好友陈洁也为我提供了莫大的支持,使我可以每天以最佳状态投入工作。 这里还要感谢图灵的各位编辑提出大量极具价值的建议与意见,帮助本书顺利完成并最终问世。 最后,希望对编译原理有兴趣的读者都能从本书中获益。 陈筱烟 2014 年 4 月于上海 图灵社区会员 leezom([email protected]) 专享 尊重版权 前 言 本书是一本编译原理的入门读物。过去,大家普遍认为编译器与解释器之间存在很大的差 异,因此会分别编写针对编译器与解释器的图书。不过,最近编译器与解释器之间的界限越来越 模糊,我们只要稍微了解一下常见的程序设计语言,就会发现两者已不再是对立的概念。 因此,与其说本书是编译原理的入门书,不如说是语言处理器的入门读物更为恰当。语言 处理器是用于执行程序设计语言的软件,它同时包含了编译器与解释器。本书看似用了大量篇 幅讲解解释器的原理,其实是在讲解编译器与解释器通用的理论。第 1 章将详细介绍各章节的 具体内容。 本书采用了 Java 语言来实现语言处理器。在设计语言处理器时,C 语言或 C++ 语言更为常 见,加之本书没有借助 yacc 等常用的工具来生成语言处理器,因此读者也许会认为本书的实用 性不足。 本书在介绍语言处理器的设计方式时,尽可能采用了较新颖的手段。C 语言或 C++ 语言结 合 yacc 的方式性能较差,且是上世纪 80 年代的实现方式。在那之后,程序设计语言飞速发展, 已不可同日而语,其运行性能也大幅提升。入门读物也应该与时俱进,讲解与过去不同的设计方 式,展现它们的实践价值。 时至今日,软件领域的发展依然日新月异,并逐渐渗透至生活的方方面面,这一势头无疑将 持续下去。在此期间,各类技术必将不断发展,为了跟上技术更新的步伐,软件应当以略微领先 于时代的设计思路开发。 很久以前,笔者曾使用 C++ 语言开发过适用于工作站的语言处理器,当时,时钟频率仅有 100 兆赫,内存也不过几百兆字节。那套软件幸运地在各种环境下运行了十年以上。有一天,我 收到了一封邮件。我记得好像是一个德国的年轻人,他洋洋洒洒写了很多,批评那套软件的设计 有不少问题。还说开发者应当合理使用模板,并灵活运用各种库,要学习使用设计模式,还要用 XML 来表示抽象语法树,等等。 他指出我太节省内存,只顾着提升性能,结果程序难以阅读。从当时的主流软硬件标准来 看,这些批评确实合情合理,但那套系统毕竟是十年前的产物。在当时软硬件性能孱弱的情况 下,如果遵循他的建议,最终完成的语言处理器恐怕会被打上缺乏使用价值的标签(顺便一提, 提出批评的那位年轻人虽然说了很多,却没有写一行代码) 。 然而,从这件事中我深刻体会到,软件有着惊人的生命力,即使在开发时采用了最佳设计, 最终还是会随着时代的进步而被迅速淘汰。因此,前文说软件应当以略微领先于时代的设计思路 图灵社区会员 leezom([email protected]) 专享 尊重版权 vi 前言 开发有其合理性。当然,我们也可以不关心他人的批评,尽可能缩短软件的生命周期,并积极抛 弃过时的内容。具体采用哪种策略因人而异。 希望读者能够在阅读本书时始终记住这些理念。读过本书之后,如果大家觉得收获良多,我 将深感荣幸与喜悦。 2012 年 新春 千叶滋 图灵社区会员 leezom([email protected]) 专享 尊重版权 推荐序 本书虽然是编译原理的入门读物,但除了编译器之外,还将介绍程序设计语言的各种功能 及相应实现方法的基本设计思路。不过,与现有的很多编译原理入门书不同,本书的内容十分新 颖。已有的同类书大多遵循一些固定套路,以正则表达式、自动机、LL 语法、LR 语法及相关的 语法分析算法等基础知识为核心,设计简化的 C 语言风格编译器。本书不仅会仔细讲解这些知 识点蕴含的基本思想,还会通过现成的库来实现语言处理的词法分析与语法分析逻辑。 本书仅简单讲解词法分析与语法分析等编译器的基本知识,而将重点放在语言处理器的实 现上。已有的同类书很少涉及各类具体的语言功能与它们的具体实现方式,本书将由简入繁,逐 步修改语言处理器,介绍这些功能与实现。语言处理器最初只支持无变量声明的简单表达式,之 后陆续添加函数与闭包、数组、面向对象类型、类型推论等功能,将它从解释器修改为编译器。 本书采用 Java 语言来实现语言处理器,不过在多次修改后,已有的程序通常需要重写,这 并非我们希望看到的。本书使用了笔者开发的语言处理工具 GluonJ,因此在添加功能时无需修 改已有的代码,只需另外编写必要的程序即可。因此可以轻松更改不同功能的配置。这是一种非 常理想的程序开发方式。 得益于这种方式,本书能通过若干较为简短的独立程序实现语言处理器的各种功能,并将完 整代码收录于书中。这正是 GluonJ 的长处,如果合理设计程序结构,这种优势能进一步得到发 挥,程序的扩展将更加容易。希望读者能够通过本书体会这种编程思想。

pdf文档 [图灵程序设计丛书].两周自制脚本语言

专业资料 > IT/计算机 > 计算机硬件及网络 > 文档预览
306 页 0 下载 250 浏览 3.0分
温馨提示:当前文档最多只能预览 20 页,若文档总页数超出了 20 页,请下载原文档以浏览全部内容。
本文档由 woyaoziliao 于 2020-12-18上传分享
相关精品文档
  • 目录 第一章 王强夜谈敌情 /1 第二章 老洪飞车搞机枪 第三章合伙开炭厂 /13 /26 第四章来了管账先生 /37 第五章政委和他的部下 第六章小坡被捕 /63 第七章血染洋行 /74 /47 第八章山里来了紧...
    其它     3.0 分 519 页 | 1.84 MB
  • 目录 第 1 篇 寻求生命的价值 用饱满的热情生活 /2 从容应对生活 /6 追求伟大 /9 让智慧拯救灵魂 /12 在思考中获得力量 /15 追寻美的生活 /19 品味记忆的美好 /22 让思想变得崇高 /27 倾听心灵的声音 /30 ...
    其它     3.0 分 254 页 | 3.22 MB
  • 目 录 第一篇 同情博爱 感恩的心 / 2 此生两依依 / 5 你就是百万富翁 / 8 视力与偏见 / 10 真正的爱心 / 12 用真诚打动别人 言语难诉的爱 最美丽的人 / 14 / 16 / 20 让孩子自己走 ...
    其它     3.0 分 257 页 | 3.26 MB
  • 目录 李 /1 白 蜀道难 /1 将进酒 /6 /9 行路难(其一) 长干行 /10 静夜思 /13 长相思 /14 /15 秋浦歌(其十五) /16 赠汪伦 /17 宣州谢朓楼饯别校书叔云 /19 梦游...
    其它     3.0 分 406 页 | 3.11 MB
  • 目录 李 /1 白 蜀道难 /1 将进酒 /6 /9 行路难(其一) 长干行 /10 静夜思 /13 长相思 /14 /15 秋浦歌(其十五) /16 赠汪伦 /17 宣州谢朓楼饯别校书叔云 /19 梦游...
    政治     3.0 分 0 页 | 12.68 MB
  • 目录 李 /1 白 蜀道难 /1 将进酒 /6 /9 行路难(其一) 长干行 /10 静夜思 /13 长相思 /14 /15 秋浦歌(其十五) /16 赠汪伦 /17 宣州谢朓楼饯别校书叔云 /19 梦游...
    英语     3.0 分 0 页 | 16.42 MB
  • C++程序设计练习题一 一、单项选择题 1. C++是一种( B )的程序设计语言。 A. 面向对象 B. 即可面向过程,又可面向对象 C. 面向过程 D. 面向系统 2. 在下面有关析构函数特征的描述中,正确的是( C )。 A....
    外销员     3.0 分 48 页 | 347.23 KB
  • 2021/5/8 Linux系统(X64)安装Oracle11g完整安装图⽂教程另附基本操作_oracle_脚本之家 脚本之家社区 服务器常⽤软件 源码商城 ⽹站⾸⻚ MsSql ⽹⻚制作 Mysql mariadb ⼿机版 ...
    计算机软件及应用     3.0 分 16 页 | 6.56 MB
  • C 程序设计练习题一 一、选择题 1.以下选项中属于 C 语言的数据类型是( B )。 A. 复合型 B. 双精度型 C. 逻辑型 D. 集合型 2.以下说法中正确的是( C )。 A. C 语言程序总是从第一个函数开始执行 B. ...
    职称计算机     3.0 分 22 页 | 186.50 KB
  • Flash 动画设计练习题一 一、选择题 1.下列选项中不属于 Flash 8 面板的是( B A 属性面板 B 修改面板 )。 C 动作面板 )键不放即可绘制正圆形。 2.利用椭圆工具进行绘画时,只要按住( A A Shift ...
    职称计算机     3.0 分 15 页 | 98.50 KB
  • 学员专用 请勿外泄 2020 环球网校二级建造师《建设工程法规及相关知识》第 45 讲民事诉讼的审判程序与民事 诉讼的执行程序 【考点】民事诉讼的审判程序 1.民事一审程序【★★★】 (1)一审程序包括普通程序和简易程序,普通程序是第一审...
    二级建造师     3.0 分 4 页 | 279.61 KB
  • 学员专用 请勿外泄 2020 环球网校一级建造师《市政公用工程管理与实务》考点精讲 【考点】模板、支架和拱架的设计、制作、安装与拆除 一、模板、支架和拱架的设计与验算 (1)模板、支架和拱架应结构简单、制造与装拆方便,应具有足够的承载能...
    质量工程师     3.0 分 5 页 | 592.61 KB