Logtalk เป็นภาษาโปรแกรมเชิงตรรกะเชิงวัตถุซึ่งสามารถใช้งาน Prolog ได้มากที่สุดในฐานะคอมไพเลอร์เอนด์เอนด์ ในฐานะที่เป็นภาษาหลายรูปแบบ Logtalk มีการสนับสนุนทั้งต้นแบบและคลาสโปรโตคอล (อินเทอร์เฟซ) การเขียนโปรแกรมแบบเป็นส่วนประกอบผ่านองค์ประกอบตามหมวดหมู่การเขียนโปรแกรมที่อิงกับเหตุการณ์และการเขียนโปรแกรมแบบมัลติเธรดระดับสูง
มีอะไรใหม่ ในรุ่นนี้:
* ปรับปรุงให้ดียิ่งขึ้น: หลีกเลี่ยงการเปิดเผยข้อมูลคำเตือนเกี่ยวกับคำสั่ง `meta_predicate / 1` ที่ปลอมแปลงไว้เมื่อเมตาแท็กจริงไม่มีตัวแปรที่มี หัวประโยค
* ปรับปรุง: อนุญาตให้ใช้นิพจน์แลมบ์ดาในกฎไวยากรณ์โดยไม่ต้องเรียก `call // 1`
* FIXED: ข้อผิดพลาดในการเพิ่มประสิทธิภาพในการรวบรวมอาร์กิวเมนต์เมตาแท็กปิดเมื่อเป้าหมายที่ได้รับคือการโทรไปยังคำกริยาที่มีอยู่ภายใน Prolog เนื่องจากมีการฝังคำนิยามของผู้ใช้
* FIXED: ข้อผิดพลาดในการเพิ่มประสิทธิภาพในการรวบรวมอาร์กิวเมนต์เมตาแท็กปิดเมื่อเป้าหมายที่ได้รับคือการเรียกใช้คอนโทรลคอนโทรล Prolog `: / 2`
มีอะไรใหม่ ใน รุ่น 3.19:
* ADDED: สนับสนุนการกำหนดคำอธิบายเพิ่มเติมที่มีอยู่ในตัว Prolog สำหรับผ้าสำลี
ตรวจสอบเป้าหมายที่เป็นจริงหรือเท็จกับไฟล์อะแดปเตอร์โดยใช้
hook predicate `'$ lgt_candidate_tautology_or_falsehood_goal_hook' / 1`.
* ADDED: ออบเจ็กต์ `module` สำหรับวัตถุที่เป็นผลมาจากการรวบรวม
ของโมดูล Prolog
* ADDED: ข้อผิดพลาดที่ไม่พึงประสงค์ในการขว้างปาเมธอดในตัว 'syntax_error / 1` และ
`system_error / 0` วิธีการเหล่านี้ใช้ข้อผิดพลาดมาตรฐาน `ข้อผิดพลาด / 2 'มาตรฐาน
และเทียบเท่ากับลำดับของ `context / 1` และ` throw / 1` วิธีการเรียก
* REMOVED: สนับสนุน Logtalk 2.x 'เลิกใช้ / 1' ที่เลิกใช้งานแล้วใช้ / 1 และ
`alias / 3` directives
* REMOVED: สนับสนุนการคอนโทรล Logtalk 2.x `: / 1` ที่เลิกใช้แล้ว
* REMOVED: รองรับ Logtalk 2.x 'unknown`, `singleletons`,
`tmpdir` และ` version` compiler flags
มีอะไรใหม่ ในรุ่น 3.14:
ใหม่: สนับสนุน _parameter variables_ จัดหาทางเลือกให้กับ
`parameter / 2` และ` this / 1` built-in methods เพื่อเข้าถึงพารามิเตอร์เอนทิตี
ตัวแปรพารามิเตอร์คือตัวแปรที่ใช้ในตัวระบุเอนทิตีเชิงคณิตศาสตร์
ที่เริ่มต้นและสิ้นสุดด้วยเครื่องหมายขีดล่าง (_VariableName_`) เกิดขึ้น
ของตัวแปรพารามิเตอร์ในประโยคเอนทิตี้จะรวมเป็นนัยกับ
พารามิเตอร์เอนทิตี ซึ่งช่วยให้สามารถเพิ่มพารามิเตอร์เอนทิตีหรือจัดเรียงใหม่หรือ
ลบโดยไม่ต้องมีการเปลี่ยนแปลงใด ๆ ในข้อที่อ้างถึงพวกเขา
พารามิเตอร์ตัวแปรได้รับการสนับสนุนเฉพาะสำหรับอ็อบเจ็กต์ที่กำหนดไว้ใน
มีอะไรใหม่ ในรุ่น 3.13:
ใหม่: การสนับสนุนคอมไพเลอร์สำหรับการตรวจจับการโทรไปยังตำแหน่งที่มีอยู่ในท้องที่โดยไม่มีข้อที่ตรงกัน (aka trivial fail. )
มีอะไรใหม่ ในเวอร์ชัน 3.11.1:
* ปรับปรุง: คำเตือนของคอมไพเลอร์และข้อความแสดงข้อผิดพลาดเพื่อให้สอดคล้องกันมากขึ้นเพื่อช่วยในการแยกวิเคราะห์โดยบรรณาธิการและ IDEs และเพื่อหลีกเลี่ยงการพิมพ์คำที่อาจมีขนาดใหญ่
* ปรับปรุง: คอมไพเลอร์ไม่มีการเรียกไปยังฐานข้อมูลและคำทำนายการสะท้อนซึ่งอาร์กิวเมนต์แรกเป็นเทอมที่ผ่านการรับรองโดยโมดูลโดยใช้คอนโทรลเลอร์การควบคุมบายพาส `{} / 1`
* ปรับปรุง: การตรวจสอบข้อผิดพลาดของคอมไพเลอร์สำหรับการเรียกข้อมูลฐานข้อมูลและการสะท้อนซึ่งอาร์กิวเมนต์แรกเป็นเทอมที่มีการใช้โมดูล
* ปรับปรุง: ลดจำนวนการโหลดไฟล์ที่เรียกโดยการเรียกไปยังคำอธิบาย `logtalk_make / 0-1`
* FIXED: กรณีที่ `predicates logtalk_make / 0-1` ล้มเหลวในการโหลดไฟล์ที่คอมไพล์สร้างข้อผิดพลาดของคอมไพเลอร์
มีอะไรใหม่ ในเวอร์ชัน 3.11:
* CHANGED: คำย่อที่มีอยู่ภายใน 'current_event / 5` เพื่อสร้างอาร์กิวเมนต์แรกเสมอเมื่อเรียกใช้โดยไม่มีการผูก
* ADDED: สนับสนุนการแทนที่ไดเรกทอรีเริ่มต้นเริ่มต้นด้วยการกำหนด
นามแฝงของห้องสมุด `scratch_directory` ในแฟ้มการเตรียมใช้งานเบื้องหลัง ProRoltr
(สมมุติให้โหลดก่อนโหลด Logtalk) หลังจากคุยกับ
Douglas R. Miles เกี่ยวกับการสนับสนุนการติดตั้ง Logtalk ในไดเร็กทอรีแบบอ่านอย่างเดียว
และเรียกใช้อินสแตนซ์ของ Logtalk หลาย ๆ แบบพร้อม ๆ กันโดยไม่มีข้อขัดแย้ง
* ADDED: บริบท 'context / 1` แบบ built-in context method เพื่อให้สามารถเข้าถึงได้
ไปยังบริบทการเรียกใช้คำร้อง ส่วนใหญ่ใช้สำหรับการตั้งค่าเริ่มต้น
บริบทข้อผิดพลาดเมื่อตรวจสอบชนิดอาร์กิวเมนต์ที่ระบุ
* เพิ่ม: รองรับการพิมพ์ข้อความชนิด `debug` และ` debug (_) ` เหล่านี้
ข้อความจะถูกพิมพ์โดยค่าเริ่มต้นเมื่อมีการเปิดใช้งาน 'debug` flag
* ADDED: Property ประกอบด้วย `` (ไฟล์) `ไปยัง` logtalk :: loaded_file_property / 2`
predicate เพื่อให้สามารถแจงนับโดย backtracking ไฟล์ทั้งหมดที่รวมอยู่ใน a
(ใช้คำสั่ง `include / 1`)
มีอะไรใหม่ ในรุ่น 3.10.7:
* RENAMED: "logtalk_make / 1" target `missing` เป็น` check`
* เพิ่ม: รองรับการขยายเป้าหมาย `logtalk_make / 1` ด้วยผู้ใช้กำหนด
การกระทำโดยใช้นิพจน์ multifile ใหม่ `logtalk_make_target_action / 1`
* เพิ่ม: คอมไพเลอร์ตรวจสอบผ้าสำลีและเป้าหมายเอนทิตี้เท็จ
การตรวจสอบในปัจจุบันคือการเรียก Prolog unification การเปรียบเทียบและประเภท
ทดสอบ predicates ในตัว
มีอะไรใหม่ ในรุ่น 3.10.5:
* FIXED: Regression นำมาใช้ในรุ่น 3.10.2 เมื่อเรียกใช้เมตาแท็ก บริบทในตัววิธี
* FIXED: ความผิดพลาดของคอมไพเลอร์ที่เกิดจากการใช้การตรวจสอบความสามารถในการพกพาเพื่อเรียกใช้ Predictates ในตัว Prolog และฟังก์ชันที่พบในส่วนเสริม (โดยปกติจะเกิดจากกลไกการขยายระยะเวลา)
strong> ในเวอร์ชัน 3.10.3:
* ปรับปรุง: รหัสแบบง่ายที่สร้างขึ้นสำหรับ predicates แบบ multifile
* คงที่: การถดถอยในรุ่นก่อนหน้าในการรวบรวม multifile
มีอะไรใหม่ ในเวอร์ชัน 3.09.1:
* เพิ่ม: สนับสนุน `number_of_rules / 1` และ` number_of_user_rules / 1` วัตถุ
และคุณสมบัติประเภท
* ADDED: รองรับคุณสมบัติ predicate ของ number_of_rules / 1`
* ADDED: ตรวจหาคำสั่ง `meta_predicate / 1` ที่ระบุเป้าหมายอย่างไม่ถูกต้อง
meta-argument ซึ่งเป็นจริงแล้วการปิดจะถูกส่งผ่านไปยังเมตาแท็ก `call / 2-N`
โทร ขอขอบคุณอรุนมามัดดาร์สำหรับรายงาน
* ADDED: การตรวจหาคำสั่งขอบเขตขอบเขตที่ไม่มีอยู่ในที่ที่มี
มีอะไรใหม่ ในเวอร์ชัน 3.09.0:
* เปลี่ยนไป: ไฟล์การตั้งค่าจะถูกค้นหาในผู้ใช้ด้วยเช่นกัน ไดเรกทอรีบ้าน
เมื่อไม่พบในไดเร็กทอรี startup หรือในไดเร็กทอรีผู้ใช้ Logtalk
การตั้งค่า `settings_file` flag เป็น` restrict` จะ จำกัด การค้นหาไว้
ไฟล์การตั้งค่าไปยังไดเร็กทอรีผู้ใช้ Logtalk และไดเร็กทอรีโฮมของผู้ใช้
การเปลี่ยนแปลงนี้จะมีประโยชน์เมื่อทีมแชร์การติดตั้ง Logtalk กับทั้งสองอย่าง
ตัวแปรสภาพแวดล้อม `LOGTALKHOME` และ` LOGTALKUSER` ชี้ไปที่
ไดเรกทอรีเดียวกัน ขอขอบคุณ Barry Evans สำหรับคำแนะนำ
มีอะไรใหม่ ในเวอร์ชัน 3.08.0:
* เปลี่ยนแปลง: ตรวจสอบว่าในข้อผิดพลาดของคอมไพเลอร์และข้อความเตือน ไฟล์และบรรทัดข้อมูลอยู่เสมอบรรทัดสุดท้ายสำหรับปัญหาที่รายงาน
มีอะไรใหม่ ในเวอร์ชัน 3.07.0:
* ADDED: ค่าสถานะแบบอ่านอย่างเดียว "unicode" เพื่ออธิบายเอนหลังคอมไพเลอร์ Prolog
สนับสนุนมาตรฐาน Unicode
* เพิ่ม: สนับสนุน `++` (พื้นดิน) และ `--` (ไม่ จำกัด ) อาร์กิวเมนต์อาร์กิวเมนต์
โหมด (ประกาศเป็นตัวดำเนินการคำนำหน้า) สำหรับใช้กับ `โหมด / 2` predicate
คำสั่ง
* ADDED: รองรับการระบุค่ากำหนด `one_or_error` ในโหมด` / 2`
คำสั่งที่ระบุไว้ มีประโยชน์สำหรับการจัดทำเอกสาร predicates ตรวจสอบชนิด
* ปรับปรุง: ตรวจหาความพยายามที่จะเรียกเป้าหมายเชิงปริมาณที่มีอยู่ทางด้านนอก
ขอบเขตของ "bagof / 3" และ "setof / 3"
* คงที่: เมื่อคอมไพล์ `use / 2` directives อย่าสร้างคำสั่ง linking สำหรับ
ใช้รันไทม์สำหรับ predicates ในตัวใน `user` เมื่อไม่มีการกำหนดนามแฝง
* FIXED: เมื่อแพร่กระจายความล้มเหลวในการคอมไพล์ไฟล์สำหรับไฟล์หลัก,
ให้แน่ใจว่าบรรพบุรุษของไฟล์จะถูกโหลดใหม่โดยเริ่มจากบรรพบุรุษด้านบน
โดยกลไกการทำ
* คงที่: หลีกเลี่ยงการโหลดซ้ำซ้อนเมื่อเรียก `logtalk_make / 0` หรือ
`logtalk_make / 1` โดยมีเป้าหมาย 'ทั้งหมด'
* FIXED: ตรวจหา predicates ที่หายไปในสาย `^ ^ / 1` เมื่อโทรเข้า
`logtalk_make / 1` โดยมีเป้าหมาย` missing`
* ตรึง: ข้อผิดพลาดใน API การสะท้อนซึ่งมีการอ้างถึงคำอ้างอิงบางส่วน
ข้อมูลไม่ได้ถูกบันทึกไว้ ขอบคุณ Edward Schwartz สำหรับรายงานข้อบกพร่อง
มีอะไรใหม่ ในเวอร์ชัน 3.06.2:
ข่าวประชาสัมพันธ์ฉบับนี้ดำเนินการต่อในการปรับปรุงเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ภายใต้ การสนับสนุนของ Kyndi, Inc ซึ่งจะรวมถึงเครื่องมือ wrapper เวอร์ชันใหม่สำหรับการย้ายแอปพลิเคชัน Prolog แบบธรรมดาและการปรับปรุงและการแก้ไขสำหรับเครื่องมือ lgtunit และแผนผัง นอกจากนี้ยังมีการทดสอบหน่วยใหม่การแก้ไขคอมไพเลอร์และเอกสารประกอบและการปรับปรุงความเข้ากันได้ของ Lean Prolog
มีอะไรใหม่ ในเวอร์ชัน 3.04.1:
* คงที่: ข้อผิดพลาดของคอมไพเลอร์ที่คำกริยาที่ขยายระยะโดยการเรียกใช้เมธอด `compile_aux_clauses / 1` อาจถูกรายงานผิดพลาดว่าไม่ถูกต้อง
* FIXED: เรียกไปยัง `predefinied / 1` predicate จากภายใน` object` ของผู้ใช้ `` ต้องไม่ต้องใช้อาร์กิวเมนต์ที่ถูกผูกไว้ตามเอกสารประกอบ
* FIXED: เรียกไปยัง object_property / 2` และ category_property / 2 'predicates ที่มีอยู่ภายในด้วยอาร์กิวเมนต์คุณสมบัติ `number_of_clauses / 1` หรือ` number_of_user_clauses / 1` ที่กำหนดไว้
อะไรคือ ใหม่ ในเวอร์ชัน 3.03.0:
* เพิ่ม: สนับสนุนเป้าหมาย `logtalk_make / 1`," สูญหาย "เพื่อแสดงรายการเอนทิตี้และคำอธิบายที่หายไป พร้อมใช้งานได้โดยใช้ทางลัด `{?} '
* ADDED: สนับสนุนเป้าหมาย `logtalk_make / 1` ใหม่ 'circular` เพื่อแสดงรายการอ้างอิงแบบวงกลม (พิจารณาเป้าหมายการส่งข้อความ) ระหว่างคู่และ trios ของออบเจกต์ พร้อมใช้งานได้โดยใช้ทางลัด `{@} '
* ปรับปรุง: ผนวกแฮชของไดเรกทอรีกับชื่อไฟล์ Prolog ระดับกลางเพื่อช่วยหลีกเลี่ยงการชนชื่อไฟล์เมื่อรวบรวมไฟล์ระดับกลางทั้งหมดในไดเร็กทอรีเดียวกันสำหรับการฝัง ปัจจุบันต้องใช้ ECLiPSe, GNU
Prolog, JIProlog, Quintus Prolog, SICStus Prolog, SWI-Prolog, XSB หรือ YAP เป็นคอมไพเลอร์แบ็กเอนด์
* คงที่: ข้อผิดพลาดในการเพิ่มประสิทธิภาพการเรียกเมตาแท็กเมื่อเมตาแท็กเป็นทั้งการปิดที่รวบรวมไว้ล่วงหน้าหรือการปิดสำหรับเป้าหมายที่เรียกว่าในบริบทของ
`วัตถุปลอม 'ของผู้ใช้ ใช้การตรวจสอบข้อผิดพลาดที่เข้มงวดมากขึ้นเพื่อปิดเมตาแท็ก
* คงที่: การพิมพ์พริตตี้อ็อบเจ็กต์และการระบุหมวดหมู่พารามิเตอร์ในข้อความผิดพลาดและข้อความเตือน
มีอะไรใหม่ ในเวอร์ชัน 3.02.2:
* คงที่: ข้อผิดพลาดในการตรวจสอบข้อผิดพลาดในการแสดงผล lambda โดยใช้ `true / 0 'เป็น lambda
เป้าหมาย. ขอบคุณ Boris Vassilev สำหรับรายงานข้อบกพร่อง
* ตรึง: predicate `logtalk_make / 1` จะสำเร็จ (หลังจากพิมพ์คำเตือน
ข้อความ) เมื่อเรียกว่ามีอาร์กิวเมนต์ที่ไม่ใช่ instantiated หรือไม่ถูกต้องแทนที่จะเป็น
ความล้มเหลว ไปที่
สร้างไฟล์ Prolog ระดับกลางโดยใช้คำพ้องแบบหลายตัวแปรให้ดีขึ้น
ฝังประสบการณ์ โดยเฉพาะอย่างยิ่งทำให้ง่ายต่อการทำแบบฝังตัวที่เพิ่มขึ้น
* ปรับปรุง: predicates ทำให้ตอนนี้ยังโหลดไฟล์แม่ของไฟล์ด้วย
ข้อผิดพลาดในการรวบรวมหรือโหลด เพื่อให้แน่ใจว่าเมื่อไฟล์ผิดพลาดยกเลิก
การคอมไพล์ไฟล์ทั้งหมดในไฟล์ loader, ไฟล์ที่อยู่ในรายการผิดพลาด
ไฟล์จะถูกรวบรวมเมื่อไฟล์ผิดพลาดได้รับการแก้ไขและทำให้ predicates เป็น
เรียกว่า
มีอะไรใหม่ ในเวอร์ชัน 3.02.1:
* ปรับปรุง: ตอนนี้รายการตารางรันไทม์สำหรับไฟล์ที่โหลดจะถูกเพิ่มลงในไฟล์ Prolog ระดับกลางที่สร้างขึ้นโดยใช้คำกริยาแบบหลายตัวแปรเพื่อให้ได้ประสบการณ์ในการฝังตัวที่ดีขึ้น โดยเฉพาะอย่างยิ่งทำให้ง่ายต่อการทำแบบฝังตัวที่เพิ่มขึ้น
* ปรับปรุง: ทำ predicates ตอนนี้ยังโหลดไฟล์แม่ของไฟล์ที่มีการรวบรวมหรือโหลดข้อผิดพลาด ซึ่งจะทำให้แน่ใจได้ว่าเมื่อไฟล์ผิดพลาดยกเลิกการรวบรวมไฟล์ทั้งหมดในไฟล์ loader ไฟล์ที่ระบุในไฟล์ผิดพลาดจะได้รับการรวบรวมเมื่อไฟล์มีข้อผิดพลาดได้รับการแก้ไขแล้วและจะเรียกว่า predicates
มีอะไรใหม่ ในเวอร์ชัน 3.01.2:
การเปิดตัวนี้มีการใช้งานการผูกแบบคงที่ เพิ่มการสนับสนุนสำหรับการใช้ชื่อไฟล์ตามที่มีการรวบรวมและการโหลด predicates; แก้ไขข้อบกพร่องของคอมไพเลอร์ มีการปรับปรุงเอกสาร ปรับปรุงเครื่องมือแก้จุดบกพร่องการทดสอบและการจัดทำเอกสาร เพิ่มชุดทดสอบชุดใหม่เพื่อตรวจสอบความสอดคล้องของ Prolog ด้วยมาตรฐานอย่างเป็นทางการและตามหลักปฏิบัติ ปรับปรุงสีของไวยากรณ์สำหรับโปรแกรมแก้ไขข้อความที่ได้รับการสนับสนุนและตัวเน้นไวยากรณ์ และรวมถึงการปรับปรุงความเข้ากันได้ของ ECLiPSe, JIProlog และ YAP
ต้องการ
คอมไพเลอร์ Prolog ที่เข้ากันได้
ความคิดเห็นที่ไม่พบ