ประวัติภาษาโคบอล
ภาษาโคบอลได้ถือกำเนิดขึ้นเมื่อปี ค.ศ.1959 โดยได้มีการร่วมมือกันจัดตั้งคณะกรรมการขึ้นชุดหนึ่งให้ชื่อว่า CODASYL : Conference On DAta SYstems Languages ซึ่งมีทั้งภาครัฐบาล และภาคเอกชนกลุ่มผู้ผลิตเครื่องคอมพิวเตอร์ในยุคนั้น ซึ่งได้ร่วมมือกันพัฒนาขึ้นเพื่อให้สามารถนำมาใช้กัน และให้เหมาะสมกับการประมวลผลข้อมูลทางด้านธุรกิจ ซึ่งได้ทำงานสรุปเป็นผลสำเร็จในปี ค.ศ. 1960 และให้ชื่อภาษาที่ได้สร้างขึ้นใหม่นี้ว่า "COBOL-60" และต่อมาภายหลังก็ได้มีการปรับปรุงแก้ไขพัฒนาภาษาโคบอลให้ทันต่อยุคต่อเหตุการณ์ ซึ่งมีการแก้ไขปรับปรุงขึ้นในปี ค.ศ. 1961 ซึ่งเรียกว่า "COBOL-61" ต่อมาได้มีการปรับปรุงแก้ไขเพิ่มเติมขึ้นอีกเล็กน้อย ในปี ค.ศ. 1963 และต่อมาในปี ค.ศ. 1965 และต่อมาในปี ค.ศ. 1968 ภาษาโคบอลได้ถูกยกระดับไห้เป็นภาษามาตราฐาน โดยสถาบัน The American National Standards Institute : ANSI โดยกำหนดภาษาโคบอลที่มีใช้กันอยู่ในขณะนั้นให้เป็นมาตราฐานเป็นอย่างเดียวกัน โดยแยกออกเป็นหลายระดับ และให้ยึดถือ COBOL-65 เป็นหลัก การใช้ภาษาโคบอลได้รับความนิยมแพร่หลายขึ้นในปี ค.ศ. 1970 เนื่องจากภาษาโคบอลได้มีการกำหนดความเป็นมาตราฐานขึ้น และได้มีการพัฒนาภาษาไปพร้อม ๆ กับการพัฒนาตัว Compiler ให้มีประสิทธิภาพมากยิ่งขึ้น
ในการเขียนโปรแกรมภาษาโคบอลเราจะแบ่งออกเป็นส่วน ๆ ดังนี้
- ส่วนประกอบของโปรแกรม ภาษาโคบอล
 - สัญลักษณ์ ที่ใช้ในภาษาโคบอล
 - ประเภทของคำ
 - ตัวแปร และ ค่าคงที่
 - แบบฟอร์ม สำหรับการเขียนโปรแกรม COBOL (COBOL CODING FORM)
 - การใช้เครื่องหมายวรรคตอน
 
1.ส่วนประกอบของโปรแกรม COBAL
| IDENTIFICATION DIVISION | 
  | 
| ENVIRONMENT DIVISION | 
  | 
| DATA DIVISION | 
  | 
| PROCEDURE DIVISION | 
  | 
ในแต่ละ Division มีชื่อดังต่อไปนี้
- IDENTIFICATION DIVISION.
 - ENVIRONMENT DIVISION.
 - DATA DIVISION.
 - PROCEDURE DIVISION.
 
ENVIRONMENT DIVISION เป็น Division หรือส่วนที่ใช้ในการแสดงรายละเอียดของตัวโปรแกรมเกี่ยวกับตัวเครื่องคอมพิวเตอร์ที่ใช้ในการเขียนโปรแกรม หรือสั่งให้โปรแกรมทำงาน และบอกให้ทราบชนิดของ Input/Output Devision ที่จะนำมาใช้กับโปรแกรมนี้
DATA DIVISION เป็น Division หรือส่วนที่ใช้ในการแสดงรายละเอียดลักษณะของข้อมูลทุก ๆ ตัวที่นำมาเกี่ยวข้องกันกับโปรแกรมนี้ทั้งหมด ไม่ว่าจะเป็นข้อมูลที่เป็ฯ Input หรือ Output หรือผลลัพธ์ที่เกิดจากการประมวลผล หรือผลลัพธ์จากการทำงานของโปรแกรมนี้ โดยจะแสดงโครงสร้างของข้อมูลอย่างละเอียด
PROCEDURE DIVISION เป็น Division หรือส่วนที่ใช้ลำดับขั้นตอนของการทำงาน หรือของการประมวลผลข้อมูลโดยโปรแกรมชุดนี้ และใน Division นี้เราจะเขียนขึ้นตามผังโปรแกรมที่เราได้เขียนขึ้นในขั้นตอนแรกก่อนลงมือเขียนโปรแกรมนี้ ภายใน Division นี้จะแตกต่างไปจาก 3 Division แรกที่ได้กล่าวมา โดยจะมีการคำนาณ หรือมีคำสั่งต่าง ๆ ที่สั่งให้เครื่องคอมพิวเตอร์ทำงาน เพื่อให้ได้ผลลัทธ์ออกมาตามที่เราต้องการ
นอกจากภาษาโคบอลได้ถูกจัดแบ่งออกเป็นส่วนใหญ่ ๆ (Division) แล้ว ภายในแต่ละ Division ยังถูกแบ่งออกเป็น Section ย่อย ๆ ได้อีก เช่น ภายใน Environment Division จะต้องมีอย่างน้อย 2 Section คือ Configuration Section และ Input-Output Section และภายใน Data Division จะมี File Section และ Working-Storage Section ส่วนภายใน Procedure Division จะมี Section เท่าไหร่ก็ได้ หรือภายในส่วนของ Identification Division ไม่มี Section อยู่เลย
นอกจากนี้ภายในแต่ละ Section จะมี Paragraph แตกย่อยลงไปอีก ซึ่ง Paragraph เป็นส่วนประกอบภายใน Section ในทุก Section และภายใน Section จะต้องมี Paragraph อย่างน้อย 1 Paragraph แต่ถ้าหากว่าภายใน Division ใดไม่ได้แบ่งส่วนประกอบออกเป็น Section ให้ถือว่า Paragraph นั้นเป็นส่วนประกอบโดยตรงของภายใน Division นั้น
Sentence เป็นรูปของประโยคภายในของถาษาโคบอล ซึ่งมีลักษณะคล้ายกับประโยคภายในภาษาอังกฤษ ซึ่งภายในประโยค หรือ Sentence นี้ต้องมีคำกริยา (verb) อย่างน้อย 1 คำ Sentence ภายในภาษาโคบอลนั้นจะต้องจบลงด้วย"."(Period)
Statement คือกลุ่มของตัวเลข กลุ่มของตัวอักษร และรวมถึงสัญลักษณ์พิเศษต่าง ๆ ซึ่งนำมาประกอบกันให้ได้ความหมายเป็นคำสั่งตามรูปแบบเงื่อนไขที่ภาษากำหนดขึ้นให้ใช้(Reserved Words) โดยอาจจะมีการผสมอักระกันเป็น 1 Statement แล้วนำมาผูกกันเป็นกลุ่มของคำสั่ง เพื่อสั่งให้เครื่องคอมพิวเตอร์ทำงานให้ได้ผลลัพธ์ตามที่ต้องการ
Clause คือกลุ่มของ Characters (อักขระ) และ Words เพื่อใช้สำหรับอธิบายถึง Entry ภายในโปรแกรมนั้น ๆ
Word คือกลุ่มของ Characters ซึ่งจะต้องมีอย่างน้อย 1 ตัวอักขระขึ้นไป ซึ่งโครงสร้างของ Word ได้อธิบายไว้แล้วข้างต้น
Character ตัวอักขระ เป็นหน่วยที่เล็กที่สุดในโปรแกรมภาษาทางคอมพิวเตอร์ ดูรายละเอียดภายในหัวข้อเรื่อง สัญลักษณ์ในภาษา COBOL
Character (อักขระ) หมายถึง ตัวเลขและเครื่องหมายต่าง ๆ ที่เครื่องคอมพิวเตอร์รับได้ในรูปของ ASCII CODE หรือ เลขฐาน 16 (แล้วแต่ระบบการเก็บข้อมูล ภายในหน่วยความจำของแต่ละเครื่องฯ) ซึ่งใช้ประกอบขึ้นเป็นคำ (Word) ในการเขียนเป็นภาษาโปรแกรม ซึ่งประกอบด้วย
- ชุดอักษร(Alphabetic) "A...Z"
 - ชุดตัวเลข(Numeric) "0..9"
 - ชุดสัญลักษณ์พิเศษ(Special Character){+ - * / . ** $ * > < = ( ) " ' ; _ }
 
2.2 ชุดตัวเลข (Numeric)"0..9" ใช้ในการกำหนดค่าให้กับตัวแปร เพื่อนำไปทำการคำนวณหาค่าต่าง ๆ ที่เป็นผลลัพธ์ตามที่เราต้องการ หรือ อาจจะใช้ผสมกับกลุ่มตัวอักษรให้กับตัวแปร หรือใช้ตั้งชื่อแฟ้มข้อมูล
2.3 ชุดสัญลักษณ์พิเศษ (Special Character) ชุดสัญลักษณ์พิเศษ เราสามารถแบ่งออกได้ตามหน้าที่ดังนี้
ใช้ในการคำนวณ เราเรียกว่า Arithmetic Operator
| +(บวก) | / (หาร) | 
| -(ลบ) | ** (ยกกำลัง) | 
| * (คูณ) | ( ) (เครื่องหมายวงเล็บ) | 
| > มากกว่า | or IS GREATER THAN | 
| < น้อยกว่า | or IS LESS THAN | 
| = เท่ากับ | or IS EQUAL | 
{ - , . " : ; () }
ใช้ในการกำหนดรูปแบบของการพิมพ์ (Print Format)| B (Blank Or Space) V | V (Period for format Decimal) | 
| Z | , | 
| $ | B | 
| + | CR | 
| - | DB | 
| 0 | . | 
| * | Space | 
3. ประเภทของคำ
  คำ เกิอขึ้นจากการผสมระหว่างตัวอักษร กับตัวเลข หรือจะเป็นตัวอักษรล้วน ๆ ก็ได้ ซึ่งจะต้องเป็นไปตามเงื่อนไขหรือกฎเกณฑ์ของภาษานั้น ๆ ดังได้กล่าวมาแล้วข้างต้น ซึ่งแบ่งออกเป็นประเภท ใหญ่ ๆ ดังนี้
- 3.1 คำสงวน (Reserved Word) คำสงวนไว้ใช้ในกรณี ๆ ไปโดยเฉพาะ ไม่สามารถนำคำสงวนไปใช้ในหน้าที่อื่น ๆ ที่ไม่ใช่หรือ ไม่ได้กำหนดไว้ โดยคำสงวนจะมีความหมายในตัวของมันเอง ซึ่งแบ่งออกเป็น 3 ประเภท
- Key word คือคำที่เราต้องเขียนเสมอ หรือ เป็นคำที่ตัว Compiler Cobol รู้จัก ได้แก่ Read , Into, End
 - Option Word จะใช้ หรือ ไม่ใช้ก็ได้ เขียนแทนด้วยตัวอักษรตัวพิมพ์ใหญ่ แต่ไม่มีขีดเส้นใต้กำกับไว้ มีไว้เพื่อขยายประโยคให้สมบูรณ์ เช่น Record, At
 - Connective Word เพื่อขยายใจความประโยคหรือเชื่อมโยงคำ เช่น Of ,In
 
 - 3.2 คำที่ไม่ใช่คำสงวน หมายถึงคำอื่น ๆ ซึ่งผู้เขียนโปรแกรม ตั้งชื่อขึ้นเองตามกฏเกณฑ์การตั้งชื่อ ในภาษาโคบอลห้ามตั้งชื่อตรงกับคำสงวนหรือซ้ำคำสงวน
- Data Name ใช้อ้างอิงถึงข้อมูล หรือตัวแปร
 - Condition Name ชื่อข้อมูลที่ใช้ในการสร้างเงื่อนไขขึ้นเพื่อเลือกตัดสินใจในการทำงาน และเพื่อทดสอบโปรแกรม
 - Paragraph Name หมายถึง ชื่อหัวข้อของชุดคำสั่งที่ปรากฏอยู่ในส่วนต่าง ๆของโปรแกรม
 
 - 3.3 Special Name ชื่อพิเศษต้องอยู่ในพารากราฟทึ่ชื่อ Special Names ซึ่งอยู่ภายใน Environment Division ซึ่งผู้เขียนโปรแกรมจะเป็นผู้ตั้งขึ้นเองเพื่อนำไปใช้ประโยชน์ในการเขียนโปรแกรมให้สั้น และรัดกุม แต่มีประสิทธิภาพมากขึ้น
 
4. ตัวแปร (Varriable) และค่าคงที่ (Literal)
- 4.1 ตัวแปร หมายถึง ข้อมูลที่มีการเปลี่ยนแปลงค่อยู่ตลอดเวลาในโปรแกรม
- ตัวแปรชนิดตัวเลข (Numeric variable) ประกอบไปด้วยตัวเลข 0 - 9 สามารถนำไปคำนวณได้
 - ตัวแปรชนิดอักขระ (Alphabetic variable) ประกอบไปด้วยตัวอักษร A..Z และ Blank Or Space และ Hyphen (-)
 - ตัวแปรชนิดที่เป็นทั้งตัวเลขและตัวอักขระ (Alphabumeric variable)ได้แก่ตัวเลข ตัวอักษร สัญลักษณ์พิเศษ
 
 - 4.2 ค่าคงที่ (Literal)ค่าคงที่เป็นตัวเลข(Numeric Literal) ประกอบด้วยตัวเลข 0-9
 
แบบฟอร์มของกระดาษเขียนโปรแกรม
ในการเขียนโปรแกรมด้วยภาษาใด ๆ ก็ตาม จำเป็นต้องเขียนลงในกระดาษ ตามแบบฟอร์มซึ่งแต่ละภาษากำหนดเอาไว้ ภาษาโคบอล ก็เช่นกัน เราต้องเขียนโปรแกรมลงในกระดาษสำหรับเขียนโปรแกรมโดยเฉพาะ กระดาษพิเศษที่ใช้เขียนโปรแกรมภาษาโคบอลนี้เรียกว่า Cobol Coding Form รูปแบบนี้ เหมือนรูปแบบมาตราฐานของบัตร 80 คอลัมน์ คือ ในกระดาษหนึ่งบรรทัดแบ่งออกเป็น 80 คอลัมน์ เช่นเดียวกันและกระดาษเขียนโปรแกรมหนึ่งแผ่น จะมีประมาณ 20 บรรทัด อย่างไรก็ตามทุกวันนี้เรามักจะส่งโปรแกรมเข้าเื่องครื่องคอมพิวเตอร์ทางจอภาพมากกว่า รายละเอียดของหัวกระดาษตอนบน
- System ให้ใส่รายละเอียดของระบบที่ใช้ในการเขียนโปรแกรม หรือ รายละเอียดของเครื่องคอมพิวเตอร์ที่ใช้ หรืออาจจะเป็นชื่อระบบก็ได้
 - Program ให้ใส่ชื่อโปรแกรม หรืออาจจะเป็นชื่อของโปรแกรมย่อยก็ได้
 - Programmer ใส่ชื่อโปรแกรมเมอร์หรือชื่อของผู้เขียนโปรแกรม
 - Date ใส่วัน เดือน ปี ที่เขียนโปรแกรม
 - Page of ให้ใส่ตัวเลขบอกจำนวนหน้า จำนวนตัวเลขหลัง OF หมายถึงจำนวน Coding Sheet ทั้งหมดที่ใช้เขียนโปรแกรมนี้ และตัวเลขหลัง Page หมายถึง เลขบอกหน้าของ Coding She
 
การใช้เครื่องหมายวรรคตอน
จุดประสงค์ ของการใช้เครื่องหมายวรรคตอนเพื่อบอกให้ Compiler ทราบว่าจบประโยคเมื่อไหร่ จบคำเมื่อไหร่ และช่วยในการอ่านโปรแกรมได้ง่ายขึ้น
Creadit : http://cptd.chandra.ac.th/selfstud/cobol/pass2.htm
Creadit : http://cptd.chandra.ac.th/selfstud/cobol/pass2.htm
ไม่มีความคิดเห็น:
แสดงความคิดเห็น