Java-декомпилятор JD-Gui правильность
Допустим, у меня есть класс Java, который я хочу декомпилировать с помощью JD-GUI. После исправления незначительных проблем компиляции (приведение и инициализация локальной переменной) я компилирую декомпилированный код как класс B.
Насколько гарантия того, что класс A и класс B функционируют одинаково?
1 ответ
Так что это сводится к... неразрешимости:D
Вопрос о том, дают ли два тьюринговых полных языка (программы чтения) одинаковый вывод при одинаковом вводе, неразрешим. (то есть нет эффективных алгоритмов, чтобы проверить это)
Вы можете ограничить входные слова / выходные слова и просто перебрать свой путь, но в целом эта проблема NP-полная для алгоритмов класса P.
Если вы хотите получить гарантию, попробуйте решить P = NP или составить все входные данные, которые он может получить, скомпилируйте их и посмотрите, что получится. Или просто прочитайте код и убедитесь сами.
Это в значительной степени это для гарантий