FORTRAN: Разлика между версии

Изтрито е съдържание Добавено е съдържание
Nicecveti (беседа | приноси)
м Още малко факти за FORTRAN.
Ред 53:
Първият компилатор FORTRAN играе ключова роля в историята на програмирането. По това време компютрите са имали малка памет (около 15KB, често капацитетът на паметта се е броял в битове), били са бавни, с примитивна операционна система. Изглеждало е най-практично да се програмира на асемблерен език.
 
Първият FORTRAN компилатор е създаден през 1957 година  от програмистите на IBM, ръководени от Джон В. Бакус. Нищо чудно, че езикът се е използвал много по това време, програмирането за изчисляване мощността на ядрен реактор, вече отнемало часове вместо седмици и изисквалаизисквало по-малко умения за програмиране. Още едно предимство на езика било, че програмите станали преносими. FORTRAN победил в битката срещу асемблерните езици и се използвал от научни и военни общности.   
 
'''2.FORTRAN II (1958)'''
 
Във FORTRAN II са направени значителни подобрения. Главната цел е била да се поддържа процедурното програмиране, като се разрешава на потребителя да пише подпрограми и функции, които връщат стойности, с параметри преминали референция. Добавена е способността за разделно компилиране на програмни модули и модулите на асемблерен език са можели да бъдат „linked loaded” с модулите FORTRAN. Към FORTRAN II са добавени шест нови инструкции :
 
-         SUBROUTINE, FUNCTION и END;
'''3.FORTRAN III (1958)'''
 
-         CALL и RETURN;
FORTRAN III никога не е бил пуснат публично. При него е било възможно използването на асемблерен код по средата на FORTRAN код.
 
-         COMMON.
 
През следващите няколко години към FORTRAN II е добавена поддръжка за DOUBLE PRECISION и COMPLEX типове данни.
 
Ранните FORTRAN компилатори са поддържали подпрограмите без рекурсия.
 
'''FORTRAN III (1958)'''
 
FORTRAN III никога не е бил пуснат публично. При него е било възможно използването на асемблерен код по средата на FORTRAN кода. Като 704 FORTRAN и FORTRAN II, FORTRAN III включва машинно зависими детайли, които правят писането на код в него непреносим от машина в машина. Ранните версии на FORTRAN, осигурени от други търговци, са страдали от същия недостатък.
 
'''FORTRAN IV (1961)'''
 
FORTRAN IV е подобрена версия на FORTRAN II. Някои от подобренията са  имплементирането на инструкциите “COMMON” и “ EQUIVALENCE” и са отстранени някои неизправности. Транслаторът от FORTRAN II към FORTRAN IV е бил използван за запазване на обратната съвместимост с ранните FORTRAN програми.  През месец май 1962 година комитетът ASA  започва разработка на стандартен език FORTRAN. Оказва се важна стъпка, която си заслужава продавачите да произвеждат системи FORTRAN за всеки нов компютър и това прави езика FORTRAN по-известен в HLL.
 
'''FORTRAN 66 (1972)'''
 
Може би най-значимото развитие в ранната история на FORTRAN е било решението на Американската Асоциация по Стандартизация (ASA) да се направи комисия, финансирана от BEMA (Bussiness Equipment Manufacturers Association), за да развият American Standard 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 (предишната BEMA). Финалният проект на този поправен стандарт, разпространен през 1977г., довежда до подобрения на новия FORTRAN стандарт от април 1978г.. Новият FORTRAN 77 е официално издаден 3.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)'''
 
Първоначално пуснат  като ISO/IEC стандарт през 1991 и ANSI Стандарт през 1992. Наречен е Fortran 90 (вече изписван с малки букви). Той е подобрена версия на FORTRAN 77 с много добавени инструменти.
 
Във Fortran 90 са добавени:
 
-       Свободен формат на сорс кода (независим от колони);
 
-       Идентифицира до 31 символа (в предишната версия е можело само до 6 символа);
 
-       Вътрешни коментари;
 
-       Процедури RECURSIVE;
 
-       Модерен контрол на структурите (CASE & DO WHILE);
 
-       Регистри/Структури – наречени “Delivered Data Types”;
 
-       Силна система за означаване на array (array секции, array оператор и др.);
 
-       Динамично разпределяне на паметта;
 
-       Оператор за претоварване;
 
-       Модули – пакети съдържащи променливи и кодове.
Пример: 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;
 
-       Инициализация по подразбиране на произлизащия тип компоненти, включва и инициализация на показалеца;
 
-       Разширена способност за използване на инициализацията на изрази за данните на предметите;
 
-        Инициализация на показалеца към NULL().
 
Набор от съществени функции са били разширени (например  аргументът “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, е подобрена версия, представяща много нови попълнения.  Някои от тях са:
 
-       Подобрен контрол на достъпност, подобрена структура конструктори и др.;
 
-       Увеличаване Input/Output: asynchronous I/O, достъп до потока, инструкция FLUSH, регулиране на ключови думи, достъп до грешни съобщения и др.;
 
-       Procedure pointers;
 
-       Поддържа IEEE floating-point arithmetic и floating point exception handling;
 
-       Съвместим с програмния език C;
 
-       Повишено съчетаване с операционната система на потребителя: достъп до текстовия интерфейс, променливи на средата и др.
 
Важно допълнение към Fortran 2003 e ISO technical report TR-19767: Разширен модул улеснения във Fortran. Това съобщение осигурява “submodules”, които правят модулите на Fortran сходни с модулите на “Modula-2”. Това позволява спецификация и имплементация на модул да бъде изразен в отделни програмни единици, което подобрява пакетите на големи библиотеки, позволява опазване на търговски тайни,        докато се публикува на окончателния интерфейс и предпазва от компилиране на каскади.
 
== Компилатори ==