← กลับไปยังบทความทั้งหมด

ภาษาโปรแกรมรุ่นที่ห้า (5GL): นวัตกรรมและการแก้ปัญหาด้วยข้อกำหนด

ภาษาโปรแกรมรุ่นที่ห้า (5GL) ภาษาโปรแกรมรุ่นที่ห้า (Fifth-generation programming language หรือ 5GL) คือภาษาโปรแกรมระดับสูงที่เน้นการแก้ปัญหาโดยใช้ ข้อกำหนด (Constraints) ที่กำหนดให้โปรแกรม แทนที่จะใช้ อัลกอริทึม (Alg

สรุปใจความสำคัญ

  • ภาษาโปรแกรมรุ่นที่ห้า (5GL) เน้นการแก้ปัญหาโดยใช้ข้อกำหนด (Constraints) แทนการเขียนอัลกอริทึม
  • ถูกนำมาใช้ในการวิจัยด้านปัญญาประดิษฐ์ (AI) เป็นหลัก
  • ประเทศญี่ปุ่นเคยทุ่มงบประมาณมหาศาลในโครงการระบบคอมพิวเตอร์รุ่นที่ห้าในช่วงปี 1982-1993

ภาษาโปรแกรมรุ่นที่ห้า (Fifth-generation programming language หรือ 5GL) คือภาษาโปรแกรมระดับสูงที่เน้นการแก้ปัญหาโดยใช้ ข้อกำหนด (Constraints) ที่กำหนดให้โปรแกรม แทนที่จะใช้ อัลกอริทึม (Algorithm) ที่เขียนโดยโปรแกรมเมอร์ โดยส่วนใหญ่แล้ว ภาษาโปรแกรมเชิงตรรกะ (Logic Programming) และภาษาโปรแกรมแบบประกาศ (Declarative Languages) จะถูกจัดอยู่ในกลุ่มของภาษาโปรแกรมรุ่นที่ห้า

ประวัติความเป็นมา

ในขณะที่ภาษาโปรแกรมรุ่นที่สี่ (4GL) ถูกออกแบบมาเพื่อสร้างโปรแกรมเฉพาะทาง ภาษาโปรแกรมรุ่นที่ห้าถูกออกแบบมาเพื่อให้คอมพิวเตอร์สามารถแก้ปัญหาที่ได้รับมอบหมายได้ด้วยตนเองโดยไม่ต้องมีโปรแกรมเมอร์เข้ามาเกี่ยวข้องในขั้นตอนการประมวลผล ผู้ใช้เพียงแค่ระบุว่าปัญหาคืออะไรและเงื่อนไขใดบ้างที่ต้องทำให้สำเร็จ โดยไม่ต้องกังวลเกี่ยวกับวิธีการให้โปรแกรมทำงานหรือการสร้างอัลกอริทึมเพื่อแก้ปัญหานั้นๆ

ภาษาโปรแกรมรุ่นที่ห้าถูกนำมาใช้ในการวิจัยด้าน ปัญญาประดิษฐ์ (Artificial Intelligence) เป็นหลัก ตัวอย่างของภาษาโปรแกรมรุ่นที่ห้า ได้แก่ OPS5, Mercury และ ICAD (ซึ่งสร้างขึ้นจาก Lisp) นอกจากนี้ KL-ONE ยังเป็นตัวอย่างของภาษาเฟรม (Frame Language) ที่มีความเกี่ยวข้องกับแนวคิดนี้

ความคาดหวังในยุค 80 และโครงการของญี่ปุ่น

ในช่วงทศวรรษ 1980 ภาษาโปรแกรมรุ่นที่ห้าถูกมองว่าเป็นอนาคตของการเขียนโปรแกรม มีการคาดการณ์ว่าภาษาเหล่านี้จะเข้ามาแทนที่การเขียนโปรแกรมเชิงขั้นตอน (Procedural Programming) สำหรับทุกงานที่สามารถกำหนดเป็นชุดของข้อกำหนดทางตรรกะได้

ที่โดดเด่นที่สุดคือ ระหว่างปี 1982 ถึง 1993 ประเทศญี่ปุ่นได้ทุ่มงบประมาณและการวิจัยอย่างมหาศาลในโครงการระบบคอมพิวเตอร์รุ่นที่ห้า (Fifth Generation Computer Systems project) เพื่อหวังจะสร้างเครือข่ายคอมพิวเตอร์ขนาดใหญ่ที่ใช้เครื่องมือเหล่านี้ในการประมวลผล

ข้อจำกัดและปัญหาที่พบ

อย่างไรก็ตาม เมื่อมีการสร้างโปรแกรมที่มีขนาดใหญ่ขึ้น ข้อบกพร่องของแนวทางนี้ก็เริ่มปรากฏชัดเจนขึ้น การสร้างอัลกอริทึมที่มีประสิทธิภาพในการแก้ปัญหาจากชุดข้อกำหนดที่กำหนดไว้นั้นเป็นเรื่องที่ยากมาก และขั้นตอนสำคัญนี้ยังคงต้องอาศัยวุฒิภาวะและวิสัยทัศน์ของโปรแกรมเมอร์ที่เป็นมนุษย์ ซึ่งไม่สามารถทำให้เป็นระบบอัตโนมัติได้ทั้งหมดในขณะนี้

ความเข้าใจผิดที่พบบ่อย

บริษัทผู้พัฒนาซอฟต์แวร์บางรายมักโฆษณาภาษาโปรแกรมของตนว่าเป็น 5GL เพื่อให้ดูทันสมัย แต่ในความเป็นจริง ส่วนใหญ่เป็นเพียงภาษาโปรแกรมรุ่นที่สี่ (4GL) ที่มีการเพิ่มระบบอัตโนมัติและฐานความรู้ (Knowledge Base) เข้าไปเท่านั้น

เนื่องจากกระแสความนิยมของ 5GL ในช่วงทศวรรษ 1980 ได้จางหายไป และโครงการต่างๆ ถูกยกเลิกไปในที่สุด ความตระหนักรู้เกี่ยวกับ 5GL ที่真正 (แท้จริง) จึงลดลง ทำให้บริษัทผู้พัฒนาสามารถนำคำนี้กลับมาใช้ในการตลาดเพื่อดึงดูดลูกค้าโดยไม่ก่อให้เกิดข้อโต้แย้งในหมู่โปรแกรมเมอร์รุ่นปัจจุบัน

คำถามที่พบบ่อย

ภาษาโปรแกรมรุ่นที่ห้า (5GL) แตกต่างจากรุ่นที่สี่ (4GL) อย่างไร?

4GL ถูกออกแบบมาเพื่อสร้างโปรแกรมเฉพาะทาง แต่ 5GL ถูกออกแบบมาเพื่อให้คอมพิวเตอร์แก้ปัญหาได้ด้วยตนเองโดยใช้ข้อกำหนดที่ผู้ใช้กำหนดให้

ทำไม 5GL ถึงไม่สามารถแทนที่การเขียนโปรแกรมเชิงขั้นตอนได้ทั้งหมด?

เพราะการสร้างอัลกอริทึมที่มีประสิทธิภาพจากชุดข้อกำหนดเป็นเรื่องยาก และยังคงต้องอาศัยการตัดสินใจและวิสัยทัศน์ของมนุษย์ในการออกแบบ

ตัวอย่างภาษาโปรแกรมรุ่นที่ห้าคืออะไร?

ตัวอย่างเช่น OPS5, Mercury และ ICAD