У меня есть два файла исходного кода Java, которые делают то же самое, дают тот же результат. Они немного отличаются от кода, который они содержат, как в приведенном ниже примере. Мне нужен алгоритм, который измеряет скорость сходства (идентичности) между этими двумя файлами кода Java.Алгоритм сопоставления кодов
Пример
/* First file */
public int inc (int n) {
return ++n;
}
/* Second file */
public int inc (int n) {
return (n+1);
}
Существует алгоритм, который показывает, что эти два файла сделать то же самое?
Заранее спасибо
Вы можете всегда проверять вывод, чтобы убедиться, что он такой же или нет. Могут быть много способов добиться того же. Это зависит от того, как реально реализовать его. Вы должны убедиться, что вы хотите, чтобы сходство в * Way * или * Destination/Result * –
В общем случае определение того, являются ли две программы одинаковыми (для всех входов), является неразрешимой проблемой (я считаю). Тем не менее, вы можете сделать лучше в конкретных случаях. Например, если вы можете показать, что ваш код не имеет побочных эффектов (т. Е. Является чистым), вы можете перетаскивать все входные значения и сравнивать их. –
Зависит от того, что делают ваши программы. Если они генерируют некоторый вывод текста (или даже число в результате), вы всегда можете сравнивать результаты. В противном случае - просто сравните код с BeyondCompare, например. – Artur