私は最近、John Levine の本「Linkers and Loaders」に出会いました。この本は 2000 年に書かれました。誰かが彼の本を読んだことがあるなら、著者が言っていることはすべて 2013 年の Objective-C にまだ関連していますか? 私の本棚に置いておくには良い本のように見えるので質問していますが、情報が古くなっている場合は、おそらくその本を本当に勉強したくありません.
ありがとう!
私は最近、John Levine の本「Linkers and Loaders」に出会いました。この本は 2000 年に書かれました。誰かが彼の本を読んだことがあるなら、著者が言っていることはすべて 2013 年の Objective-C にまだ関連していますか? 私の本棚に置いておくには良い本のように見えるので質問していますが、情報が古くなっている場合は、おそらくその本を本当に勉強したくありません.
ありがとう!
ObjC が 80 年代後半からネイティブ コンパイル言語として積極的に使用されており (それ以前は、主にプリコンパイラによって生成された言語 + ランタイムでした)、それ以降もリンク/ロードをサポートしていることを考えると、ObjC はbook は C から派生した任意の言語にすることができます。そうは言っても、[OS X、OpenStep] をほとんど使用せずにシステムによって処理されるリンク/ロードの詳細に深く入り込むのは、ほとんど時間の無駄です。開発者が [iOS] を構成できない。
確かに、興味深い分岐とリンク/ロードの深い理解は、コンパイルおよび実行ツール チェーンに関連するすべての作業に関連しています。
はい・いいえ...
私はその特定の本を知りませんが、2000 年に最新のものだった場合、その中の資料は、内部でどのように機能するかを学ぶのにまだ有効であるはずです.
ただし、変数とポインターを理解するために、リンクとロードについて何も知る必要はありません。
また、シンボル テーブル自体を理解する必要もありません。シンボル テーブルは、コンパイラが、記述したプログラム コードを CPU が理解できる命令に変換する際に変数を追跡するために使用するデータ構造です。
プログラミング言語における変数とポインタの概念は、CPU レベルでのメモリ位置とメモリ アドレスの概念の抽象化です (それ自体は、ある意味では、下位レベルのものの抽象化であり、最終的には回路になり、十分に深く掘り下げると、電子! ;-))
探すべきものは、コンパイル、リンク、ロードではなく、プログラミング言語の概念に関する本です。良い本は、変数と型を紹介し、次に配列やレコードなどの合成物を紹介し、最後にオブジェクト (基本的には変数にすぎません) を紹介します。型と変数は一緒に使用されます。1 つはビットのコレクションを解釈する方法を示し、もう 1 つはビットのコレクションを保持するためにどこかに提供します。整数が何らかの整数型の値であるように、ポインタは何らかのポインタ型の値 (ビットの集合) です。
変数とポインターは難しい概念ではありませんが、誤解されていることがよくあります。SO に関する多くの質問は、これらの概念の誤解から生じています。申し訳ありませんが、私は手に言及していません。