زبان برنامه نویسی COBOL چیست؟ شرح کامل COBOL

۱۳۹۷-۰۹-۱۱
زبان برنامه نویسی COBOL چیست؟ شرح کامل COBOL در این مطلب به معرفی زبان برنامه نویسی COBOL می پردازیم، زبانی که اولین بار هست به معرفی و شرح و کامل آن می پردازیم. COBOL (کوبول) یکی از قدیمی‌ترین زبان‌های برنامه نویسی شی گرایی می باشد که مخفف کلمه COmmon Business-Oriented Language است. حوزه اصلی کار کوبول در زمینه تجارت، امور مالی ...
زبان برنامه نویسی COBOL چیست؟ شرح کامل COBOL

زبان برنامه نویسی COBOL چیست؟ شرح کامل COBOL

در این مطلب به معرفی زبان برنامه نویسی 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 بود که کمیته را به‌ سمت ساخت زبانی سطح بالا هدایت کرد.

برنامه نویسی COBOL

برنامه نویسی COBOL

در آن زمان، 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>
JCL برای اجرای برنامه COBOL فوق به شرح زیر است :
<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 آموزش برنامه نویسی.