Fortran год появления. Язык программирования Fortran - описание, основные команды и функции. Распространение и адаптация

Каждый год несколько тысяч детей в России нуждаются в протезах рук. При этом сама область протезирования развита достаточно слабо – многие протезы уже морально устарели, а компаний, которые бы занимались современными разработками, практически нет. Однако ситуация изменилась три года назад, когда на арене появилась компания «Моторика». Это молодые специалисты, которые не просто разработали новые протезы, но и изменили само отношение к ним.

Сейчас компания активно занимается созданием протезов кистей и предплечья для детей и взрослых. Например, делает протезы-гаджеты, превращая детей в настоящих супергероев. Благодаря «Моторике» такие протезы получили уже 150-200 детей. Главная проблема, с которой приходится сейчас сталкиваться — низкая осведомленность, признаются сами разработчики. А ведь получить такие протезы человек может совершенно бесплатно.

Слабости превратить в сверхспособности

При упоминании словосочетания «протез конечностей» люди представляют себе крюк или макеты, напоминающие части тела манекена. Что-то отталкивающее и пугающее. Взяться другому образу неоткуда, потому что, если говорить о российском рынке протезирования - это либо устаревшие советские образцы, либо дорогостоящие зарубежные устройства, которые могут получить единицы, рассказывает гендиректор компании «Моторика» Илья Чех.

«В 2013 году мы решили создать площадку по производству кибер-протезов, а в 2015 образовали компанию «Моторика», чтобы изменить отношение к инвалидам, превратить их слабости в сверхспособности. Ранее мы занимались 3D-печатью и, конечно, это очень нам помогло», - говорит Илья Чех. «Уникальность наших протезов больше в том, что они активные, функциональные, а не просто части от манекена, которыми нельзя пользоваться. Не менее важно то, что любой пациент может сам выбрать дизайн протеза, а ребенок, например - стилизовать свой протез под любимого супергероя».

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

Реакция детей на такие протезы всегда положительная. С интересом и изумлением протезы встречают не только те, кто будет ими пользоваться, но, например, одноклассники, которые, видя такой протез, говорят: «Что это за классная штука? как она работает?». Еще одним важным моментом является то, что «Моторика» не только создает эти уникальные, яркие протезы, но и предоставляет сервис по их обслуживанию. Например, в течение года протез можно обновить, добавить функциональные насадки и, если необходимо, устранить неполадку.

Сейчас в арсенале «Моторики» тяговые протезы КИБИ, которые устанавливаются даже при самых сложных травмах рук. Такие протезы работают без электроники за счет сгиба в кистевом или локтевом суставе и натяжения тросов, которые фиксируются на неподвижной части руки и пальцах протеза.

Есть также бионические (биоэлектрические) протезы «Страдивари», которые представляют собой сложные устройства. Управление ими происходит с помощью сигналов, которые возникают при сокращении мышц. В культеприемную гильзу встроены миодатчики, улавливающие изменение электрического потенциала. Эта информация передается на микропроцессор кисти, и в результате протез выполняет определенный жест или хват.

Важно с раннего возраста мотивировать ребенка носить протез

На фото: Моторика Тяговые протезы КИБИ.

Само протезирование детям рекомендуют с года, иногда даже с полугода — ребенок готов к протезам, как только он научился сидеть и использовать обе руки, считают специалисты «Моторики». Раннее протезирование позволяет сформировать привычки и симметричное развитие мышц верхнего плечевого пояса. С активными, функциональными протезами ребенку в таком возрасте справиться сложно. Поэтому чаще на этом этапе выбирают косметические протезы. Это подобие руки и, хотя хват такой рукой не сделать, тяжесть, хоть и небольшая, создает нагрузку на мышцы, а ребенок привыкает к правильным движениям рукой, отмечают специалисты.

К тяговым протезам (то, чем активно занимается «Моторика») дети привыкают достаточно быстро. Такие протезы достаточно просты в управлении: согнул руку - пальцы сжались, разогнул - выпрямились, и наоборот. Что касается бионических протезов, то их детям практически не ставят. Есть несколько причин – это и их вес, и стоимость. Ребенок быстро растет и любой протез нужно обновлять раз в год.

Вообще, сложность детского протезирования заключается в привыкании к протезам. В медицинской реабилитации известны множество случаев, когда пациенты отказывались от протезов, потому что не могли к ним привыкнуть. И чем старше ребенок, тем ему сложнее привыкнуть к протезу – он уже может обходиться без него. Ему придется разрабатывать мышцы, которые раньше не приходилось задействовать. Это тоже создает определенные трудности. Поэтому важно с раннего возраста мотивировать ребенка носить протез. К тому же использование протеза тренирует и развивает мышцы.

Протез как функциональный гаджет и стильный аксессуар

На фото: Моторика Детский тяговый протез КИБИ.

В среднем на один протез уходит до трех недель. Трудятся над его созданием инженеры, программисты, дизайнеры, протезисты, самому пациенту на протяжении всего этапа помогает персональный менеджер.

Создание протеза начинается со снятия мерок, здесь же специалисты узнают пожелания и потребности человека, каким он хочет видеть протез, его дизайн, дополнительные функций. «Дизайн – важный момент. Ребенок должен носить ту руку, которая ему нравится. И тот факт, что современные кибер-дизайнеры создают прототипы протезов, делает их не просто функциональными гаджетами, но и стильными аксессуарами», – говорит руководитель отдела маркетинга «Моторики» Вадим Котенев. После обсуждения концепции протеза создается его компьютерная 3D-модель. Далее идет подготовка для 3D-печати или фрезерования на станке. Готовую 3D-модель печатают на огромном промышленном 3D-принтере. Затем собираются все элементы протеза – кончики пальцев чаще всего печатаются или выливаются из силикона по отдельности. После чего протез отдается на тестирование.

«В нашей лаборатории такие протезы создаются для каждого ребенка по меркам с его культи. Это позволяет модифицировать протез даже под сложную травму кисти. И 3D-печать — главный помощник в производстве протезов», – отмечает Вадим Котенев. Еще одно преимущество протезов, которые делает «Моторика» – они дешевле зарубежных аналогов. Об этом свидетельствует и тот факт, что протезы компании заказывают люди со всего мира. Стоимость протеза начинается от 100 тыс. рублей и достигает 350 тыс. рублей. При этом сам пациент может получить протез бесплатно. Сначала пациенты оплачивают протез сами. После протезирования человек идет в Фонд социального страхования (ФСС) и ему компенсируют всю сумму. В итоге пациент получает протез бесплатно. Возможно привлечение и благотворительных фондов.

На новые разработки идут гранты и премии

На фото: Моторика Процесс создания протеза.

Пока прибыли, которая компания получает от продаж, хватает только на текущие расходы, выплаты зарплат, операционные издержки. Новые разработки ведутся на гранты и премии, которые получила «Моторика».

Например, на биоэлектрический протез для взрослых «Страдивари», который выпустили в конце прошлого года, пять миллионов выделил Фонд содействия инновациям, рассказывает Вадим Котенев. Пока самая большая премия – 15 млн. рублей. Её «Моторика» получила, заняв третье место на конкурсе среди российских инновационных компаний (организатором конкурса был Внешэкономбанк). Свой выигрыш команда направила на новые разработки, в том числе на детский биоэлектрический протез (выпуск запланирован на конец этого года). Его создание финансируется, в том числе, с помощью краудфандинговой платформы Boomstarter.

В настоящее время среди новинок компании встроенная в протез функция контактной оплаты – инвалид может оплатить в магазине покупку, приложив протез к терминалу. Подобного в мире еще не существует. В этом году в планах добавить в протез дисплей, который по функционалу сопоставим со смартфоном – можно совершать вызовы, искать информацию в интернете. Такой разработки также нет ни в одной стране. Сейчас «Моторика» пытается наладить сотрудничество с Яндексом, чтобы встроить голосовой помощник в протез для управления дисплеем голосом. Это достаточно полезная вещь для человека с ограниченными возможностями, считают сами разработчики.

Главная проблема – низкая осведомленность

«Моторика» активно взаимодействует с ФСС, Минтрудом РФ и Агентством стратегических инициатив. Встречи с представителями этих структур проходят чуть ли не каждый месяц. На них идет совместная разработка «дорожных карт», цель которых – внедрение новых решений в жизнь людей с ограниченными возможностями.

Главная проблема, с которой приходится сталкиваться – это низкий уровень осведомленности о новинках в протезировании, особенно в регионах и небольших городах. Люди просто не знают о существовании таких протезов. «Сейчас у нас порядка 150-200 пользователей по России и странам СНГ, когда потребность в протезировании – до 60 тыс. людей», – говорит Вадим Котенев. Работа в этом направлении ведется – проходят семинары, на которых специалисты рассказывают о современных решениях в протезировании. И здесь уже есть свои продвижения – сейчас в компанию ежемесячно поступает до 30 запросов на протезирование.

Стоит отметить, что в России у «Моторики» нет конкурентов. Да и во всем мире таких компаний немного, особенно если говорить о детском протезировании подобного рода. «На сегодняшний день в России мы единственные, кто разрабатывал, разрабатывает и уже внедрил свои идеи в жизнь», — отмечает руководитель отдела маркетинга «Моторики». «Есть, например, компании, организованные вчерашними студенты, но у них еще все на ранних стадиях. Мы тоже стараемся с ними коммуницировать. Также существуют компании, которые уже давно занимаются протезированием, но они устанавливают протезы разных производителей. Помимо осведомленности, одна из важных задач на ближайшие два года – реабилитация людей. Сейчас есть проблема у людей, которые протезируются биоэлектрическими протезами – ими сложно научиться пользоваться и овладеть всем функционалом,» — говорит Вадим Котенев.

«Мы разрабатываем систему на базе виртуальной реальности – когда человек надевает очки виртуальной реальности, на руку ему устанавливаются датчики, те же, которые он потом будет использовать в протезе. И человек в виртуальной реальности видит свой протез, может выполнять задания, которые помогают ему освоить полностью функционал. Например, если какое-то действие делается неверно, всплывает подсказка, как это исправить».

Также недавно у «Моторики» появился врач-реабилитолог, который будет заниматься с детьми. Сама реабилитация будет проходить в игровой форме.

И производством индивидуальных детских тяговых протезов «КИБИ», заменяющих кисть руки. Речь может идти о детях с ампутированными по какой-то причине кистями, врождёнными аномалиями развития или дегенеративными заболеваниями конечностей. Компания занимается разработкой и других протезов, в том числе для взрослых людей. У компании существуют разработки и бионических протезов, работающих за счёт считывания электрических импульсов с мышц.

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

Благодаря промышленному 3D-принтеру можно создавать не только индивидуальные протезы, но также выполнять их в различных цветах и наносить любые рисунки и надписи. Протез не только компенсирует утраченные возможности, но и даёт новые. С помощью особого держателя на протезе можно закреплять различные аксессуары вроде пульта управления мини-дроном. Не говоря уже о том, что протез даёт такие бонусы, как, например, возможность без ущерба достать из кипящей воды яйцо.

В октябре разработчики собираются продемонстрировать работу своего миопротеза в Цюрихе на соревнованиях киборгов Cybathlon. 13 августа в Москве прошло первое такое соревнование киборгов в России в рамках подготовки к швейцарскому этапу. Кстати, выглядят существующие протезы «КИБИ» весьма интересно, напоминая футуристические игры вроде Deus Ex:

Компания постепенно расширяет свою деятельность. Например, на днях в Нижнем Новгороде, где больные уже могут установить бесплатно тяговые протезы кисти «КИБИ», вместе с Приволжским федеральным медицинским исследовательским центром была начата новая реабилитационная программа . Теперь пользователи будут проходить международные системы тестов для оценки функциональной состоятельности протезов рук, чтобы определить степень самообслуживания.

Года.) Название Fortran является аббревиатурой от FOR mula TRAN slator, то есть, переводчик формул. Фортран широко используется в первую очередь для научных и инженерных вычислений. Одно из преимуществ современного Фортрана - большое количество написанных на нём программ и библиотек подпрограмм (см., например, Netlib Repository). Среди учёных, например, ходит такая присказка, что любая математическая задача уже имеет решение на Фортране, и, действительно, можно найти среди тысяч фортрановских пакетов и пакет для перемножения , и пакет для решения сложных интегральных уравнений и многие, многие другие. Ряд таких пакетов создавались на протяжении десятилетий и популярны (главным образом в научной среде) по сей день.

Большинство таких библиотек является фактически достоянием человечества: они доступны в исходных кодах, хорошо документированы, отлажены и весьма эффективны. Поэтому изменять, а тем более переписывать их на других языках программирования накладно, несмотря на то, что регулярно производятся попытки автоматического конвертирования FORTRAN-кода на современные языки программирования.

Современный Фортран (Fortran 95 и Fortran 2003) приобрёл черты, необходимые для эффективного программирования для новых вычислительных архитектур; позволяет применять современные технологии программирования, в частности, .

Стандарты

Фортран - жёстко стандартизированный язык, именно поэтому он легко переносится на различные платформы. Существует несколько международных стандартов языка:

  • FORTRAN IV (он же - FORTRAN 66 ) (1966)
  • FORTRAN 77 (1978)
    Множество улучшений: текстовый тип данных и функции для его обработки, блочные операторы IF, ELSE IF, ELSE, END IF, оператор включения фрагмента программы INCLUDE и т. д.
  • Fortran 90 (1991)
    Значительно переработан стандарт языка. Введён свободный формат написания кода. Появились дополнтельные описания IMPLICIT NONE, TYPE, ALLOCATABLE, POINTER, TARGET, NAMELIST; управляющие конструкции DO … END DO, DO WHILE, CYCLE, SELECT CASE, WHERE; работа с динамической памятью (ALLOCATE, DEALLOCATE, NULLIFY); программные компоненты MODULE, PRIVATE, PUBLIC, CONTAINS, INTERFACE, USE, INTENT. Появились новые встроенные функции, в первую очередь, для работы с массивами.
    В языке появились элементы .
    Отдельно объявлен список устаревших черт языка, предназначенных для удаления в будущем.
  • Fortran 95 (1997)
    Коррекция предыдущего стандарта.
  • Fortran 2003 (2004)
    Дальнейшее развитие поддержки в языке. Взаимодействие с операционной системой.

Компиляторы

Возможности и структура программы

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

Структура программ изначально была ориентирована на ввод с

и имела ряд удобных именно для этого случая свойств. Так, 1-я колонка служила для маркировки текста как комментария (символом C ), со 1-й по 5-ю располагалась область меток, а с 7-й по 72-ю располагался собственно текст оператора или комментария. Колонки с 73-й по 80-ю могли служить для нумерации карт (чтобы восстановить случайно рассыпавшуюся колоду) или для краткого комментария, транслятором они игнорировались. Если текст оператора не вписывался в отведённое пространство (с 7-й по 72-ю колонку), в 6-ой колонке следующей карты ставился признак продолжения, и затем оператор продолжался на ней. Расположить два или более в одной строке (карте) было нельзя. Когда перфокарты ушли в историю, эти достоинства превратились в серьёзные неудобства.

Именно поэтому в стандарт Фортрана, начиная с Fortran 90, в добавление к фиксированному формату исходного текста появился свободный формат, который не регламентирует позиции строки, а также позволяет записывать более одного оператора на строку. Введение свободного формата позволило создавать код, и ясность которого не уступает коду, созданному при помощи других современных языков программирования, таких как или .

Своего рода «визитной карточкой» старого Фортрана является огромное количество меток, которые использовались как в операторах безусловного перехода , так и в операторах циклов, и в операторах описания форматного ввода/вывода FORMAT. Большое количества меток и операторов GOTO часто делало программы на Фортране трудными для понимания.

Именно этот негативный опыт стал причиной, по которой в ряде современных языков программирования (например, ) метки и связанные с ними операторы безусловного перехода вообще отсутствуют.

Однако современный Фортран избавлен от избытка меток за счет введения таких операторов, как DO … END DO, DO WHILE, SELECT CASE

Также к положительным чертам современного Фортрана стоит отнести большое количество встроенных операций с массивами и гибкую поддержку массивов с необычной индексацией. Пример:

Real,dimension(:,:) :: V ... allocate(V(-2:2,0:10)) ! Выделить память под массив, индексы которого могут! меняться в пределах от -2 до 2 (первый индекс) ! и от 0 до 10 - второй... V(2,2:3)=V(-1:0,1) ! Повернуть кусочек массива write(*,*)V(1,:) ! Напечатать все элементы массива V, первый индекс которых равен 1. deallocate(V)

Пример программы

Программа «Hello, World!»

Фиксированный формат (символами «ˆ» выделены пробелы в позициях строки с 1 по 6):

^^^^^^PROGRAM hello ^^^^^^PRINT*, "Hello, World!" ^^^^^^END

Свободный формат:

Program hello print *, "Hello, World!" end

Замечания.

  • Оператор PROGRAM не является обязательным. Строго говоря, единственный обязательный оператор Фортран-программы - оператор END .
  • Выбор прописных или строчных букв для написания операторов программы произволен. С точки зрения современных стандартов языка Фортран множество прописных букв и множество строчных букв при написании операторов языка совпадают.
  • Середина 50-х гг. характеризуется стремительным прогрессом в области программирования. Роль программирования в машинных кодах стала уменьшаться, стали появляться языки программировании нового типа, выступающие в роли посредника между машинами и программистами. Наступило время второго и третьего поколений языков программирования

    С середины 50-ых гг. XX в. начали создавать первые языки программирования высокого уровня (high-levellanguage). Эти языки были Машино независимыми (не привязаны к определенному типу ЭВМ).

    Но для каждого языка были разработаны собственные компиляторы - программа, выполняющая компиляцию.

    Компиляция - трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда на язык ассемблера)

    Язык программирования FORTRAN

    Первый язык высокого уровня был создан в период с 1954 по 1957 года группой программистов под руководством Джона Бэкуса в корпорации IBM и это стало следующим этапом развития языков программирования. Это был язык программирования FORTRAN. Он предназначался для научных и технических расчетов. Название Fortran является сокращением от FORmulaTRANslator (переводчик формул).

    История языка

    В конце 1953 Джон Бэкус предложил начать разработку эффективной альтернативы ассемблеру для программирования на ПК IBM 704. Уже к середине 1954 была закончена черновая спецификация языка Fortran. Первое руководство для Fortran появилось в октябре 1956 вместе с первым компилятором, поставленным в апреле 1957. Компилятор был оптимизирующим, потому что клиенты отказывались использовать язык программирования высокого уровня, который был не в состоянии генерировать код с производительностью ниже, чем у ассемблера.

    В то время сообщество относилось скептически к новому способу программирования и не верили в то, что Fortran позволит программировать быстрее и эффективнее. По словам самого Джона Бэкуса большая часть его работы была направлена на то чтобы «быть ленивым». Ему жутко не нравилось писать программы под IBM 701 на ассемблере.

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

    К 1960 году существовали версии Fortran для компьютеров IBM 709, 650, 1620, 7090. Его большая популярность побуждала конкурирующих изготовителей компьютеров создавать компиляторы Fortran для своих компьютеров. Таким образом, уже к 1963 существовало более 40 компиляторов для разных платформ. Именно по этому Fortran считают первым широко используемым языком программирования.

    Фортран в СССР

    Фортран в СССР появился позже, чем на Западе, поскольку поначалу у нас более перспективным языком считался Алгол. Во внедрении Фортрана большую роль сыграло общение советских физиков со своими коллегами из CERN, где в 1960-х годах почти все расчёты велись с использованием программ на Фортране.

    Первый советский компилятор с Фортрана был создан в 1967 г. для машины «Минск-2», однако он не получил большой известности. Широкое внедрение Фортрана началось после создания в 1968 г. компилятора ФОРТРАН-ДУБНА для машины БЭСМ-6. Машины ЕС ЭВМ, появившиеся в 1972 г., уже изначально имели транслятор Фортрана («позаимствованный» с IBM/360 вместе с другим программным обеспечением)

    Современный Фортран. Достоинства языка

    Фортран широко использовался в основном для научных и инженерных вычислений. Он прекрасно подходит для решения численных задач, поскольку за 50 с лишним лет написано множество библиотек, поэтому языком пользуются сейчас и в ближайшем будущем ему не грозит забвение. Он используется и по сей день, однако, не столько по причине удачного дизайна, сколько в силу большого количества написанных на нём программ, изменять и, тем более, переписывать которые нет смысла.

    Вероятно, если вы хотите быстро что-то посчитать, то Фортран будет одним из лучших вариантов. Язык для этого именно и изобретался.

    Его структура способствует тому, что компилятор может очень хорошо оптимизировать вычисления.

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

    Среди учёных, например, ходит такая присказка, что любая математическая задача уже имеет решение на Фортране, и, действительно, можно найти среди тысяч фортрановских пакетов и пакет для перемножения матриц , и пакет для решения сложных интегральных уравнений , и многие, многие другие. Ряд таких пакетов создавался на протяжении десятилетий и популярен в научной среде по сей день, например - IMSL (англ. ).

    Большинство таких библиотек является фактически достоянием человечества: они доступны в исходных кодах, хорошо документированы, отлажены и весьма эффективны. Поэтому изменять, а тем более переписывать их на других языках программирования накладно, несмотря на то, что регулярно производятся попытки автоматического конвертирования FORTRAN-кода на современные языки программирования.

    Современный Фортран (Fortran 95 и Fortran 2003) приобрёл черты, необходимые для эффективного программирования для новых вычислительных архитектур, позволяет применять современные технологии программирования, в частности, ООП .

    Эволюция стандартов языка

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

    FORTRAN 66 (1972) На базе стандарта фирмы IBM FORTRAN IV FORTRAN 77 (1980) Введено множество улучшений: Fortran 90 (1991) Значительно переработан стандарт языка. Fortran 95 (1997) Коррекция предыдущего стандарта. Введён оператор и конструкция FORALL, позволяющие более гибко, чем оператор и конструкция WHERE, присваивать массивы и заменять громоздкие циклы. FORALL позволяет заменить любое присваивание сечений или оператор и конструкцию WHERE, в частности, обеспечивает доступ к диагонали матрицы. Данный оператор считается перспективным в параллельных вычислениях, способствуя более эффективному, чем циклы, осуществлению распараллеливания . Fortran 2003 (2004) Дальнейшее развитие поддержки ООП в языке. Взаимодействие с операционной системой. Добавлены также следующие возможности: Fortran 2008 (2010) Стандартом предполагается поддержка средствами языка параллельных вычислений (Co-Arrays Fortran) . Также предполагается увеличить максимальную размерность массивов до 15, добавить встроенные специальные математические функции и др.

    Компиляторы

    С момента первоначальной разработки языка, компиляторы Фортрана производит фирма IBM. В настоящее время фирмой IBM поставляется оптимизирующий компилятор VS Fortran для мэйнфреймов IBM System z , история развития различных версий которого восходит ещё к 1964 году , а также компилятор XL Fortran для платформ на базе архитектуры PowerPC - AIX , Linux и суперкомпьютера Blue Gene (выпускалась также версия для Mac OS X , когда компьютеры Macintosh использовали процессоры PowerPC). Оба этих компилятора содержат очень сложные оптимизаторы, являющиеся результатом непрерывной научной работы специалистов IBM на протяжении полувека. На базе компилятора IBM Fortran XL фирмой Absoft, бизнес-партнёром IBM, создан и поставляется компилятор Absoft Pro Fortran для систем на базе процессоров PowerPC (Linux, Mac OS X) и Intel (Linux, Mac OS X, Windows) .

    Фонд свободного программного обеспечения GNU выпускал открытый компилятор Фортрана-77 g77, доступный практически для любой платформы и полностью совместимый с GCC . Сейчас ему на смену пришел компилятор GFortran , в котором реализованы практически все конструкции стандарта Фортран-95 и многие конструкции стандартов Фортран-2003 и Фортран-2008. Он также полностью обратно совместим с Фортран-77. Также существует независимый проект g95 по созданию на основе GCC компилятора Фортран-95.

    Возможности и структура программы

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

    Перфокарта с разметкой колонок для Фортрана.

    Структура программ изначально была ориентирована на ввод с перфокарт и имела ряд удобных именно для этого случая свойств. Так, 1-я колонка служила для маркировки текста как комментария (символом C ), с 1-й по 5-ю располагалась область меток, а с 7-й по 72-ю располагался собственно текст оператора или комментария. Колонки с 73-й по 80-ю могли служить для нумерации карт (чтобы восстановить случайно рассыпавшуюся колоду) или для краткого комментария, транслятором они игнорировались. Если текст оператора не вписывался в отведённое пространство (с 7-й по 72-ю колонку), в 6-ой колонке следующей карты ставился признак продолжения, и затем оператор продолжался на ней. Расположить два или более оператора в одной строке (карте) было нельзя. Когда перфокарты ушли в историю, эти достоинства превратились в серьёзные неудобства.

    Именно поэтому в стандарт Фортрана, начиная с Fortran 90, в добавление к фиксированному формату исходного текста появился свободный формат, который не регламентирует позиции строки, а также позволяет записывать более одного оператора на строку. Введение свободного формата позволило создавать код, читаемость и ясность которого не уступает коду, созданному при помощи других современных языков программирования, таких как или Java .

    Своего рода «визитной карточкой» старого Фортрана является огромное количество меток, которые использовались как в операторах безусловного перехода GOTO , так и в операторах циклов, и в операторах описания форматного ввода/вывода FORMAT. Большое количество меток и операторов GOTO часто делало программы на Фортране трудными для понимания.

    Именно этот негативный опыт стал причиной, по которой в ряде современных языков программирования (например, Java) метки и связанные с ними операторы безусловного перехода сильно видоизменены.

    Однако современный Фортран избавлен от избытка меток за счёт введения таких операторов, как DO … END DO, DO WHILE, SELECT CASE. Более того, в современных стандартах языка оставлен лишь классический оператор GOTO, применяемый во многих языках и поныне. Вычисляемый оператор GOTO, а также конструкция ENTRY - множественного входа в процедуры, были исключены.

    Также к положительным чертам современного Фортрана стоит отнести большое количество встроенных операций с массивами и гибкую поддержку массивов с необычной индексацией. Пример:

    Real ,dimension (: ,: ) :: V ... allocate (V(- 2 : 2 ,0 : 10 ) ) ! Выделить память под массив, индексы которого могут ! меняться в пределах от -2 до 2 (первый индекс) ! и от 0 до 10 - второй ... V (2 ,2 : 3 ) = V(- 1 : 0 ,1 ) ! Повернуть кусочек массива write(* ,* ) V(1 ,: ) ! Напечатать все элементы массива V, первый индекс которых равен 1. deallocate (V)

    Hello, World!

    Фиксированный формат (символами «␣» выделены пробелы в позициях строки с 1 по 6):

    ␣␣␣␣␣␣PROGRAM hello ␣␣␣␣␣␣PRINT* , "Hello, World!" ␣␣␣␣␣␣END

    Свободный формат:

    Program hello print * , "Hello, World!" end

    Замечания.

    • Оператор PROGRAM не является обязательным. Строго говоря, единственный обязательный оператор Фортран-программы - оператор END .
    • Выбор прописных или строчных букв для написания операторов программы произволен. С точки зрения современных стандартов языка Фортран, множество прописных букв и множество строчных букв при написании операторов языка совпадают.

    Взаимодействие с другими языками

    Многие системы программирования позволяют компоновать полученные в результате трансляции фортрановской программы объектные файлы с объектными файлами, полученными от компиляторов с других языков, что позволяет создавать более гибкие и многофункциональные приложения. Для языка Фортран также доступно большое количество библиотек, содержащих как подпрограммы решения классических вычислительных задач (LAPACK , IMSL, BLAS), задач организации распределённых вычислений (MPI , pvm), так и задач построения графических интерфейсов (Quickwin , FORTRAN/TK) или доступа к СУБД (Oracle).

    Фортран в СССР

    Примечания

    1. См., например: Netlib Repository at UTK and ORNL
    2. А. М. Горелик . Эволюция языка программирования Фортран (1957-2007) и перспективы его развития//Вычислительные методы и программирование, 2008, Т. 9, с. 53-71
    3. Бартеньев О.В. Современный Фортран . - М .: Диалог МИФИ, 2005. - ISBN 5-86404-113-0
    4. А. М. Горелик. объектно-ориентированное программирвание на современном Фортране
    5. С. Д. Алгазин, В. В. Кондратьев. Программирование на Visual Fortran. - М .: «Диалог МИФИ », 2008. - 448 с. - ISBN 5-8243-0759-8
    6. Горелик А. М.Новости
    7. VS FORTRAN
    8. XL Fortran for Linux
    9. Absoft Pro Fortran Compiler Suites General Overview
    10. Sun Studio - Benchmarks
    11. Очерк Александра Расторгуева о появлении Фортрана в Дубне
    12. История компьютерной графики в России

    Литература

    • Fortran. Programmer"s Reference Manual. The Fortran Automatic Coding System for the IBM 704 EDPM . - IBM Corp., 1956. - 51 с.
    • ISO/IEC 1539-2:2000 Information technology - Programming languages - Fortran - Part 2: Varying length character strings
    • Роберт У. Себеста. 2.3. Компьютер IBM 704 и язык Фортран // Основные концепции языков программирования = Concepts of Programming Languages / Пер. с англ. - 5-е изд. - М .: Вильямс, 2001. - С. 63-69. - 672 с. - 5000 экз. - ISBN 5-8459-0192-8 (рус.), ISBN 0-201-75295-6 (англ.)

    Ссылки

    • gfortran - Компилятор Фортрана 95/2003/2008, часть Коллекции компиляторов GNU
    • в Прогопедии - энциклопедии языков программирования (рус.)


Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: