**Fortran** [ing. **for** (mula)**tran** (slation) — formulalar tarjimasi] — EHM (kompyuter) yordamida ilmiy-texnikaviy masalalarni yechish algoritmini bayon qilish uchun qoʻllaniladigan dasturlash tili. U 1954 — 1957 yillar mobaynida Jon Bekus rahbarligida IBM firmasida yaratilgan eng birinchi yuqori sathli kompilyatorli programmalash tilidir. Fortrangacha barcha kompyuter programmalari mashina kodlarida yoki belgili assemblerlarda yozilar edi.

Mana 60 yildan ortiq vaqt mobaynida Fortran fan va injenerlik sohalaridagi hisoblashlarni bajarishda keng qoʻllaniladi. Bu vaqt mobaynida ilmiy va injenerlik sohasidagi murakkab muammolarni hal qilish uchun Fortranda oʻta koʻp
miqdorda tayyor programmalar bibliotekalari yaratildi. Masalan, BLAS, LAPACK,
LINPACK, EISPACK, MINPACK, ARPACK, IMSL, NAG va boshqalar. Fortran kompilyatori ishlamaydigan birorta operatsion tizim yoki protsessor mavjud emas.
Boshlanishida Fortran IBM kompaniyasining korporativ standartlari miqyosida rivojlantirildi. Ular Fortran II va Fortran IV nomlari bilan maʼlum.
Keyinchalik u Amerika milliy standartlar instituti (ANSI) va halqaro standartlashtirish tashkiloti (ISO) miqyosida qaraladigan boʻldi.

ANSI da Fortranni standartlashtirishga javobgar X3J3 texnik qoʻmita tashkil qilingan. ISO/IEC JTC1/SC22/WG5 (qisqacha WG5) halqaro kuzatuvchilar guruhi Fortranni ISO miqyosida standartlashtirishni boshqaradi. Turli standartlarga mansub Fortranlar orasidagi moslik X3J3 qoʻmita faoliyati orqali taʼminlanadi. Unga koʻra programmalash tilining eskirgan xususiyatlari avvaldan eʼlon qilingan vaqt
oʻtgachgina olib tashlanadi (qoida boʻyicha 10 yildan kam boʻlmagan vaqt mobaynida).
IBM firmasining korporativ standartiga asoslanib 1966 yilda birinchi halqaro standart Fortran 66 yaratildi, undan keyin protsedurali va tarkibli
programmalashga imkon beruvchi Fortran 77 (1978 yil) va obʼektlarga yoʻnaltirilgan programmalarni yozishga imkon beruvchi Fortran 90 (1991 yil) paydo boʻldi.

1997-yilda qabul qilingan Fortran 95 standarti Fortran 90 ning toʻgʻrilangan va yaxshilangan variantidir. Keyinchalik yaratilgan Fortran 2003 (2004-yil) va Fortran 2008 standartlarida obyektga yoʻnaltirilgan programmalash imkoniyatlarini kengaytirish, parallel hisoblashlar uchun qurollarni (*co-array*) tilni ichki xususiyatlari sifatida aniqlashga va tilni operatsion tizim bilan oʻzaro taʼsirlashishini qulaylashtirishga harakat qilingan.

Fortranda programma tuzish
--------------------------

Fortranda programma tuzish uchun oddiygina matn redaktori (Notepad), Vim, nano yoki emacs kabi oddiy matn tahrirlagichlaridan foydalanish mumkin.

Programma tuzishda hech qachon MS Word kabi matn protessorlaridan foydalanmang!

Masalan, Fortran tilida eng sodda programma quyidagicha koʻrinishda boʻladi:

```
WRITE(\*,\*)"Salom, dunyo"
END

```

Yozilgan dasturni biron nom bilan, masalan „hello.f90" nomi bilan saqlaymiz.
Shundan soʻng ushbu yozilgan programmani gfortran kompilyatori yordamida kompilyatsiya qilish lozim. Buning uchun buyruqlar qatori (ing. *command line*, yoki ruscha *komandnaya stroka*) ga quyidagi buyruqni kiritish lozim:

```
gfortran -c hello.f90

gfortran -o text.x hello.f90

```

Natijada test.x nomli bajariluvchi fayl paydo boʻladi. Uni quyidagi buyruq bilan ishga tushiramiz:

```
./test.x

```

Natijada ekranda  Salom dunyo! yozuvi paydo boʻladi.

  

Kompilyator bilan ishlagandagi yozuvda gfortran — Linux uchun erkin tarqatiladigan Fortran kompilyatorining nomi (Windows operatsion sistemasida koʻpincha ishlatiladigan Fortran kompilyatori nomi, masalan, Fortran Power Station holida, fl32). Kompilyator nomidan keyin yozilgan -c opsiya 1 kompilyatorga bajariluvchi fayl hosil qilinmasin, faqat .o kengaytmali obyekt fayl yaratilsin xolos degan
xabarni beradi. Yuqoridagi buyruqlardan birinchisi ishlagach gfortran kompilyator programma matni saqlangan birinchi\_prog.f90 nomli fayl ichidagi Fortran buyruqlarini kompyuter tushinadigan buyruqlarga tarjima
qiladi va tarjima qilingan buyruqlarni hello.o nomli faylga saqlaydi. Ikkinchi buyruq esa hello.o fayldan bajariluvchi test.x nomli faylni
yaratadi, bu erda -o opsiya bajariluvchi fayl xosil qilinsin va uning nomi test.x
boʻlsin degan maʼnoni beradi. Ushbu buyruqlar ishlagandan soʻng test.x nomli bajariluvchi fayl paydo boʻladi. Fortranning eski dialektlarida, masalan, Fortran 77 standartida yozilgan programma matni saqlangan fayl birinchi\_prog.f yoki
birinchi\_prog.for kabi nomlanar edi. Fortran 90/95 standarti sintaksisida yozilgan programma matni saqlangan fayl esa birinchi\_prog.f90 yoki birinchi\_prog.f95 nom bilan saqlanadi. Fayllarni nomlash qoidalarini eslasak, fayl nomi nuqta
bilan ajratilgan ikkita qismdan iborat boʻladi. Birinchi qism nom va ikkinchi qism kengaytma deb ataladi. Bizni holda Fortranda yozilgan programma matni saqlangan faylda hello nom va f90 kengaytmadir, ular nuqta bilan ajratilgan. Kompilyator fayl nomidagi kengaytma orqali unda programma Fortranning qaysi dialektida va u fiksirlangan yoki erkin shaklda yozilganini bilib oladi.

Fortranda maxsus soʻzlar
------------------------

Maxsus soʻzlar — programmada gaplarni tuzishda ishlatiladi. Ular ikki xil boʻladi: band qilingan va kalit soʻzlar.

* Band qilingan soʻzlar — aniq maʼnoga va vazifaga ega. Ular programmalash

tili standartida aniqlagan boʻladi. Ularni ishlatishdagi har qanday noaniqlik jiddiy xatoga sabab boʻladi.

* Kalit soʻzlar — programmaning qaerida ishlatilganiga qarab turli vazifaga ega.

Fortran tilida band qilingan soʻzlar:

> 
> ADMIT BACKSPACE COMMON DEALLOCATE END EXIT IMPLICIT
> 
> 
> INTRINSIC OPEN PRECISION ALLOCATABLE BLOCKDATA COMPLEX
> 
> 
> DEFAULT ENDFILE EXTERNAL INCLUDE LOGICAL OPTIONAL PROCEDURE
> 
> 
> ALLOCATE CALL CONTAINS DIMENSION END IF FORMAT INQUIRE MAP
> 
> 
> PARAMETER PROGRAM ASSIGN CASE CONTINUE DO END SELECT FUNCTION
> 
> 
> INTEGER MODULE PAUSE READ ASSIGNMENT CHARACTER CYCLE DOUBLE
> 
> 
> ENTRY GO TO INTENT NAMELIST POINTER REAL ATEND CLOSE DATA ELSE
> 
> 
> EQUIVALENCE IF INTERFACE NONE PRINT RECORD RECURSIVE WHILE
> 
> 
> RETURN TARGET WRITE REWIND THEN SAVE TYPE STOP UNION STRUCTURE USE
> 
> 
> 

1. ↑  [FORTRAN, 1-qism, 11-bet]
2. ↑  [FORTRAN, 1-qism, 13-bet]
3. ↑   [FORTRAN, 1-qism, 19-bet]