Скомпилирована программа COBOL - Отсутствует источник - PullRequest
4 голосов
/ 01 декабря 2008

У нас очень важное приложение, но пока нет исходного кода. Приложение было написано на языке COBOL, и скомпилированная версия находится в нашей производственной системе и работает.

Однако нам нужно перейти на новый сервер и новый компилятор cobol. У нас сложилось впечатление, что нам нужно перекомпилировать код, чтобы он работал на новом сервере. Запуск существующей скомпилированной программы привел к ошибкам памяти во время выполнения.

У нас есть некоторый исходный код для программы, но он старый. Не уверен, что разница между ним и скомпилированной программой.

Хорошо, поэтому вопрос - что нам делать?

Время не на нашей стороне, так как мы должны отправить наш старый сервер обратно, чтобы получить за него кредит. Идеи, предложения, сумасшедшие или нет? (контроль над источниками очевиден, и это не мое дело, так что сохраните лекции)

Ответы [ 8 ]

11 голосов
/ 01 декабря 2008

Создайте образ вашего старого сервера. Затем запустите старый сервер как виртуальную машину на новом сервере.

Однако я согласен, что лучшим вариантом, вероятно, является сохранение вашего рабочего сервера.

6 голосов
/ 01 декабря 2008

В краткосрочной перспективе, вероятно, будет дешевле организовать сохранение старого сервера. В полудлительном периоде вам необходимо выделить время и бюджет для реинжиниринга программы, либо переписать ее, либо посмотреть, сколько усилий потребуется, чтобы привести старый код в форму, выполняя то, что делает программа в настоящее время.

3 голосов
/ 01 декабря 2008

Это печально. Вы должны проконсультироваться с Source Recovery Company

2 голосов
/ 07 апреля 2012

Если ваш исходный код относительно близок к скомпилированной версии, попробуйте это:

  • декомпилировать новую версию в ассемблер
  • скомпилировать старый исходный код в ассемблер
  • 1010 * сравнить *
  • как можно лучше согласовать различия между новой версией и старой версией и старым кодом souce
  • повтор

Чтобы дополнить это и, вероятно, вторым шагом, поскольку он приведет исходный код дальше от новой скомпилированной версии, проведите тестирование с входными данными и просто попробуйте выполнить обратный инжиниринг на основе выходных данных, что потребуется для создания этих выходных данных. , Чем больше у вас тестовых входных данных, тем лучше это может сработать.

Удачи!

1 голос
/ 01 декабря 2008

(я не программист на COBOL, но ..) Если вы знаете, какой версией был компилятор, скомпилировавший исходную программу, вы могли бы по крайней мере скомпилировать старый исходный код cobol; если скомпилированные версии идентичны, вы знаете, что источником является текущая версия.

Если они различаются, вы можете попытаться (каким-либо образом) декомпилировать или хотя бы разобрать рабочую скомпилированную версию и только что скомпилированную версию и использовать инструмент diff чтобы понять, насколько велика разница.

0 голосов
/ 22 ноября 2010

Программа могла быть создана внешним ресурсом, и у этого человека или компании, занимающейся разработкой программного обеспечения, или организации мог быть последний источник в их хранилище. Это может быть сделано вашей родительской организацией, если вы недавно слились, или может быть в другой или резервной установке компьютера в вашей организации. Возможно, в учетной записи разработчика имеется копия, и она не была отправлена ​​на производственный или действующий сайт, или у кого-то из головного офиса есть копия, чтобы оценить и попытаться разрешить ситуацию. Вы можете добиться успеха, если позвоните этим людям, или вы всегда можете поговорить с оператором установочного компьютера или службой поддержки и посмотреть, есть ли они на магнитной ленте, CDROM или другом резервном хранилище.

0 голосов
/ 10 декабря 2008

если у вас есть .int (промежуточные) двоичные файлы, которые вы можете просто запустить на новом сервере, если нет, то их нужно перекомпилировать.

0 голосов
/ 01 декабря 2008

сумасшедшая идея: COBOL DECOMPILER -> SOURCE -> NEW COBOL COMPILER ...?

(редактировать: http://juggersoft.com - Оплаченный декомпилятор кобола)

...