-1

我最近看到了 John Levine 的书“Linkers and Loaders”。这本书写于 2000 年。如果有人读过他的书,作者所说的一切是否仍然与 2013 年的 Objective-C 相关?我在问,因为它看起来像是一本好书放在我的书架上,但如果信息已经过时,我可能不想真正研究这本书。

谢谢!

4

2 回答 2

1

鉴于 ObjC 自 80 年代后期以来一直作为一种本机编译语言被积极使用(之前,它主要是一种预编译器生成的语言 + 运行时),并且从那时起也支持链接/加载,它将与这本书可以是从 C 派生的任何语言。话虽如此,在链接/加载是由系统处理的细节很少 [OS X,OpenStep]对开发人员没有 [iOS] 可配置性。

当然,一个有趣的分歧,以及对链接/加载的深刻理解与任何与编译和执行工具链相关的工作都相关。

于 2013-04-09T02:03:40.870 回答
1

是与否...

我不知道那本具体的书,但如果它是 2000 年的最新版本,那么其中的材料应该仍然有效,可以了解事物在幕后是如何运作的。

但是,您并不需要了解任何有关链接和加载的知识来理解变量和指针。

您也不需要像这样理解符号表。符号表是编译器用于在编译期间跟踪变量的数据结构,作为将您编写的程序代码转换为 CPU 理解的指令的一部分。

编程语言中的变量和指针的概念是对 CPU 级别的内存位置和内存地址概念的抽象(它们本身在某种意义上是对较低级别的东西的抽象,最终是电路,如果你挖得足够深,电子!;-))

您应该寻找的是一本关于编程语言概念的书,而不是编译、链接和加载。一本好书将介绍变量和类型,然后是数组和记录等组合,最后是对象(本质上只是您将发现的变量)。类型和变量结合在一起,一个说如何解释位集合,另一个则提供某个位置来保存位集合。指针是某种指针类型的值(位集合),就像整数是某种整数类型的值一样。

变量和指针不是难懂的概念,但它们经常被误解——很多关于 SO 的问题源于对这些概念的误解——所以你的追求很好,去阅读吧!抱歉,但我没有提到手。

于 2013-04-09T02:16:31.760 回答