کاربر:Esi Gonzalez/صفحه تمرین: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
Esi Gonzalez (بحث | مشارکت‌ها)
بدون خلاصۀ ویرایش
Esi Gonzalez (بحث | مشارکت‌ها)
بدون خلاصۀ ویرایش
خط ۴:
عرضه‌کنندگان کامپیوترهای علمی عملکرد بالا(مثال:[[:en:Burroughs Corporation|باروز]]، [[:en:Control Data Corporation|شرکت داده‌های کنترل]](CDC)،کری، هانی‌ول، [[آی‌بی‌ام]]، [[تگزاس اینسترومنتس]]، و [[:en:UNIVAC|یونی‌وک]]) افزونه‌های فورترن را اضافه کردند تا از قابلیت‌های سخت‌افزاری مانند حافظه نهان دستور، خط لوله‌های (به [[زبان انگلیسی|انگلیسی]] [[:en: pipeline (computing)| pipeline]]) CPU ، و آرایه‌های برداری بهره ببرند. برای مثال، یکی از کامپایلرهای فورترن شرکت آی‌بی‌ام، سطحی از بهینه‌سازی را داشت که ترتیب دستورات را عوض می‌کرد تا واحدهای محاسباتی داخلی مختلف را همزمان مشغول نگه دارد.
 
یک مثال دیگر CFD است، یک گونه‌ی خاص از فورترن که مخصوص ابرکامپیوتر ایلیاک 4 (به [[زبان انگلیسی|انگلیسی]] [[:en:ILLIAC IV|ILLIAC IV]]) ساخته شده است. این کامپیوتر در [[مرکز تحقیقات ایمز]] متعلق به [[ناسا]] قرار دارد.هم چنین آزمایشگاه‌های تحقیقاتی آی‌بی‌ام، یک نسخه‌ی توسعه‌یافته از یک زبان مبتنی بر فورترن به نام ''VECTRANوکترن'' را برای پردازش بردارها و ماتریس‌ها ایجاد کردند.
 
[[:en:Object-Oriented Fortran|فورترن شیءگرا]] یک افزونه شیءگرا از فورترن بود که در آن می توانستیم داده‌ها را در اشیاء مختلف گروه‌بندی کنیم. نمونه‌های اشیاء می‌توانستند به صورت موازی با یکدیگر ساخته شوند و توابعشان را اجرا کنند. فورترن شیءگرا برای Sun، Iris، iPSC و NCUBE موجود بود، اما الان دیگر پیشتیبانی نمی‌شود.
 
افزونه‌های این‌چنینی که مختص یک یا چند ماشینند یا در طول زمان از بین رفتند، یا عناصری از آنها در استانداردهای اصلی گنجانده شد. مهم‌ترین افزونه‌ی باقی‌مانده [[اپن ام‌پی]] است که یک افزونه‌ی چند‌پلتفرمه برای برنامه‌نویسی با حافظه‌ی مشترک است. [[:en:Coarray Fortran|کواَرِی فورترن]] یک افزونه جدید است که برای پشتیبانی برنامه‌نویسی موازی در نظر گرفته شده.
 
===FOR TRANSIT برای ماشین IBM 650===
(به [[زبان انگلیسی|انگلیسی]] [[:en:ILLIAC IV|ILLIAC IV]])
[[:en:FORCoarray TRANSITFortran|فورکواَرِی ترنزیتفورترن]]
 
[[:en:FOR TRANSIT|فور ترنزیت]] یک نسخه ی ساده شده از زبان فورترن ماشین [[:en:IBM 704|آی‌بی‌ام 704]]بود، که برای ماشین [[آی‌بی‌ام ۶۵۰]] پیاده‌سازی شد. برای این کار از یک برنامه‌ی مترجم ساخت دهه 1950 دانشگاه کارنگی استفاده شد. توضیح زیر در راهنمای مرجع IBMآی‌بی‌ام آمده است ( سیستم خودکار برنامه‌نویسی FOR TRANSIT C28-4038 متعلق به IBM، کپی رایت 1957 و 1959)
<ref>"Internal Translator (IT) A Compiler for the IBM 650",
by A. J. Perlis, J. W. Smith, and H. R. Van Zoeren, Computation Center,
Carnegie Institute of Technology
</ref>
( سیستم خودکار برنامه‌نویسی FOR TRANSIT C28-4038 متعلق به IBM، کپی رایت 1957 و 1959)
<blockquote>
سیستم فورترن برای ماشینی پیچیده‌تر از ماشین [[آی‌بی‌ام ۶۵۰]] ساخته شده بود، و بنابراین بعضی از 32 دستور موجود در راهنمای برنامه‌نویسان فورترن برای سیستم FORفور TRANSITترنزیت مورد قبول نیستند. بعلاوه، برخی محدودیت‌ها به زبان فورترن اضافه شده‌اند. با این حال، هیچ کدام از این محدودیت‌ها موجب آن نمی‌شوند که یک کد منبع که برای فورترن نوشته شده است برای سیستم فورترن ماشین [[:en:IBM 704|آی‌بی‌ام 704]] ناسازگار باشد.
</blockquote>
دستورات مجاز این ها بودند:
سطر ۳۴ ⟵ ۴۰:
 
در هر برنامه استفاده از حداکثر 10 [[رویه (علوم رایانه)|رویه (زیرروال)]] ممکن بود.
دستورات FOR TRANSIT به ستون 7 تا 56 [[کارت پانچ]] (به [[زبان انگلیسی|انگلیسی]] [[:en:Punched Card]]) محدود می شدند.پانچکارت‌هاکارت پانچ‌ها به عنوان ورودی و خروجی [[آی‌بی‌ام 650‌]] استفاده می شدند. سه بار عبور لازم بود تا کد منبع به زبان "IT" ترجمه شود، و بعد دستورات IT کامپایل شده و به [[زبان اسمبلی]] سوپ(SOAP) ترجمه شود، و نهایتا برنامه به زبان مقصد ([[کد ماشین]]) تولید شود، بعد می توان آن را درون ماشین بارگذاری کرد تا برنامه را اجرا کند (برای داده ورودی از پانچ کارت پانچ استفاده می شود، نتیجه را هم روی پانچ کارت خروجیپانچ میخروجی دهدمی‌دهد)
 
===زبانهای مبتنی بر فورترن===
سطر ۴۱ ⟵ ۴۷:
(به [[زبان انگلیسی|انگلیسی]] [[:en:Discrete System]])
[[:en:SIMSCRIPT|سیم‌اسکریپت]]
یکی از افزونه های فورترن که برای پشتیبانی برنامه نویسی سیستم ها عرضه شد، زبان ‌[[LRLTRAN]] در [[آزمایشگاه ملی لارنس برکلی (Lawrence Radiation Laboratory)]] و با هدف پشتیبانی از محاسبات برداری و ذخیره سازیذخیره‌سازی پویا ایجاد شد. این توزیع، سیستم عامل [[LTSS]] را شامل می شد.
بسیاری از کامپایلرهای فورترن، بخش هایی از پیش پردازندهپیش‌پردازنده ی C[[سی (زبان برنامه‌نویسی)| سی]] را در خود ادغام کرده اندکرده‌اند.[[:en:SIMSCRIPT|سیم‌اسکریپت]] یک پیش‌پردازنده‌ی فورترن مخصوص کاربردهای خاص برای مدلسازی و شبیه‌سازی سیستم‌های گسسته‌ (به [[زبان انگلیسی|انگلیسی]] [[:en:Discrete System]]) بزرگ است.
 
[[اف (زبان برنامه‌نویسی)|زبان برنامه نویسی F]] طراحی شد تا زیرمجموعه مرتبی از فورترن 95 باشد که هدفش حذف کردن قابلیت های زائد، بدون‌ساختار و منسوخ‌شده‌ی فورترن، مثل دستور {{code| EQUIVALENCE}} بود. اف قابلیت های آرایه را که در فورترن 90 اضافه شده بود حفظ می کند و دستورات کنترلی ای که توسط مفاهیم [[برنامه‌نویسی ساخت‌یافته]] منسوخ شده بودند را حذف می کند. این دستورات هم به فورترن 77 اضافه شده بودند هم به فورترن 90. سازندگان زبان اف آن را "یک زبان برنامه نویسی کامپایل شده و ساختاریافته برای آرایه‌ها توصیف کردند که "خصوصا برای آموزش و محاسبات علمی مناسب است".<ref>{{cite web | url=http://www.fortran.com/F/index.html | title= F Programming Language Homepage|publisher=Fortran.com|accessdate=19 November 2014}}</ref>
 
[[لاهی]] و [[فوجیتسو]] تیم مشترک تشکیل دادند تا یک زبان فورترن برای [[چهارچوبچارچوب دات‌نت]] مایکروسافت خلق کنند.
<ref>{{cite web | url=http://www.lahey.com/lf71/lfnet.htm | title=Fortran for .NET Language System | url-status=dead | archiveurl=https://web.archive.org/web/20141018201259/http://www.lahey.com/lf71/lfnet.htm | archivedate=18 October 2014 | df=dmy-all }}</ref>
زبان Silverfrost FTN95 هم توانایی ایجاد کد .NETدات‌نت را دارد.
<ref>{{cite web | url=http://www.silverfrost.com/11/ftn95_overview.aspx | title=FTN95: Fortran 95 for Windows|publisher=Silverfrost.com|accessdate=19 November 2014}}</ref>
===نمونه کد===
سطر ۵۴ ⟵ ۶۰:
اطلاعات بیشتر در: {{یادکرد وب |نام خانوادگی= |نام= |عنوان=مثال‌های فورترن |نشانی=https://en.wikibooks.org/wiki/Fortran/Fortran_examples|اثر= |تاریخ= |ناشر= |نشانی بایگانی= |تاریخ بایگانی= |کد زبان=en }}
 
برنامه زیر تخصیص حافظه‌ی پویا و عملیات روی آرایه‌ها را شرح می‌دهد که دو قابلیت معرفی شده در فورترن 90 هستند. به طور خاص نبود حلقه‌های {{code| DO}} و دستورات {{code| IF/THEN}} برای تغییر دادن آرایه شایان ذکر است که در عوض عملیات ریاضی روی کل آرایه به عنوان یک موجودیت اعمال می‌شود. بعلاوه، نامگذاری متغیرها به گونه ای که نام متغیر، آن را توصیف کند، و قالب کلی کد که مطابق با شیوه برنامه‌نویسی امروزی است نیز آشکار است. این مثال، میانگین داده‌هایی که در تعامل با کاربر از ورودی گرفته می‌شود را محاسبه می‌کند.