Question

I recently came across John Levine's book "Linkers and Loaders." This book was written in the year 2000. If anyone has read his book, is everything the author says still relevant for Objective-C in the year 2013? I am asking, because it looks like a good book to have on my shelf, but if the info is out of date I probably don't want to really study the book.

Thanks!

Was it helpful?

Solution

Yes & no...

I don't know that specific book, but if it was up-to-date in 2000 then the material in it should still be valid to learn about how things work under the hood.

However, you do not really need to know anything about linking and loading to understand variables and pointers.

Nor do you need to understand symbol tables as such. A symbol table is a data structure used by compilers to track variables during compilation as part of translating the program code your write into the instructions the CPU understands.

The concepts of variables and pointers in programming languages are abstractions of the concepts of memory locations and memory addresses at the CPU level (which themselves are in some sense abstractions of lower-level stuff, ending up with circuits and, if you dig deep enough, electrons! ;-))

What you should be looking for is a book on programming language concepts rather then compiling, linking and loading. A good book will introduce variables and types, then composites such as arrays and records, and end up with objects (which are essentially just variables you'll discover). Types and variables go together, one says how to interpret a collection of bits the other provides somewhere to keep collections of bits. A pointer is a value (collection of bits) of some pointer type, just as an integer is a value of some integer type.

Variables and pointers are not difficult concepts, but they are often misunderstood - plenty of questions on SO stem from misunderstandings of these concepts - so your quest is good, go and read! Apologies, but I've no reference to hand.

OTHER TIPS

Given that ObjC has been in active use as a natively compiled language since the late '80s (prior, it was largely a precompiler generated language + runtime) and has supported linking/loading since then, too, it'll be as applicable as the book can be to any language derived from C. With that said, it is likely largely a waste of your time to dive too deep in that linking/loading are details that are taken care of by the system with little [OS X, OpenStep] to no [iOS] configurability to the developer.

Certainly, an interesting divergence, though, and a deep understanding of linking/loading is relevant to any work related to compilation and execution tool chains.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top