ภาษาคอมพิวเตอร์มีอยู่เป็นจำนวนมาก แต่เครื่องคอมพิวเตอร์จะทำงานได้ภาษาเดียวคือ ภาษาเครื่อง (Machine language) ซึ่งเป็นภาษาที่บังคับการทำงานของเครื่องอย่างแท้จริง ข้อเสียของภาษาเครื่องคือ ภาษาของแต่ละเครื่องจะไม่เหมือนกัน ทั้งนี้ แล้วแต่การออกแบบระบบเครื่อง ว่าจะเป็นแบบใด นอกจากนี้ เครื่องคอมพิวเตอร์แต่ละเครื่องที่สร้างขึ้นมานั้น ส่วนใหญ่จะมีการแก้ไขปรับปรุงให้ดีขึ้นอยู่เสมอ ซึ่งจะทำให้ลักษณะของภาษาเครื่องเปลี่ยนแปลงแตกต่างออกไปอีก แต่ภาษาที่ไม่ใช่ภาษาเครื่องอาจจะยังเหมือนเดิมได้
ดังนั้น ในการสร้างเครื่องจึงมีความจำเป็นที่จะต้องคำนึงถึงประโยชน์ ที่จะได้จากการใช้ภาษาของเครื่องที่สร้างขึ้นมานั้นด้วย รวมทั้งต้องมีระบบการทำงาน ที่กว้างขวางพอที่จะรับงานประเภทต่างๆ ได้อย่างมีประสิทธิภาพ
เราอาจแยกภาษาของเครื่องคอมพิวเตอร์ออกเป็น ๒ ระดับคือ
๑. ภาษาระดับต่ำ (low level language) คือ ภาษาที่เขียนตามลักษณะการทำงานของเครื่อง ดังนั้น ผู้ใช้ภาษาเหล่านี้ จำเป็นต้องเข้าใจการทำงานของเครื่องเป็นอย่างดี ภาษาเหล่านี้ ได้แก่ ภาษาเครื่อง ภาษาแอสแซมเบลอร์ และภาษามาโครแอสเซมเบลอร์ (Macro Assembler)
๒. ภาษาระดับสูง (higher level language) เป็นภาษาที่เข้าใกล้ลักษณะภาษาที่มนุษย์ใช้ (human oriented language) มีลักษณะเป็นคำพูด หรือเป็นสมการในการคำนวณแบบเดียวกับที่เราใช้กันในวิชาพีชคณิต หรือตรีโกณมิติ ดังนั้น ภาษาระดับนี้จึงยังแบ่งออกเป็น ๒ พวกคือ
๒.๑ ภาษาเขียนที่มีลักษณะเป็นตัวเลข (numeric lanhuage) คือ ภาษาที่ใช้เขียนชุดคำสั่งนั้น มีแนวความคิดในการบอกข้อมูล และการทำงานที่มีลักษณะเป็นตัวเลข และสมการ เช่น ภาษาฟอร์แทรน ภาษาเบสิก เป็นต้น
๒.๒ ภาษาเขียนที่มีลักษณะเป็นสัญลักษณ์ (symbolic language) คือ ภาษาที่ใช้เขียนชุดคำสั่งนั้น มีแนวความคิดในการบอกข้อมูล และการทำงานที่มีลักษณะเป็นสัญลักษณ์ และเป็นคำพูดแทน เช่น ภาษาโคบอล ภาษา อาร์พีจี เป็นต้น
เนื่องจากเราแบ่งเครื่องคอมพิวเตอร์ออกได้เป็น ๕ ส่วนคือ ส่วนรับข้อมูล ส่วนคำนวณ ส่วนความจำ ส่วนควบคุม และส่วนแสดงผล ดังนั้น ไม่ว่าจะใช้ภาษาระดับใดก็ตาม เราสามารถแยกประเภทของคำสั่งของภาษานั้นได้เป็น ๕ ประเภทเช่นเดียวกันคือ คำสั่งรับส่งข้อมูล คำสั่งคำนวณ คำสั่งย้ายข้อมูล ในส่วนความจำ คำสั่งควบคุม และคำสั่งแสดงผล
ภาษาที่ใช้ในการเขียนชุดคำสั่งคอมพิวเตอร์นั้นมี ลักษณะโดยย่อดังตัวอย่างต่อไปนี้
เป็นภาษาที่แท้จริงของเครื่องคอมพิวเตอร์ คอมพิวเตอร์ทุกเครื่องจะทำงานได้แต่เฉพาะภาษาเครื่องเท่านั้น ในงานทางคอมพิวเตอร์ทั่วไปจะไม่เขียนเป็นภาษาเครื่อง เพราะเครื่องคอมพิวเตอร์แต่ละเครื่องจะมีลักษณะแตกต่างกันไป ภาษาเครื่องจะใช้สำหรับผู้ที่ทำหน้าที่ทำงานเกี่ยวกับระบบชุดคำสั่ง เวลาเขียนต้องเขียนในรูปของเลขฐานสอง เมื่อเขียนเสร็จ ต้องคิดกลับมาเป็นตัวเลขฐานสิบ หรือเป็นตัวอักษร หรือพยัญชนะต่างๆ ที่จะให้เครื่องรับกลับเข้าไปเป็นเลขฐานสอง พร้อมกับประกอบเป็นคำสั่ง และรวมกันเป็นชุดคำสั่ง การเขียนชุดคำสั่งภาษาเครื่องไม่จำเป็นต้องใช้ตัวแปลชุดคำสั่ง หรือชุดคำสั่งควบคุมในช่วงการทำงาน
ที่อยู่ |
รหัสในความจำ |
|
|||
เลขฐาน 10 |
เลขฐาน 2 |
คำสั่ง |
ที่อยู่ |
||
0 |
000000 |
|
000101 |
|
5 |
ภาษาแอสเซมเบลอร์ หรือเรียกว่า ภาษาแอสเซมบลี (Assembly language) เป็นภาษาที่เขียนเป็นตัวพยัญชนะ และตัวเลขฐานสิบ เช่นเดียวกับภาษาเครื่อง ต่างกันตรงที่ว่า ภาษาแอสเซมเบลอร์เขียนเป็นตัวอักษร โดยไม่คำนึงว่า เลขฐานสองเป็นอย่างไร และต้องการตัวแปลชุดคำสั่งภาษาแอสเซมเบลอร์ เมื่อถึงเวลาทำงานยังต้องใช้ชุดคำสั่งควบคุมเข้าช่วยอีกด้วย
FIVEA TEN FIVEB STORE COUNT ONE START KEEP
|
DC DC DC DC DC DC WAT INP COMP BRL BRZ BRH ADD STA LDA ADD COM BRZ STA BRH LDA COM BRL LDA DIV SHL OUP WAT SHL OUP WAT WAT END |
5 |
FOR TEST VALUE OF COUNT TEST SUM BIGGER THAN 10 FOR TEST BIGGER THAN 5 KEEP FOR SUMMATION COUNT NUMBER OF INPUT FOR INCREMENT COUNT READ 1 CHARACTER FROM TYPE WRITER COMPARE WITH 5 GO TO KEEP IF LESS THAN 5 GO TO KEEP IF EQUAL 5 GO TO START IF GRTER THAN 5 SUM ACCUMULATOR BY STORE KEEP SUM IN STORE INCREMENT COUNT GO TO TESTV IF EQUAL 5 GO TO READ 1 CHARACTER GO TO TYPE IF LESS THAN 10 RESULT IN A2, REMAINDER IN A1 SHIFT A2 TO A1 AND A1 TO A2 TYPE RESULT SHIFT A2 TO A1 |
เมื่อเขียนชุดคำสั่งภาษาแอสเซมเบลอร์เสร็จจะได้ชุดคำสั่งที่เรียกว่า ชุดคำสั่งเริ่มต้น (source program) ซึ่งจะต้องมีลักษณะที่ตัวแปลชุดคำสั่งภาษาแอสเซมเบลอร์จะรับได้ เมื่อเอาชุดคำสั่งเริ่มต้นเข้าเครื่องคอมพิวเตอร์ ตัวแปลชุดคำสั่งภาษาแอสเซมเบลอร์จะแปลชุดคำสั่งภาษาแอสเซมเบลอร์เป็นชุดคำสั่งภาษาเครื่อง เราเรียกว่า ชุดคำสั่งทำงาน (object program) พร้อมกับถูกจัดให้อยู่ในรูปที่ชุดคำสั่งควบคุมจะรับได้ ชุดคำสั่งทำงานนี้อาจจะถูกแปลมาในลักษณะบัตร แถบแม่เหล็ก หรือจานแม่เหล็ก
เป็นภาษาที่อยู่ในพวกเดียวกันกับภาษาแอสเซมเบลอร์ เนื่องจากในการเขียนชุดคำสั่งภาษาแอสเซมเบลอร์นั้น ผู้เขียนจะต้องเขียนอย่างพินิจพิเคราะห์ และจะต้องมีความรู้การทำงานของเครื่องคอมพิวเตอร์เป็นอย่างดี ทำให้ไม่สะดวกต่อการเขียน ดังนั้น ผู้ที่คิดทำตัวแปลชุดคำสั่งภาษาแอสเซมเบลอร์จึงได้ทำภาษามาโครขึ้น ซึ่งจัดเป็นชุดคำสั่งของภาษาแอสเซมเบลอร์ เมื่อตัวแปลชุดคำสั่งอ่านพบภาษามาโคร ก็จะดึงเอาภาษาแอสเซมเบลอร์ที่จัดไว้ มาแทรกเข้าในส่วนของชุดคำสั่งนั้น และจัดแปลเป็นภาษาเครื่องด้วย วิธีนี้จะทำให้ผู้เขียนชุดคำสั่งภาษาแอสเซมเบลอร์ เขียนชุดคำสั่งได้สะดวกขึ้น
START | OPEN | RDR |
OPEN | PUN | |
GET | RDR, WORK | |
PUT | PUN, WORK | |
- | - | |
- | - | |
- | - | |
WORK | DS | CL 160 |
RDR | DTFCR | MODE=BINARY, IOAL=BUFA, FOFA=EOF |
PUN | DTERP | MODE=BINARY, OUAR=BUFB, PUNR=YES |
BUFA | DS | CL160 |
BUFB | DS | CL160 |
เป็นภาษาคอมพิวเตอร์ที่เหมาะกับการใช้งานทางด้านการคำนวณ ตัวแปลชุดคำสั่งจะทำหน้าที่อ่านชุดคำสั่งที่เป็นภาษาฟอร์แทรน ที่เราเขียนขึ้น และแปลเป็นภาษาเครื่องที่ชุดคำสั่งควบคุมสามารถรับได้ คำสั่งในภาษาฟอร์แทรนแต่ละคำสั่ง เรียกเป็นภาษาอังกฤษว่า statement ซึ่งแบ่งเป็นได้ดังนี้
คำสั่งรับส่งข้อมูล (input-output statement) ได้แก่ READ, WRITE หรือ PRINT, FORMAT
คำสั่งคำนวณ (arithmetic statement) ได้แก่ คำสั่งที่เป็น การคำนวณ โดยทางซ้ายมือเป็นตัวแปร ทางขวามือเป็นการคำนวณ เช่น X = A + B + ๕
คำสั่งตรรกะ (logical statement) เป็นคำสั่งประเภทควบคุม ได้แก่ คำสั่งที่ใช้ในการทดลองค่า เช่น IF (F.EQ.B) GO TO ๑๕ หรือ GO TO (๑, ๒, ๓, ๔, ๕) และ ๑ เป็นต้น
นอกจากนี้ ยังมีคำสั่งประกอบอื่นๆ อีก เช่น DIMENSION, DATA, CALL SUB, และ RETURN เป็นต้น
ISTORE = 0 |
เป็นภาษาคอมพิวเตอร์ที่เหมาะกับผู้เริ่มเรียนการเขียน หรืองานด้านการคำนวณที่ไม่ยุ่งยากมากนัก ลักษณะภาษาประกอบด้วย เลขที่บรรทัดและคำสั่ง ซึ่งแบ่งเป็นดังนี้
คำสั่งรับส่งข้อมูล ได้แก่ INPUT, PRINT และ READ เป็นต้น
คำสั่งคำนวณ ได้แก่ คำสั่งที่ใช้ในการคิดคำนวณเลขต่างๆ เช่น X = A + B + ๕ หรือ Y = A + B/C
คำสั่งตรรกะ ได้แก่ IF, FOR และ GOTO เป็นต้น
10 STORE = 0 |
เป็นภาษาที่นิยมใช้กันมากในทางธุรกิจ เป็นภาษาที่เขียนสั่งการทำงาน โดยใช้คำพูดเป็นประโยค ภายในประโยคจะมีกริยา เมื่อจบแต่ละประโยคจะต้องมีจุด (.) กำกับเมื่อจบ ภาษานี้ไม่เหมาะกับงานที่มีการคำนวณ เพราะเขียนยากกว่า เครื่องคอมพิวเตอร์ ที่ทำงานตามภาษาโคบอลได้ จะต้องมีตัวแปลชุดคำสั่งภาษาโคบอล เพื่อใช้ในการแปลชุดคำสั่งภาษาโคบอลที่เป็นชุดคำสั่งเริ่มต้น เป็นภาษาเครื่องที่ชุดคำสั่งควบคุมจะสามารถรับได้ ชุดคำสั่งทำงานที่แปลได้นี้ อาจจะอยู่ในรูปของบัตรแถบแม่เหล็ก หรือจานแม่เหล็ก
การเขียนภาษาโคบอลจะแบ่งออกเป็น ๔ ส่วนคือ
๑. ส่วนกำหนดลักษณะ (identification division) เป็นส่วนที่บอกชื่อผู้เขียน และวันที่เขียน
๒. ส่วนบอกลักษณะเครื่อง (environment division) เป็นส่วนที่บอกว่าจะใช้เครื่องอ่านบัตร เครื่องพิมพ์ แถบแม่เหล็ก และจานแม่เหล็กอย่างไร
๓. ส่วนบอกลักษณะข้อมูล (data division) เป็นส่วนที่บอกว่าการจัดข้อมูลที่จะนำเข้าและแสดงผลมี ลักษณะเช่นใด รวมทั้งข้อมูลที่จำในหน่วยความจำเป็น อย่างไร
๔. ส่วนบอกการทำงาน (procedure division) เป็นส่วนที่เขียนคำสั่งที่นำเอาข้อมูลที่กำหนดในส่วนบอกลักษณะข้อมูลมาใช้งาน
IDENTIFICATION DIVISION. |
จากตัวอย่างชุดคำสั่งภาษาต่างๆ จะเห็นได้ว่าภาษาคอมพิวเตอร์ได้ถูกพัฒนาให้เข้าใกล้ภาษาที่มนุษย์เราใช้มากขึ้นเรื่อยๆ เพื่อให้ใช้งานได้ง่าย และประหยัดเวลาในการใช้คอมพิวเตอร์
แท้ที่จริงแล้ว ภาษาของคอมพิวเตอร์มีเป็นจำนวน มาก การที่คอมพิวเตอร์จะสามารถทำงานภาษาใดได้นั้น ขึ้นกับการมีตัวแปลชุดคำสั่งภาษานั้นๆ สำหรับเครื่อง เพื่อให้แปลเป็นภาษาเครื่องพร้อมที่ชุดคำสั่งควบคุมสามารถจะรับ และดำเนินการทำงานได้ตามที่ต้องการ
ผู้ที่มีความเชี่ยวชาญทางภาษาแอสเซมเบลอร์ จะสามารถเขียนชุดคำสั่งเพื่อใช้เป็นตัวแปลชุดคำสั่งภาษาต่างๆ ได้ ตามความต้องการ การเขียนตัวแปลชุดคำสั่งที่ทำงานได้อย่างกว้างขวางนั้น อาจจะต้องใช้คนเป็นจำนวนมาก และเขียนชุดคำสั่งกันเป็นแรมปี
ดังนั้น นอกจากมนุษย์จะสร้างระบบเครื่องคอมพิวเตอร์แล้ว ยังจำเป็นต้องสร้างระบบการสั่งงานคอมพิวเตอร์อีกด้วย บางครั้ง อาจต้องใช้เงินและแรงงานมากกว่าการสร้างเครื่อง ระบบการสั่งงานนี้ เป็นส่วนหนึ่งที่ทำให้คอมพิวเตอร์มีความสามารถแตกต่างกัน ทั้งยังจำเป็นต้องมีการปรับปรุงแก้ไขให้มีประสิทธิภาพดียิ่งๆ ขึ้นอยู่เสมอ จึงนับได้ว่า ระบบการสั่งงานคอมพิวเตอร์มีความสำคัญมาก ไม่น้อยกว่าระบบเครื่องคอมพิวเตอร์