本书构成
本书共分为 12 章。
第 1 章围绕如何深入高效地学习语言,举例说明“在比较中学习”和“在历史中学习”两种学习方法。
第 2 章探讨程序设计语言是如何产生的。
从第 3 章开始将介绍和程序设计语言相关的各种概念。本书不以某特定语言为叙述前提,如果讲解的一些知识大家尚未接触到,理解起来可能有些困难。比如,只有 C 语言相关经验的读者可能对第 6 章错误处理的内容理解起来稍显吃力。如果没有使用过线程,就不太好理解第 10 章的并行处理。这时,大家可以先阅读其他章节。
第 3 章重点讨论程序设计语言中为什么有那么多的语法规则。着重介绍运算符的优先顺序,并比较规则相对较少的 FORTH 语言和 LISP 语言。
第 4 章通过比较不具有控制语句的汇编语言和具有控制语句的 C 语言,探讨 if、while、for 等控制语句产生的原因。
第 5 章讨论函数是如何产生的,并学习递归调用的使用场合。
第 6 章围绕现在许多语言中称为异常的错误处理机制,介绍这一机制的必要性以及它的发展过程。
第 7 章阐述变量与函数的名字产生的原因,并介绍作用域的必要性及其进化的过程。
第 8 章探讨类型存在的必要性。首先从数的表达方法讲起,接着介绍类型及其应用。
第 9 章会学习一种能存入多个元素的物体,即容器。容器种类多样,本章将解释为什么会有这么多种类、各种类型之间的差异,以及各自的优缺点。本章后半部分会学习字符串,在历史中学习字符编码,并在比较中学习不同语言中字符串的差异。
第 10 章讨论的是同时执行多个处理的并行处理中存在的问题以及它的规避策略,我们将在不同语言的比较中展开这部分内容。
第 11 章将学习面向对象。首先,通过比较 SmallTalk 语言和 C++ 语言,介绍面向对象这一术语指示的内容在不同语言中有哪些差异。接下来将阐述面向对象发明的原因。另外,本章还会介绍类和其他不同的对象创建机制。
第 12 章围绕继承,探讨不同语言中的继承机制及它们各自的优缺点。
