Timetombs

泛义的工具是文明的基础,而确指的工具却是愚人的器物

66h / 116a
,更新于 2024-04-06T22:06:23Z+08:00 by   35f4f88

[程序设计语言] 00 前言

版权声明 - CC BY-NC-SA 4.0

1 为何要读这本书?

首先这是一本介绍语言的入门书籍(笔者阅读是裘宗燕老先生翻译的第二版),如果你想从中学到一些独门绝技,那么抱歉,木有;其次它介绍的是程序设计语言的一些重要基础概念、各种概念之间的关系;并解释了语言中诸多结构的形成和发展过程,以及他们演化到今天这种形式的根源

那么或许你该问了,了解这些有甚好处,不知道我照样写出漂亮的代码、架构等。的确,你可以的,现在的程序员在工作中都不止要用到一两种语言,然而我们通常对这门语言最直接的感触就是它的语法层面;我猜测你或多或少都有被语法的糖衣炮弹(语法糖)给打晕、蒙蔽过的经历吧。那么如果可以让你从语言设计者的角度来看待语言,则非常有助于你了解一门语言的特性,理解其中的优势以及弱势、以及它们为何发展进化为今天的形式,从而能更好的使用它们;从而能有效的避免身陷众多语言的糖衣炮弹中。

如果你有上面的需求,那么我力荐你买一本回来读读。细心的朋友可能会发现书名中还有个副标题实践之路,然而博文标题并无此。不是偷懒,而是故意为之。因为我想关注讨论的是语言的核心概念,而不是编译器实现细节方面。

2 计算机科学惯于在抽象之上建立抽象

好吧,我承认这句话有点装13。

这是这本书的序言中的第一句话,虽说计算机科学这个词语范围是有点甚广,但是仔细想一想也确实是这样的事实,就拿语言来说,汇编是对硬件操作的抽象;高级语言是又是对汇编的进一步抽象。而高级语言中也有各种的抽象思想所在,比如过程抽象产生了子程序、OOP中的面向接口编程也是一种抽象。总结来说也就是现在的操作系统、数据库、大型软件等等无一不是建立在抽象的基础之上。因为现在的软件系统的复杂度已经远远的超出了人的理解范围,抽象这种技能也不得已而为之,你不得不将大量复杂的细节隐藏起来来降低理解上的难度。

总之一句话抽象无处不在

下一篇 : [程序设计语言] 01 基础