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

محتوای حذف‌شده محتوای افزوده‌شده
اصلاح ارور شماره 10 طبق ویکی‌پدیا:ویکی‌پروژه تمیزکاری با استفاده از AWB
برچسب: ویرایش توسط ویرایشگر خودکار
ابرابزار
خط ۱:
'''زبان برنامه‌نویسی کوبول''' (تلفظ: کوبول) یکی از قدیمی‌ترین [[زبان‌های برنامه نویسیبرنامه‌نویسی]] است. نام کوبول که [[مخفف]] کلمهٔ '''CO'''mmon '''B'''usiness-'''O'''riented '''L'''anguage است، حوزهٔ اصلی کار خود را در زمینه [[تجارت]]، امور مالی و سیستم‌های اجرایی برای شرکت‌ها و دولت‌ها قرار داد. کوبول استاندارد ۲۰۰۲، از [[زبان‌های برنامه نویسیبرنامه‌نویسی شیء گرا]] و ویژگی‌های دیگر زبا ن‌های مدرن حمایت می‌کند.<ref>{{cite book | last = Oliveira | first = Rui | title = The Power of Cobol | publisher = BookSurge Publishing | location = City | year = ۲۰۰۶ | isbn = ۰۶۲۰۳۴۶۵۲۳}}</ref>
 
== تاریخچه و معیارها ==
ویژگی‌های «کوبول» به وسیلهٔ فردی به نام [[گریس هاپر]] در نیمه دوم سال ۱۹۵۹ ایجاد شد. ماجرا در هشتم آوریل ۱۹۵۹ در یک همایش بین تولیدکنندگان کامپیوتر، استفاده کنندگان کامپیوتر و دانشگاهیان در مرکز کامپیوتر [[دانشگاه پنسیلوانیا]] اتفاق افتاد. [[وزارت دفاع آمریکا]] سپس حامی و اسپانسر فعالیت‌های بعدی شد. همایشی بوسیله کارلس آ. فیلیپس در [[پنتاگون]] در ۲۸ و ۲۹ ام ماه می (دقیقاً یک سال بعد از همایش الگول ۵۸ در [[زوریخ]] برقرار شد. در آنجا تصمیم گرفته شد ۳ کمیته تشکیل شود: کوتاه مدت، میان مدت و بلند مدت (البته آخری هرگز تشکیل نشد). کمیته کوتاه مدت، که بوسیلهٔ (جوزف وگستین) به عنوان رئیس سازمان ملی استانداردهای ایالات متحده رهبری می‌شد، توانست در طول آن مدت نخستین نسخه کوبول را به وجود بیاورد.<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'' و اداره ملی استانداردها (که امروزه به نام مؤسسهٔ ملی استاندارد و تکنولوژی نامیده می‌شود). کمیتهٔ میان مدت تشکیل شد ولی هرگز عملی نشد. در انتهای زمان کمیته اصلی کوتاه مدت، این کمیته موفق شد ویژگی‌های زبان کوبول را ارتقاء دهد. این کمیته اصلی توسط شش نفر تشکیل شده بود. این کمیته اصلی ویژگی‌های کوبول را تا دسامبر ۱۹۵۹ کامل کرد. این ویژگی‌ها حوزهٔ وسیعی است که از زبانهای فلوماتیک –که به عنوان مادر زبان کوبول از آن یاد می‌شود- که توسط فردی به نام]]گریس هاپر ابداع شد و نیز زبان‌های کامترن که توسط فردی به نام باب بمر ابداع شد ونیز زبان فکت الهام گرفته شد. تصمیم بر استفاده از نام «کوبول» در یک همایش در ۱۸ سپتامبر ۱۹۵۹ گرفته شد.
اولین کامپایلر برای کوبول در سال ۱۹۶۰ تکمیل شد.
 
خط ۱۵:
 
=== کوبول ۲۰۰۲ و کوبول شیء گرا ===
این زبان تا به امروز رو به پیشرفت است. در اوایل دهه ۱۹۹۰ تصمیم گرفته شد تا ویژگی شیء گرایی به نسخه کامل بعدی کوبول اضافه شود. تخمین اولیه این بود که این اصلاح تا سال ۱۹۹۷ انجام می‌شود. بعضی از مجریان کار (از قبیل Micro Focus،Focus, Fujitsu،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>
کوبول سال ۲۰۰۲ شامل ویژگی‌های دیگری فراتر از شیء گرایی است. این ویژگی‌ها عبارتند از:
* حمایت ملی از زبان
خط ۴۳:
 
== ویژگی‌ها ==
کوبول همچنین که در مشخصات عمومی تعریف شده از جمله شکل عبارت برای خصوصیات میدانی جرئی. این زبان از متغیرهای محلی، بازگشتی، اختصاص دینامیک حافظه و [[برنامه نویسیبرنامه‌نویسی ساخت یافته]] حمایت نمی‌کند. حمایت از قسمتی یا همهٔ این ویژگی‌ها به آخرین نسخهٔ کوبول استاندارد اضافه شد. کوبول تعداد زیادی [[کلمات رزرو]] دارد (بیش از ۴۰۰ تا) که تحت عنوان کلمات کلیدی خوانده می‌شوند.
 
=== کلمات خود اصلاح کننده ===
خط ۷۳:
کوبول «شرایط مشخص» را فراهم می‌کند (همچنین نامیده می‌شود ۸۸ مرحله). این‌ها به عنوان آیتم‌های اصلی در بین دیگر آیتم‌ها مشخص شده‌اند (متغیرهای محلی). نام شرطی می‌تواند در یک عبارت IF استفاده و تست شود هرچند متغیرهای محلی معادل با هر متغیری است که در یک عبارت شرطی مشخص VALUE استفاده می‌شود. عبارت SET می‌تواند برای یک عبارت شرطی مشخص TRUE استفاده شود (بوسیله مشخص کردن اولین متغیر به عنوان متغیر شرطی).
کوبول به وسیله شناسه‌ها اجازه می‌دهد تا بتواند تا ۳۰ کاراکتر طول داشته باشد. وقتی کوبول معرفی شد، بیشتر طول‌های کم (مثلاً ۶ کاراکتر برای فرترن) رایج شدند.
مفهوم copybook) به وسیلهٔ کوبول معرفی شد. اینها تعدادی کد هستند که می‌توانند در یک کد برنامه نویسیبرنامه‌نویسی قرار داده شوند. این کار با عبارت COPY انجام می‌شود که اجازه می‌دهد که قسمتی از یک کدبا کدهای دیگر جایگزین شود (با استفاده از عبارت REPLACING... BY…)
 
=== انواع داده ===
کوبول]] انواع داده[[ زیر را ایجاد می‌کند.
{| class="wikitable" width="۹۰٪"
|-
خط ۸۴:
|-
|کاراکتر
|<code>[[picture clause|PIC]] X(۲۰){{سخ}}PIC A(۴)۹(۵)X(۷7)</code>
|الفبا عددی و الفبا{{سخ}}مجموعه کاراکترهای تک بایتی
|-
خط ۹۲:
|-
|اعداد اعشاری دودویی
|<code>PIC S999V۹۹S999V99</code>{{سخ}}<code>[USAGE] COMPUTATIONAL</code>{{سخ}}or{{سخ}}<code>BINARY</code>
|اعداد دودویی ۱۶٬۳۲ یا ۶۴ بیتی (۲ یا ۴ یا ۸ بایت){{سخ}}علامت دار یا بی علامت. کامپایلرها بیشترین مقدار متغیرها را بر اساس ظاهرعبارت و نه براساس تعداد بیتهای رزرو شده برای ذخیره محدود می‌کنند.
|-
|اعداد اعشاری ممیز ثابت (دهدهی فشرده)
|<code>PIC S999V۹۹S999V99</code>{{سخ}}<code>PACKED-DECIMAL</code>
| اعداد رقمی دهدهی ۱ تا ۱۸{{سخ}}علامت دار یا بی علامت.
|-
خط ۱۰۴:
|-
|اعداد اعشاری ممیز شناور
|<code>PIC S9V999ES۹۹S9V999ES99</code>
|اعداد دودویی ممیز شناور
|-
خط ۱۱۲:
|-
|گروه‌ها
|<code>۰۱ CUST-NAME.{{سخ}}&nbsp;&nbsp;۰۵05 CUST-LAST PIC X(۲۰).{{سخ}}&nbsp;&nbsp;۰۵05 CUST-FIRST PIC X(۲۰).</code>
|عناصر جمع شده
|-
خط ۱۲۸:
|-
|اسم شرطی
|<code>۸۸ IS-RETIRED-AGE{{سخ}}&nbsp;&nbsp;VALUES 65 THRU ۱۵۰150</code>
|مقدارهای بولین{{سخ}}وابسته به متغیرهای دیگر
|-
خط ۱۴۲:
|-
|اعداد اعشاری{{سخ}}دقت یگانه
|<code>PIC S9V999ES۹۹S9V999ES99</code>{{سخ}}<code>[USAGE] COMPUTATIONAL-۱1</code>
|اعداد اعشاری دودویی
|-
|اعداد اعشاری{{سخ}}دقت مضاعف
|<code>PIC S9V999ES۹۹S9V999ES99</code>{{سخ}}<code>[USAGE] COMPUTATIONAL-۲2</code>
|اعداد اعشاری دودویی
|-
|اعداد اعشاری ممیز ثابت
|<code>PIC S9V۹۹۹S9V999</code>{{سخ}}<code>[USAGE] COMPUTATIONAL-۳3</code>
|شبیه اعداد دهدهی فشرده
|-
|اعداد دودویی ممیز ثابت
|<code>PIC S999V۹۹{{سخ}}[USAGE] COMPUTATIONAL-۴4</code>
|مانند اعداد محاسباتی یا دودویی
|-
|اعداد دودویی ممیز ثابت
|<code>PIC S999V۹۹{{سخ}}[USAGE] COMPUTATIONAL-۵5</code>
| اعداد دودویی ۱۶٬۳۲ یا ۶۴ بیتی (۲ یا ۴ یا ۸ بایت){{سخ}}علامت دار یا بی علامت. کامپایلرها بیشترین مقدار متغیرها را بر اساس تعداد بیتهای رزرو شده برای ذخیره و نه براساس ظاهرعبارت محدود می‌کنند.
|-
|اعداد ممیز ثابت{{سخ}}بر اساس ترتیب بایتی محلی
|<code>PIC S999V۹۹{{سخ}}[USAGE] COMPUTATIONAL-۴4</code>
|اعداد دودویی ۱۶، ۳۲٬۶۴ بیتی (۲٬۴٬۸ بایتی){{سخ}}علامت دار یا بی علامت
|-
|اعداد ممیز ثابت{{سخ}}با ترتیب بایتی[[big-endian]]
|<code>PIC S999V۹۹{{سخ}}[USAGE] COMPUTATIONAL-۵5</code>
| اعداد دودویی ۱۶، ۳۲٬۶۴ بیتی (۲٬۴٬۸ بایتی){{سخ}}علامت دار یا بی علامت
|-
خط ۱۷۸:
|-
|اعداد اعشاری ویرایش شده
|<code>PIC +۹٫۹(۶)E+۹۹99</code>
|کاراکترهای قالب دار و اعداد رقمی دهدهی
|-
خط ۱۹۰:
|-
|فیلد بیتی
|<code>PIC ۱1(''n'') [USAGE] COMPUTATIONAL-۵5</code>
|n می‌تواند بیت ۱ تا ۶۴ باشد و به عنوان عدد nبیتی تعریف می‌شود{{سخ}}علامت دار یا بی علامت
|-
خط ۱۹۸:
|}
 
=== Hello،Hello, world ===
یک مثال برای برنامهٔ Hello،Hello, world در کوبول:
<source lang="cobol">
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
DISPLAY 'Hello،Hello, world'.
STOP RUN.
</source>
خط ۲۱۱:
{{پانویس}}
<!--See [[Wikipedia:Footnotes]] for an explanation of how to generate footnotes using the<ref(erences/)> tags-->
* Ebbinkhuijsen،Ebbinkhuijsen, Wim B.C. ،, ''COBOL'' Alphen aan den Rijn/Diegem: Samson Bedrijfsinformatie bv،bv, ۱۹۹۰1990. ISBN 90-14-04560-3. (Dutch)
{{Major programming languages}}<!--Need a more specific «۳rd"3rd-generation»" prog lang templ-->
{{Computer language}}<!--Need a more specific «۳rd"3rd-generation»" prog lang templ-->
 
{{زبان‌های برنامه‌نویسی}}