Objective-C的链接器和加载器

时间:2013-04-09 01:22:17

标签: objective-c linker symbol-table

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

谢谢!

2 个答案:

答案 0 :(得分:1)

鉴于ObjC自80年代后期以来一直被用作本机编译语言(之前,它主要是预编译器生成的语言+运行时)并且从那时起支持链接/加载,它也将如此适用于本书可以使用任何来自C语言的语言。说到这一点,很可能浪费你的时间潜水太深深度链接/加载是由细节照顾的系统只有很少的[OS X,OpenStep],没有[iOS]可配置给开发人员。

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

答案 1 :(得分:0)

是&没有...

我不知道那本特定的书,但如果它在2000年是最新的,那么其中的材料应该仍然有效,以了解事情是如何运作的。

然而,您并不需要了解链接和加载以了解变量和指针。

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

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

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

变量和指针并不是一个难以理解的概念,但它们经常被误解 - 很多问题都源于对这些概念的误解 - 所以你的任务很好,去阅读!道歉,但我没有提到手。