Сап, погромисты, инженер подает голос. Есть расчетная программа, написанная на FORTRAN 66. Или может на ФОРТРАН-ДУБНА, я не ебу. Короче, для ЕС ЭВМ. Последний раз её редактировали не позже 1982 года. После этого её лишь перекомпилили для Винды, код не трогая. Теперь мне поставлена задача её переписать, добавив пару очень нужных фич. Плюс реализовать наконец интерфейс, нормальный ввод/вывод данных, вывод ошибок и прочее, а то пока расчет нормально запустишь, обматеришься. Но тут возникла проблема - я всегда все делаю в моем любимом Матлабе, но тут обязательно нужен exe-шник, поэтому он не подходит. На Фортране (им тоже на работе часто пользуюсь), как я понимаю, написать интерфейс будет очень сложно. Короче, я в затруднении. На каком языке это можно сделать с минимальными трудностями? Я правильно понимаю, что проще всего выучить этот ваш С++?
>>895929 (OP) алсо, НЕ переписывай на другой язык охуеешь в процессе это будет гораздо дольше, чем просто модифицировать старый код под новые потребности
>>895929 (OP) А как данные передаются в существующий бинарник и забираются из него? Может GUI с валидацией входных данных с внешней стороны прикрутить?
>>895948 Боюсь, переписывать придеться. Прога очень старая и поэтому там много чего нужно будет дописать, список хотелок большой. А поскольку код совершенно не понятен (комментов нет, а go to сплошняком), я опасаюсь запутаться вконец.
>>895953 Да текстовый файл обычный с исходными данными. Где-нибудь вместо двух один пробельчик поставишь и усе, сиди ищи. Ну вообще да, можно переписать тот же код на новом фортране, а потом прикрутить интерфейс на другом языке. Но не уверен, есть ли смысл - уж если переписывать, то единообразно.
>>895959 >>895958 Запасайся тогда тестовыми наборами (входные данные + результат). И сразу какую-нибудь обвязку сделай (на любом языке) для автоматизированой проверки. Если оригинальная программа считает быстро, то тестовый ответ можно и на лету ей генерить.
>>895977 Ну не скажи. Некоторые вещи на самом деле переписывать нужно. Но соглашусь с тем, что это нихера не просто. В таких вещах обычно много математики и посадить багу при ее переносе очень легко. Особенно с учетом того, что документация и способы верификации как правило давным-давно проебаны.
>>895980 пфф опу дали конкретное задание: прикрутить гуий, обновить ввод-вывод и обработку ошибок вместо этого он уже решил переписывать все нахуй заново типичная ошибка новичка
>>896093 >вместо этого он уже решил переписывать все нахуй заново Ну может мне удастся улучшить алгоритм. В конце концов времени прошло много и многое было не реализовано просто из-за ограничений тех компов.
Какие-то тут жопочтецы-телепаты, впрочем как обычно, предлагают лепить костыли не прочитав, что ОП там нужно новые фичи прикрутить. Есть подозрение, что для этого один хуй придется разбираться в недрах программы.
А если заказчик готов платить, чтобы это говно переписали с чистого листа, то почему бы и нет. Костыли нужны, только если БЫСТРА.
А интерефейс похуй, тут выше, очень верно подметили, раз на фортране нету графических либ, то имеет смысл сделать DSL в виде dll, и накрутить во все желаемые места, вплоть до слаки, лол.
>>896176 >удастся улучшить алгоритм чувак еще раз у тебя конкретные задачи есть, которые ты озвучил, которые от тебя требуют сделать дак делай их! просто модернизируй существующее приложение не будь долбоебом делай то, что тебя просят сделать ты же, блядь, на работе
>>896230 >не будь долбоебом >делай то, что тебя просят сделать >ты же, блядь, на работе Лол. Мой начальник вообще сказал, чтоб я не копался в чужом коде и писал все это заново.
Короче, разбираться в коде придется полюбому, что верно подметил>>896220. Жалко только, что одно описание алгоритма потеряно (оно ещё кстати на печатной машинке написано было), а более короткое засекречено, работать можно только в помещении первого отдела, вынести не дают. Ладно, это мои проблемы. Значит текущий итог: 1. Саму прогу перепишу на современный фортран с комментариями. 2. С помощью матлаба буду запускать новую и старую проги с разными исходными данными и сравнивать результаты. Это я умею. 3. После переписки отмодифицирую уже понятный код в соответствии с новыми требованиями. 4. Снова проверю старую и новую версии матлабом. Правда здесь результаты уже имеют право несколько отличаться. 5. Напишу интерфейс, который в итоге должен генерировать текстовый файл и скармливать его программе, а после окончания её работы подгружать в себя файл результата.
Звучит понятно.
Вопрос остался прежним - на чем лучше писать интерфейс? Ну чтоб совсем просто и понятно было.
>>896230 Ты тоже делаешь ошибку новичка, но другую. Иногда гораздо лучше потратить полгода на переписывание с нуля, чем полтора на добавление говна в говнокод и подпирание получившегося костылями. >>896327 Почему фортран? Интерфейс можно склепать, например, на делфи и подключить библиотекой (или наоборот). Но если у тебя нет задачи написать именно на фортране, то я бы посмотрел на какие-нибудь другие языки. Даже чистая сисечка, наверное, лучше будет.
Пока спал придумал новую проблему. По идее, пользователь у этой программы один и он работает на windows 7 x64. Но в силу разных обстоятельств изредка подключается второй пользователь, а у того windows 2000 x32. Будет программа на C# работать изкаробки на таком старье или нет? >>896477 >Но если у тебя нет задачи написать именно на фортране, то я бы посмотрел на какие-нибудь другие языки. Даже чистая сисечка, наверное, лучше будет. Ну на фортране определенно будет проще - ведь код уже написан, довольно большие части можно будет напрямую оттуда взять. Прога работает за доли секунды, поэтому возможное увеличение скорости от С мне не интересно, да его и не будет. >Интерфейс можно склепать, например, на Delphi и подключить библиотекой (или наоборот). Это уже я не хочу. Дельфи я все-равно не знаю, так лучше уж учить что-то современное и востребованное, чем старое и давно умершее.
>>896514 А в чем проблема скомпелять две версии под 32 и под 64? Запакуй все либы в саму програму, чтобы никаких сторонних библиотек не требовалось, и вперед. Гуйню можно написать хоть на писюне, хоть на матлабе и тоже статически залинковать в стандалон, правда у меня такая программа запускалась столько же сколько сам матлаб.
Есть расчетная программа, написанная на FORTRAN 66. Или может на ФОРТРАН-ДУБНА, я не ебу. Короче, для ЕС ЭВМ.
Последний раз её редактировали не позже 1982 года. После этого её лишь перекомпилили для Винды, код не трогая.
Теперь мне поставлена задача её переписать, добавив пару очень нужных фич. Плюс реализовать наконец интерфейс, нормальный ввод/вывод данных, вывод ошибок и прочее, а то пока расчет нормально запустишь, обматеришься.
Но тут возникла проблема - я всегда все делаю в моем любимом Матлабе, но тут обязательно нужен exe-шник, поэтому он не подходит. На Фортране (им тоже на работе часто пользуюсь), как я понимаю, написать интерфейс будет очень сложно. Короче, я в затруднении.
На каком языке это можно сделать с минимальными трудностями? Я правильно понимаю, что проще всего выучить этот ваш С++?