下载  >  开发技术  >  其它  > 自制编程语言(文字版)

自制编程语言(文字版) 评分:

文字版《自制编程语言》。 这本书是为那些想独立制作一门编程语言的人而写的。 一听到这个话题,有的人会想:太疯狂了,制作编程语言肯定很有 难度吧?有人会怀疑:制作编程语言能有什么用呢?其实这些都是误 解。
版权声明 PROGRAMMING GENGO WO TSUKURU by Kazuya Maebashi CopyrightC 2009 Kazuya Maebashi All rights reserved Original Japanese edition published by gijyutsu-Hyoron CO, Ltd, Tokyo This Simplified Chinese language edition published by arrangement with Gijyutsu-Hyoron Co, Ltd. Tokyo in care of Tuttle-Mori agency, Inc, Tokyo 本书中文简体字版由 Gijyutsu- Horon Co.,Ltd授权人民邮电出版社 独家出版。未经出版者书面许可,不得以任何方式复制或抄袭本书内 容 版权所有,侵权必究。 (图灵公司感谢李典对本书的审读) 译者序 能翻开这本书的人,想必对编程都有着浓厚的兴趣。大部分编程爱 好者都会利用业余时间写一些小程序、开源项目作为消遣,却很少有人 会想要自己创造一门编程语言,这是为什么呢? 在翻译本书之前,如果别人问我要不要尝试自制编程语言,我一定 会觉得他疯了。因为在潜意识里,我一直认为制作编程语言应该是C语 言之父丹尼斯里奇这样的业界大牛才能完成的浩大工程,作为一个普 通程序员只要安于本分,用好已有的语言就已经足够了。 在翻译完本书后,我才发现自己真的是大错特错。原来创造一门编 程语言,只需要·些C语言基础、·些正则表达式知识、加上不断思索 的大脑就可以做到。如果你还觉得难以置信,那么就请看看在这本不算 厚的书中,作者居然已经创造了两门编程语言,并且都具备高级编程语 言的所有特性。 其实一开始的问题已经有了答案:很多看似难如登天的事情,一旦 真的下决心去做,你会发现难度并没有想象中那么高,只是我们往往缺 少一颗勇于挑战的心罢了 本书记录了作者一步一步从零创造出编程语言的全过程,作者并不 是什么行业精英,而是像你我一样的普通开发者。整本书中也没有用特 别复杂的算法或酷炫的编程技巧,但是就凭借着一行行简单朴实的编程 语句,作者最终完成了个普通开发者看来几乎不可能完成的任务。阅 读完本书后,除了自制编程语言的知识,我相信读者还能收获到一些更 重要的东西。 本书原文讲到了日文编码的知识,为了更好的将内容精髓呈现给读 者,我们大胆地将涉及日文编码的部分全部更改为中文编码的知识,译 者刘卓还对此编写了很多原创的补充内容,力求能与原书保持同样的水 平。如有错误或疏漏,还请读者随时指正 读完仝书后,你会对编程语言的原理和实现方式有一个全面深入的 了解,比如你会明白为什么Java中 String类型明明是对象类型却不能改 变其内容,C语言中为什么a+++++b这样看似合理的语句却会报错等 以前知其然而不知其所以然的问题都会得到答案,这对日后进行更高阶 的开发有很大的帮助。 更重要的是,你可以获得自制编程语言的能力,从而可以去做很多 以前敢想却没有能力做的事情,比如我现在就在构思能香创造·门以文 言文和中国古代文化为基础的编程语言:易经八卦就是天然的二维矩 阵,《九章算术》则有不少基础算法…信读者还会有更加天才有趣 的想法岀现。如果能运用本书中的知认最终将其实现,那么这将是对翻 译工作最好的背定。 最后,在这里代表其他二位译者·并感谢在翻译过程中给予我们帮 助和攴持的家人、同事,让这本书最终得以问世。 徐谦 2013年中秋 前 这本书是为那些想独立制作一门编程语言的人而写的 听到这个话题,有的人会想:太疯狂了,制作编程语言肯定很有 难度吧?有人会怀疑:制作编程语言能有什么用呢?其实这些都是误 解 制作编程语言在技术层面上其实并不难,只要掌握一些基础知识即 可。而且,制作编程语言对于我们深入理解日常使用的C、Java Javascript等语言都有帮助。在一些应用程序的内置脚本语言中,我们也 经常会因为种种限制从而萌生制作替代语言的想法。因此,自制编程语 言并不是少数极客的个人癖好,它对大多数程序员都颇具实用价值。 日本关于制作编程语言的书已经很多了,其中一些还被选定为大学 教科书。这些书中常出现有限状态机、NFA、LL(1)、LR(1)、SLA等专 业词汇,同时还大量使用∩、∈等数学符号,对于不熟悉这部分理论知 识的人(包括我自己在内)来说非常难以读懂。针对这种现状,本书会 偏重实践,避免枯燥的理论。 本书将分别制作两种编程语言: crowbar与 Diksam。 crowbar是运行 分析树的无类型语言, Diksam是运行字节码的静态类型语言。无论哪种 语言,都具备四则运算、变量、条件分支、循环、函数定义、垃圾回收 等功能,最终版则可以支持面向对象、异常处理等高级制。总之,作 为现代编程语言所必须具备的功能都基本覆盖了(唯可能没实现的就 是多线程了吧)。所有源代码都提供下载,读者可以一边对照书中的说 明一边调试源代码,这样应该不难理解整个程序的运行机制。 当然,要一次实现如此多功能的编程语言,对于初学者而言可能有 点吃力,因此本书会详细介绍 crowbar、 Diksam的制作步骤,请放心。 在制作编程语言的过程中,我体会到了一种无法用语言形容的快 乐。其实无论在日本或其他地区,世界上还有很多人都在尝试自制编程 语言,这正是编程语言不断增加的原因。如果以本书为契机,有朝一日 你也向本已混乱的巴比伦之塔再溱·门新语言的话,作为本书作者,这 将是无上的光荣。 在本书的撰写过程中,得到了很多朋友的帮助与支持: 感谢百忙之中通读原稿并给出很多改进意见的吉田敦、间野健二 藤井壮一、山本将;感谢对本书原型,即网页版“自制编程语言”提出意 见的朋友;感谢对博客连载“自制编程语言日记”提出意见的读者朋友」 以及实际使用 crowbar与 Diksa并提出意见的朋友。最后还要感谢每次 对我延迟交稿仍然充满耐心的技术评论社的熊谷裕美子编辑。多亏大家 的鼎力支持,本书才终能完成,在此我表示深深的谢意。 2009年5月7日01:06JST 前桥和弥 第1章引子 11为什么要制作编程语言 本书的主题是自制编程语言。单说现在被广泛使用的编程语言,就 有C、C++、Java、C#、Perl、 Python、Ruby、PHP、Lisp、 Javascript 等。可能有人会质疑,既然已经有这么多语言了,真的有必要再特意创 造一门新的语言吗? 实际上,自制编程语言还是大有益处的。 1.可以帮助理解编程语言的内部运行机制 编程语言是程序员每天都要使用的工具。深刻地理解这个工具,对 程序员来说非常重要。 般来说,重新编写一个与已有程序相似的程序会被说成是“重复 发明轮子”,这在行业内是不被认同的。但本书中想要实现的,偏偏是 在众多语言存在的前提下再制作一门新的语言,正是“重复发明轮子”。 这是深划理解编程语言的最佳途径(缺点是要花很多时间)。 2.能制作领域专用语言 比如在Unⅸx的世界中,有sed和awk两种历史悠久的专为文本处理定 制的语言(后来在此方向上发展出了Perl语言)。PHP则是专门面向 Web程序开发的语言。如果掌握了制作编程语言的技术,就可以在必要 的情况下制作出领域专用语言(DSL, Domain- Specific language)。 领域专用语言不一定会像Per与PHP那么复杂,在很多情况下,如 果能书写条件分支或者简单语句的话会方便许多,这也可以看作是一种 专用领域。 比如在业务流程处理等软件中,很多时候为了切换测试环境与生产 环境的数据库,需要重写配置文件,而这一操作经常会引发问题(比如 由于版本升级需要增加配置文件项目,此时必须与旧版本配置文件合 并)。这时候我们可能就公想,如果能直接在配置文件中写ⅱ语句将其 按域名分开就好了 除此以外,我们在填写数据时可能希望能支持类似 Excel的简单算 术公式,在玩游戏时希望能把游戏中的对话导出到一个外部文件中,等 等。这些都可以看作专用领域并制作对应的DSL 3.可以用编程语言扩展应用程序 将以上两方面的考量进一步延伸,我们就会得到以通用语言扩展某 个应用程序的构想。 Emacs这个编辑器就内置了 Emacs Lisp这种Lisp方 言,从而为 Emacs的自定义提供了无限的可能性。同理, Microsoft Office也可以使用ⅤBA进行扩展。 对于这类应用程序扩展语言,当然完全可以使用某种已有的编程语 言(Lua等就在向这个方向发展),也可以在编写应用程序时从底层到 扩展全部自己实现。这样就无需担心使用其他编程语言在版本升级时引 起的兼睿性问题了。 4.说不定还会变成名人 如果自制的编程语言能在世界范围内得到广泛使用,那就太棒了 比如Ruby之父松木行弘先生就是世界名人。 不过坦白讲,通过自制编程语言来获得成功实在是太难了。即便语 言被创造出来,如果没人用的话就不会产生相应的软件,这样就更不会 有人用了。况且,即便真的因为发明了新的语言而变成了名人,通过这 个赚到钱的希望也十分渺茫啊。其实我自己最近写的语法处理器都是免 费发布的(不这样的话,语言没法普及呀)。 5.自制编程语言非常有趣 啰嗦了这么多,说到底其实是因为白制编程语言非常有趣。 自制一门编程语言确实是一件非常有意思的事。有人说过“想写出 终极程序的程序员,最终都去写操作系统或者编程语言了”,你可以通

...展开详情
2019-04-03 上传 大小:6.23MB
举报 收藏 (1)
分享
自制编程语言 基于C语言 郑刚

全本,较清晰。完整的手写解释器实现。

立即下载
《自制编程语言》高清扫描+全书源码

《自制编程语言》高清扫描版pdf,附带全书源码,欢迎大家下载

立即下载
自制编程语言 完整版(PDF+代码)

内含自制编程语言完整版PDF,并且还有这本书中的代码,看起来不错 ,值得学习

立即下载
自制编程语言基于C语言郑钢源代码

自制编程语言基于C语言郑钢源代码 自制编程语言基于C语言郑钢源代码 自制编程语言基于C语言郑钢源代码

立即下载
《自制编程语言》pdf+全书代码

《自制编程语言》高清PDF文档+全书代码文件,适合学习用。

立即下载
自制编程语言 高清版 .pdf

自制编程语言 高清版.pdf

立即下载
自制编程语言中文高清版

作者简介: 前桥和弥(Maebasi Kazuya) 1969年出生,著有《征服C指针》、《彻底掌握C语言》、《Java之谜和陷阱》等。其一针见血的“毒舌”文风和对编程语言深刻的见地受到广大读者的欢迎。 作者主页:http://kmaebashi.com/。 译者简介: 刘卓 2004年开始从事对日软件开发工作,其间还从事技术及软件工程相关培训工作。自2011年开始从事电力行业产品研发。持续关注企业级应用架构和Web客户端技术。 徐谦 6年技术开发及项目经验,曾以技术工程师身份赴日本工作两年,后归国联合创办互联网公司,现居上海继续创业中。主要从事PHP方向的Web开发。热爱开源

立即下载
自制编程语言 基于c语言 郑钢 书中代码

本想免费给大家,但这里最少要选1分,没有0分项。 《自制编程语言-基于c语言》书中代码,作者郑钢。

立即下载