私はコンパイラクラスの理解を深めるために小さな問題を実装しようとしています。私は次のようにコンパイルするファイルの束を持っている、と仮定します:これは、次のような問題がある特定のファイルセットのコンパイル順を解決するためにどのアルゴリズムを使用しますか?
bは
cは
eが依存にF
Dのdependesに依存Cに依存して何に依存しますBに
fはしたがって、この場合には正常にコンパイルされるファイルのためのコンパイル順序が、F、C、B、D、Eで何
に依存します。私は自分のアルゴリズムを書いて、練習問題と同じように依存関係を出力したいと思っています。私はリンカが自動的にC++などでそれを行うことを知っていますが、これは単なる個人的な運動です。この問題を解決するにはどうしたらいいですか?私がかなり新しくなったので、アルゴリズム/読み取り値への参照は非常に高く評価されます。
のグラフアルゴリズムを含む乗り越えてC++でのデータ構造とアルゴリズムという本がありますsort – ajb
"依存する"という意味に依存しますが、堅牢なコードがどのように書かれているかを "使用するコードを使用する"場合、コンパイルする順番は変わりません。リンカはそれらの依存関係を並べ替えます。 –
@PeteBeckerこれは、コンパイルするためのものを取得しようとしている誰かのためのOK答えとなります。しかし、彼はコンパイラクラスを取っていると言いました。コンパイラやリンカが何かを並べ替えることを知りたいと思うと思います。 – ajb