کوبول

تاریخچه و معیارها

ویژگی‌های «کوبول» به وسیلهٔ فردی به نام گریس هاپر در نیمه دوم سال ۱۹۵۹ ایجاد شد. ماجرا در هشتم آوریل ۱۹۵۹ در یک همایش بین تولیدکنندگان کامپیوتر، استفاده کنندگان کامپیوتر و دانشگاهیان در مرکز کامپیوتر دانشگاه پنسیلوانیا اتفاق افتاد. وزارت دفاع آمریکا سپس حامی و اسپانسر فعالیت‌های بعدی شد. همایشی به وسیلهٔ کارلس آ. فیلیپس در پنتاگون در ۲۸ و ۲۹ ام ماه مه (دقیقاً یک سال بعد از همایش الگول ۵۸ در زوریخ برقرار شد. در آنجا تصمیم گرفته شد ۳ کمیته تشکیل شود: کوتاه مدت، میان مدت و بلند مدت (البته آخری هرگز تشکیل نشد). کمیته کوتاه مدت، که بوسیلهٔ (جوزف وگستین) به عنوان رئیس سازمان ملی استانداردهای ایالات متحده رهبری می‌شد، توانست در طول آن مدت نخستین نسخه کوبول را به وجود بیاورد. آن کمیته تشکیل شد تا یک دسترسی کوتاه مدت به یک زبان تجاری متداول را ارائه کند. این کمیته از شش تولیدکنندهٔ کامپیوتر و سه آژانس دولتی تشکیل شده بود. شش تولیدکننده کامپیوتر عبارتند از مؤسسه باروگ، IBM، هانی ول، اسپرس راند، آر-سی-ای و سیلوانیا الکتریک، سه آژانس دولتی عبارتند از: نیروی هوایی ایالات متحدهٔ آمریکا، David Taylor Model Basin و اداره ملی استانداردها (که امروزه به نام مؤسسهٔ ملی استاندارد و تکنولوژی نامیده می‌شود). کمیتهٔ میان مدت تشکیل شد ولی هرگز عملی نشد. در انتهای زمان کمیته اصلی کوتاه مدت، این کمیته موفق شد ویژگی‌های زبان کوبول را ارتقاء دهد. این کمیته اصلی توسط شش نفر تشکیل شده بود. این کمیته اصلی ویژگی‌های کوبول را تا دسامبر ۱۹۵۹ کامل کرد. این ویژگی‌ها حوزهٔ وسیعی است که از زبان‌های فلوماتیک –که به عنوان مادر زبان کوبول از آن یاد می‌شود- که توسط فردی به نام]]گریس هاپر ابداع شد و نیز زبان‌های کامترن که توسط فردی به نام باب بمر ابداع شد ونیز زبان فکت الهام گرفته شد. تصمیم بر استفاده از نام «کوبول» در یک همایش در ۱۸ سپتامبر ۱۹۵۹ گرفته شد.
اولین کامپایلر برای کوبول در سال ۱۹۶۰ تکمیل شد.

کوبول ۱۹۶۸

بعد از سال ۱۹۵۹ کوبول دستخوش تغییرات و اصلاحات متعددی شد. در یک تلاش برای غلبه بر مشکلات ناسازگاری بین نسخه‌های متفاوت کوبول، مؤسسه استاندارد جهانی ایالات متحده (ANSI) فرم استاندارد زبان را در سال ۱۹۶۸ به وجود آورد.

کوبول ۱۹۷۴

در سال ۱۹۷۴، مؤسسه استاندارد جهانی نسخه اصلاح شده کوبول را منتشر کرد که شامل تعدادی از ویژگی‌هایی بود که در نسخهٔ ۱۹۶۸ وجود نداشت.

کوبول ۱۹۸۵

در سال ۱۹۸۵، مؤسسه استاندارد جهانی نسخه اصلاح شدهٔ دیگری را منتشر کرد که شامل ویژگی‌هایی بود که درنسخه استاندارد سال ۱۹۷۴ وجود نداشت و ساخت یافته‌ترین زبان ساخته شد که شامل END-IF، END-PERFORM، END-READ و غیره است.

ویژگی‌ها

کوبول همچنین که در مشخصات عمومی تعریف شده از جمله شکل عبارت برای خصوصیات میدانی جرئی. این زبان از متغیرهای محلی، بازگشتی، اختصاص دینامیک حافظه و برنامه‌نویسی ساخت یافته حمایت نمی‌کند. حمایت از قسمتی یا همهٔ این ویژگی‌ها به آخرین نسخهٔ کوبول استاندارد اضافه شد. کوبول تعداد زیادی کلمات رزرو دارد (بیش از ۴۰۰ تا) که تحت عنوان کلمات کلیدی خوانده می‌شوند.

کلمات خود اصلاح‌کننده

ویژگی‌های اصلی کوبول حمایت می‌کنند از کد خود اصلاح‌کننده از طریق عبارت نا مشهور «ALTER X TO PROCEED TO Y». X و Y برچسب‌های عبارتی هستند و هر عبارت «GOTO X» ای که بعد از عبارت ALTER اجرا می‌شود دارای معنی «GOTO Y» است. بیشتر کامپایلرها هنوز از آن حمایت می‌کنند، اما این در برنامه‌های جدید استفاده نمی‌شود.

ویژگی‌های نحوی

کوبول یک به روز کردن درجای نحوی را فراهم می‌کند از جمله:
ADD YEARS TO AGE
ساختار معادل در بسیاری از زبان‌های رویه‌ای باید باشد
age = age + years
این قاعدهٔ نحوی شبیه عملگر جایگزینی مرکب است که بعدها توسط C استفاده شد.
age += years
عبارت شرطی مخفف شده ی:
      IF SALARY> ۹۰۰۰ OR SUPERVISOR-SALARY OR = PREV-SALARY
معادل است با:
      IF SALARY> ۹۰۰۰          OR SALARY> SUPERVISOR-SALARY          OR SALARY = PREV-SALARY
کوبول «شرایط مشخص» را فراهم می‌کند (همچنین نامیده می‌شود ۸۸ مرحله). این‌ها به عنوان آیتم‌های اصلی در بین دیگر آیتم‌ها مشخص شده‌اند (متغیرهای محلی). نام شرطی می‌تواند در یک عبارت IF استفاده و تست شود هرچند متغیرهای محلی معادل با هر متغیری است که در یک عبارت شرطی مشخص VALUE استفاده می‌شود. عبارت SET می‌تواند برای یک عبارت شرطی مشخص TRUE استفاده شود (بوسیله مشخص کردن اولین متغیر به عنوان متغیر شرطی).
کوبول به وسیله شناسه‌ها اجازه می‌دهد تا بتواند تا ۳۰ کاراکتر طول داشته باشد. وقتی کوبول معرفی شد، بیشتر طول‌های کم (مثلاً ۶ کاراکتر برای فرترن) رایج شدند.
مفهوم copybook) به وسیلهٔ کوبول معرفی شد. اینها تعدادی کد هستند که می‌توانند در یک کد برنامه‌نویسی قرار داده شوند. این کار با عبارت COPY انجام می‌شود که اجازه می‌دهد که قسمتی از یک کدبا کدهای دیگر جایگزین شود (با استفاده از عبارت REPLACING... BY…)

Hello, world

یک مثال برای برنامهٔ Hello, world در کوبول:
      IDENTIFICATION DIVISION.      PROGRAM-ID. HELLO-WORLD.      PROCEDURE DIVISION.          DISPLAY 'Hello, world'.          STOP RUN.