ผู้เข้าชม

หลักการเขียนโปรแกรม (2201-2410) หลักสูตร ปวช.

15 มิ.ย. 2550

หน่วยที่ 8 ภาษาคอมพิวเตอร์กับการเขียนโปรแกรม

ภาษาคอมพิวเตอร์ (Computer Language) หรือ ภาษาโปรแกรม (Programming Language)

  • เราสามารถที่จะสั่งให้คอมพิวเตอร์ทำอะไรให้ก็ได้ภายในขอบเขตความสามารถของเครื่อง และต้องอาศัย “ภาษา” ที่คอมพิวเตอร์เข้าใจความหมาย เนื่องจากคอมพิวเตอร์ จะมีการทำงานโดยรู้จักคำสั่งเพียง 2 ชนิดคือ ปิด (OFF) กับ เปิด (ON) ซึ่งผู้ออกแบบคอมพิวเตอร์ ก็ได้แปลงสถานะทั้งสองนี้ให้เทียบเท่ากับค่าตัวเลขฐาน (Binary) ซึ่งค่า 0 (Off) และ 1 (On) ดังนั้น การเขียนโปรแกรมเข้าเครื่องคอมพิวเตอร์ในสมัยก่อน จึงต้องเขียนด้วยภาษาเครื่อง ซึ่งประกอบด้วยเลขฐานสองล้วน ๆ แต่ละคำสั่งก็จะมีรูปแบบของภาษาเครื่องที่แตกต่างกันไป จึงเห็นว่าการเขียนโปรแกรมด้วยภาษาเครื่องนี้ จะมีความยุ่งยากและมีโอกาสเกิดข้อผิดพลาดได้มาก ดังนั้นจึงเกิดการพัฒนาภาษาโปรแกรมขึ้น จากระดับต่ำ เป็นระดับสูงขึ้นเรื่อย ๆ
    ลักษณะที่คล้ายคลึงกันของภาษาคอมพิวเตอร์ และทุกภาษา ต้องมีคำสั่งต่อไปนี้
    1. คำสั่งรับข้อมูลและแสดงผล คำสั่งประเภทนี้จำเป็นอย่างยิ่งที่จะต้องมีในภาษาอีกทั้งยังต้องแจกแจงรายละเอียดต่อไปด้วยว่า รับผ่านอุปกรณ์ใด และแสดงผลทางอุปกรณ์ใด
    2. คำสั่งคำนวณ โปรแกรมหรือคำสั่งที่เขียนจะหนีไม่พ้นคำสั่งที่สั่งให้ประมวลผลประเภทบวก ลบ คูณ หาร
    3. คำสั่งที่มีการเลือกทิศทาง หรือคำสั่งให้ทำงานวนซ้ำแล้วซ้ำอีก
    4. คำสั่งให้นำข้อมูลออกหรือส่งเข้าไปในเก็บในสื่ออย่างใดอย่างหนึ่งเพื่อเรียกมาใช้ใหม่ได้

    วิวัฒนาการของภาษาคอมพิวเตอร์
    ภาษาคอมพิวเตอร์มีการพัฒนาหรือมีวิวัฒนาการมาโดยลำดับเช่นเดียวกับคอมพิวเตอร์ โดยจะสามารถแบ่งออกเป็นยุคหรือเป็นรุ่นของภาษา (Generation) ซี่งในยุคหลัง ๆ จะมีการพัฒนาภาษาให้มีความสะดวกในการอ่านและเขียน ง่ายขึ้นกว่าภาษาในยุคแรก ๆ เนื่องจากจะมีโครงสร้างภาษาใกล้เคียงกับภาษาอังกฤษ
    มีการแบ่งภาษาคอมพิวเตอร์ ออกเป็นยุคได้ 5 ยุค ดังนี้
    ยุคที่ 1 ภาษาเครื่อง (Machine Language)
    ยุคที่ 2 ภาษาแอสเซมบลี (Assembly Language)
    ยุคที่ 3 ภาษาชั้นสูง (High-level Language)
    ยุคที่ 4 ภาษาชั้นสูงมาก(Very high-level Language)
    ยุคที่ 5 ภาษาธรรมชาติ (Natural Language)


ยุคที่ 1 ภาษาเครื่อง (Machine Language)
เป็นภาษาที่เกิดขึ้นในยุคแรกสุด และเป็นภาษาเดียวที่เครื่องคอมพิวเตอร์จะสามารถเข้าใจคำสั่งได้ ภาษาเครื่องจะแทนข้อมูลหรือคำสั่งในโปรแกรมด้วยกลุ่มของตัวเลข 0 และ 1 หรือที่เรียกว่า ตัวเลขฐานสอง ซึ่งจะสัมพันธ์กับการเปิด (0) และการปิด (1) หรือที่เรียกว่า ตัวเลขฐานสอง ซึ่งจะสัมพันธ์กับการเปิด (On) และการปิด (Off) ของสัญญาณไฟฟ้าภายในเครื่องคอมพิวเตอร์
เครื่องคอมพิวเตอร์แต่ละประเภทจะมีภาษาเครื่องที่เป็นของตนเอง ไม่สามารถนำภาษาเครื่องที่ใช้กับเครื่องประเภทหนึ่งไปใช้กับเครื่องประเภท อื่นได้ เนื่องจากแต่ละระบบก็จะมีชุดคำสั่งของภาษาเครื่องที่แตกต่างกันออกไป จึงได้มีการพัฒนารูปแบบของภาษาเพื่อให้ง่ายต่อการอ่านหรือเขียนมากขึ้น

ยุคที่ 2 ภาษาแอสเซมบลี (Assembly Language)
เป็นภาษาที่มีการ สัญลักษณ์ข้อความ แทนกลุ่มของเลขฐานสอง เพื่อให้ง่ายต่อการเขียนและการจดจำมากกว่าภาษาเครื่อง เช่น
• A ย่อมาจาก ADD หมายถึง การบวก
• S ย่อมาจาก SUBTRACT หมายถึง การลบ
ถึงแม้ว่า สัญลักษณ์เหล่านี้จะไม่ใช่คำที่มีความหมายในภาษาอังกฤษ แต่ก็ทำให้นักเรียนโปรแกรมสามารถเขียนโปรแกรมได้สะดวกสบายมากขึ้น เนื่องจากไม่ต้องจดจำเลข 0 และ 1 ของเลขฐานสองอีก นอกจากนี้ภาษาแอสเซมบลี ยังอนุญาตให้ผู้เขียนใช้ตัวแปรที่ตั้งขึ้นมาเองในการเก็บค่า ข้อมูลใดๆ แทนการอ้างถึงตำแหน่งที่เก็บข้อมูลจริง ๆ ภายในหน่วยความจำ
ดังได้กล่าวแล้วว่า เครื่องคอมพิวเตอร์จะรู้จักเฉพาะภาษาเครื่องเท่านั้น ดังนั้นจึงจำเป็นที่จะต้องมีการแปลโปรแกรมภาษาแอสเซมบลีนั้นให้เป็นภาษาเครื่องเสียก่อน โดยใช้ตัวแปลภาษาที่เรียกว่า แอสเซมเบลอร์ (Assembler) เป็นตัวแปลให้เป็นภาษาเครื่อง
ผู้เขียนโปรแกรมภาษาแอสเซมบลีจะต้องมีความรู้ความเข้าใจในเรื่องของฮาร์ดแวร์เป็นอย่างดี จึงเหมาะที่จะใช้เขียนในงานที่ต้องการความเร็วในการทำงานสูง เช่นงานทางด้านกราฟิก หรืองานพัฒนาซอฟต์แวร์ระบบ ต่าง ๆ
อย่างไรก็ตาม ถึงแม้ว่าภาษานี้ จะง่ายกว่าการเขียนด้วยภาษาเครื่อง แต่ก็ยังถือว่าเป็นภาษาชั้นต่ำที่ยังยากต่อการเขียนและการเรียนรู้มากสำหรับผู้ที่ไม่มีความรู้เกี่ยวกับฮาร์ดแวร์เท่าใดนัก

ยุคที่ 3 ภาษาชั้นสูง (High-level Language)
เรียกอีกอย่างหนึ่งว่า ภาษารุ่นที่ 3 ( 3rd Generation Languages หรือ 3GLs) เป็นภาษาที่ถูกสร้างขี้นมาเพื่อให้สามารถเขียนและอ่านโปรแกรมได้ง่ายขึ้น เนื่องจากมีลักษณะเหมือนภาษาอังกฤษทั่ว ๆ ไป และที่สำคัญคือผู้เขียนโปรแกรมไม่จำเป็นต้องมีความรู้เกี่ยวกับระบบฮาร์ดแวร์แต่อย่างใด ก็สามารถเขียนได้ ตัวอย่างของภาษาประเภทนี้ได้แก่
• ภาษาฟอร์แทรน (FORTRAN)
• ภาษาโคบอล (COBOL)
• ภาษาเบสิก (BASIC)
• ภาษาปาสคาล (PASCAL)
• ภาษาซี (C)
• ภาษาเอดา (ADA)
โปรแกรมภาษาในรุ่นนี้ จะทำงานได้ ก็ต่อเมื่อมีการแปลงให้เป็นภาษาเครื่องเสียก่อน ซึ่งวิธีการแปลงจากภาษาชั้นสูงให้เป็นภาษาเครื่องนั้น จะทำได้โดยตัวแปลภาษาที่เรียกว่า คอมไพเลอร์ (Compiler) หรือ อินเตอร์พรีเตอร์ (Interpreter) ตัวใดตัวหนึ่ง โดยภาษาชั้นสูงแต่ละภาษา จะมีตัวแปลภาษาเฉพาะ เป็นของตัวเอง ไม่สามารถนำตัวแปลของภาษาหนึ่งไปใช้กับอีกภาษาหนึ่งได้ นอกจากนี้ยังมีข้อดีอีกอย่างคือ สามารถนำโปรแกรมที่เขียนนี้ไปใช้งานบนเครื่องใดก็ได้ เพียงแต่ต้องทำการแปลโปรแกรมใหม่เท่านั้น ภาษารุ่นที่ 3 นี้ จัดอยู่ในกลุ่มของ ภาษามีแบบแผน (Procedural Language) เนื่องจากลักษณะการเขียนโปรแกรมจะมีโครงสร้างแบบแผนที่เป็นระเบียบ ต้องเขียนคำสั่งการทำงานที่เป็นขั้นเป็นตอนทุกอย่าง
การเลือกใช้ภาษาคอมพิวเตอร์ ในการเลือกใช้ภาษาใดในการเขียนโปรแกรม จะต้องดูจากลักษณะงานที่ทำอยู่ ซึ่งแต่ละภาษาก็จะเหมาะกับงานเฉพาะอย่างไป เช่น


ยุคที่ 4 ภาษาชั้นสูงมาก(Very high-level Language)
เรียกอีกอย่างหนึ่งว่า ภาษารุ่นที่ 4 (4GLs) ภาษานี้เป็นภาษาที่อยู่ในระดับที่สูงกว่าภาษารุ่นที่ 3 มีลักษณะของภาษาที่เป็นธรรมชาติ คล้าย ๆ กับภาษาพูดของมนุษย์ จะช่วยในเรื่องของการสร้างแบบฟอร์มบนหน้าจอเพื่อจัดการเกี่ยวกับข้อมูล รวมไปถึงการออกรายงาน ซึ่งจะมีการจัดการที่ง่ายมาก ไม่ยุ่งยากเหมือนภาษารุ่นที่ 3
ตัวอย่างภาษารุ่นที่ 4 ได้แก่
• Visual Basic
• Visual C
• Delphi
ลักษณะของภาษารุ่นที่ 4 มีดังต่อไปนี้
• เป็นภาษาแบบ Nonprocedural ซึ่งเป็นลักษณะที่ผู้ใช้เพียงแต่บอกคอมพิวเตอร์ว่า ต้องการอะไร แต่ไม่ต้องบอกถึงรายละเอียดว่า ต้องทำอย่างไร คอมพิวเตอร์จะเป็นผู้จัดการให้เองหมด
• ส่วนใหญ่จะพบการใช้งานของภาษารุ่นที่ 4 ควบคู่อยู่ในระบบฐานข้อมูล โดยผู้ใช้ระบบฐานข้อมูล สามารถดูแลจัดการข้อมูลในระบบผ่านภาษารุ่นที่ 4 ได้
• ภาษารุ่นที่ 4 จะมีรูปแบบการเขียนโปรแกรมเฉพาะตัว และสามารถถูกแปลงให้กลายเป็นโปรแกรมรุ่นที่ 3 ได้ เช่น ภาษาโคบอล หรือ ภาษาซี

ยุคที่ 5 ภาษาธรรมชาติ (Natural Language)
เป็นภาษาในยุคที่ 5 ที่มีรูปแบบเป็นแบบ nonprocedural เช่นเดียวกับภาษารุ่นที่ 4 การที่เรียกว่า ภาษาธรรมชาติ เพราะจะสามารถสั่งงานคอมพิวเตอร์ได้โดยใช้ภาษามนุษย์ได้โดยตรง ซึ่งโดยทั่วไปคำสั่งที่มนุษย์ป้อนเข้าไปในคอมพิวเตอร์จะอยู่ในรูปของภาษาพูดมนุษย์ ซึ่งอาจมีรูปแบบที่ไม่แน่นอนตายตัว แต่คอมพิวเตอร์ก็สามารถแปลคำสั่งเหล่านั้นให้อยู่ในรูปแบบที่คอมพิวเตอร์เข้าใจได้ ถ้าคำถามใดไม่กระจ่าง ก็จะมีการถามกลับเพื่อให้เข้าใจคำถามได้อย่างถูกต้อง
ภาษาธรรมชาตินี้ ถูกสร้างขึ้นมาจากเทคโนโลยีทางด้านระบบ ผู้เชี่ยวชาญ (Expert System) ซึ่งเป็นงานที่อยู่ในสาขา ปัญญาประดิษฐ์ (Artificial Intelligence) ในการที่พยายามทำให้คอมพิวเตอร์เปรียบเสมือนกับเป็นผู้เชี่ยวชาญคนหนึ่งที่สามารถคิดและตัดสินใจได้เช่นเดียวกับมนุษย์ คอมพิวเตอร์สามารถตอบคำถามของมนุษย์ได้อย่างถูกต้อง พร้อมทั้งมีข้อแนะนำต่างๆ เพื่อช่วยในการตัดสินใจของมนุษย์ได้อีกด้วย ระบบผู้เชี่ยวชาญนี้จะใช้กับงานเฉพาะด้านใดด้านหนึ่ง เช่น ทางการแพทย์ การพยากรณ์อากาศ การวิเคราะห์ทางเคมี การลงทุน
ซึ่งในการนี้จะต้องมีการเก็บรวบรวมข้อมูลและข่าวสารจาก ผู้เชี่ยวชาญเฉพาะด้านนั้น ๆ และแปลงให้อยู่ในรูปของกฎเกณฑ์ และข้อความจริงต่าง ๆ เก็บไว้ในฐานข้อมูลของระบบผู้เชี่ยวชาญ ที่เรียกว่า ฐานความรู้ (Knowledge Base) ซึ่งจะต้องเก็บ ข้อมูลที่มีอยู่เป็นจำนวนมหาศาลและให้ผู้ใช้สามารถใช้ภาษา ธรรมชาติในการดึงข้อมูลจากฐานความรู้นี้ได้ ดังนั้นเราจึงอาจเรียกระบบผู้เชี่ยวชาญนี้ได้อีกอย่างหนึ่งว่าเป็น ระบบฐานความรู้ (Knowledge Base System)