อ่าน 3 นาที
คราส
ECLiPSe เป็นระบบซอฟต์แวร์สำหรับการพัฒนาและใช้งาน แอป พลิเคชันการเขียนโปรแกรมตรรกะแบบมีข้อจำกัด เช่น ในด้านการ เพิ่มประสิทธิภาพ การ วางแผน การจัดตารางเวลา การ จัดสรรทรัพยากร...
คราส
| ระบบการเขียนโปรแกรมเชิงตรรกะแบบมีข้อจำกัด ECLiPSe | |
|---|---|
| นักพัฒนา | ศูนย์วิจัยอุตสาหกรรมคอมพิวเตอร์แห่งยุโรป (ECRC), ศูนย์วางแผนและควบคุมทรัพยากรมิวนิก , อิมพีเรียลคอลเลจลอนดอน (IC-Parc) ซิสโก้ซิสเต็มส์ |
| ปล่อย | 1992 |
| เวอร์ชันเสถียร | 7.0 / 22 มกราคม 2561 |
| เขียนเป็น | ซี , โปรล็อก |
| ระบบปฏิบัติการ | ข้ามแพลตฟอร์ม |
| มีจำหน่ายใน | ภาษาอังกฤษ |
| พิมพ์ | การเขียนโปรแกรมตรรกะแบบมีข้อจำกัด |
| ใบอนุญาต | Mozilla Public (MPL) |
| เว็บไซต์ | eclipseclp |
| ที่เก็บข้อมูล | sf.net/p/eclipse-clp/git/ |
ECLiPSeเป็นระบบซอฟต์แวร์สำหรับการพัฒนาและใช้งาน แอป พลิเคชันการเขียนโปรแกรมตรรกะแบบมีข้อจำกัดเช่น ในด้านการเพิ่มประสิทธิภาพการวางแผนการจัดตารางเวลาการจัดสรรทรัพยากรการจัดตารางเวลา การขนส่ง ฯลฯ นอกจากนี้ยังเหมาะสำหรับการสอนด้านต่างๆ ของ การแก้ปัญหา เชิงการจัดเรียงเช่น การสร้าง แบบจำลองปัญหาการเขียนโปรแกรมแบบมีข้อจำกัด การเขียนโปรแกรมทางคณิตศาสตร์และเทคนิคการค้นหา[ 1 ]ประกอบด้วยไลบรารีตัวแก้ ข้อจำกัด ภาษาการสร้างแบบจำลองและ การควบคุมระดับสูง (ซูเปอร์เซ็ตของProlog ) อินเทอร์เฟซไปยังตัวแก้ปัญหา ของบุคคลที่สาม สภาพแวดล้อมการพัฒนาแบบบูรณาการ และอินเทอร์เฟซสำหรับการฝังลงในสภาพแวดล้อมโฮสต์
ECLiPSe ได้รับการพัฒนาจนถึงปี 1995 ที่ศูนย์วิจัยอุตสาหกรรมคอมพิวเตอร์แห่งยุโรป (ECRC) ในมิวนิกและจากนั้นจนถึงปี 2005 ที่ศูนย์วางแผนและควบคุมทรัพยากรแห่งอิมพีเรียลคอลเลจลอนดอน (IC-Parc) ต่อมาถูกซื้อกิจการโดยซิสโก้ซิสเต็มส์ในเดือนกันยายนปี 2006 ได้มีการเผยแพร่เป็นซอฟต์แวร์โอเพนซอร์สภายใต้สัญญาอนุญาตที่เทียบเท่ากับMozilla Public Licenseและปัจจุบันให้บริการอยู่บนSourceForge
ภาษา
ภาษา ECLiPSe [ 2 ]เข้ากันได้กับProlog ในระดับมาก และรองรับภาษาถิ่นต่างๆ รวมถึงISO Prolog ด้วย เนื่องจากเป็นภาษาเชิงประกาศจึงสามารถใช้ได้ทั้งเป็นภาษาสำหรับการสร้างแบบจำลองเพื่ออธิบายปัญหา และเป็นภาษาสำหรับการเขียนโปรแกรมทั่วไป
นอกเหนือจากชนิดข้อมูลพื้นฐานของ Prolog แล้ว ยังมีชนิดข้อมูลต่อไปนี้ให้ใช้งาน: สตริง จำนวนเต็มและจำนวนตรรกยะ ที่มีความ แม่นยำไม่จำกัดและช่วงค่าทศนิยม นอกจากนี้ยังรองรับไวยากรณ์ อาร์เรย์และโครงสร้างที่มีชื่อฟิลด์ซึ่งมีประโยชน์อย่างยิ่งในการสร้างแบบจำลองข้อจำกัด
โครงสร้างการวนซ้ำเชิงตรรกะ [ 3 ] ขจัดความจำเป็นสำหรับรูปแบบ การเรียกซ้ำแบบ ง่ายส่วนใหญ่
ECLiPSe มีสิ่งอำนวยความสะดวกที่ครอบคลุม[ 2 ]เพื่อใช้ในการ ควบคุมพฤติกรรม ที่ขับเคลื่อนด้วยข้อมูลซึ่งรวมถึงข้อกำหนดการหน่วงเวลาแบบประกาศ ตลอดจนฟังก์ชันพื้นฐานสำหรับการควบคุมแบบเมตาโปรแกรมมิ่ง เช่น การระงับเป้าหมายที่ชัดเจน สิ่งอำนวยความสะดวกในการเรียกใช้งานที่ยืดหยุ่น และลำดับความสำคัญในการดำเนินการ เมื่อรวมกับ ประเภทข้อมูล ตัวแปรที่มีคุณสมบัติแล้วนี่คือกุญแจสำคัญสำหรับการขยาย ภาษา การเขียนโปรแกรมตรรกะ พื้นฐานมากมาย รวมถึงฟังก์ชันการทำงานตามข้อจำกัดทั้งหมด ระบบจะเรียกตัวจัดการเหตุการณ์ที่ผู้ใช้กำหนดได้เมื่อพบตัวแปรที่มีคุณสมบัติในบริบทบางอย่าง เช่น การรวม
ระบบโมดูลควบคุมการมองเห็นของ述语 (predicates), ที่เก็บข้อมูลที่ไม่ใช่เชิงตรรกะ (non-logical stores), การแปลงซอร์สโค้ด (source transformations) และการตั้งค่าไวยากรณ์ (syntax settings) อินเทอร์เฟซของโมดูลสามารถขยายและจำกัดได้ และโมดูลที่เขียนด้วยภาษาถิ่นที่แตกต่างกันสามารถผสมผสานกันได้ภายในแอปพลิเคชันเดียว
โปรแกรมอาจมีคำอธิบายที่มีโครงสร้าง ซึ่งสามารถนำมาใช้สร้างเอกสารอ้างอิงได้
ห้องสมุด
ECLiPSe มีไลบรารีตัว แก้ ข้อจำกัด หลายชุด ซึ่งสามารถนำไปใช้ในโปรแกรมแอปพลิเคชันได้:
ข้อจำกัดทางเลขคณิตบนโดเมนจำกัด ข้อจำกัดของเซตจำกัด การแพร่กระจายแบบทั่วไป การให้เหตุผลเชิงช่วงเวลาบนข้อจำกัดที่ไม่เป็นเชิงเส้น อินเทอร์เฟซไปยังตัวแก้ปัญหาซิมเพล็กซ์ภายนอก กฎการจัดการข้อจำกัด (CHR) และอื่นๆ
ไลบรารีอื่นๆ ใช้เมธอดการค้นหาต่างๆ เช่น การค้นหา แบบแยกสาขาและจำกัดขอบเขต (branch-and-bound) , การค้นหาตามการซ่อมแซม (repair-based search), และการค้นหาความคลาดเคลื่อนที่จำกัด (limited discrepancy search)
ECLiPSe เชื่อมต่อกับตัวแก้ปัญหาภายนอก โดยเฉพาะตัวแก้ปัญหาการเขียนโปรแกรมเชิงเส้นและจำนวนเต็มผสมCOIN-OR , CPLEX , Gurobi และXpress-MP [ 4 ]และไลบรารีตัวแก้ปัญหา Gecode
ไลบรารีความเข้ากันได้สำหรับISO Prolog [ 5 ]และ ภาษาถิ่น Prolog อื่นๆ (C-Prolog, Quintus , SICStus , SWI-Prolog ) ช่วยให้สามารถนำไลบรารีที่เขียนด้วยภาษาถิ่นเหล่านั้นมาใช้ซ้ำได้
ชุดการแจกจ่ายนี้ประกอบด้วยไลบรารีเสริมอื่นๆ อีกมากมาย รวมถึงไลบรารีที่เป็นที่นิยมและอยู่ ในโดเมนสาธารณะจำนวนหนึ่งด้วย
สถาปัตยกรรมระบบ
ระบบนี้มีคอมไพเลอร์แบบเพิ่มทีละขั้น ซึ่งแปลงซอร์สโค้ดเป็น โค้ด เครื่องเสมือนคอมไพเลอร์จะปรับการเลือกดัชนี ลำดับการรวม การแทรกโครงสร้างควบคุมและสามารถพิจารณาข้อมูลโหมดได้
ระบบรันไทม์ใช้เครื่องเสมือนการจัดการหน่วยความจำอัตโนมัติด้วยการเก็บขยะของสแต็กและพจนานุกรม การจัดการเหตุการณ์ และการประมวลผลแบบขับเคลื่อนด้วยข้อมูล เวอร์ชันของ ECLiPSe ใช้การประมวลผลแบบขนาน OR
ส่วนประกอบของ ECLiPSe สามารถผสานรวมเข้ากับซอฟต์แวร์ได้ผ่านทางอินเทอร์เฟซระดับต่ำในภาษาC หรือ C ++หรือผ่านทางอินเทอร์เฟซระดับสูงในภาษา JavaและTcl
ดูเพิ่มเติม
ลิงก์ภายนอก
- ECLiPSeบนSourceForge
- การเขียนโปรแกรมเชิงตรรกะแบบมีข้อจำกัดโดยใช้ ECLiPSeหนังสือเรียนโดย Krzysztof Aptและ Mark Wallace
- คู่มือฉบับย่อและเข้าใจง่ายเกี่ยวกับการเขียนโปรแกรมเชิงตรรกะแบบมีข้อจำกัดผ่าน ECLiPSeโดย Antoni Niederliński
- เว็บไซต์การเรียนรู้ออนไลน์ ECLiPSE (พร้อมวิดีโอสอนการใช้งาน)
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ คราส
ECLiPSe เป็นระบบซอฟต์แวร์สำหรับการพัฒนาและใช้งาน แอป พลิเคชันการเขียนโปรแกรมตรรกะแบบมีข้อจำกัด เช่น ในด้านการ เพิ่มประสิทธิภาพ การ วางแผน การจัดตารางเวลา การ จัดสรรทรัพยากร...
ภาษา
ภาษา ECLiPSe [ 2 ] เข้ากันได้กับ Prolog ในระดับมาก และรองรับภาษาถิ่นต่างๆ รวมถึง ISO Prolog ด้วย เนื่องจากเป็นภาษา เชิงประกาศ จึงสามารถใช้ได้ทั้งเป็น ภาษาสำหรับการสร้างแบบจำลอง เพื่ออธิบายปัญหา และเป็น ภาษาสำหรับการเขียนโปรแกรม ทั่วไป
ห้องสมุด
ECLiPSe มี ไลบรารี ตัว แก้ ข้อจำกัด หลายชุด ซึ่งสามารถนำไปใช้ในโปรแกรมแอปพลิเคชันได้:
สถาปัตยกรรมระบบ
ระบบนี้มีคอมไพเลอร์แบบเพิ่มทีละขั้น ซึ่งแปลงซอร์สโค้ดเป็น โค้ด เครื่องเสมือน คอมไพเลอร์จะปรับการเลือกดัชนี ลำดับการรวม การแทรก โครงสร้างควบคุม และสามารถพิจารณาข้อมูลโหมดได้