فورتران، که مخفف "ترجمه فرمول" است، یک زبان برنامهنویسی سطح بالا است که بهویژه برای برنامههای علمی و مهندسی مناسب است. این زبان یکی از اولین زبانهای برنامهنویسی توسعهیافته برای کامپیوترهای الکترونیکی بود و از زمان ایجاد آن بهطور قابل توجهی تکامل یافته است. فورتران امکان دستکاری کارآمد دادههای آرایهای را فراهم میکند و از محاسبات ریاضی پیچیده پشتیبانی میکند، که آن را به زبانی محبوب برای پیشبینی عددی آب و هوا، فیزیک محاسباتی و بیوانفورماتیک و سایر زمینهها تبدیل کرده است.
فورتران در دهه 1950 توسط IBM بهعنوان زبانی برای محاسبات عددی و محاسبات علمی توسعه یافت. اولین نسخه، فورتران I، در سال 1957 منتشر شد. ایده اصلی این بود که زبانی ایجاد شود که به دانشمندان و مهندسان اجازه دهد برنامههایی بنویسند بدون اینکه نیاز به دانستن جزئیات سختافزار زیرین داشته باشند.
نسخههای بعدی فورتران معرفی شدند که هر کدام ویژگیهای جدیدی را اضافه کرده و قابلیت استفاده را بهبود بخشیدند. فورتران II بهزودی پس از آن معرفی شد و ویژگیهای برنامهنویسی ساختاری را اضافه کرد. در سال 1966، فورتران IV معرفی شد که به استاندارد صنعتی تبدیل شد. فورتران 77 (منتشر شده در 1978) ویژگیهایی مانند نوع دادههای کاراکتری و قابلیتهای بهبود یافته ورودی/خروجی را اضافه کرد.
از سال 1991 به بعد، فورتران 90 برنامهنویسی آرایهای، برنامهنویسی مدولار، بازگشت و تخصیص حافظه دینامیک را معرفی کرد. فورتران 2003 و فورتران 2008 زبان را با ویژگیهایی مانند برنامهنویسی شیگرا و بهبود تعاملپذیری با زبان برنامهنویسی C بیشتر تقویت کردند. جدیدترین استاندارد، فورتران 2018، بهبودهای بیشتری را به ارمغان آورد، از جمله بهبود سازگاری و عملکرد برای پردازش موازی.
فورتران همچنان در بسیاری از رشتههای علمی و مهندسی بهطور فعال استفاده میشود و توسط کامپایلرهای مدرن مانند GNU Fortran (gfortran) و Intel Fortran Compiler پشتیبانی میشود. این زبان دارای یک پایگاه کد بزرگ و بسیاری از کتابخانههای علمی به زبان فورتران نوشته شدهاند که آن را به زبانی حیاتی در برخی حوزهها تبدیل کرده است.
فورتران یک زبان نوعدهی قوی است که نیاز به اعلام صریح نوع متغیرها دارد. به عنوان مثال:
INTEGER :: i
REAL :: x
CHARACTER(len=10) :: name
فورتران در مدیریت آرایهها عالی است و اجازه میدهد عملیات بر روی کل آرایهها با نحو ساده انجام شود.
REAL, DIMENSION(10) :: A
A = 2.0 * A ! هر عنصر آرایه A را در 2 ضرب میکند
فورتران ساختارهای کنترلی متداولی مانند حلقهها و عبارات شرطی را فراهم میکند.
DO i = 1, 10
IF (A(i) > 0) THEN
PRINT *, 'مثبت'
END IF
END DO
فورتران اجازه تعریف توابع و زیرروالها را برای برنامهنویسی مدولار میدهد.
FUNCTION square(x)
REAL :: square
REAL, INTENT(IN) :: x
square = x * x
END FUNCTION square
بهطور پیشفرض، فورتران قانونی دارد که متغیرهایی با نامهایی که با "I"، "J"، "K"، "L"، "M" یا "N" شروع میشوند بهطور ضمنی INTEGER هستند. این میتواند برای وضوح نادیده گرفته شود.
IMPLICIT NONE ! نوعدهی ضمنی را غیرفعال میکند
INTEGER :: I
REAL :: R
فورتران از حلقههای do-while برای اجرای مکرر بر اساس یک شرط پشتیبانی میکند.
i = 1
DO WHILE (i <= 10)
PRINT *, i
i = i + 1
END DO
فورتران دارای نوعهای کاربرتعریفشده قدرتمندی به نام نوعهای مشتقشده است که اجازه میدهد تعاریف دادهای شبیه به ساختار داشته باشیم.
TYPE :: Person
CHARACTER(len=20) :: name
INTEGER :: age
END TYPE Person
TYPE(Person) :: p1
فورتران از ماژولها برای محصور کردن دادهها و رویهها پشتیبانی میکند و به ترویج استفاده مجدد و سازماندهی کد کمک میکند.
MODULE myModule
CONTAINS
SUBROUTINE mySubroutine()
! پیادهسازی
END SUBROUTINE
END MODULE
فورتران از اشارهگرها پشتیبانی میکند که مدیریت حافظه دینامیک را تسهیل میکند، مشابه زبانهایی مانند C.
REAL, POINTER :: pA
ALLOCATE(pA(10)) ! تخصیص دینامیک یک آرایه
فورتران دارای ویژگیهایی است که تعاملپذیری با C را ایجاد میکند و اجازه برنامهنویسی چندزبانه را میدهد.
INTERFACE
FUNCTION c_function(x) BIND(C, NAME="c_function")
INTEGER(C_INT) :: c_function(INTEGER)
END FUNCTION c_function
END INTERFACE
محبوبترین کامپایلرهای فورتران شامل:
در حالی که فورتران بهطور معمول با IDEهای مدرن مانند برخی زبانهای دیگر مرتبط نیست، چندین IDE از آن پشتیبانی میکنند:
ساخت یک پروژه فورتران معمولاً شامل ایجاد فایلهای منبع با پسوند .f، .f90 یا .f95 و کامپایل آنها با استفاده از یک کامپایلر فورتران است. یک دستور معمول ممکن است به شکل زیر باشد:
gfortran -o my_program my_source.f90
فورتران بهطور گستردهای در محاسبات علمی، پیشبینی عددی آب و هوا، مدلسازی اقلیمی، فیزیک محاسباتی، شیمی محاسباتی و بیوانفورماتیک استفاده میشود. این زبان بهویژه بهخاطر عملکردش در محاسبات عددی سنگین و شبیهسازیها شناخته شده است.
رقبای اصلی فورتران در زمینه برنامهنویسی علمی و مهندسی شامل:
فورتران دارای چندین ابزار ترجمه منبع به منبع است که میتواند به توسعهدهندگان کمک کند تا کدهای قدیمی را به زبانهای معاصرتر تبدیل کنند یا کدهای موجود را بهینهسازی کنند. برخی از ابزارها شامل:
این ابزارها انتقال از نسخههای قدیمیتر فورتران یا پارادایمهای برنامهنویسی کاملاً متفاوت را آسان میکنند و در عین حال به حفظ عملکرد و قابلیتها کمک میکنند.