วันพฤหัสบดีที่ 19 พฤษภาคม พ.ศ. 2554

ภาษาคอมพิวเตอร์ คืออะไร

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

     2. ภาษาแอสแซมบลี (Assembly Language)
     เป็นภาษาที่มีการใช้สัญลักษณ์ข้อความ (Mnemonic codes) แทนกลุ่มของเลขฐานสอง เพื่อให้ง่ายต่อการเขียนและการจดจำมากกว่าภาษาเครื่อง แต่เนื่องจากคอมพิวเตอร์รู้จักเฉพาะภาษาเครื่องเท่านั้น ดังนั้นภาษาแอสแซมบลี จึงต้องใช้ตัวแปลภาษาที่เรียกว่า “แอสแซมเบลอร์ (Assembler)” เพื่อแปลคำสั่งภาษาแอสแซมบลีให้เป็นภาษาเครื่อง นอกจากนี้ผู้ที่จะเขียนโปรแกรมภาษาแอสแซมบลี ได้จะต้องมีความรู้ความเข้าใจในเรื่องของฮาร์ดแวร์เป็นอย่างดีเนื่องจากต้องยุ่งเกี่ยวกับการใช้งานหน่วยความจำที่เป็นรีจิสเตอร์ภายในตลอด ดังนั้นจึงเหมาะกับงานที่ต้องการความเร็วในการทำงานสูง ถึงแม้ว่าภาษานี้จะง่ายกว่าการเขียนภาษาเครื่อง แต่ก็ยังถือว่าเป็นภาษาชั้นต่ำที่ยังยากต่อการเขียนและการเรียนรู้มากสำหรับผู้ที่ไม่มีความรู้ด้านฮาร์ดแวร์นัก

     3. ภาษาชั้นสูง (High-level Language)     เรียกอีกอย่างว่าภาษารุ่นที่ 3 (3rd Generation Languages หรือ 3GLs) เป็นภาษาที่ถูกสร้างขึ้นมาเพื่อให้สามารถเขียนและอ่านโปรแกรมได้ง่ายขึ้น เนื่องจากมีลักษณะเหมือนภาษาอังกฤษทั่วๆ ไป และที่สำคัญคือ ผู้เขียนโปรแกรมไม่จำเป็นต้องมีความรู้เกี่ยวกับระบบฮาร์ดแวร์ ตัวอย่างของภาษาประเภทนี้ ได้แก่ ภาษาฟอร์แทน (FORTRAN) โคบอล (COBOL) เบสิก (BASIC) ปาสคาล (PASCAL) ซี (C) เอดา (ADA) เป็นต้น อย่างไรก็ตามโปรแกรมที่ถูกเขียนด้วยภาษาประเภทนี้จะทำงานได้ก็ต่อเมื่อมีการแปลงให้เป็นภาษาเครื่องเสียก่อน ซึ่งวิธีการแปลงภาษาชั้นสูงให้เป็นภาษาเครื่องนั้น จะทำได้โดยใช้โปรแกรมที่เรียกว่า “คอมไพล์เลอร์ (Compiler)” หรือ “อินเตอร์พรีเตอร์ (Interpreter)” อย่างใดอย่างหนึ่ง โดยภาษาชั้นสูงแต่ละภาษาจะมีตัวแปลภาษาเฉพาะเป็นของตนเองใช้แทนกันไม่ได้
3.1 คอมไพเลอร์
     จะทำการแปลโปรแกรมทั้งโปรแกรมให้เป็นภาษาเครื่องทีเดียวการแปลนี้จะเป็นการตรวจสอบไวยากรณ์ของภาษา ถ้ามีข้อผิดพลาดทางไวยากรณ์ของภาษาเกิดขึ้น (Syntax error) ก็จะแจ้งให้ทราบ เป็นข้อความไดแอคนอสติค (Diagnostic Message) เพื่อให้ผู้เขียนโปรแกรมแก้ไขให้ถูกต้อง แล้วจึงค่อยแปลคำสั่งใหม่ โปรแกรมที่ยังไม่ผ่านการแปลจะเรียกว่า Source Program หรือ Source module แต่ถ้าผ่านการแปลเรียบร้อยแล้วและไม่มีข้อผิดพลาดใดๆ จะเรียกโปรแกรมส่วนนี้ว่า Object Program หรือ Object module
ออปเจกต์โปรแกรมนี้จะยังไม่สามารถทำงานได้ จะต้องผ่านลิงค์ (Link) หรือรวมเข้ากับไลบรารี่ (Library) ของระบบก่อนจึงจะเป็นโปรแกรมที่สามารถทำงานได้หรือเป็นภาษาเครื่องที่เรียกว่า เอ็กซ์ซีคิวท์โปรแกรม (Execute Program) หรือ โหลดโมดูล (Load module) ซึ่งโดยทั่วไปแล้วจะเป็นไฟล์ที่มีนามสกุลเป็น .exe หรือ .com และสามารถนำโปรแกรมนี้ไปใช้งานได้ตลอดโดยไม่ต้องแปลใหม่อีก แต่ถ้ามีการแก้ไขโปรแกรมแม้เพียงเล็กน้อยก็จะต้องทำการแปลใหม่ตั้งแต่ต้น
3.2 อินเตอร์พรีเตอร์
     เป็นตัวแปลภาษาที่จะทำการแปลโปรแกรมภาษาชั้นสูงทีละคำสั่งให้เป็นภาษาเครื่องและทำการ Execute หรือทำงานคำสั่งนั้นทันทีทันใดก่อนที่จะทำการแปลในบรรทัดถัดไป ถ้าในระหว่างการแปลเกิดพบข้อผิดพลาดที่บรรทัดใดก็จะฟ้อง ให้ทำการแก้ไขทีละบรรทัดนั้นทันที อินเตอร์พรีเตอร์นี้เมื่อโปรแกรมเสร็จแล้วจะไม่สามารถเก็บเป็น Execute Program ได้ซึ่งต่างกับคอมไพเลอร์ ดังนั้นเมื่อจะเรียกใช้งานหรือรันโปรแกรมก็จะต้องทำการแปลโปรแกรมใหม่ทุกครั้ง ดังนั้นเมื่อจะเรียกใช้งาน Execute Program คอมไพเลอร์ ย่อมจะทำงานได้เร็วกว่าการเรียกใช้งานโปรแกรมที่ต้องผ่านการแปลด้วยอินเตอร์พรีเตอร์แต่ประโยชน์ของภาษาที่ถูกแปลด้วย อินเตอร์พรีเตอร์คือโปรแกรมจะมีโครงสร้างที่ง่ายต่อการพัฒนาตัวอย่างของภาษาโปรแกรมที่มีการใช้อินเตอร์พรีเตอร์ เป็นตัวแปลภาษาได้แก่ ภาษาเบสิก ภาษาเพิร์ล เป็นต้น
การเขียนโปรแกรมด้วยภาษาชั้นสูงนอกจากจะให้ความสะดวกแล้ว ผู้เขียนแทบจะไม่ต้องมีความรู้เกี่ยวกับการทำงานของฮาร์ดแวร์ก็สามารถเขียนโปรแกรมสั่งให้เครื่องคอมพิวเตอร์ทำงานได้ ข้อดีอีกอย่างคือสามารถนำโปรแกรมที่เขียนขึ้นไปใช้งานบนเครื่องใดก็ได้ คือมีลักษณะที่ไม่ขึ้นอยู่กับกับเครื่อง (Hardware Independent) เพียงแต่ต้องทำการการแปลโปรแกรมใหม่เท่านั้น แต่ภาษาเครื่องที่ได้จากการแปลภาษาชั้นสูงนี้อาจเยิ่นเย้อ และไม่มีประสิทธิภาพเท่ากับการเขียนด้วยภาษาเครื่องหรือแอสเซมบลีโดยตรง ภาษารุ่นที่ 3 นี้ส่วนใหญ่จะจัดอยู่ในกลุ่มของภาษาที่มีแบบแผน (Procedural language) เนื่องจากลักษณะการเขียนโปรแกรมจะมีโครงสร้างแบบแผนที่เป็นระเบียบ คือ งานทุกอย่างผู้เขียนโปรแกรมต้องเขียนโปรแกรมควบคุมการทำงานเองทั้งหมด และต้องเขียนคำสั่งการทำงานที่เป็นขั้นตอนทุกอย่าง ไม่ว่าจะเป็นการสร้างแบบฟอร์มกรอกข้อมูล การประมวลผล หรือการสร้างรายงาน ซึ่งโปรแกรมที่เขียนจะค่อนข้างซับซ้อนและใช้เวลาในการพัฒนาค่อนข้างยาก

     4. ภาษาชั้นสูงมาก (Very high-level Language)     เรียกได้อีกอย่างว่าภาษาในรุ่นที่ 4 (4GLs: Fourth Generation Languages) ภาษานี้เป็นภาษาที่อยู่ในระดับที่สูงกว่าภาษารุ่นที่ 3 มีลักษณะของภาษาในรุ่นที่เป็นธรรมชาติคล้ายๆ กับภาษาพูดของมนุษย์จะช่วย ในเรื่องของการสร้างแบบฟอร์มบนหน้าจอเพื่อจัดการเกี่ยวกับข้อมูล รวมไปถึงการออกรายงาน ซึ่งจะมีการจัดการที่ง่ายมากไม่ยุ่งยากเหมือนภาษารุ่นที่ 3 ตัวอย่างของภาษาในรุ่นที่ 4 ได้แก่ Informix-4GL, Focus, Sybase, InGres เป็นต้น

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