**Fortran** (önceleri **FORTRAN**), özellikle sayısal hesaplama ve bilimsel hesaplama için uygun olan genel amaçlı, yordamsal, zorunlu programlama dilidir.

Tarih
-----

1954'te *IBM* tarafından üretilen *IBM* 704 için ilk sürümü *John Backus* ve ekibi tarafından geliştirilmiştir. *Backus* ve ekibi Kasım 1954'te "*The IBM Mathematical **FOR**mula **TRAN**slating System: Fortran*" isimli raporu yayınlamışlardır. *Fortran* ilk yüksek düzey programlama dili olmasa da 1950'deki yüksek programlama dilleri derlenmeden, bir yorumlayıcı(*interpreter*) yardımıyla çalıştırılıyordu. Bu da makine koduyla yazılan programlardan en az 10 kat daha yavaş çalışmalarına sebep oluyordu. 1950'lerdeki bilgisayarlar için hız çok şey ifade ettiğinden yazması zor da olsa makine kodu bu yüzden hala populerdi. İşte bu noktada *Backus* ve ekibi hem yüksek programlama dilleri gibi kolay yazılabilen hem de makine kodunda yazılmış gibi hızlı çalışan bir programlama dili sözüyle *Fortran* 'ı tanıttılar.

*Fortran* 'ı diğer yüksek düzey programlama dillerinden ayıran bir çevirici yerine bir derleyici(*compiler*) kullanmasıydı. Program yüksek düzey dilde yazıldıktan sonra makine koduna çevriliyor ve böylece hız kaybı engelleniyordu. Her ne kadar ilk derlenebilir yüksek düzey dilin *Fortran* olup olmadığı hala tartışma konusu olsa da, *Fortran* geniş kitleler tarafından kullanılmış ilk yüksek düzey derlenebilir dildir. İlk *Fortran* sürümü ***Fortran 0*** 'dır.

Sürümleri
---------

***Fortran 0*** : İlk *Fortran* sürümünde hız için esneklikten vazgeçildi. Bu yüzden ilk sürümde program içindeki tüm değişkenlerin önceden tanımlanması gerekiyordu.

***Fortran I*** : Ocak 1955'te başlayan çalışmalar Nisan 1957 bitirilerek *Fortran I* tanıtıldı. İlk sürümden farklı olarak değişken isimleri 6 karaktere kadar çıkabiliyordu, veri giriş çıkış sisteminin düzeni değiştirilmişti. Ayrıca *if* ve *do* ifadeleri içeriyordu. Daha önceleri tekrarlama işlemi için özyineleme(*recursion*) kullanılırken *do* ifadesi sayesinde fonksiyon içinde yineleme(*iteration*) işlemi gerçekleştirildi. *Fortan I* 'deki değişken isimleri I,J,K,L,M,N ile başlıyordu. Bunun sebebi de o zamanki bilgisayarların bilimsel çalışmalarında kullanıldığından ve bilim insanlarının denklemlerinde değişken olarak bu harfleri çok kullanmalarından kaynaklanıyordu.

***Fortran II*** : 1958 baharında tanıtılan *Fortran II*, *Fortran I* 'deki birçok hatayı düzeltiyordu. Getirdiği en önemli yenilik alt-programların ayrı ayrı derlenebilmesini sağlamaktı. Böylece alt-programda yapılan küçük bir değişim için tüm programı yeniden derlemek yerine, sadece alt-programın derlenmesi sağlandı. Bu zor olan ve genellikle makine hatası sonucu yarıda kalan derleme işlemine büyük bir kolaylık sağladı.

***Fortran III*** : *Fortran III* tasarlanmasına rağmen asla geniş bir kullanım alanı bulamadı.

***Fortran IV*** : 1960 ve 1962 yıllarında gelişmiş olan *Fortran IV* zamanın en geniş alanda kullanılmış programlama dili oldu. 1966'da *Fortran* 66 adı altında standart haline geldi(*ANSI*, 1966). *Fortran IV* büyük bakıma *Fortran II* 'nin gelişmiş haliydi. En önemli değişikliği mantıksal *if* ifadesi ve fonksiyonlara başka fonksiyonların parametre olarak aktarılabilmesiydi.

***Fortran 77*** : *Fortran IV* 'e ek olarak *string* işleme, mantıksal döngüler ve *if* ifadesine *else* ifadesi eklenmişti.

***Fortran 90*** : *Fortran 77* 'den epey farklı özellikleri vardır. En belirgin özelliği diziler için dinamik olarak yer ayrımının yapılabilmesidir. Ayrıca *Case*, *Exit*, *Cycle*, gibi yeni ifadeler eklenmiştir. Bir modul ünitesi eklenmiştir. Bu moduller *Private* veya *Public* ulaşım iznine sahip veri ve fonksiyon saklayabilmektedir. Ayrıca *Fortran 77* 'de olan bazı özellikler de yeni sürümden çıkarılmıştır.
*Fortran 90* ile birlikte *FORTRAN* olan yazım şekli *Fortran* olarak değiştirilmiştir.

***Fortran 95*** : *Fortran 95* ile dil hala evrimini devam ettirmektedir...   

***Fortran 2000***  

***Fortran 2003***  

***Fortran 2008***

(İntrinsic Fonksiyonları)
-------------------------

| Fonksiyon | Fonksiyonun anlamı | Giriş Tipi | Sonuç Tipi |
| --- | --- | --- | --- |
| ABS(x) | x’in mutlak değeri | gerçel/tam sayı | gerçel/tam sayı |
| SQRT(x) | x’in karekökü | gerçel | gerçel |
| SIN(x) | x’in sinüsü | gerçel | gerçel |
| COS(x) | x’in kosinüsü | gerçel | gerçel |
| TAN(x) | x’in tanjantı | gerçel | gerçel |
| LOG(x) | x’in doğal logaritması | gerçel | gerçel |
| LOG10(x) | x’in 10 tabanına göre logaritması | gerçel | gerçel |
| ASIN(x) | x’in sinüse göre tersi | gerçel | gerçel |
| ACOS(x) | x’in kosinüse göre tersi | gerçel | gerçel |
| ATAN(x) | x’in tanjanta göre tersi | gerçel | gerçel |
| MOD(x, y) | x’in y’ye bölümünden kalan tam sayı | gerçel/tam sayı | gerçel/tam sayı |
| MIN{\displaystyle (x\_{1},x\_{2},...x\_{n})} | {\displaystyle (x\_{1},x\_{2},...x\_{n})} sayılarının en küçüğü | gerçel/tam sayı | gerçel/tam sayı |
| MAX{\displaystyle (x\_{1},x\_{2},...x\_{n})} | {\displaystyle (x\_{1},x\_{2},...x\_{n})} sayılarının en büyüğü | gerçel/tam sayı | gerçel/tam sayı |
| SINH(x) | x'in hiperbolik sinüsü | gerçel/tam sayı | gerçel/tam sayı |
| COSH(x) | x'in hiperbolik kosinüsü | gerçel/tam sayı | gerçel/tam sayı |
| TANH(x) | x'in hiperbolik tanjantı | gerçel/tam sayı | gerçel/tam sayı |
| EXP(x) | {\displaystyle e^{x}} | gerçel | gerçel |
|

Kaynakça
--------

* Concepts of Programming Languages - Robert W. Sebesta

| * g
* t
* d
Programlama dilleri |
| --- |
| 
* Karşılaştırma
* Zaman Çizelgesi
* Tarihçe

 |
| 
* Ada
* ALGOL
* APL
* Assembly
* BASIC
* C
* C++
* C#
* Classic Visual Basic
* COBOL
* Erlang
* Forth
* Fortran
* Go
* Haskell
* Java
* JavaScript
* Kotlin
* Lisp
* Lua
* MATLAB
* ML
* Object Pascal
* Pascal
* Perl
* PHP
* Prolog
* Python
* R
* Ruby
* Rust
* SQL
* Scratch
* Shell
* Simula
* Smalltalk
* Swift
* Visual Basic
* *dahası...*

 |
| 
* Liste **Listeler:** Alfabetik
* Kategoriik
* Nesilsel
* İngilizce temelli olmayan
* Kategori Kategori

 |

|  |  |
| --- | --- |
| Otorite kontrolü Bunu Vikiveri'de düzenleyin | 
* BNE: XX531008
* BNF: cb11931442r (data)
* GND: 4017984-9
* LCCN: sh85050987
* NKC: ph117563
* NLI: 987007548255305171

 |