در این مطلب به معرفی زبان برنامه نویسی COBOL می پردازیم، زبانی که اولین بار هست به معرفی و شرح و کامل آن می پردازیم. COBOL (کوبول) یکی از قدیمیترین زبانهای برنامه نویسی شی گرایی می باشد که مخفف کلمه COmmon Business-Oriented Language است. حوزه اصلی کار کوبول در زمینه تجارت، امور مالی و سیستمهای اجرایی برای شرکتها و دولتها می باشد.
به قول یکی از دوستان COBOL یک زبان برنامهنویسی قدیمی است که هنوز هم زنده است و نفس می کشد.
زبان برنامه نویسی COBOL چیست؟ شرح کامل COBOL
تعریف اول COBOL :
مخفف عبارت Common Business Oriented language و زبان برنامه سازي براي کارهاي تجاري. يک زبان سطح بالا که براي کاربردهاي تجاري پردازش داده ساخته شده است. هر برنامه اصلي در زبان کوبول داراي چهار قسمت مي باشد:1- Identification Division برنامه اصلي و خروجي عمل کامپايل را معرفي مي کند.2- Environment Division جنبه هايي از مسئل پردازش داده را به ويژگي هاي فيزيکي يک کامپيوتر خاص وابسته مي باشند, مشخص مي کند.3- Data Division داده اي را شرح مي دهد که برنامه به زيان ماشين آنها را به عنوان ورودي قبول کرده و بر رويشان عمليات انجام مي دهد و خروجي را از آنها توليد مي کند. 4- Procedure Division مراحلي را شرح مي دهد که توسط برنامه به زبان ماشين اجرا مي شود.
تعریف دوم COBOL :
COBOL (کوبول) يک زبان برنامه نويسي براي پردازش داده تجاري که در اوايل دهه 60 با همکاري چند سازنده کامپيوتري و وزارت دفاع آمريکا ساخته شد . همان طور که برنامه کوبول نشان مي دهد جملات کوبول مانند جملات انگيليسي بوده و ساختار برنامه نياز به تعدادي مستندات ضميمه دارد. برنامه کوبول طولاني و پر واژه اند اما خواندن آنها آسان است . به طوري که ساير برنامه نويسان مي توانند آنها را تصحيح کرده يا تغيي دهند. کوبول؛ يک زبان برنامه نويسي سطح بالا براي کاربردهاي تجاري می باشد.
و اما همه چیز در مورد COBOL
COBOL که در سال 1959 اختراع شد، زبانی است که بیشتر مقالات نوشته شده در مورد آن به این نکته اشاره دارند که این زبان در حال منسوخ شدن است و شرکتهایی که از آن استفاده میکنند مرتکب اشتباه حماقتآمیزی شدهاند و یا آموختنش برای تازهکارها دشوار است و چیزهایی از این دست. افسانهای در مورد COBOL که مخفف واژگان Common Business-Oriented Language است وجود دارد با این مضمون که سازمانهای بزرگی که از این زبان استفاده میکنند فقط به این دلیل دست به چنین انتخابی زدهاند که بازنویسی برنامههایشان در زبان مدرنتری کار بسیار خستهکنندهای است و همچنین اینکه developer های زیادی که در کار با این زبان از مهارت کافی برخوردارند باشند وجود ندارد! اما حقیقت امر چیز دیگری ست. در ادامه با ما همراه باشید تا همه موارد را گام به گام با هم جلو ببریم.
شرح کامل زبان برنامه نویسی COBOL
تاریخچهٔ COBOL وقتی صحبت از زبان COBOL میشود، به نوعی به یاد تاریخچهٔ کامپیوتر خواهیم افتاد؛ اولین نسخه از زبان برنامه نویسی کوبول در سال 1959 از طریق کمیتهٔ استاندارد صنعتی که به طور ویژهای شامل دو مهندس خانم برجسته میشد، به بازار عرضه شد. یکی از این دو مهندس، Jean Sammet بود که کمیتهای فرعی را به منظور توسعهٔ خودِ زبان کوبول رهبری میکرد که وی در تاریخ 20 می 2017 درگذشت. دیگری هم دریاسالار نیروی دریایی ایالات متحده، Grace Hopper بود که کمیته را به سمت ساخت زبانی سطح بالا هدایت کرد.
در آن زمان، Jean Sammet برای شرکت Sylvania کار میکرد و مسئول کامپایلر کوبول برای Mobile Digital Computer بود که بر اساس قراردادی تجاری، برای آزمایشگاه Evan Signals ارتش ایالات متحده ساخته شده بود (البته کلمهٔ Mobile به معنی «متحرک» برای این کامپایلر کاملاً نسبی بود چرا که برای حمل آن، به دو تریلر مخصوص 30 فوتی نیاز بود!) به نوعی میتوان گفت که این اولین کامپیوتری است که به زبان کوبول برنامهریزی شده است.
شاید به این فکر کنید که کجاها از COBOL استفاده شده است؟
Sylvania شش دستگاه از این نوع را تولید کرد و این کامپیوترها به خاطر عملکردشان، توسط نیروی داخلی ارتش ایالات متحده و آنهایی که در اروپا مستقر بودند مهر تأیید دریافت کردند. ادمینهای سیستم که با Mobile Digital Computer در بین دهههای 50 و 60 کار میکردند، در سال 1973 از تجربیات خود گفتند به این شکل که آنها به طرز قابلتوجهی از نحوهٔ کار این سیستمها شگفتزده شده بودند و همچنین گفتهاند که استفاده از این سیستمها را به دلیل اینکه سختافزارش منسوخ نشد، ادامه دادند.
سازمانهای بزرگ از کوبول استفاده میکنند به این دلیل که این زبان در برنامههای سطح بالای پردازش تراکنش بسیار بهینه است به طوری که هیچ زبان جدیدی توان رقابت با آن را ندارد! برنامههایی که امروزه به کار گرفته میشوند اکثراً بر اساس آپدیت 2002 کوبول (یا در بدترین حالت، نسخهٔ 1985) پایهگذاری شدهاند.
همچنین کوبول برای سری Z از یکسری Main Frames کمپانی IBM و سیستمهای توزیعشدهٔ ساخت دیگر شرکتها بسیار محبوب بود به طوری که به گفتهٔ Kevin Stoodly، که یکی از مدیران فنی در شرکت IBM است، کوبول یک مشکل بسیار مهم را به شکل خوبی حل کرد و شرکتها هم به استفاده از آن ادامه دادند.
developer های امروزی کوبول اکثراً بر این عقیده هستند که با کوبول میتوان از سختافزارها برای مدت طولانیتر استفاده کرد. امروزه IBM COBOL بدون شک محبوبترین نسخه از این زبان برای مِینفریمها است. شرکت دیگری به نام Micro Focus هم یکی از پیشتازان استفاده از کوبول برای سیستمهای توزیعشده است (موارد کم استفادهتری هم مانند GnuCOBOL که اپنسورس است نیز وجود دارد.)
در هر نسخهای از کوبول، ممکن است هزاران خط کد کوبول به ازای هر یک خط کد زبانی همچون جاوا نوشته شده باشد! اما به ادعای کارشناسان، جاوا برای تحلیل Big Data هرگز به سرعت کوبول نمیرسد. به عقیدهٔ برخی دولوپرها، این گزاره که «کوبول نابود شده است.» اصلاً درست نیست و شاهد چنین ادعایی هم اینکه نتیجهای که بر اساس آمار به دست میآید این است که غیرممکن است کوبول به سادگی نابود شود. در حقیقت، کوبول از بین نمیرود چرا که هنوز در حال استفاده است و برخی گرهها وجود دارند که فقط و فقط به دست کوبول باز میشوند. به عنوان نمونه برنامهٔ نوشتهشده با این زبان داریم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
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 کد میزند، گفته است که از این زبان برای توسعهٔ برخی نرمافزارها در شرکت سونی استفاده کرده است. زمانی که وی در سال 1984 شروع به استفاده از زبان برنامه نویسی کوبول کرد، شایعاتی مبنی بر نابودی کوبول وجود داشت اما وی کماکان از این زبان استفاده میکند! به گفتهٔ وی:
[alert color=”red” icon=””]اعمال تغییرات در برنامههای قدیمی که با کوبول نوشته شدهاند ساده هست. خلاصه بگم که کوبول زبون بسیار ثابت و پایداری پس از این همه ساله. شاید وب اپلیکیشنی با زبونی مثل جاوا یا هر زبون دیگهای توسعه داده باشید که برای تعامل کاربر در بستر وب باشه، اما در نهایت برای توسعهٔ اپلیکیشنهایی که نیاز به دسترسی به مینفریمهای بزرگ دارن، از کوبول استفاده خواهد شد.
[/alert]و اما به عنوان یک نکته مهم در نظر داشته باشید اینکه گفته میشود یادگیری COBOL سخت است شاید به نوعی درست باشد، اما شروع کدنویسی در COBOL برای افرادی که به زبانی همچون C تسط دارند، چند هفتهای بیشتر زمان نخواهد برد.
چهار بخش اصلی برنامه نویسی COBOL
- Identification Division
- Environment Division
- Data Division
- Procedure Division
Identification در برنامه نویسی COBOL
Identification در برنامه نویسی COBOL اولین و تنها بخش اجباری هر برنامه COBOL است. برنامه نویس و کامپایلر از این بخش برای شناسایی برنامه استفاده میکنند. در این قسمت، PROGRAM-ID تنها پارامتر اجباری است. PROGRAM-ID نام برنامه را مشخص می کند که می تواند 1 تا 30 کاراکتر باشد.
1 2 3 4 5 |
<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> |
1 2 |
//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
1 2 3 4 5 6 7 8 9 |
<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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<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> |
1 2 3 |
<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 برای پایان دادن به اجرا در این بخش است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<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> |
1 2 |
<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
امیدواریم که این مطلب مورد توجه دوستان عزیز قرار گرفته باشد…
منبع 2
مشاهده جلسات قبل معرفی زبان های برنامه نویسی
زبان برنامه نویسی سی و سی پلاس پلاس
معرفی زبان برنامه نویسی پایتون
Ruby چیست؟ بررسی زبان برنامه نویسی روبی
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- منبع : سورس باران
- رمز فايل : www.sourcebaran.com
- انتشار: ۱۱ آذر ۱۳۹۷
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- رپورتاژ
- فروشگاه
- فیلم های آموزشی
- ++C
- ADO.NET
- Adobe Flash
- Ajax
- AngularJS
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- AVR
- Bootstrap
- CCNA
- CCNP
- CMD
- CSS
- Dreameaver
- EntityFramework
- Go
- HTML
- IOS
- jquery
- Linq
- Mysql
- Oracle
- PHP
- PHPMyAdmin
- Rational Rose
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- WPF
- Xml
- آموزش های پروژه محور
- اتوکد
- الگوریتم تقریبی
- امنیت
- اندروید
- اندروید استودیو
- بک ترک
- بیسیک فور اندروید
- پایتون
- جاوا
- جاوا اسکریپت
- جوملا
- دلفی
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کانستراکت
- کریستال ریپورت
- لاراول
- معماری کامپیوتر
- مهندسی اینترنت
- هوش مصنوعی
- یونیتی
- کتاب های آموزشی
- Android
- ASP.NET
- AVR
- LINQ
- php
- Workflow
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس