学习C语言和创建你自己编程语言在1000代码以内——第一章介绍

时间:2022-03-19 09:05:17

一直想写点东西,但是一直没有动手。想写博客是因为看了刘未鹏的《暗时间》,但是一直拖着想不到想写什么。最近看到一本在线电子书《Build Your Own Lisp》,感觉挺有趣而且难度适中。加之因本性有点懒惰、不专注,所以写下这篇博客。本文属于半翻译与实验性质,记录的是一个学习过程。而且因尊重原创作者的知识版权,因此选择翻译的性质写一篇文章。为了防止浪费别人的时间,本书作者Daniel Holden认为你可以学习到的如下:1 有效的使用C,2 创建自己语言,3 享受学习的过程,学习Daniel Holden如何思考问题(个人认为这是最重要的一点,尽管排在最后)。

《Build Your Own Lisp》属于一本实用类的书籍,如果不去尝试做点什么就难以了解作者初衷。第一章主要指明了方向,比如本书读者定位、为什么学习C、怎样创建你自己lisp语言。带着问题学习是一种不错学习方式,而且也是这篇博文的写作风格。学习东西的时候需要了解一些背景,好像记得云风的博客里面有句关于学习的话,大概意思是人类的学习不过是在学习历史而已。刚开始看到《Build Your Own Lisp》题目的时候很惊讶,因为创建一门语言是想都没有想过(反问一下,为什么没有想过?)而且还是Lisp语言。欣赏Daniel Holden如何教授读者学习创建语言 ,因该很有趣(复杂东西简单化能力)。作者定位是一些想学习C语言与创建自己语言的读者,但是这不是一本语言入门书。读者需要一点编程经验,而且能够发现新事物与有趣的东西。个人认为只要保持好奇然后坚持下去,日本文化蕴含锲而不舍践行精神值得学习(有兴趣可以看一下《寿司之神》纪录片)。作者谈论如何学习方式如下:

第一 不要复制代码

作者希望读者不要复制本书的源码,而是自己敲出每一行代码。这种避易就难的方式有利于读者理解本书。

第二 保持批判与怀疑

根据第二点我们可以反省一下,自己是否保持这种求学态度。西方有句话“Plato is my friend— Aristotle is my friend— but my greatest friend is truth.",翻译为吾爱吾师,吾更爱真理。这句可能很熟悉,但是可能仅限于知道层次。有人可能这句话来源于亚里士多德,但是据*记载目前尚未在其著作中发现。有兴趣的可以对比一下百度百科与*的定义,申明一点这里不是说百度百科做的不好。指出问题目的在于引出思考,见微知著。

第三 创建真正属于你的语言

这一点我没有看懂,建议看看官方网站的定义。

这一章介绍完了,下一章开始动手写代码。最基本的“Hello world”,几乎是每一个学习编程语言的第一个程序。忘了点评图片,咋一看有一种古典美。检索美女的资料发现名字为Ada Lovelace(译名:埃达·洛夫莱斯),英国拜伦的女儿。数学爱好者,被后人公认为第一位计算机程序员。突然感觉真是浅薄之人,不过又长见识了。下图(1)是《Build Your Own Lisp》封面的 背景,感受到一种古典美的视觉效果。

学习C语言和创建你自己编程语言在1000代码以内——第一章介绍

图(1)


最后声明作者Daniel Holden官方网址http://www.buildyourownlisp.com/,欢迎访问。一是尊重作者的知识版权,二是防止被我的文字忽悠。