この質問に出くわしました: Java コードのリバース エンジニアリングにおけるドミネーターの役割を説明してください。
私が考えることができるのは、コントロール グラフでドミネーターを計算して、それが削減可能かどうかを確認できる必要があるということだけです。
- ドミネーターを鍛える
- バック エッジを特定して削除する
- 残りのグラフが非循環かどうかを確認する
グラフが非環状の場合 - 可約です。したがって、すべてのループは自然なループです。還元できない場合、コードは構造化されていないか、最適化されています。
この音はあなたにとって正しいですか?