2011-02-07 5 views
1

Я получил консультационное задание, в котором я буду обновлять программу Fortran IV до Fortran 77. Проблема в том, что я никогда не кодировался в Fortran. Можете ли вы дать мне советы о том, где я могу изучить Fortran и в чем разница между Fortran IV и 77?Обновление от Fortran IV до Fortran 77

Редактировать

Программа для обновления работает на MODCOMP 9250 (Смотрите фотографии here) Программа была разработана на оригинальном компилятором. Компилятор был обновлен до Fortran 77 около 1990 года. Мои клиенты хотят внести некоторые изменения в приложение и хотят воспользоваться этой возможностью, чтобы обновить код до последнего компилятора

+0

Модернизация с юрского периода на мел. Я настоятельно рекомендую вам отказаться от задания. –

+0

Проект, над которым я работаю, имеет задачу управления этими компьютерами, которые используются на нескольких шведских АЭС. Мои коллеги могут запрограммировать Fortran, но у меня есть это задание, потому что я тоже буду учить меня. Они могли научить меня, но они так заняты. – magol

+0

, так что у нас скоро будет европейская Фукусима? –

ответ

4

Это кажется действительно странным заданием ... Целью обучения тому, что языки программирования улучшились за десятилетия? Если да, почему бы не перевести на современный язык, например, Fortran 95?

Хотя я иногда сталкиваюсь с устаревшим кодом FORTRAN 77, прошло очень много времени с тех пор, как я работал с истинным FORTRAN IV - трудно помнить о различиях. Я думаю, что самым большим был улучшенный отчет IF, который упростил писать более четкий код. Список изменений появляется в http://en.wikipedia.org/wiki/Fortran

Если вы используете gfortran следующие параметры должны составить Fortran 77 программы:

gfortran -ffixed-form -ffixed-line-length-none -W -Wall -pedantic -o my_prog.exe my_prog.for 
+0

Вероятность того, что вы уже, вероятно, подозреваете себя, что профессор/человек, дающий задание, также не знает различий между fIV, f77, f90/95, ... и что программа fIV уже содержит некоторые элементы f77, если не f90 или новее. Я всегда видел такие примеры (программа f77 с вставкой MODULE, например). – Rook

+0

Fortran 77 - это новейший компилятор на платформе – magol

0

Googling «fortran 77 tutorial» подбрасывает довольно много хитов которые выглядят как разумные интродукции в структуру и синтаксис программ Fortran 77 (я не могу рекомендовать что-либо из личного опыта, поскольку я узнал об этом на университетском пути в тот же день) - лучший хит для меня выглядит так же хорошо, как и все :

http://www-teaching.physics.ox.ac.uk/Unix+Prog/hargrove/tutorial_77/

вы, вероятно, также нужно искать конкретные детали от компилятора вы будете использовать (см gfortran ms для стандартного для Linux в эти дни), если только для того, чтобы узнать правильную командную строку, как для компиляции вашего кода.

Если вы приезжаете образуют фон более современных языков, то ключевые моменты, чтобы знать, является:

  • Стандарт Fortran 77 не является языком
  • свободного формата Это процедурное и не поддержка объектно-ориентации (хотя это доступно в более поздних версиях языка)

Однако он поддерживает обычные базовые структуры программирования, т.е. если/иначе, циклы и т.д.

Надеюсь, это поможет - удачи!

+0

Существует письменное руководство для пишущей машинки для компилятора. Я могу попытаться это интерпретировать. Я обычно программирую на C++ и C#, так что это странно для меня. Хотя у меня есть программа Basic и другие более простые языки. Поэтому с небольшой практикой и чтением примеров и руководств я, вероятно, получу некоторое понимание. – magol

2

Самое лучшее место для проверки различий между ними проекты Fortran стандарты (последние черновики практически идентичны опубликованным стандартам, только они бесплатны для скачивания).

Например, f77 standard.

Проблема, однако, что в то время стандартов FIV не так следовала, и почти все (я даже могу с уверенностью сказать, все) Составители включен различные расширений поставщиков, некоторые из которых, безусловно, найденных в вашей программе также.Итак, возьмите руководство по компилятору, если оно у вас есть.

Процесс «обновления до f77» (Gawd, я никогда не думал, что скажу, что «обновление до f77») для вас, лучше всего идти в путь.
a) возьмите короткий учебник fortran где-нибудь (многие из них в Интернете); просто посмотреть, что fortran выглядит как
b) как только вы начинаете распознавать элементы и структуры программ, вы можете начать его переводить. Вероятность заключается в том, что вам придется переводить много ТИПА (зависит) от WRITE или PRINT, изменять некоторые инструкции IF, изменять некоторые операции ввода/вывода файлов, вы, вероятно, также столкнетесь с некоторыми ОБЩИНАМИ, с которыми вы можете иметь более или менее проблемы, ... в любом случае, попробуйте, и когда застрянете, напишите здесь.

Какое значение у вас задание?

p.s. Как я уже сказал в некотором комментарии выше, есть вероятность, что программа, которую вы переводите, на самом деле не fIV, а смесь fIV, f66/77, может быть, даже некоторые элементы f90 - но ваш профессор/человек, дающий задание, не знает от разницы. Если вы просто не скопировали его со старой ленты данных. Я всегда встречал такие примеры.

+0

Программа не такая большая, 2 KLOC. И вы правы, что множество специальных команд, многие звонят в «базу данных». Существует письменное руководство для пишущей машинки для компилятора. Я могу попытаться это интерпретировать. – magol

+0

@magol - Fortran не имеет *, что многие * ключевые слова (f77 - может быть, 30, дают или берут), и для этого начального этапа вам в основном нужно будет переводить функции ввода/вывода (чтение/запись/открытие/закрытие файла). .) и, возможно, некоторые DO-циклы и IF-операторы. После этого он будет в моей догадке, компиляция на '77. Но мне очень сложно поверить, что компилятор f90 для вашей платформы отсутствует. В своем комментарии выше вы имели в виду, что не существует одного или того, что f77 - это новейший компилятор, который вы получили на сайте? – Rook

+0

Операционная система с именем MAX не обновлялась с 1990 года, и именно тогда мы получили Fortran 77. На эту платформу нет более новой версии. – magol

1

Большая часть Fortran IV является действительной Fortran 77. Если вы можете найти платформу с g77 (старый компилятор GNU Fortran 77), включите режим соответствия стандартам и скомпилируйте без предупреждений или ошибок, все готово. Если профессора говорят, что этого недостаточно, он должен быть более конкретным о том, чего он хочет.

Я не знаю, есть ли у компиляторов Fortran 95 опция, позволяющая проверить соответствие Fortran 77.

+0

Система имеет как компилятор для Fortran IV, так и Forttran 77. Но клиент хочет, чтобы я обновил программу – magol

+0

, это стандартное требование, чтобы все компиляторы f2003 (возможно, даже 2008) скомпилировали код f77. Я не на своей рабочей машине, но я считаю, что f66 даже является переключателем для некоторых. – Rook

Смежные вопросы