کاربر:Esi Gonzalez/صفحه تمرین: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
Esi Gonzalez (بحث | مشارکتها) بدون خلاصۀ ویرایش |
|||
خط ۱:
گونههای مختلف:
عرضهکنندگان کامپیوترهای علمی عملکرد بالا(مثال: باروز، شرکت دادههای کنترل (CDC)، Cray، هانیول، IBM، Texas Instruments، و UNIVAC) افزونههای فورترن را اضافه کردند تا از قابلیت های سخت افزاری مانند حافظه نهان دستور، خط لوله های CPU، و آرایه های برداری بهره ببرند. برای مثال، یکی از کامپایلرهای فورترن شرکت IBM، سطحی از بهینه سازی را داشت که ترتیب دستورات را عوض می کرد تا واحدهای محاسباتی داخلی مختلف را همزمان مشغول نگه دارد.
یک مثال دیگر CFD است، یک گونه ی خاص از فورترن که مخصوص ابرکامپیوتر ILLIAC I ساخته شده است. این کامپیوتر در مرکز تحقیقاتی آمس متعلق به ناسا قرار دارد.هم چنین آزمایشگاه های تحقیقاتی IBM، یک نسخه ی توسعه یافته از یک زبان مبتنی بر فورترن به نام VECTRAN را برای پردازش بردارها و ماتریسها ایجاد کردند.
فورترن شیءگرا یک افزونه شیءگرا از فورترن بود که در آن می توانستیم داده ها را در اشیاء مختلف گروه بندی کنیم. نمونه های اشیاء می توانستند به صورت موازی با یکدیگر ساخته شوند و توابعشان را اجرا کنند. فورترن شیءگرا برای Sun، Iris، iPSC و NCUBE موجود بود، اما الان دیگر پیشتیبانی نمی شود.
افزونه های این چنینی که مختص یک یا چند ماشینند یا در طول زمان از بین رفتند، یا عناصری از آنها در استانداردهای اصلی گنجانده شد. مهم ترین افزونه ی باقی مانده OpenMP است که یک افزونه ی چندپلتفرمه برای برنامه نویسی با حافظه ی مشترک است. Coarray Fortranیک افزونه جدید است که برای پشتیبانی برنامه نویسی موازی در نظر گرفته شده.
FOR TRANSIT برای ماشین IBM 650
FOR TRANSIT یک نسخه ی ساده شده از زبان FORTRAN ماشین IBM 704 بود، که برای ماشین IBM 650 پیاده سازی شد. برای این کار از یک برنامه ی مترجم ساخت دهه 1950 دانشگاه کارنگی استفاده شد. توضیح زیر در راهنمای مرجع IBM آمده است ( سیستم خودکار برنامه نویسی FOR TRANSIT C28-4038 متعلق به IBM، کپی رایت 1957 و 1959)
سیستم FORTRAN برای ماشینی پیچیده تر از ماشین IBM 650 ساخته شده بود، و بنابراین بعضی از 32 دستور موجود در راهنمای برنامه نویسان FORTRAN برای سیستم FOR TRANSIT مورد قبول نیستند. بعلاوه، برخی محدودیت ها به زبان FORTRAN اضافه شده اند. با این حال، هیچ کدام از این محدودیت ها موجب آن نمی شوند که یک کد منبع که برای FOR TRANSIT نوشته شده است برای سیستم فورترن ماشین IBM 704 ناسازگار باشد.
دستورات مجاز این ها بودند:
(بذارش اینجا)
در هر برنامه استفاده از حداکثر 10 زیرروال(subroutine) ممکن بود.
دستورات FOR TRANSIT به ستون 7 تا 56 کارت پانچ محدود می شدند.پانچ کارت ها به عنوان ورودی و خروجی IBM 650 استفاده می شدند. سه بار عبور لازم بود تا کد منبع به زبان "IT" ترجمه شود، و بعد دستورات IT کامپایل شده و به زبان اسمبلی SOAP ترجمه شود، و نهایتا برنامه به زبان مقصد (زبان ماشین) تولید شود، بعد می توان آن را درون ماشین بارگذاری کرد تا برنامه را اجرا کند (برای داده ورودی از پانچ کارت استفاده می شود، نتیجه را هم روی پانچ کارت خروجی می دهد)
زبانهای مبتنی بر فورترن:
قبل از فورترن 77، به طور معمول تعدادی پیش-پردازنده (preprocessor) برای میسر ساختن یک زبان مناسب تر مورد استفاده قرار می گرفتند، با این مزیت که کد پیش پردازش شده می توانست روی هر ماشینی که یک کامپایلر استاندارد فورترن داشت کامپایل شود. این پیش پردازنده ها معمولا از برنامه نویسی ساختاریافته، اسامی با طول بیش از 6 کاراکتر برای متغیرها، نوع دادههای (data type) اضافه، کامپایل شرطی برنامه، و حتی قابلیت های ماکرو (macro) پشتیبانی می کردند. پیش پردازنده های متداول شامل FLECS, iftran MORTRAN, SFtran, S-Fortran, Ratfor و Ratfiv می شدند. برای مثال، Ratfor و Ratfiv یک زبان شبیه C پیاده سازی می کردند و کد پیش پردازش شده را به زبان فورترن 66 خروجی می دادند. علی رغم پیشرفت ها در زبان فورترن، پیش پردازنده ها هم چنان برای کامپایل شرطی برنامه ها و جایگزینی ماکروها مورد استفاده قرار می گیرند.
یکی از افزونه های فورترن که برای پشتیبانی برنامه نویسی سیستم ها عرضه شد، زبان LRLTRAN در آزمایشگاه ملی لارنس برکلی (Lawrence Radiation Laboratory) و با هدف پشتیبانی از محاسبات برداری و ذخیره سازی پویا ایجاد شد. این توزیع، سیستم عامل LTSS را شامل می شد.
بسیاری از کامپایلرهای فورترن، بخش هایی از پیش پردازنده ی C را در خود ادغام کرده اند. SIMSCRIPT یک پیش پردازنده ی فورترن مخصوص کاربردهای خاص برای مدلسازی و شبیه سازی سیستم های گسستهی (Discrete System) بزرگ است.
زبان برنامه نویسی F طراحی شد تا زیرمجموعه مرتبی از فورترن 95 باشد که هدفش حذف کردن قابلیت های زائد، بدون ساختار و منسوخ شده ی فورترن، مثل دستور EQUIVALENCE بود. F قابلیت های آرایه را که در فورترن 90 اضافه شده بود حفظ می کند و دستورات کنترلی ای که توسط مفاهیم برنامه نویسی ساختاریافته (Structured Programming) منسوخ شده بودند را حذف می کند. این دستورات هم به فورترن 77 اضافه شده بودند هم به فورترن 90. سازندگان زبان F آن را "یک زبان برنامه نویسی کامپایل شده و ساختاریافته برای آرایه ها توصیف کردند که "خصوصا برای آموزش و محاسبات علمی مناسب است".
لاهی (Lahey) و فوجیتسو (Fujitsu) تیم مشترک تشکیل دادند تا یک زبان فورترن برای فریمورک .NET مایکروسافت خلق کنند. زبان Seilverfrost FTN95 هم توانایی ایجاد کد .NET را دارد.
نمونه کد:
اطلاعات بیشتر در: Wikibooks:Fortran/Fortran examples
برنامه زیر تخصیص حافظه ی پویا و عملیات روی آرایه ها را شرح می دهد که دو قابلیت معرفی شده در فورترن 90 هستند. به طور خاص نبود حلقه های DO و دستورات IF/THEN برای تغییر دادن آرایه شایان ذکر است؛ عملیات ریاضی روی کل آرایه به عنوان یک موجودیت اعمال می شود. بعلاوه، نامگذاری متغیرها به گونه ای که نام متغیر آن را توصیف کند، و قالب کلی کد که مطابق با شیوه برنامه نویسی امروزی است نیز واضح است. این مثال، میانگین داده هایی که در تعامل با کاربر از ورودی گرفته می شود را محاسبه می کند.
|