![]() |
|
|
![]()
|
|
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: нет Всего: 37 |
А нужно ли создавать этот новый стандарт?
- Насколько я знаю Microsoft, которая являлась основным популяризатором фортрана в последнее время, отказалась от его поддержки. - Программистов на фортране становиться все меньше. В основном это работники различных НИИ, которых годах в 70-х научили этому языку и теперь переучиваться им конечно не охота. - Созданный в 50-х годах язык, страдает низкоуровневостью. Программы на нем структурированы слабо. Абстрагироваться от мелких деталей при работе с этим языком невозможно. - В фортране нет ничего такого, чего бы не было в современных языках программирования таких как С++ или С#. Стоит ли поддерживать жизнь в умирающем языке введением новых стандартов? Жду конструктивной критики Это сообщение отредактировал(а) Cr@$h - 18.1.2009, 20:31 |
|||
|
||||
| popovda |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 290 Регистрация: 9.6.2006 Где: Москва Репутация: нет Всего: 6 |
Совсем не Microsoft развивает Фортран, она с PowerStation 4 его не развивает. Фортран развивают NAG, Intel, Cray, IBM, Sun, и т.д, и наука. Что касается количества программистов на Ф, то рынок их требует лишь в некоторых областях, правда наукоемких - это матмоделирование и параллельные вычисления, прежде всего.
На современном Фортране стандарта не ниже 90 программы отлично структурированы, а в стандарте 95 введены средства ООП, некоторые средства для параллельной обработки данных из HPF (forall, where, чистые (pure) процедуры, векторизация вычислений, секции массивов). В текущем стандарте 2003 введены исключения, поддерживаются вызовы C/C++, полностью развиты средства ООП. А, как уже заявлено, в новый стандарт будут включены co-arrays - то есть Фортран однозначно будет отвоевывать нишу высокопроизводительных вычислений на кластерах.
Между прочим в стандарт C++ ANSI/ISO 2009 введена конструкция foreach, которая появилась там не без влияния Фортрана. Кроме того вряд ли найдется хотя бы еще один ЯВУ со столь высокой оптимизацией кода. Новые технологии подстегнули развитие Ф. Это сообщение отредактировал(а) popovda - 22.5.2007, 11:38 -------------------- С уважением, Попов Д.А. |
||||||
|
|||||||
| Artemios |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 14.8.2006 Где: Саратов, Россия Репутация: нет Всего: 50 |
В науке, естественно. В численных расчетах лучше фортрановских библиотек только ассемблерные. Насколько мне известно. Только муторно больно все переписывать на асм ради неиспользования фортрана, и не факт что на выходе будет более эффективный код. Кстати, неявно теми же библиотеками пользуются и многие не подозревающие об этом пользователи. Например, всем известная MatLab: численные расчеты матричной алгебры крутятся через библиотеку LAPACK (Fortran77). Это сообщение отредактировал(а) Cr@$h - 18.1.2009, 20:33 -------------------- fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ] |
|||
|
||||
| Cr@$h |
|
||||
![]() Исследователь ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1693 Регистрация: 3.4.2005 Где: Санкт-Петербург, Россия Репутация: 1 Всего: 41 |
Конструктивная критика. В этих языках, на сколько я знаю, нет средств регулярного программирования, таких основных средств функционального программирования, как чистые процедуры и оптимизация через ленивые вычисления, нет ссылок на массивы, а значит автовекторизация затруднена (читать как "затруднена", а как "нет"), всякой полезной мелочи (установки на размер числовых типов в памяти, нет четверной точности). В этих языках, на сколько я это пробовал, когда ещё учился, невозможно написать процедуру перемножения матриц произвольных размеров без использования классов. Из-за указателей вычисления становятся ненадёжными, т.к. компилятор много чего не может проверить, например, независимость участков памяти. Это то, что вспомнил сходу.
Это не так! Чем на более высоком уровне абстракции пишешь, тем больше возможностей оптимизации компилятором. взять ту же векторизацию скалярного и регулярного кода. Как интересно? Вы знаете, что Matlab на java написан. Он создан специально, чтобы не учить Fortran и пользоваться библиотеками. Эти библиотеки переписаны под язык М. Их можно даже посмотреть. Лишь компиляция в компилируемые языки и снова позволяет получать высокое быстродействие. |
||||
|
|||||
| FCM |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
Фортран - высокоуровневый язык. Это как раз C/C++ низкоуровненый язык с ориентацией на системное программирование. Фортран ориентирован на численные расчеты - там по умолчанию реализовано множество того, что как правило необходимо в численных расчетах. В С/C++ необходимые вещи либо реализуются самостоятельно методами ООП или уже реализованы в независимых библиотеках, что вообще говоря не есть плохо. Например, С++ библиотека Blitz++ реализует многомерные массивы (аж до 11 измерений), сравнимые по функциональности со встроенными массивами Фортрана-90. Авторы данной библиотеки используют достатчно изысканные ооп-методы (метапрограммирование, шаблоны с выражениями, позовляющие реализовывать отложенные вычисления) , чтобы эффективность (производительность вычислений) данных массивов не уступала эффективности встроенных массивов Фортрана-90. По своим тестам они получили даже, что Blitz-массивы производительнее ( я однако воспроизвел пару из них и этого не обнаружил). Всякие там низкоуровневые детали - это как раз в С/C++, что вообще говоря не есть плохо. Фортран-90 (и выше) избавляет от них и поэтому популярен в научных кругах, т.к. позволяет например физикам программируя оставаться физиками, а не становиться программистами, что часто случается при программировании на С/С++. И наконец, замечено, что многие авторы книг по С++ кидают камень в огород Фортрана, но по их замечаниям видно, что они не знают современного фортрана. Это сообщение отредактировал(а) FCM - 2.4.2009, 10:14 |
|||
|
||||
| popovda |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 290 Регистрация: 9.6.2006 Где: Москва Репутация: нет Всего: 6 |
Кстати, мой приятель, уехавший в Японию, написал, что C/C++ в инженерных конторах не популярен для расчётов. Для простых вещей обычно юзают C#, а вот для параллельных вычислений в основном Fortran, так как C++ и C не настолько удобны для параллелизации, а с автораспараллеливанием всё сложнее. Это мнение японцев.
-------------------- С уважением, Попов Д.А. |
|||
|
||||
| popovda |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 290 Регистрация: 9.6.2006 Где: Москва Репутация: нет Всего: 6 |
P.S. Про матлаб немного не так. Там есть два вида библиотек: m-библиотеки, но есть и mex-функции-двойники (*.dll или *.so со специальным интерфейсом взаимодействия с matlab), вот они-то написаны на C/Fortran и они-то как раз и вызываются при компиляции в p-код, поэтому он и выполняется ощутимо быстрее. Причём, пользователь может написать свои mex-функции на любом (но в документации почему-то только C и Fortran) языке.
-------------------- С уважением, Попов Д.А. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Fortran | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |