![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Достоинства и недостатки языка Fortran |
|
|
Достоинства и недостатки языка Fortran
|
Старожил Сообщения: 198 |
Извините за оффтоп, но я не бородатый старый программер, а студент еще...
Цитата lxa85:
Один страрый АСУшник поведал мне, что фортран стал языком для математиков, потому что там впервые была реализована двойная точность для вычислений с плавающей точкой. Сейчас она есть везде, вроде даже уже четверная есть в gcc. Да, для него много библиотек с математикой, но многие библиотеки для серьезной математики я видел и для си, и для фортрана (MPI, например). Суммируя, что ж в нем такого? Киньте ссылки или разъясните в 2 словах. Буду благодарен. ![]() |
||
Отправлено: 17:15, 20-06-2011 |
Ветеран Сообщения: 1853
|
Профиль | Отправить PM | Цитировать Считать можно все на всем, хоть на Фортране, хоть на С++, хоть на Паскале. Хоть на Хаскеле с Прологом. Проблема в том, на чем считать быстрее и удобнее. Фортран изначально был как бы высокоуровневым заменителем ассемблера. То есть он не компилировался, а прямо перегонялся в машинный код. Поэтому он был изначально заточен именно на легкость такого преобразования, а не на легкость написания программ. И поэтому постоянно лидировал в скорости вычислений. Но некогда, с точки зрения человека, был жутко, невыносимо корявым языком. Фортран-IV и Алгол-66 - ну земля и небо! То есть, язык очень неудобный, но очень быстрый. В те времена скорость расчетов очень ценилась, поэтому Фортран и пошел в гору. Опять же, Ай-Би-Эма-мать (Фортрановская, ибо во всю продвигала) сильно поспособствовала...
Хотя в те времена все языки перегонялись в машинный код, как Ассемблер. И заявление Кернигана и Ричи, что С - это портируемый Ассемблер, в те времена было абсолютно верным (но не сейчас!). Однако, Фортран очень долгое время оперировал до дебильности простой моделью компьютера. В которой память под все переменные выделяется сразу и навсегда, и потом ничего сверх этого отводить не надо. Зато как при этом все быстро считается! Плата за это неслабая: вплоть до стандарта Фортрана-90 (чудовищно поздно, по сравнению с другими языками) не было никаких динамически размещаемых в памяти массивов. Но жить-то как-то надо! В результате в реальной практике под массив приходилось заказывать памяти с избытком. Т.е. некое фиксированное количество, которое в любом случае перекроет все разумные потребности. А потом использовать под данные только ту часть из общего объема массива, которая нужна. Это еще цветочки, ягодки - это концепция псевдодинамического распределения памяти, или как там она называлась... Это вообще гроб! Точнее, такая братская могила, причем одномерная. То есть, заказывался неслабых размеров одномерный массив, а потом в него в разных местах пихались все промежуточные переменные, в том числе и массивы. И, опять же, в том числе и многомерные. Запихивались в разные порции этой братской могилы. Выглядит это обычно так: в описании некоторой подпрограммы некая переменная описана как массив (возможно, многомерный), а при реальном вызове этой подпрограммы этой переменной (массиву!) ставится в соответствие некий единичный элемент описанного выше временного массива. Скажем, а(12). И массив этот пишется во временное хранилище, начиная с 12 элемента. И еще в такие массивы, объявленные как массив действительных переменных, запихивали даже целочисленные переменные, и это было в порядке вещей. Короче, в действительно серьезных программах, написанных по такой методе, разобраться детально просто не реально. Тем более перевести на другие языки. Тут или все похоронить, или так и использовать. А поскольку динамических массивов не было до 90-х годов, то кода такого накопилось дофига, и Фортран теперь просто непотопляем! |
Отправлено: 12:59, 05-07-2011 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 6211
|
Профиль | Отправить PM | Цитировать Цитата XPEHOMETP:
Цитата XPEHOMETP:
Простой пример --- проекционно сеточные методы (конечные, граничные элементы, да и конечно-разностные схемы тоже). Там получались симметричные сильно разреженные матрицы --- много нулей. Хранить их в виде массива 2х2 глупо --- использовались ленточные и профильные схемы. Более того, применялись различные алгоритмы перенумерации узлов для минимизации ширины ленты и профиля. Делалось для повышения скорости вычислений и экономии памяти. Матрицы были слабо обусловленными и так просто эти СЛАУ не решались --- серьёзная кухня использовалась. Это оправдывало себя. А динамическое распределение памяти печально знаменито тем, что хороший мусорщик в общем случае очень трудно реализовать. Память есть, но она дробится --- не непрерывным блоком, а с дырками это всё равно, что её нет. Страничный обмен не спасает ---- для цифродробилки высокая скорость нужна, а тут толкотня страниц… ЗЫ Хорошая задача и суперкомпьютер положит… ЗЗЫ Что до гроба --- в том и состояло искусство программиста, чтобы реже хоронить… Грубая проза жизни --- прошло время настоящих профи ![]() ![]() ЗЗЗы Стандарты 2003 и 2008 ещё не смотрел --- интересно --- чего там ещё накрутили…???... |
||
Отправлено: 15:41, 05-07-2011 | #22 |
Ветеран Сообщения: 1853
|
Профиль | Отправить PM | Цитировать Tau_0
Я как бы программист не профессиональный, надо было результаты обрабатывать, причем не тривиально... Влез в Фортран, поскольку язык обманчиво простой, типа Бейсика (ну, на самом деле, это именно Бейсик типа Фортрана, но не будем об этом...). Но, по ходу дела, выяснилось, что простота эта совершенно обманчива. Нет другого такого языка программирования, в котором можно написать программу, которая будет абсолютно превратно понята. Если не указать условия компилирования. Скажем, ключик, разрешающий старинный глючный цикл Фортрана, который сначала выполнится, а потом уже будет проверено условие его выполнения. Да даже если этот ключик указать, фига с два теперешние программеры, не программировавшие на Фортране-IV, поймут его смысл. Почти что язык только для посвященных, если захотеть... |
Отправлено: 16:16, 05-07-2011 | #23 |
Ветеран Сообщения: 6211
|
Профиль | Отправить PM | Цитировать Цитата XPEHOMETP:
![]() Наш ответ Керзону… Цитата:
![]() Прочтите до ко конца --- там мой полный ответ прикопан... ![]() Настоящие программисты не используют Паскаль http://lib.ru/ANEKDOTY/non_pas.txt |
||
Последний раз редактировалось Tau_0, 05-07-2011 в 17:59. Отправлено: 17:49, 05-07-2011 | #24 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Облачные вычисления: достоинства и недостатки | OSZone News | Новости информационных технологий | 2 | 09-05-2012 07:42 | |
Windows Live Essentials 2011: достоинства и недостатки финальной версии | OSZone News | Новости и события Microsoft | 1 | 05-10-2010 01:42 | |
Разное - Fortran | lxa85 | Программирование и базы данных | 7 | 03-04-2010 16:43 | |
Главные достоинства Windows 7 | OSZone News | Новости и события Microsoft | 22 | 04-08-2009 21:34 | |
Fortran vs. C/C++ | Zar | Программирование и базы данных | 6 | 21-02-2004 17:08 |
|