در این مطلب به معرفی زبان برنامه نویسی COBOL می پردازیم، زبانی که اولین بار هست به معرفی و شرح و کامل آن می پردازیم. COBOL (کوبول) یکی از قدیمیترین زبانهای برنامه نویسی شی گرایی می باشد که مخفف کلمه COmmon Business-Oriented Language است. حوزه اصلی کار کوبول در زمینه تجارت، امور مالی و سیستمهای اجرایی برای شرکتها و دولتها می باشد.
به قول یکی از دوستان COBOL یک زبان برنامهنویسی قدیمی است که هنوز هم زنده است و نفس می کشد.
زبان برنامه نویسی COBOL چیست؟ شرح کامل COBOL
تعریف اول COBOL :
مخفف عبارت Common Business Oriented language و زبان برنامه سازی برای کارهای تجاری. یک زبان سطح بالا که برای کاربردهای تجاری پردازش داده ساخته شده است. هر برنامه اصلی در زبان کوبول دارای چهار قسمت می باشد:۱- Identification Division برنامه اصلی و خروجی عمل کامپایل را معرفی می کند.۲- Environment Division جنبه هایی از مسئل پردازش داده را به ویژگی های فیزیکی یک کامپیوتر خاص وابسته می باشند, مشخص می کند.۳- Data Division داده ای را شرح می دهد که برنامه به زیان ماشین آنها را به عنوان ورودی قبول کرده و بر رویشان عملیات انجام می دهد و خروجی را از آنها تولید می کند. ۴- Procedure Division مراحلی را شرح می دهد که توسط برنامه به زبان ماشین اجرا می شود.
تعریف دوم COBOL :
COBOL (کوبول) یک زبان برنامه نویسی برای پردازش داده تجاری که در اوایل دهه ۶۰ با همکاری چند سازنده کامپیوتری و وزارت دفاع آمریکا ساخته شد . همان طور که برنامه کوبول نشان می دهد جملات کوبول مانند جملات انگیلیسی بوده و ساختار برنامه نیاز به تعدادی مستندات ضمیمه دارد. برنامه کوبول طولانی و پر واژه اند اما خواندن آنها آسان است . به طوری که سایر برنامه نویسان می توانند آنها را تصحیح کرده یا تغیی دهند. کوبول؛ یک زبان برنامه نویسی سطح بالا برای کاربردهای تجاری می باشد.
و اما همه چیز در مورد COBOL
COBOL که در سال ۱۹۵۹ اختراع شد، زبانی است که بیشتر مقالات نوشته شده در مورد آن به این نکته اشاره دارند که این زبان در حال منسوخ شدن است و شرکتهایی که از آن استفاده میکنند مرتکب اشتباه حماقتآمیزی شدهاند و یا آموختنش برای تازهکارها دشوار است و چیزهایی از این دست. افسانهای در مورد COBOL که مخفف واژگان Common Business-Oriented Language است وجود دارد با این مضمون که سازمانهای بزرگی که از این زبان استفاده میکنند فقط به این دلیل دست به چنین انتخابی زدهاند که بازنویسی برنامههایشان در زبان مدرنتری کار بسیار خستهکنندهای است و همچنین اینکه developer های زیادی که در کار با این زبان از مهارت کافی برخوردارند باشند وجود ندارد! اما حقیقت امر چیز دیگری ست. در ادامه با ما همراه باشید تا همه موارد را گام به گام با هم جلو ببریم.
شرح کامل زبان برنامه نویسی COBOL
تاریخچهٔ COBOL وقتی صحبت از زبان COBOL میشود، به نوعی به یاد تاریخچهٔ کامپیوتر خواهیم افتاد؛ اولین نسخه از زبان برنامه نویسی کوبول در سال ۱۹۵۹ از طریق کمیتهٔ استاندارد صنعتی که به طور ویژهای شامل دو مهندس خانم برجسته میشد، به بازار عرضه شد. یکی از این دو مهندس، Jean Sammet بود که کمیتهای فرعی را به منظور توسعهٔ خودِ زبان کوبول رهبری میکرد که وی در تاریخ ۲۰ می ۲۰۱۷ درگذشت. دیگری هم دریاسالار نیروی دریایی ایالات متحده، Grace Hopper بود که کمیته را به سمت ساخت زبانی سطح بالا هدایت کرد.
در آن زمان، Jean Sammet برای شرکت Sylvania کار میکرد و مسئول کامپایلر کوبول برای Mobile Digital Computer بود که بر اساس قراردادی تجاری، برای آزمایشگاه Evan Signals ارتش ایالات متحده ساخته شده بود (البته کلمهٔ Mobile به معنی «متحرک» برای این کامپایلر کاملاً نسبی بود چرا که برای حمل آن، به دو تریلر مخصوص ۳۰ فوتی نیاز بود!) به نوعی میتوان گفت که این اولین کامپیوتری است که به زبان کوبول برنامهریزی شده است.
شاید به این فکر کنید که کجاها از COBOL استفاده شده است؟
Sylvania شش دستگاه از این نوع را تولید کرد و این کامپیوترها به خاطر عملکردشان، توسط نیروی داخلی ارتش ایالات متحده و آنهایی که در اروپا مستقر بودند مهر تأیید دریافت کردند. ادمینهای سیستم که با Mobile Digital Computer در بین دهههای ۵۰ و ۶۰ کار میکردند، در سال ۱۹۷۳ از تجربیات خود گفتند به این شکل که آنها به طرز قابلتوجهی از نحوهٔ کار این سیستمها شگفتزده شده بودند و همچنین گفتهاند که استفاده از این سیستمها را به دلیل اینکه سختافزارش منسوخ نشد، ادامه دادند.
سازمانهای بزرگ از کوبول استفاده میکنند به این دلیل که این زبان در برنامههای سطح بالای پردازش تراکنش بسیار بهینه است به طوری که هیچ زبان جدیدی توان رقابت با آن را ندارد! برنامههایی که امروزه به کار گرفته میشوند اکثراً بر اساس آپدیت ۲۰۰۲ کوبول (یا در بدترین حالت، نسخهٔ ۱۹۸۵) پایهگذاری شدهاند.
همچنین کوبول برای سری Z از یکسری Main Frames کمپانی IBM و سیستمهای توزیعشدهٔ ساخت دیگر شرکتها بسیار محبوب بود به طوری که به گفتهٔ Kevin Stoodly، که یکی از مدیران فنی در شرکت IBM است، کوبول یک مشکل بسیار مهم را به شکل خوبی حل کرد و شرکتها هم به استفاده از آن ادامه دادند.
developer های امروزی کوبول اکثراً بر این عقیده هستند که با کوبول میتوان از سختافزارها برای مدت طولانیتر استفاده کرد. امروزه IBM COBOL بدون شک محبوبترین نسخه از این زبان برای مِینفریمها است. شرکت دیگری به نام Micro Focus هم یکی از پیشتازان استفاده از کوبول برای سیستمهای توزیعشده است (موارد کم استفادهتری هم مانند GnuCOBOL که اپنسورس است نیز وجود دارد.)
در هر نسخهای از کوبول، ممکن است هزاران خط کد کوبول به ازای هر یک خط کد زبانی همچون جاوا نوشته شده باشد! اما به ادعای کارشناسان، جاوا برای تحلیل Big Data هرگز به سرعت کوبول نمیرسد. به عقیدهٔ برخی دولوپرها، این گزاره که «کوبول نابود شده است.» اصلاً درست نیست و شاهد چنین ادعایی هم اینکه نتیجهای که بر اساس آمار به دست میآید این است که غیرممکن است کوبول به سادگی نابود شود. در حقیقت، کوبول از بین نمیرود چرا که هنوز در حال استفاده است و برخی گرهها وجود دارند که فقط و فقط به دست کوبول باز میشوند. به عنوان نمونه برنامهٔ نوشتهشده با این زبان داریم:
IDENTIFICATION DIVISION. PROGRAM-ID. SAMPLE. AUTHOR. J.P.E. HODGSON. DATE-WRITTEN. 4 February 2000 * A sample program just to show the form. * The program copies its input to the output, * and counts the number of records. * At the end this number is printed. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT STUDENT-FILE ASSIGN TO SYSIN ORGANIZATION IS LINE SEQUENTIAL. SELECT PRINT-FILE ASSIGN TO SYSOUT ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD STUDENT-FILE RECORD CONTAINS 43 CHARACTERS DATA RECORD IS STUDENT-IN. 01 STUDENT-IN PIC X(43). FD PRINT-FILE RECORD CONTAINS 80 CHARACTERS DATA RECORD IS PRINT-LINE. 01 PRINT-LINE PIC X(80). WORKING-STORAGE SECTION. 01 DATA-REMAINS-SWITCH PIC X(2) VALUE SPACES. 01 RECORDS-WRITTEN PIC 99. 01 DETAIL-LINE. 05 FILLER PIC X(7) VALUE SPACES. 05 RECORD-IMAGE PIC X(43). 05 FILLER PIC X(30) VALUE SPACES. 01 SUMMARY-LINE. 05 FILLER PIC X(7) VALUE SPACES. 05 TOTAL-READ PIC 99. 05 FILLER PIC X VALUE SPACE. 05 FILLER PIC X(17) VALUE 'Records were read'. 05 FILLER PIC X(53) VALUE SPACES. PROCEDURE DIVISION. PREPARE-SENIOR-REPORT. OPEN INPUT STUDENT-FILE OUTPUT PRINT-FILE. MOVE ZERO TO RECORDS-WRITTEN. READ STUDENT-FILE AT END MOVE 'NO' TO DATA-REMAINS-SWITCH END-READ. PERFORM PROCESS-RECORDS UNTIL DATA-REMAINS-SWITCH = 'NO'. PERFORM PRINT-SUMMARY. CLOSE STUDENT-FILE PRINT-FILE. STOP RUN. PROCESS-RECORDS. MOVE STUDENT-IN TO RECORD-IMAGE. MOVE DETAIL-LINE TO PRINT-LINE. WRITE PRINT-LINE. ADD 1 TO RECORDS-WRITTEN. READ STUDENT-FILE AT END MOVE 'NO' TO DATA-REMAINS-SWITCH END-READ. PRINT-SUMMARY. MOVE RECORDS-WRITTEN TO TOTAL-READ. MOVE SUMMARY-LINE TO PRINT-LINE. WRITE PRINT-LINE.
Mark Levy که یکی از دولوپرهایی است که با زبان COBOL کد میزند، گفته است که از این زبان برای توسعهٔ برخی نرمافزارها در شرکت سونی استفاده کرده است. زمانی که وی در سال ۱۹۸۴ شروع به استفاده از زبان برنامه نویسی کوبول کرد، شایعاتی مبنی بر نابودی کوبول وجود داشت اما وی کماکان از این زبان استفاده میکند! به گفتهٔ وی:
اعمال تغییرات در برنامههای قدیمی که با کوبول نوشته شدهاند ساده هست. خلاصه بگم که کوبول زبون بسیار ثابت و پایداری پس از این همه ساله. شاید وب اپلیکیشنی با زبونی مثل جاوا یا هر زبون دیگهای توسعه داده باشید که برای تعامل کاربر در بستر وب باشه، اما در نهایت برای توسعهٔ اپلیکیشنهایی که نیاز به دسترسی به مینفریمهای بزرگ دارن، از کوبول استفاده خواهد شد.
و اما به عنوان یک نکته مهم در نظر داشته باشید اینکه گفته میشود یادگیری COBOL سخت است شاید به نوعی درست باشد، اما شروع کدنویسی در COBOL برای افرادی که به زبانی همچون C تسط دارند، چند هفتهای بیشتر زمان نخواهد برد.
چهار بخش اصلی برنامه نویسی COBOL
- Identification Division
- Environment Division
- Data Division
- Procedure Division
Identification در برنامه نویسی COBOL
Identification در برنامه نویسی COBOL اولین و تنها بخش اجباری هر برنامه COBOL است. برنامه نویس و کامپایلر از این بخش برای شناسایی برنامه استفاده میکنند. در این قسمت، PROGRAM-ID تنها پارامتر اجباری است. PROGRAM-ID نام برنامه را مشخص می کند که می تواند ۱ تا ۳۰ کاراکتر باشد.
<span class="pln">IDENTIFICATION DIVISION</span><span class="pun">.</span><span class="pln"> PROGRAM</span><span class="pun">-</span><span class="pln">ID</span><span class="pun">.</span><span class="pln"> HELLO</span><span class="pun">.</span><span class="pln"> PROCEDURE DIVISION</span><span class="pun">.</span><span class="pln"> DISPLAY </span><span class="str">'Welcome to sourcebaran'</span><span class="pun">.</span><span class="pln"> STOP RUN</span><span class="pun">.</span>JCL برای اجرای برنامه COBOL بالا
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = HELLO
هنگامی که شما برنامه فوق را کامپایل و اجرا میکنید. نتیجه زیر بدست می آید»
Welcome to sourcebaran
پیش نمایش
بخش Environment در برنامه نویسی COBOL
بخش Environment در برنامه نویسی COBOL برای مشخص کردن فایل های ورودی و خروجی به برنامه استفاده می شود. این شامل دو بخش است :
Configuration section
- Source computer
- Object computer
Input-Output section
- File control
- I-O control
<span class="pln">ENVIRONMENT DIVISION</span><span class="pun">.</span><span class="pln"> CONFIGURATION SECTION</span><span class="pun">.</span><span class="pln"> SOURCE</span><span class="pun">-</span><span class="pln">COMPUTER</span><span class="pun">.</span><span class="pln"> XXX</span><span class="pun">-</span><span class="pln">ZOS</span><span class="pun">.</span><span class="pln"> OBJECT</span><span class="pun">-</span><span class="pln">COMPUTER</span><span class="pun">.</span><span class="pln"> XXX</span><span class="pun">-</span><span class="pln">ZOS</span><span class="pun">.</span><span class="pln"> INPUT</span><span class="pun">-</span><span class="pln">OUTPUT SECTION</span><span class="pun">.</span><span class="pln"> FILE</span><span class="pun">-</span><span class="pln">CONTROL</span><span class="pun">.</span><span class="pln"> SELECT FILEN ASSIGN TO DDNAME ORGANIZATION IS SEQUENTIAL</span><span class="pun">.</span>
Data در برنامه نویسی COBOL
Data در برنامه نویسی COBOL برای تعریف متغیرهای مورد استفاده در برنامه استفاده می شود. این شامل چهار بخش است :
- File section
- Working-Storage section
- Local-Storage section
- Linkage section
<span class="pln">IDENTIFICATION DIVISION</span><span class="pun">.</span><span class="pln"> PROGRAM</span><span class="pun">-</span><span class="pln">ID</span><span class="pun">.</span><span class="pln"> HELLO</span><span class="pun">.</span><span class="pln"> ENVIRONMENT DIVISION</span><span class="pun">.</span><span class="pln"> INPUT</span><span class="pun">-</span><span class="pln">OUTPUT SECTION</span><span class="pun">.</span><span class="pln"> FILE</span><span class="pun">-</span><span class="pln">CONTROL</span><span class="pun">.</span><span class="pln"> SELECT FILEN ASSIGN TO INPUT</span><span class="pun">.</span><span class="pln"> ORGANIZATION IS SEQUENTIAL</span><span class="pun">.</span><span class="pln"> ACCESS IS SEQUENTIAL</span><span class="pun">.</span><span class="pln"> DATA DIVISION</span><span class="pun">.</span><span class="pln"> FILE SECTION</span><span class="pun">.</span><span class="pln"> FD FILEN </span><span class="lit">01</span><span class="pln"> NAME PIC A</span><span class="pun">(</span><span class="lit">25</span><span class="pun">).</span><span class="pln"> WORKING</span><span class="pun">-</span><span class="pln">STORAGE SECTION</span><span class="pun">.</span> <span class="lit">01</span><span class="pln"> WS</span><span class="pun">-</span><span class="pln">STUDENT PIC A</span><span class="pun">(</span><span class="lit">30</span><span class="pun">).</span> <span class="lit">01</span><span class="pln"> WS</span><span class="pun">-</span><span class="pln">ID PIC </span><span class="lit">9</span><span class="pun">(</span><span class="lit">5</span><span class="pun">).</span><span class="pln"> LOCAL</span><span class="pun">-</span><span class="pln">STORAGE SECTION</span><span class="pun">.</span> <span class="lit">01</span><span class="pln"> LS</span><span class="pun">-</span><span class="pln">CLASS PIC </span><span class="lit">9</span><span class="pun">(</span><span class="lit">3</span><span class="pun">).</span><span class="pln"> LINKAGE SECTION</span><span class="pun">.</span> <span class="lit">01</span><span class="pln"> LS</span><span class="pun">-</span><span class="pln">ID PIC </span><span class="lit">9</span><span class="pun">(</span><span class="lit">5</span><span class="pun">).</span><span class="pln"> PROCEDURE DIVISION</span><span class="pun">.</span><span class="pln"> DISPLAY </span><span class="str">'Executing COBOL program using JCL'</span><span class="pun">.</span><span class="pln"> STOP RUN</span><span class="pun">.</span>
<span class="com">//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C</span> <span class="com">//STEP1 EXEC PGM = HELLO</span> <span class="com">//INPUT DD DSN = ABC.EFG.XYZ,DISP = SHR</span>
خروجی به شکل زیر می باشد:
Executing COBOL program using JCL
پیش نمایش
Procedure در برنامه نویسی COBOL
بخش Procedure در برنامه نویسی COBOL شامل منطق برنامه است. این شامل اظهارات اجرایی با استفاده از متغیرهای تعریف شده در بخش داده است. در این بخش، نام پاراگراف ها و بخش ها تعریف شده توسط کاربر هستند.
باید حداقل یک عبارت در بخش فرآیند وجود داشته باشد. باید حداقل یک عبارت در بخش فرآیند وجود داشته باشد آخرین statement برای پایان دادن به اجرا در این بخش است.
<span class="pln">IDENTIFICATION DIVISION</span><span class="pun">.</span><span class="pln"> PROGRAM</span><span class="pun">-</span><span class="pln">ID</span><span class="pun">.</span><span class="pln"> HELLO</span><span class="pun">.</span><span class="pln"> DATA DIVISION</span><span class="pun">.</span><span class="pln"> WORKING</span><span class="pun">-</span><span class="pln">STORAGE SECTION</span><span class="pun">.</span> <span class="lit">01</span><span class="pln"> WS</span><span class="pun">-</span><span class="pln">NAME PIC A</span><span class="pun">(</span><span class="lit">30</span><span class="pun">).</span> <span class="lit">01</span><span class="pln"> WS</span><span class="pun">-</span><span class="pln">ID PIC </span><span class="lit">9</span><span class="pun">(</span><span class="lit">5</span><span class="pun">)</span><span class="pln"> VALUE </span><span class="str">'12345'</span><span class="pun">.</span><span class="pln"> PROCEDURE DIVISION</span><span class="pun">.</span><span class="pln"> A000</span><span class="pun">-</span><span class="pln">FIRST</span><span class="pun">-</span><span class="pln">PARA</span><span class="pun">.</span><span class="pln"> DISPLAY </span><span class="str">'Hello World'</span><span class="pun">.</span><span class="pln"> MOVE </span><span class="str">'TutorialsPoint'</span><span class="pln"> TO WS</span><span class="pun">-</span><span class="pln">NAME</span><span class="pun">.</span><span class="pln"> DISPLAY </span><span class="str">"My name is : "</span><span class="pln">WS</span><span class="pun">-</span><span class="pln">NAME</span><span class="pun">.</span><span class="pln"> DISPLAY </span><span class="str">"My ID is : "</span><span class="pln">WS</span><span class="pun">-</span><span class="pln">ID</span><span class="pun">.</span><span class="pln"> STOP RUN</span><span class="pun">.</span>JCL برای اجرای برنامه COBOL بالا
<span class="com">//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C</span> <span class="com">//STEP1 EXEC PGM = HELLO</span>هنگامی که شما برنامه فوق را کامپایل میکنید و اجرا میکنید، نتیجه به شرح زیر می باشد
Hello World
My name is : TutorialsPoint
My ID is : 12345
امیدواریم که این مطلب مورد توجه دوستان عزیز قرار گرفته باشد…
منبع ۱
منبع ۲
مشاهده جلسات قبل معرفی زبان های برنامه نویسی
زبان برنامه نویسی سی و سی پلاس پلاس
معرفی زبان برنامه نویسی پایتون
Ruby چیست؟ بررسی زبان برنامه نویسی روبی
زبان برنامه نویسی PHP چیست؟
زبان برنامه نویسی Lua چیست؟
کاتلین (Kotlin) چیست؟ توضیح زبان برنامه نویسی کاتلین
Ada چیست؟ معرفی زبان برنامه نویسی Ada
The post زبان برنامه نویسی COBOL چیست؟ شرح کامل COBOL appeared first on آموزش برنامه نویسی.