کوبول: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
MahdiBot (بحث | مشارکت‌ها)
خط ۲:
 
== تاریخچه و معیارها ==
ویژگی های «کوبول» به وسیلهٔ فردی به نام [[گریس هاپر]] در نیمه دوم سال ۱۹۵۹ ایجاد شد. ماجرا در هشتم آوریل ۱۹۵۹ در یک همایش بین تولیدکنندگان کامپیوتر، استفاده کنندگان کامپیوتر و دانشگاهیان در مرکز کامپیوتر [[دانشگاه پنسیلوانیا]] اتفاق افتاد. [[وزارت دفاع آمریکا]] سپس حامی و اسپانسر فعالیت های بعدی شد. همایشی بوسیله کارلس آ. فیلیپس در [[پنتاگون]] در ۲۸ و ۲۹ ام ماه می (دقیقادقیقاً یک سال بعد از همایش الگول ۵۸ در [[زوریخ]] برقرار شد. در آنجا تصمیم گرفته شد ۳ کمیته تشکیل شود: کوتاه مدت، میان مدت و بلند مدت(البته آخری هرگز تشکیل نشد). کمیته کوتاه مدت، که بوسیلهٔ (جوزف وگستین) به عنوان رئیس سازمان ملی استانداردهای ایالات متحده رهبری می شد، توانست در طول آن مدت نخستین نسخه کوبول را به وجود بیاورد. <ref>{{cite book | last = Garfunkel | first = Jerome | title = The Cobol 85 Example Book | publisher = Wiley | location = New York | year = ۱۹۸۷ | isbn = ۰۴۷۱۸۰۴۶۱۴}}</ref> آن کمیته تشکیل شد تا یک دسترسی کوتاه مدت به یک زبان تجاری متداول را ارائه کند. این کمیته از شش تولید کنندهٔ کامپیوتر و سه آژانس دولتی تشکیل شده بود. شش تولید کننده کامپیوتر عبارتند از موسسه باروگ، [[IBM]]، هانی ول، اسپرس راند، آر-سی-ای و سیلوانیا الکتریک، سه آژانس دولتی عبارتند از: نیروی هوایی ایالات متحدهٔ آمریکا، ''David Taylor Model Basin'' و اداره ملی استانداردها (که امروزه به نام موسسهٔ ملی استاندارد و تکنولوژی نامیده میشود). کمیتهٔ میان مدت تشکیل شد ولی هرگز عملی نشد. در انتهای زمان کمیته اصلی کوتاه مدت، این کمیته موفق شد ویژگی‌های زبان کوبول را ارتقا دهد. این کمیته اصلی توسط شش نفر تشکیل شده بود. این کمیته اصلی ویژگی های کوبول را تا دسامبر ۱۹۵۹ کامل کرد. این ویژگی ها حوزهٔ وسیعی است که از زبانهای فلوماتیک –که به عنوان مادر زبان کوبول از آن یاد میشود- که توسط فردی به نام]]گریس هاپر [[ابداع شد و نیز زبان های کامترن که توسط فردی به نام باب بمر ابداع شد ونیز زبان فکت الهام گرفته شد. تصمیم بر استفاده از نام «کوبول» در یک همایش در ۱۸ سپتامبر ۱۹۵۹ گرفته شد.
اولین کامپایلر برای کوبول در سال ۱۹۶۰ تکمیل شد.
 
خط ۹:
 
=== کوبول ۱۹۷۴ ===
در سال ۱۹۷۴، موسسه استاندارد جهانی نسخه اصلاح شده کوبول را منتشر کرد که شامل تعدادی از ویژگی هایی بود که در نسخهٔ ۱۹۶۸ وجود نداشت.
 
=== کوبول ۱۹۸۵ ===
در سال ۱۹۸۵، موسسسه استاندارد جهانی نسخه اصلاح شدهٔ دیگری را منتشر کرد که شامل ویژگی هایی بود که درنسخه استاندارد سال ۱۹۷۴ وجود نداشت و ساخت یافته ترین زبان ساخته شد که شامل <code>END-IF</code>، <code>END-PERFORM</code>، <code>END-READ</code> و غیره است.
 
=== کوبول ۲۰۰۲ و کوبول شی گرا ===
این زبان تا به امروز رو به پیشرفت است. در اوایل دهه ۱۹۹۰ تصمیم گرفته شد تا ویژگی شی گرایی به نسخه کامل بعدی کوبول اضافه شود. تخمین اولیه این بود که این اصلاح تا سال ۱۹۹۷ انجام میشود. بعضی از مجریان کار (از قبیل Micro Focus، Fujitsu، Veryantو[[IBM]]) قواعد نحوی شی گرایی را بر اساس نسخه ۱۹۹۷ ونسخه های کامل دیگر به وجود آوردند.
 
مثل زبان‌های برنامه نویسی [[C++]] و [[جاوا]] کامپایلرهای شی گرای کوبول مانند زبان هایی که به سمت استاندارد سازی پیش می روند در دسترس هستند. Fujitsu و Micro Focus] از کامپایلرهای شی گرای کوبول با هدف قالب بندی [[دات نت]] حمایت کردند. <ref>[http://www.adtools.com/products/windows/netcobol.html NetCOBOL for.NET supports COBOL migration and software development in the.NET environment<!-- Bot generated title -->]</ref>
کوبول سال ۲۰۰۲ شامل ویژگی های دیگری فراتر از شی گرایی است. این ویژگی ها عبارتند از:
* حمایت ملی از زبان
* پردازش محلی
* استفاده از توابع تعریف شده توسط کاربر
* اشاره گرها برای اخذ و آزادسازی حافظه
* حمایت برای اجرا در محیط کار مثل مایکروسافت [[دات نت]] و [[جاوا]]
* حمایت بیتی و باینری
* حمایت باینری “True”
* حمایت ممیز شناور
* نتایج ریاضی استاندارد
* نسل ''[[XML]]'' و تجزیه کردن
 
=== تاریخچهٔ استانداردهای کوبول ===
ویژگی هایی که به وسیلهٔ کمیته کامل کوتاه مدت تصویب شده بود به وسیلهٔ هیات اجرایی در سوم ژانویهٔ ۱۹۶۰تصویب شد و به چاپخانهٔ حکومتی ارسال شد که آنجا این ویژگی ها ویرایش و به عنوان «کوبول ۶۰» چاپ شد. موسسه استاندارهای جهانی ایالات متحده [[َANSI]] چندین نسخهٔ بازبینی شدهٔ کوبول استاندارد را تولید کرد از جمله:
* کوبول ۶۸
* کوبول ۷۴
* کوبول ۸۵
 
بعد از اصلاح نسخه سال ۱۹۸۵، تکامل عمده و حق مالکیت بوسیله موسسه بین المللیبین‌المللی استاندارد گرفته شد. ویرایش اخیر و گزارش های تکنیکی به وسیلهٔ استانداردهای زیر موسسه بین المللیبین‌المللی استاندارد صادر شد (و به وسیلهٔ موسسه استانداردهای ملی آمریکا پذیرفته شد):
* کوبول ۲۰۰۲
* گزارش نهایی تکنیکی
* کلاس های کتابخانه ای شی گرا
از سال ۲۰۰۲ استاندارد [[ISO]] برای کدهای عمومی مثل استاندارد ۱۹۸۹در دسترس است.
 
== ویژگی ها ==
کوبول همچنین که در مشخصات عمومی تعریف شده از جمله شکل عبارت برای خصوصیات میدانی جرئی. این زبان از متغیر های محلی، بازگشتی، اختصاص دینامیک حافظه و [[برنامه نویسی ساخت یافته]] حمایت نمی کندنمی‌کند. حمایت از قسمتی یا همهٔ این ویژگی ها به آخرین نسخهٔ کوبول استاندارد اضافه شد. کوبول تعداد زیادی [[کلمات رزرو]] دارد(بیش از ۴۰۰ تا) که تحت عنوان کلمات کلیدی خوانده می شوند.
 
=== کلمات خود اصلاح کننده ===
ویژگی های اصلی کوبول حمایت می کنند از کد خود اصلاح کننده از طریق عبارت نا مشهور «ALTER X TO PROCEED TO Y». X و Y برچسب های عبارتی هستند و هر عبارت «GOTO X» ای که بعد از عبارت ALTER اجرا می شود دارای معنی «GOTO Y» است. بیشتر کامپایلرها هنوز از آن حمایت می کنند، اما این در برنامه های جدید استفاده نمی شودنمی‌شود.
 
=== ویژگی های نحوی ===
خط ۷۱:
OR SALARY = PREV-SALARY
</source>
کوبول «شرایط مشخص» را فراهم می کند (همچنین نامیده می شود ۸۸ مرحله). این ها به عنوان آیتم های اصلی در بین دیگر آیتم ها مشخص شده اند(متغیرهای محلی). نام شرطی می تواند در یک عبارت IF استفاده و تست شود هرچند متغیرهای محلی معادل با هر متغیری است که در یک عبارت شرطی مشخص VALUE استفاده می شود. عبارت SET می تواند برای یک عبارت شرطی مشخص TRUE استفاده شود(بوسیله مشخص کردن اولین متغیر به عنوان متغیر شرطی).
کوبول به وسیله شناسه ها اجازه می دهد تا بتواند تا ۳۰ کاراکتر طول داشته باشد. وقتی کوبول معرفی شد، بیشتر طول های کم(مثلامثلاً ۶ کاراکتر برای فرترن) رایج شدند.
مفهوم copybook) به وسیلهٔ کوبول معرفی شد. اینها تعدادی کد هستند که می توانند در یک کد برنامه نویسی قرار داده شوند. این کار با عبارت COPY انجام میشود که اجازه می دهد که قسمتی از یک کدبا کدهای دیگر جایگزین شود(با استفاده از عبارت REPLACING... BY…)
 
=== انواع داده ===
خط ۱۹۸:
|}
=== Hello، world ===
یک مثال برای برنامهٔ Hello، world در کوبول:
<source lang="cobol">
IDENTIFICATION DIVISION.
خط ۲۲۰:
[[رده:کوبول]]
[[رده:زبان‌های برنامه‌نویسی]]
[[رده:زبان‌های برنامه‌نویسی ایستا]]
[[رده:زبان‌های برنامه‌نویسی دات‌نت]]
[[رده:زبان‌های برنامه‌نویسی شیءگرا]]
[[رده:زبان‌های برنامه‌نویسی کلاس محور]]
[[رده:نرم‌افزارهای چندسکویی]]