فرترن
فورترن یک زبان برنامه نویسی همه-منظوره، کامپایل شونده و دستوری می‌باشد که مخصوصا برای محاسبات عددی و علم محاسبه مناسب است. فورترن در گذشته به صورت حروف بزرگ FORTRAN نوشته می‌شده که کوته‌نوشت FORmula TRANslation می‌باشد.
فورترن یک زبان برنامه‌نویسی کامپایل شونده برای محاسبات علمی و عددی است. این زبان در ابتدا برای برنامه‌های مهندسی و علمی در دهه ۱۹۵۰ توسط شرکت آی‌بی‌ام ایجاد شد و بیش از شش دهه است که در مسائل محاسباتی پیچیده همانند پیش‌بینی آب و هوا، تجزیه و تحلیل عناصر محدود، دینامیک سیالات محاسباتی، فیزیک محاسباتی، کریستالوگرافی و شیمی محاسباتی مورد استفاده قرار گرفته‌است. این زبان در محاسبات با کارایی بالا و محک و رتبه‌بندی سریعترین ابررایانه‌ها رایج است. یکی از ویژگی‌های مهم فورترن سرعت بالا در کامپایل کردن کدهای محاسباتی است و دلیل آن بهینه بودن دستورات این زبان نسبت به زبان‌های دیگر است و با توجه به کمینه بودن تعداد کاراکتر‌های مورد نیاز برای ایجاد یک دستور و امکانات ترجیحی و اختیاری فراوان، کدهای نوشته‌شده با این زبان از حجم کمی برخورداراند و در زمان کوتاه اجرا شده و نتیجه خواهد داد. این امر به خصوص برای محاسبات عددی سنگین از اهمیت دوچندانی برخوردار است.
نام نسخه‌های قبلی این زبان با حروف بزرگ بیان می‌شد و FORTRAN 77 آخرین نسخه‌ای بود که در آن استفاده از حروف کوچک در کلمات اصلی غیراستاندارد بشمار می‌رفت. در نسخه‌های جدیدتر از fortran90 این استاندارد حذف شد.
دراواخر سال 1953، جان بکوس (John Backus) پیشنهادی جهت جایگزینی یک برنامه عملی‌تر برای زبان اسمبلی برنامه نویسی IBM 704 ارائه کرد. تیم برنامه‌نویسان گذشته فورترن شامل ریچارد گلدبرگ، شلدون بهترین، هارلان هریك، پیتر شریدان، روی نوت، رابرت نلسون، ایروینگ زیلر، هارولد استرن، لوییزهایت و دیوید سیر بود. هدف اصلی ورود آسان‌تر معادلات به رایانه بود که ایده آن توسط J. Halcombe Laning توسعه یافت. پیشنویس مشخصات سیستم ترجمه فرمول ریاضی در نوامبر سال ۱۹۵۲ تکمیل شد و اولین کتابچه راهنمای‌آن، در اکتبر ۱۹۵۶ آماده‌شد و با اولین کامپایلر فورترن در آوریل ارائه شد. این اولین کامپایلر بهینه‌ساز بود. مشتریان زمانی تمایل به استفاده از زبان سطح بالا دارند که عملکرد کد تولید شده توسط کامپایلر مشابه عملکرد کداسمبلی دست‌‌‌نویس باشد.  درحالی‌که برنامه نویسان در عملکرد بهتر این نوع برنامه‌نویسی نسبت به کداسمبلی دست‌نویس تردید داشتند، کاهش بالای تعداد عبارات برنامه نویسی توجه برنامه‌نویسان را جلب کرد. جان بکوس در طی مصاحبه ای در سال ،گفت: "بخش عمده‌ای از کار من از تنبلی ناشی شده‌است. من نوشتن برنامه‌ها را دوست نداشتم، بنابراین هنگامی که در IBM 701 کار میکردم، برنامه هایی برای محاسبات می‌نوشتم. پس شروع به کار بر روی یک سیستم برنامه نویسی کردم تا نوشتن برنامه‌ها آسان‌تر شود. " دانشمندان این زبان را بسیار مناسب برای برنامه های‌فشرده عددی دانستند و نویسندگان کامپایلر را، برای نوشتن کامپایلر با سرعت و کارامدی بیشتر ترغیب کردند. گنجایش این زبان برای داده‌های عددی بسیار پیچیده، آن را برای برنامه های فنی بخصوص در مهندسی برق مناسب نموده‌است. تا سال ۱۹۶۰ نسخه‌های فورترن برای رایانه‌های 1620 IBM 109، IBM 650 ، IBM و 7090 IBM در دسترس بود. محبوبیت روزافزون این زبان، سازندگان آن را تشویق‌کرد بطوری‌که تا سال ۱۹۶۳، بیش از ۴۰ کامپایلر فورترن دردسترس بود.
توسعه فورترن به موازات سیرتکاملی کامپایلر بود و به همین‌ دلیل بسیاری از پیشرفت های تئوری و طراحی کامپایلر در جهت رفع نیازهای فورترن برای ایجاد کد کارامدتر ایجادشد.
اگرچه نویسندگان بیسیک فورترن را قدیمی توصیف کرده‌ بودند، اکنون چندین دهه است که این زبان مورد استفاده قرار گرفته است.
جی پاساکوف در سال ۱۹۸۴ نوشت: «دانشجویان فیزیک و نجوم باید فورترن را بیاموزند و بعید به نظر می‌رسد دانشمندان به دیگر زبان‌های پاسکال، مدولا یا هر چیز دیگری روی‌آورند.»
در سال ۱۹۹۳، سیسیل لیث، فورترن را «زبان مادری محاسبات علمی» خواند و افزود: «جایگزینی آن با هر زبان دیگر ممکن است یک امید فراموش شده باقی بماند.»
فورترن یک زبان اولیه برای برخی کارهای حجیم در ابرکامپیوترها مانند نجوم، مدل‌سازی آب و هوا، شیمی محاسباتی، اقتصاد محاسباتی، دینامیک سیالات محاسباتی، فیزیک محاسباتی، تجزیه و تحلیل داده‌ها، مدل‌سازی هیدرولوژیکی، جبرخطی عددی و کتابخانه‌های عددی ( LAPACK، IMSL و NAG)، بهینه‌سازی، شبیه‌سازی ماهواره، مهندسی سازه و پیش‌بینی وضعیت هوا است.
کدهای مدرن‌تر در علوم محاسباتی از کتابخانه‌ها استفاده می‌کنند، از جمله METIS برای تقسیم‌بندی نمودار، PETSc یا Trilinos برای جبر خطی و غیره که در سی نیز استفاده می‌شد.
از اوایل سال ۲۰۰۰ بسیاری از کتابخانه‌های پشتیبان مورد استفاده قرار گرفتند و ازطرفی زبان های‌دیگر مانند متلب ، پایتون و آر در برخی حوزه‌های علوم محاسباتی رایج شدند. به همین دلیل، امکاناتی برای ارتباط سی با Fortran ۲۰۰۳ فراهم شد.
قابلیت حمل در ابتدا با مشکلاتی همراه بود زیرا هیچ استانداردی مورد توافق قرار نمی‌گرفت. استانداردها قابلیت حمل را بهبود بخشیده‌اند.
استاندارد ۱۹۹۶ یک اصطلاح مرجع و معناشناسی را ارائه می‌داد، اما مجدد به ناسازگاری ادامه دادند. برنامه‌نویسان متوجه بودند، استفاده از ناسازگاری‌ها سبب بروز مشکلات در حمل می‌شود، پس از برنامه‌هایی مانند The PFORT Verifier استفاده می‌کردند؛
بعد از استاندارد ۱۹۷۷، دفتر ملی استاندارد FIPS PUB 69 را منتشر کرد که پردازنده‌های خریداری شده توسط دولت ایالات متحده ملزم به تشخیص استاندارد بودند.
ناسازگاری و عدم رعایت استاندارد تنها مشکل قابلیت حمل نبودند. برای محاسبات عددی، در نظر گرفتن ویژگی‌های حساب مهم است. اتخاذ (در حال حاضر تقریبا جهانی) استاندارد IEEE 754 برای حساب ممیزشناور باینری، این مشکل را حل‌ کرد.
دسترسی به محیط محاسبات برای مثال خط فرمان برنامه، متغیرهای محیط و غیره همچنان مشکل ایجاد می‌کرد که در سال ۲۰۰۳ برطرف شد.
در حال حاضر نوشتن یک برنامهٔ قابل حمل در فورترن امکان‌پذیر است.
دراواخر دهه ۱۹۷۰و اوایل دهه ۱۹۸۰، برای رایانه‌های Eclipse, MV و Nova عرضه‌شد که کامپایلر بهینه ساز خوبی برای کامپیوترهای زمان خود بشمار می‌رفت. درسال ۱۹۶۸در سریال 6600 CDC عرضه شد و مبتنی بر FORTRAN IV بود. فورترن۶ یا Visual Fortran 2001 توسط ماکروسافت مجاز شد و رابط محیط Visual Studio 5 را برای Compaq v6 ارائه‌داد. عرضه‌کنندگان کامپیوترهای علمی عملکرد بالا(مثال:، (CDC)،(به انگلیسی )، هانی‌ول، آی‌بی‌ام، تگزاس اینسترومنتس، و ) افزونه‌های فورترن را اضافه کردند تا از قابلیت‌های سخت‌افزاری مانند حافظه نهان دستور، خط لوله‌های (به انگلیسی ) واحد پردازش مرکزی ، و آرایه‌های برداری بهره ببرند. برای مثال، یکی از کامپایلرهای فورترن شرکت آی‌بی‌ام، سطحی از بهینه‌سازی را داشت که ترتیب دستورهای را عوض می‌کرد تا واحدهای محاسباتی داخلی مختلف را همزمان مشغول نگه دارد.
یک مثال دیگر CFD است، یک گونه‌ی خاص از فورترن که مخصوص ابرکامپیوتر ایلیاک ۴ (به انگلیسی ) ساخته شده است. این کامپیوتر در مرکز تحقیقات ایمز متعلق به ناسا قرار دارد.هم چنین آزمایشگاه‌های تحقیقاتی آی‌بی‌ام، یک نسخه‌ی توسعه‌یافته از یک زبان مبتنی بر فورترن به نام "وکترن" را برای پردازش بردارها و ماتریس‌ها ایجاد کردند.
افزونه‌های این‌چنینی که مختص یک یا چند ماشینند یا در طول زمان از بین رفتند، یا عناصری از آنها در استانداردهای اصلی گنجانده شد. مهم‌ترین افزونه‌ی باقی‌مانده اپن ام‌پی است که یک افزونه‌ی چند‌پلتفرمه برای برنامه‌نویسی با حافظه‌ی مشترک است. یک افزونه جدید است که برای پشتیبانی برنامه‌نویسی موازی در نظر گرفته شده.
یک نسخه‌ی ساده شده از زبان فورترن ماشین بود، که برای ماشین آی‌بی‌ام ۶۵۰ پیاده‌سازی شد. برای این کار از یک برنامه‌ی مترجم ساخت دهه ۱۹۵۰ دانشگاه کارنگی استفاده شد. توضیح زیر در راهنمای مرجع آی‌بی‌ام آمده است
سیستم فورترن برای ماشینی پیچیده‌تر از ماشین آی‌بی‌ام ۶۵۰ ساخته شده بود، و بنابراین بعضی از ۳۲ دستور موجود در راهنمای برنامه‌نویسان فورترن برای سیستم فور ترنزیت مورد قبول نیستند. بعلاوه، برخی محدودیت‌ها به زبان فورترن اضافه شده‌اند. با این حال، هیچ کدام از این محدودیت‌ها موجب آن نمی‌شوند که یک کد منبع که برای فورترن نوشته شده است برای سیستم فورترن ماشین ناسازگار باشد.
دستورهای مجاز این ها بودند:در هر برنامه استفاده از حداکثر ۱۰ رویه (زیرروال) ممکن بود. دستورهای FOR TRANSIT به ستون ۷ تا ۵۶ کارت پانچ (به انگلیسی ) محدود می شدند.کارت پانچ‌ها به عنوان ورودی و خروجی آی‌بی‌ام ۶۵۰ استفاده می شدند. سه بار عبور لازم بود تا کد منبع به زبان "IT" ترجمه شود، و بعد دستورهای IT کامپایل شده و به زبان اسمبلی سوپ(SOAP) ترجمه شود، و نهایتا برنامه به زبان مقصد (کد ماشین) تولید شود، بعد می توان آن را درون ماشین بارگذاری کرد تا برنامه را اجرا کند (برای داده ورودی از کارت پانچ استفاده می شود، نتیجه را هم روی کارت پانچ خروجی می‌دهد)
قبل از فورترن ۷۷، به طور معمول تعدادی پیش‌پردازنده برای میسر ساختن یک زبان مناسب تر مورد استفاده قرار می گرفتند، با این مزیت که کد پیش پردازش شده می توانست روی هر ماشینی که یک کامپایلر استاندارد فورترن داشت کامپایل شود. این پیش پردازنده ها معمولا از برنامه نویسی ساختاریافته، اسامی با طول بیش از ۶ کاراکتر برای متغیرها، نوع داده‌های اضافه، کامپایل شرطی برنامه، و حتی قابلیت‌های ماکرو پشتیبانی می کردند. پیش‌پردازنده‌های متداول شامل , , SFtran, S-Fortran, رتفور و می‌شدند. برای مثال، رتفور و رتفیو یک زبان شبیه سی پیاده سازی می‌کردند و کد پیش‌پردازش‌شده را به زبان فورترن ۶۶ خروجی می‌دادند. علی رغم پیشرفت‌ها در زبان فورترن، پیش‌پردازنده‌ها هم چنان برای کامپایل شرطی برنامه‌ها و جایگزینی ماکروها مورد استفاده قرار می‌گیرند.
یکی از افزونه های فورترن که برای پشتیبانی برنامه نویسی سیستم ها عرضه شد، زبان ‌LRLTRAN در آزمایشگاه ملی لارنس برکلی و با هدف پشتیبانی از محاسبات برداری و ذخیره‌سازی پویا ایجاد شد. این توزیع، سیستم عامل LTSS را شامل می شد. بسیاری از کامپایلرهای فورترن، بخش هایی از را در خود ادغام کرده‌اند. یک پیش‌پردازنده‌ی فورترن مخصوص کاربردهای خاص برای مدلسازی و شبیه‌سازی سیستم‌های گسسته‌ (به انگلیسی ) بزرگ است.
زبان برنامه نویسی F طراحی شد تا زیرمجموعه مرتبی از فورترن ۹۵ باشد که هدفش حذف کردن قابلیت های زائد، بدون‌ساختار و منسوخ‌شده‌ی فورترن، مثل دستور بود. اف قابلیت های آرایه را که در فورترن ۹۰ اضافه شده بود حفظ می کند و دستورهای کنترلی ای که توسط مفاهیم برنامه‌نویسی ساخت‌یافته منسوخ شده بودند را حذف می کند. این دستورهای هم به فورترن ۷۷ اضافه شده بودند هم به فورترن ۹۰. سازندگان زبان اف آن را "یک زبان برنامه نویسی کامپایل شده و ساختاریافته برای آرایه‌ها توصیف کردند که "خصوصا برای آموزش و محاسبات علمی مناسب است".
لاهی و فوجیتسو تیم مشترک تشکیل دادند تا یک زبان فورترن برای چارچوب دات‌نت مایکروسافت خلق کنند.
زبان Silverfrost FTN95 هم توانایی ایجاد کد دات‌نت را دارد.
اطلاعات بیشتر در:
برنامه زیر تخصیص حافظه‌ی پویا و عملیات روی آرایه‌ها را شرح می‌دهد که دو قابلیت معرفی شده در فورترن ۹۰ هستند. به طور خاص نبود حلقه‌های و دستورهای برای تغییر دادن آرایه شایان ذکر است که در عوض عملیات ریاضی روی کل آرایه به عنوان یک موجودیت اعمال می‌شود. بعلاوه، نامگذاری متغیرها به گونه ای که نام متغیر، آن را توصیف کند، و قالب کلی کد که مطابق با شیوه برنامه‌نویسی امروزی است نیز آشکار است. این مثال، میانگین داده‌هایی که در تعامل با کاربر از ورودی گرفته می‌شود را محاسبه می‌کند. program average
end program average