Приличная книга по актуальному Фортрану на русском

Все о программировании под *nix
Аватара пользователя
sanitar
Неотъемлемая часть форума
Сообщения: 1116
Зарегистрирован: 28 ноя 2002, 02:23
Откуда: Минск

Приличная книга по актуальному Фортрану на русском

Сообщение sanitar »

Наконец-то в природе появился первый известный мне сабж на 400 стр.

http://oz.by/books/more1010246.html

Человеческий подход к изложению, следование стандартам языка, сравнительный анализ компиляторов, вынесенный в отдельную главу, пачка нормальных ссылок, структурированных по категориям.
Ну и естественно удобный справочник по функциям.

Плюс на закуску -- описание грядушего вот-вот официально стандарта Фортран-2003
(последний имеющийся -- 95 года).

Читаю и душа моя поет.
Есть конечно мелкие недостатки, но в целом -- достойнейшая вешь.
И главное -- первая на нормальном уровне.
I'll kill this code without a knife -- with only fork().

Anonymous

Сообщение Anonymous »

Можно дурацкий вопрос?
В двух словах - достоинства фортрана перед си?

Аватара пользователя
mend0za
Неотъемлемая часть форума
Сообщения: 2332
Зарегистрирован: 30 авг 2002, 12:33
Откуда: Minsk

Сообщение mend0za »

ответ в одно слово: вычисления

Anonymous

Сообщение Anonymous »

а если чуть поконкретнее?

Аватара пользователя
sanitar
Неотъемлемая часть форума
Сообщения: 1116
Зарегистрирован: 28 ноя 2002, 02:23
Откуда: Минск

Сообщение sanitar »

Это не язык системного программирования.
Он оптимизирован под громоздкие наукоемкие вычисления. По сложным формулам.
И в родной области он лучше С, создаввавшегося для более других целей. :)

Чем именно?
Приходи на линуксовку, притяну книжку, сам почитаешь три страницы ответа. :) А то набивать их руками как то глупо. А после пива ничего нового по сравнению с Немнюгиным не скажу все равно.

Впрочем, если вечером будет время, может отпишу чего-нибудь. :)
I'll kill this code without a knife -- with only fork().

Anonymous

Сообщение Anonymous »

Заинтересовал меня этот фортран, решил посмотреть что о нем пишет Себеста. Пишет не много, но мне понравилось вот это:

Алан Перлис, один из разработчиков языка ALGOL 60, в 1978 году сказал: "Язык FORTRAN - это lingua franca (смешанный язык из элементов романских, греческого и восточных языков, служащий для общения в восточном Средиземноморье; также язык с широкой сферой употребления, жаргон. - Прим.перев.) компьютерного мира. Это язык улиц, в лучшем, а не вульгарном смысле этого слова. Он выжил и будет жить, поскольку он был создан для того, чтобы быть замечательно полезной частью жизненно важной коммерческой деятельности"(Wexelblat, 1981).

Аватара пользователя
sanitar
Неотъемлемая часть форума
Сообщения: 1116
Зарегистрирован: 28 ноя 2002, 02:23
Откуда: Минск

Сообщение sanitar »

Ага. А еще первый диалект фортрана создал Бэкус.
Тот самый который совместно с Науром придумал нотацию BNF. :)

Еще из лирических отступлений (автора не вспомню)
"Через 30 лет язык численных вычислений будет существенно отличаться от того, что мы используем сейчас. Но называться он будет как и сейчас -- Фортраном" :)

Если серьезно, то ненышние стандарты -- f90, f95 отличаются от классического f77 как небо от земли.
Вполне нормальные и модерновые языки.

Сейчас на трезвую голову скажу пару слов о преимуществах.
I'll kill this code without a knife -- with only fork().

Аватара пользователя
sanitar
Неотъемлемая часть форума
Сообщения: 1116
Зарегистрирован: 28 ноя 2002, 02:23
Откуда: Минск

Сообщение sanitar »

Область в которой фортран имеет преимущество -- одна. Я ее называл, для того он и создавался.

Короткое интро:

Базовых типов данных всего 5. Integer, real, сomplex, сharacter, logical.
Для каждого типа может регулироваться занимаемый им обьем памяти. Это параметер kind.

Т.е. можно гибко управлять расходом памяти следующим путем:

REAL (KIND=16): X
REAL (KIND=2): Y

и т.п.


Кроме того, фортран поддерживает многомерные массивы (до 7 измерений).
Сложить и перемножить семимерные комплексные тензоры A и B можно простейшим путем: С=А+B. :)
Границы индексов массивов не привязаны жестко к нижней границе - нулю, в отличие от С и могут быть выставлены так как удобно пользователю.

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

С массивами можно делать массу увлекательных вещей: повышать размерность, делать сечения, вырезки и выборки по логической маске.
Все за счет родных функций языка.

Таким образом, имеем две основные фмшки, играющие очень существенную роль:
-родная поддержка комплексных чисел и операций над ними
-родная поддержка многомерных массивов и операций над ними



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

И тут, если верить Немнюгину, а я ему верю, универсальные языки начинают проигрывать. В производительности. Что весьма существенно для крупных расчетов.
Последний раз редактировалось sanitar 10 мар 2004, 02:35, всего редактировалось 1 раз.
I'll kill this code without a knife -- with only fork().

Аватара пользователя
sanitar
Неотъемлемая часть форума
Сообщения: 1116
Зарегистрирован: 28 ноя 2002, 02:23
Откуда: Минск

Сообщение sanitar »

Еще один нюанс -- существует огромная база фортранных библиотек численных методов, наработанная с начала 60-х.

Переделывать ее с нуля под языки появившиеся в начале 80-х -- изобретение велосипеда.

Стандарты же фортрана сохраняют обратную совместимость с фортран-66 и фортран-77.

Т.е. заюзать численные библиотеки написанные еще до моего рождения можно без проблем и плясок с бубном. Весьма удобно, экономит массу времени.
I'll kill this code without a knife -- with only fork().

Аватара пользователя
sanitar
Неотъемлемая часть форума
Сообщения: 1116
Зарегистрирован: 28 ноя 2002, 02:23
Откуда: Минск

Сообщение sanitar »

Ну и последнее из пришедшего в голову сходу

fortran -- стандарт де-факто для научных расчетов на кластерах и прочих супермегашкафах. :)
В РБ это конечно не очень актуально.
А вот в России и Европе и т.д. все нормальные научные учреждения имеют по большому жужжащему шкафчику для крупного моделирования.
I'll kill this code without a knife -- with only fork().

Аватара пользователя
sanitar
Неотъемлемая часть форума
Сообщения: 1116
Зарегистрирован: 28 ноя 2002, 02:23
Откуда: Минск

Сообщение sanitar »

Итого краткое резюме:

1) читабельные программы, в которых легко опознаются следы математической модели :)
2) родные функции для работы с необходимыми для научных расчетов структурами данных
3) гибкий контроль точности вычмслений
4) более высокая производительность по сравнению с С и С++ при работе с данными по пункту 2.
5) совместимость с предыдущими стандартами => возможность использования гигантского обьема численных библиотек.
6) прозрачный перенос на системы параллельных вычислений
I'll kill this code without a knife -- with only fork().

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

AFAIK многи фортрановские библиотеки появившиеся или переписаные в последние лет 10 имеют встроеную и прозразрачную поддержу PVM или подобных приблуд. Очень удобно.
Опыт растет прямо пропорционально выведенному из строя оборудованию

Гость

Сообщение Гость »

А интересно а какие компиляторы фортрана используются под линукс? И какие из них более правильные ( насколько я помню g77 не полностью поддерживает fortran 90/95).

Аватара пользователя
sanitar
Неотъемлемая часть форума
Сообщения: 1116
Зарегистрирован: 28 ноя 2002, 02:23
Откуда: Минск

Сообщение sanitar »

к моему величайшему сожалению, g95 до сих пор еще находится в пред-альфа стадии.

Полностью свободных в понимании GNU компайлеров пока не знаю.
Но есть пачка просто доступных, относительно свободных.

В частности, я юзаю intel fortran compiler --- ядро закрытое, часть либов можно распространять и копаться в исходниках.
Скачивать и пользовать можно бесплатно в исследовательских целях.

Есть еще компилятор языка F -- фактически тот же самый f90, за некоторыми мелкими нюансами.

Кроме того Watcom перешел на open source, но подробностей не знаю...

на www.fortran.com можно отыскать списки компиляторов и сопутствующих утилит, в т.ч. для линукса, в т.ч. относительно свободных.

Хотя конечно религиозная чистота -- слабое место компиляторов ф90. :(
Авось когда нибудь g95 да будет выпушен :)
I'll kill this code without a knife -- with only fork().

Аватара пользователя
sanitar
Неотъемлемая часть форума
Сообщения: 1116
Зарегистрирован: 28 ноя 2002, 02:23
Откуда: Минск

Сообщение sanitar »

по крайней мере, для тренировок в ожидании победы GNU над компилятором,

интеловский ifc весьма неплох.
I'll kill this code without a knife -- with only fork().

Ответить