FORTRAN е сред първите езици за програмиране от високо ниво. Името FORTRAN – (идва от FORmula TRANslator или „преводач на формули“, и до версия FORTRAN 77 се е изписвало с главни букви) – подсказва предназначението му за програмиране на изчислителни процеси. С времето езикът се усъвършенства и се превръща в универсален.
С FORTRAN се въвеждат основните техники за програмиране, останали непроменени до наши дни. Може да се каже, че той е базата за съвременните обектно ориентирани езици. Преди създаването му, програмирането е било много трудно и компютрите е трябвало да бъдат щателно кодирани „ръчно“.
С FORTRAN започва процесът по отделянето на софтуера от хардуера, на който програмите се изпълняват. Ако преди това броят на инструкциите, въвеждани „на ръка“, за да изпълни компютърът дадена програма, е бил 1000, с FORTRAN това число се редуцира до едва 47.
Макар че възниква и се развива като процедурен език за програмиране, в най-новата си версия FORTRAN е обектно ориентиран език. За FORTRAN е създаден и първият компилатор, определян като крайъгълен камък в историята на компютърното програмиране.
История и исторически факти Историята на FORTRAN тръгва от компанията IBM. Целта била да се създаде компилируем език с оператори и функции, максимално приближени към речевите конструкции и алгебричните изрази.
В края на 1953 година Джон Бакус – създателят на FORTRAN, предлага на работодателите си от IBM алтернатива на процедурното програмиране, която да намери приложение при разработвания по това време IBM 704 мейнфрейм компютър – мощна за времето си машина, предназначена за обработката на големи масиви от данни.
В историческия екип на Бакус, работил за създаването на FORTRAN, имало инженери, криптограф, майстор по шахмат, програмисти и математици – какъвто е бил и самият Джон Бакус. В екипа влизат Робърт Голдбърг, Шелдън Бест, Харлан Херик, Питър Шеридън, Рой Нът, Робърт Нилсън, Ървинг Зилер, Лоис Хейбт и Дейвид Сеър. „Ние бяхме хакерите на онова време.“ – това са думи на Ричард Голдбърг – също математик, и участник в екипа от създатели на FORTRAN.
През 1954 година екипът започва работата по FORTRAN, а през 1957 година крайният продукт е завършен и е пуснат за търговско разпространение.
Докато обществото е скептично, че този нов начин за програмиране е по-добър от „ръчното“ кодиране на компютрите, FORTRAN намалява програмиращите изрази, нужни на компютъра, за да работи, до 20. С това FORTRAN бързо печели общественото одобрение. В свое интервю за ведомственото списание на IBM от 1979 година Джон Бакус казва за себе си: „Повечето ми успехи са дошли заради мързела ми. Не харесвах писането на програмите, затова, когато работих върху IBM 701 и пишех програми за изчисляване на траекториите на снаряди, аз реших да създам система, която улеснява писането на компютърни програми.“ Бакус умира през 2007 година в САЩ, на 82 години.
FORTRAN среща широкото одобрение на научната общност, и това стимулира екипа да създаде компилатори, генериращи още по-бързи и ефективни програми. А интегрирането на сложните числови типове данни във FORTRAN прави езика особено подходящ за писането на технически приложения, например в областта на електроинженерството.
Ръководните кадри от различни бизнес-сектори бързо осъзнават значението на FORTRAN, най-вече заради възможностите му да подобрява производителността като намалява времето и усилията, необходими за писането на специфични програмни приложения. Банките започват да използват FORTRAN за създаването на мощни изчислителни програми, които да пресмятат риска, докато осигурителните компании го използват за актюерски оценки. И тъй като компютърните фирми внедряват компилатори за FORTRAN на машините си, използвайки стандарта на IBM, FORTRAN e език за кръстосани платформи още от самото си начало.
До 1960 година с версии на FORTRAN работят компютрите IBM 709, 650, 1620, и 7090. Всъщност, нарастващата популярност на FORTRAN стимулира конкуриращите се производители на компютри да внедряват компилатори за FORTRAN в техните машини. Така, до 1963 година вече съществуват над 40 компилатора за FORTRAN. FORTRAN се превръща в първия широко използван програмен език, приет от разнородната общност на компютърните разработчици.
В наши дни, повече от 50 години след дебюта си, Fortran или първият компютърен език от високо ниво, продължава да се използва ежедневно. Намира приложение при изготвянето на метеорологичните прогнози с Доплеров радар, проучванията на атмосферата и океана, както и при симулациите с наночастици, изследванията на генома, ДНК и атомните структури. Fortran намира приложение и във фермерството, като с негова помощ се подбират най-добрите породи пилета, на базата на генетичната селекция.
FORTRAN 77
PROGRAM HELLOW PRINT '(A)', 'Hello, world' STOP END
Fortran 90
program HelloWorld write (*,*) 'Hello, world!' ! This is an inline comment end program HelloWorld
Версии на езика FORTRAN FORTRAN I Първият компилатор за FORTRAN играе ключова роля в историята на програмирането. По това време компютрите са имали малка памет (около 15KB, често капацитетът на паметта се е броял в битове), били са бавни, с примитивна операционна система. Изглеждало е най-практично да се програмира на асемблерен език.
Първият FORTRAN компилатор е създаден през 1957 година от програмистите на IBM, ръководени от Джон В. Бакус. Нищо чудно, че езикът се е използвал много по това време – програмирането за изчисляването на мощността на ядрен реактор вече отнемало часове вместо седмици, и изисквало по-малко умения за програмиране. Още едно предимство на езика било, че програмите станали преносими. FORTRAN победил в битката срещу асемблерните езици и се използвал от научни и военни общности.
FORTRAN II (1958)
Във FORTRAN II са направени значителни подобрения. Главната цел била да се поддържа процедурното програмиране, като се разрешава на потребителя да пише подпрограми и функции, които връщат стойности, с параметри, преминали референция. Добавена е способността за разделно компилиране на програмни модули, и модулите на асемблерен език можели да бъдат linked loaded с модулите FORTRAN. Към FORTRAN II са добавени шест нови инструкции : SUBROUTINE, FUNCTION и END; CALL и RETURN; COMMON.
През следващите няколко години към FORTRAN II е добавена поддръжка за DOUBLE PRECISION и COMPLEX типове данни.
Ранните FORTRAN компилатори са поддържали подпрограмите без рекурсия.
FORTRAN III (1958)
FORTRAN III никога не е бил разпространяван публично. При него е било възможно използването на асемблерен код по средата на FORTRAN кода.
Както при FORTRAN за IBM 704 и FORTRAN II, и при FORTRAN III съществува зависимост от машината, на която се използва. Това прави писания на FORTRAN код непреносим от един на друг компютър. Ранните версии на FORTRAN, обезпечени от други търговски компании, са имали същия недостатък.
FORTRAN IV (1961)
FORTRAN IV е подобрена версия на FORTRAN II. Част от подобренията са допълнените инструкции COMMON и EQUIVALENCE, отстранени са някои неизправности. Транслаторът от FORTRAN II към FORTRAN IV е използван за запазване на съвместимостта с ранните FORTRAN програми. През месец май 1962 година Американската асоциация по стандартизация започва разработка на стандартен език FORTRAN. Това се оказва важна стъпка за развитието на езика, и компаниите започват да внедряват системи за FORTRAN при всеки нов компютър.
FORTRAN 66 (1972)
Може би най-значимото събитие в ранната история на FORTRAN е решението на Американската Асоциация по Стандартизация (ASA) да се сформира комисия, финансирана от BEMA (Bussiness Equipment Manufacturers Association), която да създаде American Standard Fortran, или универсален стандарт за FORTRAN., тъй като версиите на FORTRAN за различни компилатори можело да са различни. Като резултат, през 1966 година са одобрени два стандарта и се очертават два езика: FORTRAN (базиран на FORTRAN IV) и Basic FORTRAN (базиран на FORTRAN II). FORTRAN, определен по първия стандарт, официално обозначен X3.9.1966, става популярен като FORTRAN 66. Той включва: Subroutine, Function and Block Data; INTEGER, REAL, DOUBLE PRECISION, COMPLEX и LOGICAL data types; COMMON, DIMENSION и EQUIVALENCE изрази; DATA израз; Функции Intrinsic и EXTERNAL; GO TO; Логическо IF и аритметичен IF израз; Цикъл DO; READ, WRITE, BACKSPACE, REWIND и ENDFILE изрази; FORMAT; CALL, RETURN, PAUSE и STOP; Линии за коментари; END.
FORTRAN 77 (1980)
След пускането на стандарта FORTRAN 66 търговските компании представят няколко разширения на Standard FORTRAN, с което подтикват Американския Национален Институт по Стандартизация (ANSI) през 1969 година да започне работа по ревизирането на стандарта от 1966 година, с подкрепата на CBEMA (Computer Business Equipment Manufacturers Association, предишната BEMA). Финалният проект на този ревизиран стандарт е разпространен през 1977 година и води до формалното одобряване на новия FORTRAN стандарт през април 1978 година. Новият стандарт, наречен FORTRAN 77 и официално обозначен като X3.9 – 1978, идва с някои значителни изменения, кореспондиращи със слабите места на FORTRAN 66, като : Блок IF и END IF изрази с избираеми ELSE и ELSE IF параграфи, които трябва да осъществят по-доброто езиково осигуряване на структурното програмиране; Разширен цикъл DO, включващ параметри, изрази, и други; Open, Close и INQUIRE изрази за подобрени I/O възможности; Директен достъп до I/O файлове; Инструкцията IMPLICIT; Данни от тип CHARACTER; PARAMETER израз за определяне на константи; Израз SAVE.
Пример: PROGRAM HELLOW PRINT '(A)', 'Hello, world'
STOP
END
FORTRAN 90 (1991)
Дълго забавилият се наследник на FORTRAN 77, наричан неофициално Fortran 90, е разпространен като ISO/IEC стандарт през 1991 година, като и ANSI Стандарт през 1992 година. Наречен е Fortran 90 (вече изписван с малки букви). Той е подобрена версия на FORTRAN 77, с много добавени инструменти.
Във Fortran 90 са добавени: Свободен формат на изходния код, с ключови думи на Fortran, изписвани също с малки букви; Идентифицира до 31 символа (в предишната версия е можело само до 6 символа); Вътрешни коментари; Процедури RECURSIVE; Модерен контрол на структурите (CASE & DO WHILE); Регистри/Структури – наречени „Delivered Data Types“; Система за операции с масиви; Динамично разпределяне на паметта; Оператор за претоварване; Модули – пакети, съдържащи променливи и кодове. Пример: program HelloWorld
write (*,*) 'Hello, world!' ! This is an inline comment
end program HelloWorld Fortran 95 (1997)
Fortran 95 официално излиза като ISO/IEC 1539 – 1:1997 и е с минимални подобрения. Коригирани са някои недостатъци на Fortran 90. Все пак, във Fortran 95 са добавени няколко разширения от спецификацията на High Performance Fortran (HPF) като: Конструкции FORALL и гнездото WHERE, подпомагащо векторизацията; Процедури PURE и ELEMENTAL; Инициализация по подразбиране на получения тип компоненти; По-голяма възможност за използване на изрази, инициализиращи обекти;
Разширен е наборът от съществени функции (например аргументът „dim“ е добавен към „maxloc“).
Няколко функции, регистрирани като „отпадащи от употреба“ още във Fortran 90, са премахнати от Fortran 95: Изразите DO, използващи REAL и DOUBLE PRESICION променливи; Инструкция PAUSE; ASSIGN и определената инструкция GO TO;
Езикът Fortran 95 също включва два избираеми модула: Varying character strings (ISO/IEC 1539 – 2 : 2000); Conditional compilation (ISO/IEC 1539 – 3 : 1998).
Те заедно формират International Standard (ISO/IEC 1539).
Fortran 2003 (2004)
Fortran 2003, официално издаден като ISO/IEC 1539 – 1:2004, е версия, въвеждаща много нови подобрения. Част от тях са: Подобрен контрол на достъпността подобрени структурни конструктори, и други; Инструкцията FLUSH, достъп до съобщенията за грешка, и други; Поддържа IEEE floating-point arithmetic и floating point exception handling; Съвместим с програмния език C;
Fortran 2008 (2010)