ภาษาโปรแกรมรุ่นที่ห้า (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

