COBOL - โครงสร้างโปรแกรม
โครงสร้างโปรแกรม COBOL ประกอบด้วยหน่วยงานดังแสดงในภาพต่อไปนี้ -
คำแนะนำสั้น ๆ ของหน่วยงานเหล่านี้มีอยู่ด้านล่าง -
Sectionsเป็นการแบ่งส่วนย่อยเชิงตรรกะของตรรกะโปรแกรม ส่วนคือชุดของย่อหน้า
Paragraphsคือการแบ่งส่วนย่อยของส่วนหรือส่วน เป็นชื่อที่ผู้ใช้กำหนดเองหรือชื่อที่กำหนดไว้ล่วงหน้าตามด้วยจุดและประกอบด้วยประโยค / รายการที่เป็นศูนย์หรือมากกว่า
Sentencesคือการรวมกันของหนึ่งคำสั่งขึ้นไป ประโยคจะปรากฏเฉพาะในการแบ่งขั้นตอน ประโยคต้องลงท้ายด้วยจุด
Statements เป็นคำสั่งภาษาโคบอลที่มีความหมายซึ่งดำเนินการประมวลผลบางอย่าง
Characters มีค่าต่ำสุดในลำดับชั้นและไม่สามารถหารได้
คุณสามารถเชื่อมโยงคำที่กล่าวถึงข้างต้นกับโปรแกรม COBOL ได้ในตัวอย่างต่อไปนี้ -
PROCEDURE DIVISION.
A0000-FIRST-PARA SECTION.
FIRST-PARAGRAPH.
ACCEPT WS-ID - Statement-1 -----|
MOVE '10' TO WS-ID - Statement-2 |-- Sentence - 1
DISPLAY WS-ID - Statement-3 -----|
.
หน่วยงาน
โปรแกรม COBOL ประกอบด้วยสี่แผนก
กองพิสูจน์หลักฐาน
เป็นแผนกแรกและแผนกเดียวของทุกโปรแกรม COBOL โปรแกรมเมอร์และคอมไพเลอร์ใช้ส่วนนี้เพื่อระบุโปรแกรม ในส่วนนี้ PROGRAM-ID เป็นย่อหน้าบังคับเท่านั้น PROGRAM-ID ระบุชื่อโปรแกรมที่ประกอบด้วยอักขระ 1 ถึง 30 ตัว
ลองใช้ตัวอย่างต่อไปนี้โดยใช้ไฟล์ Live Demo ตัวเลือกออนไลน์
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
DISPLAY 'Welcome to Tutorialspoint'.
STOP RUN.
ด้านล่างคือไฟล์ JCL เพื่อดำเนินการโปรแกรม COBOL ข้างต้น
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้นโปรแกรมจะให้ผลลัพธ์ดังนี้ -
Welcome to Tutorialspoint
กองสิ่งแวดล้อม
การแบ่งสภาพแวดล้อมใช้เพื่อระบุไฟล์อินพุตและเอาต์พุตไปยังโปรแกรม ประกอบด้วยสองส่วน -
Configuration sectionให้ข้อมูลเกี่ยวกับระบบที่โปรแกรมถูกเขียนและดำเนินการ ประกอบด้วยสองย่อหน้า -
คอมพิวเตอร์ต้นทาง - ระบบที่ใช้ในการคอมไพล์โปรแกรม
คอมพิวเตอร์วัตถุ - ระบบที่ใช้ในการรันโปรแกรม
Input-Output sectionให้ข้อมูลเกี่ยวกับไฟล์ที่จะใช้ในโปรแกรม ประกอบด้วยสองย่อหน้า -
การควบคุมไฟล์ - ให้ข้อมูลของชุดข้อมูลภายนอกที่ใช้ในโปรแกรม
การควบคุม IO - ให้ข้อมูลของไฟล์ที่ใช้ในโปรแกรม
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. XXX-ZOS.
OBJECT-COMPUTER. XXX-ZOS.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILEN ASSIGN TO DDNAME
ORGANIZATION IS SEQUENTIAL.
กองข้อมูล
การแบ่งข้อมูลใช้เพื่อกำหนดตัวแปรที่ใช้ในโปรแกรม ประกอบด้วยสี่ส่วน -
File section ใช้เพื่อกำหนดโครงสร้างเร็กคอร์ดของไฟล์
Working-Storage section ใช้เพื่อประกาศตัวแปรชั่วคราวและโครงสร้างไฟล์ที่ใช้ในโปรแกรม
Local-Storage sectionคล้ายกับส่วน Working-Storage ข้อแตกต่างเพียงอย่างเดียวคือตัวแปรจะถูกจัดสรรและเริ่มต้นทุกครั้งที่โปรแกรมเริ่มดำเนินการ
Linkage section ใช้เพื่ออธิบายชื่อข้อมูลที่ได้รับจากโปรแกรมภายนอก
COBOL Program
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILEN ASSIGN TO INPUT.
ORGANIZATION IS SEQUENTIAL.
ACCESS IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD FILEN
01 NAME PIC A(25).
WORKING-STORAGE SECTION.
01 WS-STUDENT PIC A(30).
01 WS-ID PIC 9(5).
LOCAL-STORAGE SECTION.
01 LS-CLASS PIC 9(3).
LINKAGE SECTION.
01 LS-ID PIC 9(5).
PROCEDURE DIVISION.
DISPLAY 'Executing COBOL program using JCL'.
STOP RUN.
JCL เพื่อดำเนินการโปรแกรม COBOL ข้างต้นมีดังนี้ -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
//INPUT DD DSN = ABC.EFG.XYZ,DISP = SHR
เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้นโปรแกรมจะให้ผลลัพธ์ดังนี้ -
Executing COBOL program using JCL
กองกระบวนงาน
การแบ่งขั้นตอนใช้เพื่อรวมตรรกะของโปรแกรม ประกอบด้วยคำสั่งปฏิบัติการโดยใช้ตัวแปรที่กำหนดในการแบ่งข้อมูล ในส่วนนี้ชื่อย่อหน้าและส่วนเป็นผู้กำหนดเอง
ต้องมีอย่างน้อยหนึ่งคำสั่งในการแบ่งขั้นตอน คำสั่งสุดท้ายที่จะยุติการดำเนินการในส่วนนี้คือSTOP RUN ซึ่งใช้ในโปรแกรมการโทรหรือ EXIT PROGRAM ซึ่งใช้ในโปรแกรมที่เรียกว่า
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NAME PIC A(30).
01 WS-ID PIC 9(5) VALUE 12345.
PROCEDURE DIVISION.
A000-FIRST-PARA.
DISPLAY 'Hello World'.
MOVE 'TutorialsPoint' TO WS-NAME.
DISPLAY "My name is : "WS-NAME.
DISPLAY "My ID is : "WS-ID.
STOP RUN.
JCL เพื่อดำเนินการโปรแกรม COBOL ข้างต้น -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้นโปรแกรมจะให้ผลลัพธ์ดังนี้ -
Hello World
My name is : TutorialsPoint
My ID is : 12345