زبان برنامه نویسی cobol (معرفی، کاربردها، معایب و مزایا)

کوبول (COBOL) یکی از اولین زبان های برنامه نویسی بود که برای استفاده تجاری و مالی طراحی شد. وقتی این زبان در دهه ۱۹۵۰ ایجاد شد، دانشمندان علوم رایانه ای توجه کمی به آن کردند چون بیشتر به دنبال ابزارهایی بودند که کاربرد ریاضی و علمی داشتند.
از گریس هاپر (Grace Hopper) به عنوان بنیان گذار کوبول یاد میشود. او زبان برنامه نویسی فلوماتیک (FLOW-MATIC) را ایجاد کرد که مبنای این نرم افزار جدید شد.
دانلود کنید: آموزش کامل زبان سی پلاس پلاس رایگان
وزارت دفاع آمریکا یکی از اصلی ترین حامیان کوبول بود. در آن زمان، این سازمان سرمایه گذاری زیادی روی رایانه های بزرگ کرده بود و به همین دلیل یک زبان برنامهنویسی قابل حمل میخواست.
کوبول تا سال ۱۹۷۰ به رایج ترین زبان برنامه نویسی جهان تبدیل شده بود. بانکها، کسب و کارها و نهادهای دولتی به قدرت پردازش این زبان تکیه میکردند.
کوبول چیست؟
در دهه ۱۹۵۰، متخصصان حوزه علوم رایانه ای سعی می کردند از قدرت پردازش رایانه ها در پروژه های ریاضیاتی و علمی استفاده کنند. اما موسسه های مالی چشم انداز دیگری را برای استفاده از رایانه ها در دنیای کسب و کار ترسیم می کردند.
در سال ۱۹۵۹، اعضای هیئت زبان های سامانه های داده، کداسیل (CODASYL)، دور هم جمع شدند تا زبانی را طراحی کنند که مختص دنیای کسب و کار باشد. پس از انجام یک تحلیل مقایسه ای به این نتیجه رسیدند که زبان جدید باید سه ویژگی داشته باشد.
چند حقیقت مختصر درباره زبان برنامه نویسی کوبول
- سازنده (شخص): گریس هاپر
- قیمت اولیه: ۸۰۰۰۰۰ دلار
- سیستم عامل: رایانه های بزرگ مدرن
- سازنده (شرکت): هیئت زبان های سامانه های داده (CODASYL)، موسسه استانداردهای ملی آمریکا (ANSI)، سازمان بین المللی استانداردسازی (ISO)
- خوانایی: نحو (syntax) آن باید خوانا باشد تا کسانی که برنامه نویس نیستند هم بتوانند از آن استفاده کنند.
- قابلیت حمل: برنامه ها باید از یک رایانه به رایانه دیگر قابل حمل باشند.
- انعطاف پذیری: زبان باید بتواند خودش را با نیازهای جدید و پیشرفت فناوری وقف دهد.
زبانی که در نهایت ایجاد شد به زبان کسب و کار محور مشترک (Common Business-Oriented Language) معروف شد. در اولین نسخه کوبول، زبان سطح بالا و رویه ای بود و فقط از داده های عددی و رشته ای پشتیبانی می کرد. وزارت دفاع این زبان را انتخاب کرد و این زبان در رایانه های بزرگ شرکت بین المللی ماشین های کسب و کار (IBM) به کار گرفته شد و به همین دلایل این زبان به بخشی جدایی ناپذیر از صنعت رایانه تبدیل شد.
نحوه استفاده از کوبول
کوبول یک زبان برنامهنویسی رایانه ای سطح بالاست که نحو خوانایی دارد. پیش از اجرای برنامه، برنامه نویس باید از یک کامپایلر استفاده کند تا نحو انگلیسی برنامه را به زبان سطح پایین ماشین تبدیل کند.
زبان کوبول یک زبان رویه ای است اما با وجود این، نسخههای جدید این زبان از برنامه نویسی شی گرا می کنند. برنامه نویسی در کوبول به ایجاد یک دستورالعمل مرحله ای شباهت دارد. در هر مرحله، رایانه دستورات مشخصی می گیرد.
نحوه یادگیری کوبول
یک مقایسه ساده زبان ها کافی است تا برنامه نویسان امروزی متوجه محدودیت های کوبول برای کاربردهای جدید شوند. زبان هایی مانند پایتون، جاوااسکریپت یا C++ انعطاف پذیری بیشتری دارند و با محیطهای پردازشی جدید سازگارترند.
با وجود این، خیلی از برنامه های دنیای کسب و کار را هنوز می توان با آن اجرا کرد چون سامانه های رایانه ای شرکتهایی مثل IBM سازگاری برگشتی دارند. یکی از چالشهای امروز علوم رایانه ای این است که برنامهنویسان کوبول دارند بازنشسته می شوند و برای حفظ برنامه های قدیمی به برنامه نویسانی نیاز است که با این زبان آشنا باشند.

یادگیری کوبول برای افرادی که با سایر زبانهای برنامهنویسی آشنا هستند کار دشواری نیست. منابع آنلاین متعددی ماننند پروژه بزرگکامپیوتر آزاد Open Mainframe Project اصول اولیه این زبان را آموزش می دهند. کسی که میخواهد متخصص کوبول شود باید کار با کامپایلر و محیط های قدیمی رایانه های بزرگ IBM را نیز بلد باشد.
تفاوت بین زبانهای کوبول و فرترن (FORTRAN)
کوبول و فرترن از قدیمی ترین زبانهایی هستند که هنوز هم استفاده می شوند. فرترن در سال ۱۹۵۷ به عنوان برنامهای که برای محاسبات علمی طراحی شده منتشر شد. کوبول چند سال بعد و در پاسخ به نیاز بازار به یک منبع کسب و کار محور عرضه شد. هر دو زبانهای سطح بالایی هستند که به کامپایلر احتیاج دارند.
هر دو زبان بر اساس هدفی که داشتند طراحی شدند. فرترن زبانی است با شکل آزاد و همگانی که محاسبات پیچیده ای را می توان با آن انجام داد. نظام مند نبودن آن باعث می شود نسبت به سایر زبان های برنامه نویسی خواناتر باشد. با وجود این، این زبان ابزار مفیدی بود برای ساختن سریع برنامههایی است که در آزمایش ها به کار می رفتند.
حتما ببینید: آموزشهای برنامه نویسی ما در اینجا
کوبول از نحوی استفاده می کند که به زبان انگلیسی نزدیک است و به همین دلیل خواناتر است. با این هدف اینگونه طراحی شده بود که فعالان مالی برای فهمیدن برنامه ها و رویه ها به آموزش زیادی احتیاج نداشته باشند. این زبان برای ساختن عملیات های تجاری تکرار شونده ایده آل بود.
تفاوت جامعه هدف نیز یکی دیگر از دلایل عمر طولانی این دو زبان برنامه نویسی است. برنامه های کوبول در بسیاری از کسب و کارها و اداره های دولتی نهادینه شده اند پس هنوز به برنامه نویسان کوبول احتیاج است. فرترن گاهی اوقات برای محاسبات پیچیدهی فیزیک استفاده میشود اما اکثر افراد در جامعهی علمی از زبان های پیشرفته تری مانند پایتون و c++ استفاده میکنند.
تاریخچه انتشار کوبول
در طی ۶۰ سالی که از انتشار کوبول میگذرد، این زبان بارها اصلاح شده.
کوبول ۶۰
کداسیل اولین نسخه این زبان را در سال ۱۹۵۹ منتشر کرد. وزارت دفاع آمریکا که به دنبال برطرف کردن نیاز روز افزونش به پردازش داده بود به شدت از این زبان برنامه نویسی جدید حمایت می کرد.
کوبول ۶۱
در اولین ویراست این زبان، فرآیند جریان منطق اصلاح شد.
کوبول ۶۵
در سال ۱۹۶۵، محبوبیت کوبول به عنوان یک ابزار تجاری و مالی رو به افزایش بود. در این نسخه ابزارهایی برای کار با جدول ها اضافه شد.
کوبول ۶۸
همگام با افزایش استفاده از کوبول، برنامه نویس های محلی نسخه هایی از آن را ساختند که نیازهایشان را رفع میکرد. هدف کوبول ۶۸ یکپارچه کردن زبان در کسب و کارهای مختلف بود. موسسه استانداردهای ملی آمریکا بعدها این نسخه را به عنوان نسخه معیار برای استفاده تجاری تعیین کرد.
کوبول ۷۴
در دهه ۱۹۷۰، کوبول یکی از پرکاربردترین زبان های برنامه نویسی دنیا بود. هدف موسسه استانداردهای ملی آمریکا از انتشار نسخه کوبول ۷۴ یکپارچه کردن این ابزار بود. در این نسخه ابزارهای جدیدی برای سازمان دهی فایل ها عرضه شد.
کوبول ۸۵
مقایسه زبان های برنامه نویسی موجود در دهه ۱۹۸۰ نشان داد که این برنامه داشت از زبان های دیگر عقب می افتاد. کوبول ۸۵ امکان ایجاد زیربرنامه هایی تو در تو در چارچوب رویه ای را فراهم کرد. دستورهایی مانند evaluate (دستور switch) و CONTINUE (دستور غیرعملی) توانایی پردازش آن را افزایش دادند.
کوبول ۲۰۰۲
کوبول ۲۰۰۲ ابزارهای رایج زبان های برنامه نویسی دیگر را اضافه کرد. در این نسخه، ابزارهای شی گرا مانند کلاس ها (classes) و متدها (methods) اضافه شد. همچنین امکان ایجاد توابع و استفاده از روش های بازگشتی را برای کاربران فراهم کرد.
کوبول ۲۰۱۴
این نسخه احتمالاً آخرین نسخه این زبان است. حتی با وجود برنامه نویسی شی گرا، برنامه نویسان ترجیح می دهند از ابزارهای جدیدتر استفاده کنند. در نسخه ۲۰۱۴ این برنامه اصلاحاتی انجام شده که کار در محیط های ترکیبی را ساده تر می کند.
کوبول: پایان توسعه
این زبان هنوز استفاده می شود ولی به عنوان یک زبان قدیمی به آن نگاه می شود. اکثر اوقات، فقط به این دلیل به برنامه نویسان این زبان احتیاج است که تا انتقال نرم افزار به یک زبان جدیدتر، برای حفظ نرم افزار به یک برنامه نویس احتیاج دارند.
در ادامه، مفاهیم، اصول و بخشهای اساسی زبان برنامهنویسی COBOL را با زبانی ساده و قابل درک برای شما توضیح میدهم.
۱. ویژگیها و مفاهیم اساسی COBOL
کوبول (Common Business-Oriented Language) برای پاسخگویی به نیازهای تجاری و پردازش دادهها طراحی شده است. مفاهیم کلیدی آن عبارتند از:
-
زبان ساختیافته و مبتنی بر خوانایی: یکی از مهمترین ویژگیهای COBOL این است که سینتکس (نحو) آن بسیار شبیه به زبان انگلیسی طراحی شده است. این ویژگی باعث میشود که کدها حتی برای افرادی که برنامهنویس نیستند (مانند مدیران تجاری)، تا حدی قابل درک باشد.
-
پردازش فایل و دادههای حجیم: قدرت اصلی COBOL در توانایی آن برای خواندن، پردازش و نوشتن فایلهای بسیار بزرگ (ترتیبی یا تصادفی) است.
-
انواع دادههای تجاری: کوبول انواع دادههای بسیار دقیقی برای مدیریت مقادیر پولی و اعشاری دارد (مانند
PACKED DECIMALیاCOMP-3) که از خطاهای محاسباتی در سیستمهای مالی جلوگیری میکند.
۲. ساختار و بخشهای (Divisions) یک برنامه COBOL
کدنویسی در COBOL به شدت قانونمند و ساختاریافته است. هر برنامه COBOL باید از چهار بخش اصلی (Division) تشکیل شود که به ترتیب خاصی قرار میگیرند:
الف) بخش شناسایی (IDENTIFICATION DIVISION)
این بخش، اولین و تنها بخش کاملاً الزامی در هر برنامه COBOL است. وظیفه آن معرفی برنامه به سیستم عامل و ثبت اطلاعات مستندسازی است.
-
مهمترین عنصر:
PROGRAM-ID.(تعیین نام برنامه). -
عناصر اختیاری: نام نویسنده (
AUTHOR.)، تاریخ نگارش (DATE-WRITTEN.) و توضیحات برنامه.
ب) بخش محیط (ENVIRONMENT DIVISION)
این بخش ارتباط برنامه را با محیط فیزیکی و سیستمعاملی که در آن اجرا میشود، تعریف میکند. در واقع، این بخش وابسته به سختافزار است.
-
بخشهای زیرمجموعه:
-
CONFIGURATION SECTION: مشخص میکند برنامه روی چه کامپیوتری کامپایل و اجرا میشود. -
INPUT-OUTPUT SECTION: فایلهای استفاده شده در برنامه را به منابع فیزیکی سیستم مرتبط میکند (مثلاً ارتباط یک نام فایل در کد به یک فایل واقعی روی دیسک).
-
پ) بخش داده (DATA DIVISION)
اینجا قلب تعریف متغیرها و فایلها است. قبل از اینکه بتوانید از متغیر یا دادهای استفاده کنید، باید آن را در این بخش تعریف نمایید.
-
بخشهای زیرمجموعه مهم:
-
FILE SECTION: ساختار فایلهای ورودی و خروجی را تعریف میکند (طول رکوردها و فیلدها). -
WORKING-STORAGE SECTION: متغیرهای موقت، ثابتها و دادههایی که برنامه در حین اجرا به آنها نیاز دارد را در اینجا تعریف میکنید. -
LINKAGE SECTION: برای تبادل داده بین برنامه اصلی و زیربرنامهها (Subprograms) استفاده میشود.
-
ت) بخش رویه (PROCEDURE DIVISION)
این بخش شامل کدهای اجرایی، منطق برنامه و دستوراتی است که روی دادهها کار میکنند. برنامه از این قسمت شروع به اجرای دستورات میکند.
-
این بخش به پاراگرافها (Paragraphs) و بخشها (Sections) تقسیم میشود.
-
نمونه دستورات رایج:
MOVE(برای انتقال داده)،ADD،MULTIPLY،DISPLAY(برای چاپ در خروجی) وPERFORM(برای اجرای یک بلوک از کد یا ایجاد حلقه).
۳. اصول کدنویسی در COBOL (کدینگ شیت)
در گذشته که برنامهها روی کارتهای پانچ نوشته میشدند، قوانینی برای جایگاه کدها وضع شد که هنوز هم در ویرایشگرهای سنتی رعایت میشوند (هرچند در کامپایلرهای مدرنتر این محدودیتها کمتر شده است). کدهای COBOL در خطوط ۸۰ کاراکتری نوشته میشوند:
-
ستون ۱ تا ۶: شماره خط (Sequence Number).
-
ستون ۷: ناحیه نشانگر (Indicator Area). قرار دادن ستاره (
*) در این ستون، آن خط را تبدیل به توضیحات (Comment) میکند. علامت-برای ادامه دادن یک کلمه طولانی در خط بعد استفاده میشود. -
ستون ۸ تا ۱۱ (Area A): این ناحیه برای نوشتن نام Divisionها، Sectionها، نام پاراگرافها و سطوح متغیرهای اصلی (مانند
01یا77) است. -
ستون ۱۲ تا ۷۲ (Area B): تمام دستورات اجرایی (مانند
MOVE،DISPLAY) و سطوح متغیرهای زیرمجموعه (مانند05یا10) در این قسمت نوشته میشوند. -
ستون ۷۳ تا ۸۰: این ناحیه برای توضیحات و شناسههای سیستمی است و توسط کامپایلر نادیده گرفته میشود.
۴. مثال: برنامه "Hello World" در COBOL
برای درک بهتر ساختار، به این برنامه ساده نگاه کنید:
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. AUTHOR. USER. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-MESSAGE PIC X(20) VALUE 'Hello, World!'. PROCEDURE DIVISION. MAIN-PARAGRAPH. DISPLAY WS-MESSAGE. STOP RUN.توضیح کوتاه کد:
-
نام برنامه در بخش IDENTIFICATION به عنوان
HELLO-WORLDتعریف شده است. -
بخش ENVIRONMENT و DATA DIVISION حضور دارند، حتی اگر خالی باشند. در بخش متغیرها (
WORKING-STORAGE) یک متغیر رشتهای (Alphanumeric با کدPIC X(20)) با مقدار اولیه تعریف کردهایم. -
در بخش PROCEDURE، مقدار متغیر را روی صفحه چاپ کرده (
DISPLAY) و سپس با دستورSTOP RUNبه اجرای برنامه پایان دادهایم.
نکات تکمیلی برای مبتدیان:
-
کوبول به بزرگی و کوچکی حروف حساس نیست (Case-insensitive)، اما به طور سنتی همه چیز با حروف بزرگ نوشته میشود.
-
علامت نقطه (
.) در کوبول بسیار مهم است و پایان یک جمله یا دستور منطقی را نشان میدهد. فراموش کردن یک نقطه میتواند کل منطق برنامه را تغییر دهد. -
استفاده از دستور
PERFORMبه جایGO TOبرای کنترل جریان برنامه بسیار توصیه میشود تا ساختار کد خواناتر باقی بماند.
کوبول هنوز در نرم افزارهای قدیمی استفاده میشود. نهادهای تجاری و دولتی از نرم افزارهایی استفاده می کنند که بر اساس کوبول طراحی شده اند. این نهادها تا زمانی که این نرم افزارها را به روز رسانی یا جایگزین نکرده اند، به برنامه نویسانی احتیاج دارند که با زبان کوبول آشنا هستند.
هیئت زبان های سامانه های داده در سال ۱۹۵۹ ملاقاتی را ترتیب داد که در آن نمایندگان وزارت دفاع، IBM، و چند شرکت فعال دیگر در زمینه فناوری حضور داشتند. وزارت دفاع آمریکا حمایت مالی لازم برای ایجاد کوبول را تامین کرد.
