2

我熟悉几种计算机语言(Java、C、C++、Python、Scheme、Javascript),但对分析和比较它们的术语(比如动态/静态绑定、动态/静态类型、pass-by-值与传递引用、闭包、运算符重载等)。

是否有足够深入地讨论这些主题的白皮书或易于阅读的书,让我能够看到一种不熟悉的计算机语言并对自己说:“哦,它有动态绑定和静态类型”,然后说“这与 C++ 不同,因为……但相似,因为……”?

4

2 回答 2

4

如果您喜欢通过示例学习,Rosetta Code是一个很好的资源。它的语言比较表可能是一个很好的起点。

我发现它对理论比较(“C++ 和 Java 各自的异常处理系统有何不同?”)和实际工作(“我知道如何在 PHP 中执行 foreach();等效操作的语法是什么)都有帮助在 PERL 中?”)。

于 2011-10-02T15:02:11.803 回答
2

这本免费的电子书可能比您要找的要重一些,但内容很全面:

编程语言的实用基础(pdf 1.5Mb)

以下是 TOC 的摘录:

一、判断与规则
1 句法对象
2 归纳定义
3 假设性和一般性判断

II 级句法
4 具体语法
5 抽象语法

III 静力学和动力学
6 静力学
7 动力学
8 型安全
9 评价动态

IV 函数类型
10 函数定义和值
11 哥德尔系统 T
12 普洛特金的 PCF

V 有限数据类型
13 种产品类型
14 种求和类型
15 模式匹配
16 泛型编程

VI 无限数据类型
17 感应和共感应类型
18 种递归类型

VII 动态类型
第19章无类型的l-演算
20 动态类型
21 混合打字

VIII 变量类型
22 吉拉德系统 F
23 抽象类型
24 构造函数和种类

IX 子类型
25 子类型
26 种单例

X 类和方法
27 动态调度
28 继承

XI 控制效果
29 个控制堆栈
30 例外
31 续

XII 类型和建议
32 建设性逻辑
33 经典逻辑

十三符号
34 个符号
35 流体结合
36 动态分类

XIV 存储效应
37 现代化的 Algol
38 可变数据结构

第十五 懒惰
39 懒惰的评价
40 极化

第十六平行度
41 嵌套并行
42 期货与投机

XVII 并发
43 过程演算
45 分布式算法

第十八 模块化
46 组件和链接
47 类型抽象和类型类
48 层次结构和参数化

XIX 等价
49 等式推理
50 等式推理
51 参数化
52 过程等效

XX 附录
数学预备知识
于 2011-09-30T19:17:30.367 回答