C/C++

То что можно реализовать на фортране не возможно на С/С++, фортран работает боллее точно?

Саша Кислицын
Саша Кислицын
76 745
Нет, здесь играет роль чисто вкусовщина математиков-численников, отцы и деды которых программировали на Фортране, и вот они тоже теперь программируют на Фортране. Фортран, как первый шаг от Ассемблера, был наиболее близок к машинному коду, поэтому на нём легко было писать код, компилируемый в минимальное число машинных инструкций. В первой версии Фортрана даже не было циклов и условий, а только условный goto, один в один отображавшийся на аналогичную машинную инструкцию.

Сейчас, когда статические компиляторы намного обгоняют программистов в способности оптимизировать код, а динамические компиляторы обгоняют статические, те же расчёты можно писать на чём угодно. На Java влёгкую пишут расчётные системы.

Кроме того, люди часто путают в языках три вещи, относящиеся к производительности кода:
  • возможность программиста влиять на генерацию машинного кода,
  • возможность компилятору генерить быстрый машинный код (за счёт гарантий языка),
  • и возможность писать алгоритмы быстрой асимптотики.
В Фортране (как и в C++) есть первое, но он ужасен для последнего. А производительность приложений зависит от последнего намного больше, чем от первого. Поэтому на нём пишут не приложения, а библиотеки.

И таких людей настолько много, что ради них даже развили современный Фортран до более-менее структурного языка (хотя, не уверен, что он теперь им нравится, всё-таки деды программировали на другом языке).
Анатолий Казенов
Анатолий Казенов
54 053
Лучший ответ
В последних редакциях FORTRAN много встроенных средств, отсутствующих в C++. Например, тип REAL*16, срезы массивов, матричные вычисления и т.п. FORTAN изначально был создан для математических вычислений и его математические средства более продвинуты, причем язык активно развивается. Последний действующий стандарт языка 2018 года, и в этом году появится FORTRAN 23. Но оба языка - универсальные высокого уровня.
АГ
Антон Грехов
66 714
Фортран и C/C++ являются высокоуровневыми языками программирования и, в принципе, способны реализовывать одни и те же алгоритмы. Нельзя сказать, что что-то, что можно реализовать на Фортране, невозможно реализовать на C/C++.

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

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