زبان برنامه نویسی فرترن (معرفی، کاربردها، معایب و مزایا)
فرترن زبان برنامه نویسی کامپیوتری همه منظوره و ایده آلی برای محاسبات علمی و محاسبات عددی است. تمرکز فرترن از زمان آغاز کار خود در دهه 1950 بر حوزه های دارای محاسبات زیاد بوده است. این حوزه های محاسباتی شامل تحلیل المان محدود، شیمی محاسباتی، زمین فیزیک، پیش بینی های عددی آب و هوا، بلورشناسی، فیزیک محاسباتی و دینامیک سیالات محاسباتی می شود.
3 واقعیت در مورد فرترن
- نام فرترن (Fortran) از عبارت Formula Translation گرفته شده است.
- در ابتدا تمام حروف نام فرترن به صورت بزرگ (FORTRAN) نوشته می شد و بعدا به صورت عادی نوشته شد.
- فرترن اولین زبان برنامه نویسی کامپیوتری سطح بالا برای استفاده گسترده بود.
جان وارنر باکوس (John Warner Backus) بنیانگذار فرترن
هنوز هم فرترن به دلیل این که زبانی محاسباتی با کارایی بالا است از دیگر زبان ها متمایز است. به همین خاطر،سریع ترین ابررایانه های جهان از این زبان برای برنامه های خود استفاده می کنند. این زبان برنامه نویسی از ابتدا چندین نسخه داشته است و در عین سازگاری با نسخه های قبلی، به هر نسخه از فرترن افزونه هایی نیز اضافه شده است. به عنوان مثال به هر نسخه پشتیبانی از پردازش داده های مبتنی بر کاراکتر (character-based data processing)، برنامه نویسی ساخت یافته (structured programming)، برنامه نویسی آرایه ای (array programming) و برنامه نویسی همگانی (generic programming) اضافه شده است.
چندین زبان برنامه نویسی دیگر فرترن را به عنوان زیرساخت کار خود قرار داده اند. معروفترین آنها «بیسیک» (BASIC) است که زیرساخت آن بر اساس فرترن 2 است و همینطور ساختارهای منطقی در آن بهبود یافته و چندین مرتب سازی دستور زبان نیز در آن انجام شده است.
فرترن همچنان در حال پیشرفت و پیشروی است. در آگوست 2021، زبان برنامه نویسی کامپیوتر فرترن در جایگاه 13 شاخص تیوبی(TIOBE index) قرار گرفت. این شاخص محبوبیت زبان برنامه نویسی را اندازه گیری می کند. با توجه به اینکه فرترن در اوت 2020 در جایگاه 42 قرار داشت، این تغییر جایگاه پیشرفتی قابل توجه بود. این که فرترن توانسته در طول یک سال ۲۹ رتبه پیشرفت کند جای تحسین دارد.
نحوۀ استفاده از فرترن
برای درک بهتر نحوه استفاده از فرترن استفاده از آموزشهای موجود برای این زبان به شما کمک خواهد کرد. اساساً فرترن به همراه مجموعه ای از واحدهای برنامه ای شامل برنامۀ اصلی، زیربرنامه های خارجی و ماژول ها ارائه می شود. هر برنامه دارای برنامۀ اصلی است و شاید واحدهای برنامه ای دیگری نیز داشته باشد. تمامی نرم افزارهای فرترن با کد کلیدواژه شروع می شوند و یک کد پایان کلیدواژه دارند و در نهایت نام کد در آخر بسته می شود.
همچنین در این برنامه، یک غیر statement ضمنی وجود دارد که کامپایلررا قادر می سازد تا درست وارد شدن انواع متغیرها را تایید کند. قبل از شروع هر نرم افزار فرترن، از استفادۀ غیر statement ضمنی اطمینان حاصل کنید.
نوشتن کامنت در فرترن با علامت تعجب شروع می شود، چرا که کامپایلر تمام کاراکترهای بعد از علامت به استثنای رشتۀ کاراکتر را نادیده می گیرد. دستور چاپ چیزی است که باعث به نمایش در آمدن داده ها بر روی صفحه می شود. در فرترن به جز حروف رشته ای می توانید از حروف کوچک و بزرگ استفاده کنید. همچنین، فرترن دارای قابلیت دندانه گذاری خطوط کد است که باعث خوانایی کدها می شود.
شناسه (Identifier) نامی است که رویه، متغیر یا سایر موارد تعریف شده توسط کاربر را مشخص می کند. نامی که در فرترن استفاده می کنید باید قوانین زیر را رعایت کند:
- از 31 کاراکتر بیشتر نباشد.
- حاوی کاراکترهای الفبایی – عددی باشد. این شامل تمام حروف الفبا، ارقام 0 تا 9، و زیرخط می شود.
- اولین کاراکتر باید یک حرف باشد.
نحوۀ نوشتن و کامپایل یک برنامه ساده فرترن
1- کد «Hello world» را بنویسید. اغلب اوقات این کد اولین کدی است که باید در تمام زبانهای برنامه نویسی نوشت. زمانی که این کد روی صفحه چاپ می شود، مطمئن شوید که قبل از هر خط شش فاصله وجود دارد.
2- برنامه را کامپایل کنید. برای رسیدن به این هدف، « f77 HelloWorld.f» را در خط فرمان تایپ کنید. در صورتی که با خطا مواجه شدید، ممکن است به دلیل نبود کامپایلر فرترن باشد. آن را نصب کنید و روند را تکرار کنید.
حتما بخوانید: یادگیری چند زبان برنامه نویسی (و فواید آن)
2- برنامه را اجرا کنید. اگر کامپایلر فایلی با نام « a.out» تولید می کند، فایل را با تایپ /a. out اجرا کنید.
3- چیزی که مینویسید را بفهمید. برنامه « HelloWorld» شروع برنامه را نشان می دهد، در حالی که برنامه « end program HelloWorld» پایان آن را نشان می دهد.
4- یک کامنت اضافه کنید. در برنامه های ساده کامنت نوشتن ضروری نیست، اما هنگام اجرای برنامه های پیچیده تر لازم است که این کامنت را بنویسید. شما می توانید کامنت خود را به دو روش اضافه کنید: اولین گزینه این است که در خطی که نظر شما شروع می شود علامت تعجب (!) قرار دهید. گزینه دوم این است که «C» را در خطی جدید و بدون شش فاصله بنویسید و بعد نظر خود در آنجا بنویسید.
برای سهولت خوانایی، بین «c» و نظر خود فاصله بگذارید.
نحوه یادگیری فرترن
یادگیری و پیاده سازی فرترن آسان است. و خوشبختانه، آموزش ها و کتاب های رایگان زیادی برای کمک به یادگیری شما به صورت آنلاین وجود دارد. آموزش برنامه نویسی فرترن از صفر تا صد (و نکات کاربردی)
تفاوت بین فرترن و «سی پلاس پلاس»
سی پلاس پلاس (C++) یک زبان برنامه نویسی شی گرا (Object oriented) است که از ویژگی هایی مثل چند شکلی (Polymorphism) و ارث بری (inheritance) برخوردار است. فرترن نیز با ترکیب عناصر نحوی ماژول و تایپ از چندین ویژگی شی گرا تقلید می کند. اما «فرترن 90» ارث بری خودکار ندارد.
از طرف دیگر، یادگیری و استفاده از فرترن برای محاسبات علمی نسبت به «سی پلاس پلاس» آسان تر است. فرترن از اعداد مرکب، آرایه های چند بعدی و دیگر توابع ویژه پشتیبانی می کند. فرترن مدرن قابلیت های آرایه ای مانند درک آرایه ها را نیز اضافه کرده است در حالی که «سی پلاس پلاس» فاقد این قابلیت است. از نظر سرعت هم باید گفت «سی پلاس پلاس» از فرترن سریع تر است اما نه با اختلاف زیاد. می توان گفت فرترن فرآیندهای خود را با سرعت زیادی انجام می دهد.
تاریخچه انتشار فرترن
با اینکه زبان برنامه نویسی پلنکالکول (Plankalkul) ساخته کنراد تسوزه (Konrad Zuse) اولین زبان برنامه نویسی سطح بالا در سراسر جهان بود؛ اما ایده ها و پروژه های مخترع آن در حد تئوری باقی ماند. به این ترتیب می توان گفت اولین زبان برنامه نویسی کامپیوتری سطح بالا، «فرترن» ساخته جان باکوس بوده است. جان وارنر باکوس، فارغ التحصیل با مدرک لیسانس ریاضیات از دانشگاه کلمبیا، اولین زبان برنامه نویسی کامپیوتر خود را در دهه 1950 و زمانی که در مرکز کامپیوتر ای بی ام (IBM) به عنوان برنامه نویس کار می کرد، اختراع کرد.
هدف او از این اختراع کنترل «اس اس ایی سی» (SSEC) یک کامپیوتر الکترومکانیکی با حدود 23000 رله الکترومکانیکی و 13000 لوله خلاء بود. مرکز کامپیوتر «ای بی ام» در ژانویه 1948 «اس اس ایی سی» را ساخت. والاس جی اکرت (Wallace J. Eckert)، مدیر آزمایشگاه محاسبات علمی واتسون در «ای بی ام»، محاسبات مدار ماه را با «اس اس ایی سی» انجام داد که این محاسبات 20 سال در برنامه فضایی آپولو دیده می شد.
از زمان اختراع «اس اس ایی سی»، برنامهریزی آن برای دست اندرکاران امر دشواری بود، چون هیچ کس روش مناسبی برای انجام آن تعیین نکرده بود. جان باکوس سه سال روی «اس اس ایی سی» کار کرد و تلاش کرد تا آن را برنامه ریزی کند.
کامپیوتر IBM SSEC
در این مسیر او برنامه ای به نام اسپید کدینگ (Speedcoding) را معرفی کرد. این برنامه اولین برنامه در نوع خود بود که از ضریب مقیاس (Scaling factor) استفاده می کرد. این امر ذخیره و دستکاری اعداد کوچک و بزرگ را امکان پذیر کرد. در اواخر سال 1953، جان باکوس پیشنهادی را به روسای خود نوشت و طرح زبان برنامه نویسی خود را برای رایانۀ اصلی «ای بی ام 701» بیان کرد. «ای بی ام» ایدۀ جان باکوس را تایید کرد و او را در سال 1954 به عنوان سرپرست یک تیم کوچک در آزمایشگاه علمی «ای بی ام واتسون» منصوب کرد.
تیم باکوس متشکل از برنامه نویسان زیر بود: ریچارد گلدبرگ، پیتر شریدان، شلدون اف بست، هارلان هریک، روی نات، هارولد استم، ایروینگ زیلر، رابرت نلسون، دیوید ساییر و لوئیس هایبت. در ماه مه 1954، ای بی ام کامپیوتر جدیدی به نام «IBM 704 Data Processing System» ارائه کرد. این محصول کامپیوتری پیشرفته با سیستم ذخیره سازی درام مغناطیسی، حافظۀ سرعت بالا با هستۀ مغناطیسی و دستگاه نوار بود.
کامپیوتر «ای بی ام 704» همچنین دارای ضریب مقیاس بندی داخلی (عملکرد خودکار ممیز شناور)، ثبات شاخص و توانایی نگهداری 5 میلیون کاراکتر بود. با داشتن این ویژگی ها، زمان کار کامپیوتر به میزان قابل توجهی کاهش یافت. اما در طول آن زمان، برنامه های کامپیوتری ناکارآمدی وجود داشت که عملکرد بالای «ای بی ام 704» را مختل می کرد. این امر باعث شد تا باکوس به فکر طراحی زبان برنامه نویسی ای بیفتد که برای برنامه نویسانی که از کامپیوتر استفاده می کنند سریعتر و آسان تر باشد.
به گفته باکوس، زبان برنامه نویسی رایانه را قادر می سازد تا فرمول مختصری از مسئله را در رابطه با مفاهیم ریاضی بپذیرد و به طور خودکار برنامه پرسرعت 704 را برای عملکردهای خود تولید کند. در اینجا خلاصه ای از فرایند تکامل فرترن ارائه شده است.
نسخه های مختلف
فرترن 1 (1957)
در نوامبر 1954، باکوس به همراه تیم خود اولین پیشنهاد برای زبان برنامه نویسی را ارائه کرد. در آن زمان، باکوس پیش بینی می کرد که کامپایلر خود را در شش ماه تکمیل خواهد کرد. اما در واقع حدود سه سال طول کشید تا باکوس اولین کامپایلر تجاری فرترن را در سال 1957 منتشر کند. پس از تکمیل، کامپایلر فرترن حدود 25000 خط کد ماشین را روی نوار مغناطیسی نگه داشت. با هر بار نصب «ای بی ام 704»، یک کپی از برنامه را همراه با یک کتابچه راهنمای 51 صفحه ای دریافت می کردید.
این کامپایلر اولیه بهینه سازی بود زیرا بسیاری از مشتریان در استفاده از یک زبان برنامه نویسی سطح بالا مردد بودند. آن ها کامپایلری می خواستند که کدی با عملکرد مشابه کدهای دست نویس تولید کند. دانشمندان و ریاضیدانان به طور گسترده از زبان برنامه نویسی جان باکوس برای نوشتن برنامه های عددی فشرده استفاده کردند. این حرکت کامپایلر نویسان را تشویق کرد تا کامپایلر هایی با توانایی تولید کدهای سریعتر و کارآمدتر توسعه دهند.
فرترن 2 (1958)
با افزودن انواع داده های اعداد مرکب به زبان برنامه نویسی، فرترن برای کاربرد های فنی مثل مهندسی برق مناسب شد. در سال 1958، «ای بی ام» فرمت «فرترن 2» را توسعه داد. پیشرفت اصلی، تقویت برنامهنویسی رویهای با فعال کردن توابع و روالهای فرعی نوشته شده توسط کاربر بود. همچنین «فرترن 2» دستورات بیشتری از جمله « subroutine» ، « call»، « function»، « return» و « end» داشت. با گذشت سالها، «فرترن 2» از انواع داده های پیچیده و دقت مضاعف پشتیبانی می کرد.
فرترن 3 ( اواخر 1958)
در همان سال، «ای بی ام» «فرترن 3» را هم با مجموعه کدهای درون برنامه ای و سایر ویژگیها عرضه کرد. متأسفانه «ای بی ام» هرگز این نسخه را برای عموم منتشر نکرد. تا سال 1960، چندین نسخه فرترن برای کامپیوترهای «ای بی ام» در دسترس بود. و با ادامه افزایش محبوبیت فرترن، تولیدکنندگان کامپیوترهای رقیب شروع به تهیه کامپایلر های فرترن برای دستگاه های خود کردند. به همین دلیل، تا سال 1963 بیش از 40 کامپایلر فرترن وجود داشت.
فرترن 4 (1961)
به دلیل تقاضای عموم، «ای بی ام» کار بر روی «فرترن 4» را در سال 1961 آغاز کرد. «فرترن 4» ویژگی های وابسته به ماشین «فرترن 2» را حذف کرد و ویژگی های جدیدی مانند داده های منطقی را اضافه کرد. هنگامی که به سال 1965 رسید، «فرترن 4» باید با استانداردهای انجمن استاندارد آمریکا مطابقت می کرد. تقریباً در همان زمان، «فرترن 4» تبدیل به یک ابزار آموزشی حیاتی شده بود و مجموعه های آموزشی مانند دانشگاه واترلو در حال استفاده از آن بودند.
فرترن 66 (1966)
در سال 1966، انجمن استانداردهای آمریکا تصمیم گرفت کمیته ای برای توسعه استاندارد فرترن تحت حمایت انجمن ماشین آلات و تجهیزات تجاری ایجاد کند. در طی این فرآیند، «فرترن 66» متولد شد و به نسخه اولیه استاندارد صنعتی فرترن تبدیل شد. پس از انتشار «فرترن 66»، سازندگان کامپایلر افزونه های دیگری را برای فرترن استاندارد اضافه کردند. این اقدام مؤسسه استانداردهای ملی آمریکا را در سال 1969 بر آن داشت تا تحت حمایت انجمن تولیدکنندگان تجهیزات تجاری رایانه در رابطه با «فرترن 66» تجدید نظر کند.
فرترن 77 (1978)
تایید رسمی انتشار نسخه استاندارد جدید فرترن، با نام «فرترن 77»، در آوریل 1978 اتفاق افتاد. این نسخه به منظور رفع کاستی های «فرترن 66» دارای امکانات بیشتری بود. با توجه به تغییرات سریع در حوزۀ برنامه نویسی و خدمات محاسباتی، ایجاد نرم افزار استاندارد بازنگری شده برای جانشینی «فرترن 77»، با تأخیر مواجه شد.
فرترن 90 (1992)
در سال 1992، جانشین مورد انتظار به نام «فرترن 90»، برای عموم منتشر شد. در این نسخه، املای نام رسمی این زبان از « FORTRAN» به « Fortran» تغییر یافت. «فرترن 90»، همچنین دارای ویژگی های جدیدی برای نمایش تغییرات برنامه نویسی قابل توجه از نسخه سال 1978 بود.
برخی از این ویژگیها شامل کامنتهای درون خطی، ماژولها، ورودی منبع آزاد، شناسهها، رویههای بازگشتی میشد که به چند مورد اشاره شد. برخلاف نسخه قبلی، «فرترن 90»، هیچ یک از ویژگی های موجود را حذف نکرد.
در سال 1995، فرترن برای حل برخی از مسائل مربوط به نسخه «فرترن 90»، مورد بازبینی جزئی قرار گرفت. با این وجود، «فرترن 95» افزونههای جدیدی از مشخصات فرترن با عملکرد بالا را نیز اضافه کرد.
فرترن: توسعۀ مداوم
سال 2003 آغاز فرترن مدرن با پشتیبانی از برنامه نویسی شی گرا بود. فرترن در سال 2003 شاهد معرفی ویژگیهای جدیدی مانند افزایش ورودی/خروجی، بهبود دستکاری دادهها، اشارهگرهای رویه و موارد دیگر بود.
در سال 2010، «فرترن 2008» ظهور کرد. این امر ارتقایی جزئی بود که شامل تصحیح و شفاف سازی «فرترن 2003» و در عین حال افزودن چند قابلیت جدید بود. این قابلیتها شامل ماژولهای فرعی، کو اری فرترن و ویژگی های مرتبط بود.
همه زبانهای برنامه نویسی را در اینجا آموزش داده ایم، کاملا رایگان!
نسخه بعدی زبان برنامه نویسی در نوامبر 2018 منتشر شد که «فرترن 2018» نامگذاری شد. این نسخه ای قابل توجه بود که شامل ویژگی های جدید از نسخه قبلی بود. زبان برنامه نویسی جدید همچنان توسط دانشمندان و ریاضیدانان در سراسر جهان استفاده می شود.