SOに関するこの魅力的な(そして最も投票数の多い質問)を読んで、ソートされていない配列よりもソートされた配列を処理する方が速いのはなぜですか?コンパイラコードの正当性について疑問に思いました。
たとえば、答えは次のように述べています。
インテル®コンパイラー11は奇跡的なことをします。それは2つのループを交換します...
コンパイラープログラマーは、ループを交換しても問題がないことをどのようにして知ることができますか?
そして、一般的に、彼らは結論を実証するために数学的証明を使用していますか?
コンパイラープログラマーは、コンパイラーが正しいコードを生成することをどのようにして知るのでしょうか?彼らはどのように結論をテストしますか?コンパイラを実行し、生成されたコードが正しいことを確認するテストスイートを作成する必要がありますか?