2012-05-04 2 views
2

Да, я знаю .., этого не воображают ... это настоящий вопрос Фортрана.Поддерживает ли Fortran 2008 совместимость с предыдущими версиями Fortran?

предыдущими версиями я имею в виду Fortran 2003, 95, 90 и даже 77.

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

+2

Контрольный показатель: в Google появилось менее 7 минут. –

+0

Компиляторы в основном, языковой стандарт нет, особенно для функций pre-77. –

+0

Я до сих пор наслаждаюсь Фортраном. Код очень портативный. Нет предварительной обработки, просто возьмите любую версию Fortran, скомпилируйте ее в объектный файл, а затем привяжите ее к любому коду, который вы хотите. Я знаю, что это не будет работать 100% времени, но это было довольно легко. –

ответ

6

Ничего не было удалено в Fortran 90, но некоторые ужасные функции были удалены в Fortran 95 и более поздних версиях. Больше отмечены как «устаревшие». См., Например, http://www.cisl.ucar.edu/zine/96/fall/articles/3.f90.obsolete.html. В практическом плане поставщики компиляторов по-прежнему включают эти функции, потому что там так много устаревшего кода. Если бы компиляторы не смогли скомпилировать устаревшие программы FORTRAN 77, было бы восстание клиентов.

+0

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

+0

Большинство людей хотят одного компилятора. Чистый подход с одним компилятором - отключить удаленные функции по умолчанию и предоставить возможность включить их с помощью параметра компилятора. И предупредить об использовании устаревших функций по умолчанию. –

2

Несомненно. Это все, о чем говорит Fortran, что является обратной совместимостью. Часто можно ожидать, что стандарт Fortran будет поддерживаться в течение следующих 50 лет (не шутите). Вы все еще можете скомпилировать код Fortran 66 с помощью компилятора Intel, который поддерживает большинство функций стандарта 2008 года.

+0

Нет, вы не можете. Попробуйте изменить переменную цикла внутри цикла. –

+0

@Stefano Borini: Я думаю, вы можете, если вы добавите опцию компилятора -f66 в ifort. Конечно, есть некоторые несовместимости, но в целом это работает. –

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