ภาษาโปรแกรมลอจิกได้รับรอบนานกว่ายี่สิบปี แม้จะมีข้อได้เปรียบที่คาดหวังของการเขียนโปรแกรมภาษาระดับสูงมากขึ้นอยู่กับทฤษฎีการพัฒนาที่ดีของตรรกะมากกว่าการเขียนโปรแกรมภาษาธรรมดา (เช่น C, C ++, Pascal และ Ada) พวกเขาไม่ได้มีผลกระทบอย่างมีนัยสำคัญในอุตสาหกรรมคอมพิวเตอร์
ดาวพุธเป็นตรรกะใหม่ / ภาษาเขียนโปรแกรมการทำงานที่ผสมผสานความชัดเจนและความหมายของการเขียนโปรแกรมที่เปิดเผยด้วยการวิเคราะห์แบบคงที่ทันสมัยและคุณสมบัติการตรวจจับข้อผิดพลาด
ดาวพุธเป็นขั้นตอนวิธีการดำเนินการเพิ่มประสิทธิภาพสูงมอบประสิทธิภาพไกลเกินกว่าระบบตรรกะการเขียนโปรแกรมที่มีอยู่และใกล้กับระบบการเขียนโปรแกรมแบบเดิม
เมอร์ที่อยู่ในปัญหาของการพัฒนาโปรแกรมขนาดใหญ่ที่ช่วยให้ต้นแบบรวบรวมแยกและเพิ่มประสิทธิภาพจำนวนมากที่ / เวลาการแลกเปลี่ยน
มีอะไรใหม่ ในข่าวประชาสัมพันธ์ฉบับนี้.
- นี้สามารถแก้ไขปล่อย bugfix สร้างปัญหาบน Solaris และ NetBSD และเพิ่มการสนับสนุนสำหรับการเลือกคอมไพเลอร์ C # ในเวลาที่กำหนดค่า.
- ข้อบกพร่องต่างๆย่อยอื่น ๆ ได้รับการแก้ไข.
- นอกจากนี้ยังมีบางอย่างเพิ่มเติมเล็กน้อยเพื่อห้องสมุดมาตรฐาน.
มีอะไรใหม่ ในรุ่น 13.05:
- รุ่นของ executables 64 บิตบน Windows ได้รับการสนับสนุนในขณะนี้
- ครั้งรวบรวมสำหรับโปรแกรมที่มีขนาดใหญ่มากได้รับการปรับปรุง.
- ชนิดใหม่ ๆ เพิ่มประสิทธิภาพการแสดงได้รับการเพิ่ม.
- ดีบักขณะนี้ได้รับการสนับสนุนที่ดีขึ้นสำหรับการจัดการชมรมของสาย recursive ร่วมกันในกอง.
- ผูกพันกับห้องสมุด GLFW ได้รับการเพิ่มการกระจายความพิเศษ.
- ประกอบสร้างขึ้นด้วยแบ็กเอนด์ C # ขณะนี้คุณสามารถเซ็นสัญญากับชื่อที่รัดกุม.
มีอะไรใหม่ ในรุ่น 11.01:
- เราได้เพิ่มสองชนิดใหม่ของขอบเขตภาษา
- ขอบเขตแนะนำให้รู้จักกับหนึ่งในคำหลักใหม่ require_det, require_semidet, require_multi, require_nondet, require_cc_multi, require_cc_nondet, require_erroneous และ require_failure เป็นชื่อที่แสดงถึงต้องมีเป้าหมายภายในขอบเขตที่จะมีการกำหนดให้.
- ขอบเขตการแนะนำให้รู้จัก require_complete_switch คำต้องมีเป้าหมายภายในขอบเขตถ้ามันเป็นสวิทช์ในตัวแปรตั้งชื่อตามขอบเขตที่จะเป็นสวิทช์ที่สมบูรณ์คือจะมีแขนสำหรับทุกสัญลักษณ์ฟังก์ชั่นในรูปแบบของ เปลี่ยนในตัวแปร.
- เราได้เพิ่มโหมด semidet สำหรับ hash_table.fold / 4 และ version_hash_table.fold / 4.
- เราได้เพิ่มภาคใหม่และฟังก์ชั่นโมดูล assoc_list ภาค map_keys_only / 3 map_values_only / 3 และ map_values / 3 เติมเต็มฟังก์ชั่นที่มีชื่อเดียวกัน ภาคกรอง / 3, negated_filter / 3, กรอง / 4, ผสาน / 3 ซึ่งยังมีรุ่นฟังก์ชั่นจะทำงานคล้ายกับภาคที่มีชื่อเดียวกันในโมดูลรายการ แต่จะดำเนินการที่เกี่ยวข้องบนแป้นแทนทั้งหมด องค์ประกอบของรายการ.
- เราได้ย้ายโมดูลการประเมินผลขี้เกียจออกจากการกระจายความพิเศษและเป็นโมดูลห้องสมุดมาตรฐานใหม่ที่เรียกว่า `ขี้เกียจ ' นอกจากนี้ยังได้รับการทำแบ็กเอนด์ไม่เชื่อเรื่องพระเจ้า.
- เราได้ทำให้การเปลี่ยนแปลงโมดูลรายชื่อของไลบรารีมาตรฐาน:
- เราได้เพิ่มคำกริยาใหม่ list.member_index0 / 3 มันก็เหมือน list.member / 2 ยกเว้นว่ามันยังใช้พารามิเตอร์ที่เป็นตัวแทนของดัชนี zero-based ขององค์ประกอบภายในรายการ.
- เราได้เพิ่มคำกริยาใหม่ list.map3_foldl / 7 ซึ่งแมกว่ารายการผลิตสามรายการและมูลค่าพับหนึ่ง.
- เราได้เพิ่มโหมด semidet กับแอคคิวไม่ซ้ำกันสำหรับ list.foldl3 / 8, list.foldl4 / 10, list.foldl5 / 12 และ list.foldl6 / 14.
- เราได้เพิ่มภาคแบ่ง / 4 และ divide_by_set / 4 โมดูล tree_bitset ของห้องสมุดมาตรฐาน.
- เราได้เพิ่มภาค set_ctree234.member / 2 และ set_ctree234.non_empty / 1 เรามีการเพิ่มฟังก์ชั่น set_ctree234.from_list / 1.
- เราได้เพิ่ม set_bbbtree.count กริยา / 2 และ set_bbbtree.count ฟังก์ชั่น / 1 เหล่านี้แทนที่กริยา set_bbbtree.size / 2 ซึ่งจะเลิกตอนนี้.
- เราได้เพิ่มคำกริยา set_ordlist.non_empty / 1.
- เราได้เพิ่มคำกริยา set_tree234.non_empty / 1 และ set_tree234.from_list ฟังก์ชั่น / 1.
- เราได้เพิ่มภาค set_unordlist.non_empty / 1 และ set_unordlist.count / 2, และฟังก์ชั่น set_unordlist.count / 1.
- ทั้งหมดของโมดูลในไลบรารีมาตรฐานที่ใช้ ADT ชุด (ชุด set_ordlist, set_unordlist, set_bbbtree, set_tree234 และ set_ctree234) ในขณะนี้สนับสนุนพับกว่าชุดที่มีถึงหกตัวเก็บประจุ โหมดที่ให้ไม่ซ้ำกันและแอคคิวส่วนใหญ่ไม่ซ้ำกันสำหรับพับชุดยังได้รับการเพิ่ม.
- เราได้ทำการเปลี่ยนแปลงต่อไปนี้ในโมดูลอาร์เรย์ของห้องสมุดมาตรฐาน:
- เราได้เพิ่มฟังก์ชั่น unsafe_elem / 2 และผนวก / 2.
- เราได้เพิ่มภาค svset / 4, unsafe_svset / 4, foldl2 / 4, foldl2 / 6, foldr / 4, foldr2 / 6, map_foldl / 5, map_corresponding_foldl / 6, และเป็นสมาชิก / 2.
- เราได้เพิ่มภาค version_array.foldl2 / 6, version_array.foldr / 4, และ version_array.foldr2 / 6 ถึงห้องสมุดมาตรฐาน.
- เราได้เพิ่มโหมด semidet กับแอคคิวไม่ซ้ำกันและส่วนใหญ่ไม่ซ้ำกันสำหรับภาคต่อไปนี้:
- bimap.foldl2 / 6
- bimap.foldl3 / 8
- cord.foldl_pred / 4
- cord.map_foldl / 5
- list.map_corresponding_foldl2 / 8
- list.map_corresponding_foldl3 / 10
- list.map_corresponding3_foldl / 7
- map.foldl3 / 8
- เราได้เพิ่มคำกริยา unsorted_aggregate2 / 6 ถึงโมดูลการแก้ปัญหาของห้องสมุดมาตรฐาน.
- เราได้เพิ่มหลายภาคและฟังก์ชั่นที่จะต้องใช้โมดูลของห้องสมุดมาตรฐาน ภาคเสียใจ / 2 และเสียใจ / 3 รายงานการขาดคุณสมบัติในขณะที่ภาคที่ไม่คาดคิด / 2 และที่ไม่คาดคิด / 3 รายงานข้อผิดพลาดภายในโปรแกรม; ทุกคนต้องมีฟังก์ชั่นรุ่นเกินไป กริยาคาดหวัง / 3 โทรที่ไม่คาดคิดถ้าเป็นเงื่อนไขที่ไม่พอใจ ขณะนี้เรามีคาดหวัง / 4 เป็นคาดหวัง / 3 สำหรับคาดหวัง / 4 เป็นคาดหวัง / 3, ข้อโต้แย้งครั้งแรกและครั้งนี้เป็นสภาพที่คาดหวังและข้อผิดพลาดตามลำดับ แต่ด้วยความคาดหวัง / 4 มีสองข้อโต้แย้งที่อยู่ตรงกลางเพื่อระบุตำแหน่งของข้อผิดพลาด (ปกติชื่อ ของโมดูลและกริยาตามลำดับ) นอกจากนี้เรายังเพิ่ม expect_not / 3 และ expect_not / 4 ซึ่งเป็นเหมือนคาดหวัง / 3 และคาดว่า / 4 ตามลำดับยกเว้นพวกเขาคาดหวังว่าสภาพจะเป็น * * * * * * * * เท็จ, ไม่เป็นความจริง.
มีอะไรใหม่ ในรุ่น 10.04.2:
- ข่าวประชาสัมพันธ์ฉบับนี้เป็นรุ่นแก้ไขข้อผิดพลาด จำนวนของปัญหาที่ก่อให้เกิดคอมไพเลอร์จะยกเลิกได้รับการแก้ไขบางส่วนการดำเนินงาน RTTI หักในชั้นประถมศึกษาปี java ได้รับการแก้ไขและเราได้เพิ่มวิธีแก้ปัญหาสำหรับปัญหากับรุ่น GCC 4.4.
ข้อ จำกัด
- การดำเนินงานในปัจจุบันยังไม่สมบูรณ์ใช้ภาษาปรอท ข้อ จำกัด ที่สำคัญของการดำเนินงานในปัจจุบันมีดังต่อไปนี้:
- เราไม่อนุญาตให้ aliasing ที่ชัดเจนในระบบโหมด โดยไม่ต้องนี้โหมด instantiated บางส่วนจะใช้ไม่ได้และเพื่อให้มีการซ้อนโหมดที่ไม่ซ้ำกัน.
- คอมไพเลอร์ยังไม่ใช้นำมาใช้ใหม่ของโครงสร้างหรือเวลารวบรวมเก็บขยะจะใช้ประโยชน์จากรูปแบบที่ไม่ซ้ำกัน.
- ประเภทและอนุมานโหมดเป็นบิตไม่สมบูรณ์.
- นอกจากนี้การตัดสินใจในการออกแบบใน implemenation นี้ได้กำหนดข้อ จำกัด ต่อไปนี้:
- Predicates และฟังก์ชั่นสามารถมีที่มากที่สุดประมาณ 1000 ข้อโต้แย้ง.
- แง่สูงเพื่อสามารถมีได้สูงสุดประมาณ 500 ข้อโต้แย้ง.
ความคิดเห็นที่ไม่พบ