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

محتوای حذف‌شده محتوای افزوده‌شده
Esi Gonzalez (بحث | مشارکت‌ها)
بدون خلاصۀ ویرایش
Esi Gonzalez (بحث | مشارکت‌ها)
بدون خلاصۀ ویرایش
خط ۱:
===گونه‌های مختلف:===
(به [[زبان انگلیسی|انگلیسی]] [[:en:ILLIAC IV|ILLIAC IV]])
[[:en:Control Data Corporation|فورترن شیءگرا]]
عرضه‌کنندگان کامپیوترهای علمی عملکرد بالا(مثال:[[:en:Burroughs Corporation|باروز]]، [[:en:Control Data Corporation|شرکت داده‌های کنترل]](CDC)،(به [[زبان انگلیسی|انگلیسی]] [[:en:Cray|Cray]])، [[هانی‌ول]]، [[آی‌بی‌ام]]، [[تگزاس اینسترومنتس]]، و [[:en:UNIVAC|یونی‌وک]]) افزونه‌های فورترن را اضافه کردند تا از قابلیت‌های سخت‌افزاری مانند حافظه نهان دستور، [[خط لوله (رایانش)|خط لوله‌های]] (به [[زبان انگلیسی|انگلیسی]] [[:en: pipeline (computing)| pipeline]]) [[واحد پردازش مرکزی]] ، و آرایه‌های برداری بهره ببرند. برای مثال، یکی از کامپایلرهای فورترن شرکت آی‌بی‌ام، سطحی از بهینه‌سازی را داشت که ترتیب دستورات را عوض می‌کرد تا واحدهای محاسباتی داخلی مختلف را همزمان مشغول نگه دارد.
 
یک مثال دیگر CFD است، یک گونه‌ی خاص از فورترن که مخصوص ابرکامپیوتر ایلیاک 4۴ (به [[زبان انگلیسی|انگلیسی]] [[:en:ILLIAC IV|ILLIAC IV]]) ساخته شده است. این کامپیوتر در [[مرکز تحقیقات ایمز]] متعلق به [[ناسا]] قرار دارد.هم چنین آزمایشگاه‌های تحقیقاتی آی‌بی‌ام، یک نسخه‌ی توسعه‌یافته از یک زبان مبتنی بر فورترن به نام ''وکترن'' را برای پردازش بردارها و ماتریس‌ها ایجاد کردند.
 
[[:en:Object-Oriented Fortran|فورترن شیءگرا]] یک افزونه شیءگرا از فورترن بود که در آن می توانستیم داده‌ها را در اشیاء مختلف گروه‌بندی کنیم. نمونه‌های اشیاء می‌توانستند به صورت موازی با یکدیگر ساخته شوند و توابعشان را اجرا کنند. فورترن شیءگرا برای کامپیوترهای [[سان میکروسیستمز| سان]]، [[:en:Iris|آیریس]]، [[:en:iPSC|آی‌پی‌اس‌سی]] و [[:en:NCUBE|انکیوب]] موجود بود، اما الان دیگر پیشتیبانی نمی‌شود.
سطر ۱۰ ⟵ ۸:
افزونه‌های این‌چنینی که مختص یک یا چند ماشینند یا در طول زمان از بین رفتند، یا عناصری از آنها در استانداردهای اصلی گنجانده شد. مهم‌ترین افزونه‌ی باقی‌مانده [[اپن ام‌پی]] است که یک افزونه‌ی چند‌پلتفرمه برای برنامه‌نویسی با حافظه‌ی مشترک است. [[:en:Coarray Fortran|کواَرِی فورترن]] یک افزونه جدید است که برای پشتیبانی برنامه‌نویسی موازی در نظر گرفته شده.
 
===FOR TRANSIT برای ماشین IBMآی‌بی‌ام 650۶۵۰===
(به [[زبان انگلیسی|انگلیسی]] [[:en:Cray|Cray]])
[[:en:NCUBE|انکیوب]]
 
[[:en:FOR TRANSIT|فور ترنزیت]] یک نسخه ی ساده شده از زبان فورترن ماشین [[:en:IBM 704|آی‌بی‌ام 704۷۰۴]]بود، که برای ماشین [[آی‌بی‌ام ۶۵۰]] پیاده‌سازی شد. برای این کار از یک برنامه‌ی مترجم ساخت دهه 1950۱۹۵۰ دانشگاه کارنگی استفاده شد. توضیح زیر در راهنمای مرجع آی‌بی‌ام آمده است
<ref>"Internal Translator (IT) A Compiler for the IBM 650",
by A. J. Perlis, J. W. Smith, and H. R. Van Zoeren, Computation Center,
سطر ۲۱ ⟵ ۱۷:
( سیستم خودکار برنامه‌نویسی فور ترنزیت C28-4038 متعلق به آی‌بی‌ام، کپی رایت 1957 و 1959)
<blockquote>
سیستم فورترن برای ماشینی پیچیده‌تر از ماشین [[آی‌بی‌ام ۶۵۰]] ساخته شده بود، و بنابراین بعضی از 32۳۲ دستور موجود در راهنمای برنامه‌نویسان فورترن برای سیستم فور ترنزیت مورد قبول نیستند. بعلاوه، برخی محدودیت‌ها به زبان فورترن اضافه شده‌اند. با این حال، هیچ کدام از این محدودیت‌ها موجب آن نمی‌شوند که یک کد منبع که برای فورترن نوشته شده است برای سیستم فورترن ماشین [[:en:IBM 704|آی‌بی‌ام 704۷۰۴]] ناسازگار باشد.
</blockquote>
دستورات مجاز این ها بودند:
سطر ۳۹ ⟵ ۳۵:
* {{code|EQUIVALENCE (a,b,c), (d,c), ...}}
 
در هر برنامه استفاده از حداکثر 10۱۰ [[رویه (علوم رایانه)|رویه (زیرروال)]] ممکن بود.
دستورات FOR TRANSIT به ستون 7۷ تا 56۵۶ [[کارت پانچ]] (به [[زبان انگلیسی|انگلیسی]] [[:en:Punched Card]]) محدود می شدند.کارت پانچ‌ها به عنوان ورودی و خروجی [[آی‌بی‌ام ۶۵۰]] استفاده می شدند. سه بار عبور لازم بود تا کد منبع به زبان "IT" ترجمه شود، و بعد دستورات IT کامپایل شده و به [[زبان اسمبلی]] سوپ(SOAP) ترجمه شود، و نهایتا برنامه به زبان مقصد ([[کد ماشین]]) تولید شود، بعد می توان آن را درون ماشین بارگذاری کرد تا برنامه را اجرا کند (برای داده ورودی از کارت پانچ استفاده می شود، نتیجه را هم روی کارت پانچ خروجی می‌دهد)
 
===زبانهای مبتنی بر فورترن===
قبل از فورترن 77،۷۷، به طور معمول تعدادی [[پیش‌پردازنده]] برای میسر ساختن یک زبان مناسب تر مورد استفاده قرار می گرفتند، با این مزیت که کد پیش پردازش شده می توانست روی هر ماشینی که یک کامپایلر استاندارد فورترن داشت کامپایل شود. این پیش پردازنده ها معمولا از برنامه نویسی ساختاریافته، اسامی با طول بیش از 6۶ کاراکتر برای متغیرها، [[نوع داده‌|نوع داده‌های]] اضافه، [[کامپایل شرطی]] برنامه، و حتی قابلیت‌های [[ماکرو (رایانه)|ماکرو]] پشتیبانی می کردند. پیش‌پردازنده‌های متداول شامل {{یادکرد وب |نام خانوادگی= |نام= |عنوان=FLECS |نشانی=https://try-mts.com/ratfor-flecs-language-features/|اثر= |تاریخ= |ناشر= |نشانی بایگانی= |تاریخ بایگانی= |کد زبان=en }}, [[:en:Iftran|ایفترن]] ,[[:en:MORTRAN|مورترن]], SFtran, S-Fortran, [[رتفور (زبان برنامه‌نویسی)|رتفور]] و [[:en:Ratfiv|رتفیو]] می شدندمی‌شدند. برای مثال، رتفور و رتفیو یک زبان شبیه [[سی (زبان برنامه‌نویسی)|سی]] پیاده سازی می کردندمی‌کردند و کد پیش‌پردازش‌شده را به زبان فورترن 66۶۶ خروجی می دادندمی‌دادند. علی رغم پیشرفت هاپیشرفت‌ها در زبان فورترن، پیش‌پردازنده‌ها هم چنان برای کامپایل شرطی برنامه هابرنامه‌ها و جایگزینی ماکروها مورد استفاده قرار می گیرندمی‌گیرند.
 
 
 
(به [[زبان انگلیسی|انگلیسی]] [[:en:Discrete System]])
[[:en:Iftran|ایفترن]]
یکی از افزونه های فورترن که برای پشتیبانی برنامه نویسی سیستم ها عرضه شد، زبان ‌[[LRLTRAN]] در [[آزمایشگاه ملی لارنس برکلی]] و با هدف پشتیبانی از محاسبات برداری و ذخیره‌سازی پویا ایجاد شد. این توزیع، سیستم عامل [[LTSS]] را شامل می شد.
بسیاری از کامپایلرهای فورترن، بخش هایی از پیش‌پردازنده ی [[سی (زبان:en:C برنامه‌نویسی)preprocessor|پیش‌پردازنده‌ی سی]] را در خود ادغام کرده‌اند.[[: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]] هم توانایی ایجاد کد دات‌نت را دارد.
<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}} برای تغییر دادن آرایه شایان ذکر است که در عوض عملیات ریاضی روی کل آرایه به عنوان یک موجودیت اعمال می‌شود. بعلاوه، نامگذاری متغیرها به گونه ای که نام متغیر، آن را توصیف کند، و قالب کلی کد که مطابق با شیوه برنامه‌نویسی امروزی است نیز آشکار است. این مثال، میانگین داده‌هایی که در تعامل با کاربر از ورودی گرفته می‌شود را محاسبه می‌کند.
 
 
سطر ۸۰ ⟵ ۷۶:
read (*,*) number_of_points
! به تعداد number_of_points که ورودی گرفته، برای آرایه‌ی points عنصر داریم. پس برایشان حافظه تخصیص می‌دهد
allocate (points(number_of_points))
 
! خود اعداد را می‌گیرد و در آرایه‌ی points می‌ریزد
write (*,*) "Enter the points to average:"
read (*,*) points