เวอร์ชันใหม่ของภาษาการเขียนโปรแกรม Nim 0.20

ไปยังสถานที่ การเปิดตัวภาษาโปรแกรมระบบ นิม 0.20.0. ภาษาใช้การพิมพ์แบบคงที่และสร้างขึ้นโดยคำนึงถึง Pascal, C++, Python และ Lisp ซอร์สโค้ด Nim ได้รับการคอมไพล์เป็นการแสดง C, C++ หรือ JavaScript ต่อจากนั้น รหัส C/C++ ที่ได้จะถูกคอมไพล์เป็นไฟล์ปฏิบัติการโดยใช้คอมไพเลอร์ที่มีอยู่ (clang, gcc, icc, Visual C++) ซึ่งช่วยให้คุณได้รับประสิทธิภาพที่ใกล้เคียงกับ C หากคุณไม่คำนึงถึงค่าใช้จ่ายในการรัน คนเก็บขยะ เช่นเดียวกับ Python Nim ใช้การเยื้องเป็นตัวคั่นบล็อก รองรับเครื่องมือการเขียนโปรแกรมเมตาและความสามารถในการสร้างภาษาเฉพาะโดเมน (DSL) รหัสโครงการ ให้มา ภายใต้ใบอนุญาต MIT

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

การเปลี่ยนแปลงที่เสนอใน Nim 0.20 ได้แก่:

  • ตอนนี้ "ไม่ใช่" จะเป็นตัวดำเนินการเอกภาคเสมอ เช่น ขณะนี้ไม่อนุญาตให้ใช้นิพจน์เช่น "assert(not a)" และอนุญาตให้ใช้เฉพาะ "assert not a" เท่านั้น
  • เปิดใช้งานการตรวจสอบอย่างเข้มงวดสำหรับการแปลงจำนวนเต็มและจำนวนจริงในขั้นตอนการคอมไพล์ เช่น นิพจน์ "const b = uint16(-1)" จะส่งผลให้เกิดข้อผิดพลาด เนื่องจาก -1 ไม่สามารถแปลงเป็นประเภทจำนวนเต็มที่ไม่ได้ลงนามได้
  • มีการจัดเตรียมการคลายสิ่งอันดับสำหรับค่าคงที่และตัวแปรลูป
    ตัวอย่างเช่น ตอนนี้คุณสามารถใช้การกำหนดเช่น 'const (d, e) = (7, “eight”)' และ “for (x, y) in f”;

  • ให้ค่าเริ่มต้นของแฮชและตาราง ตัวอย่างเช่น หลังจากประกาศ “var s: HashSet[int]” คุณสามารถดำเนินการ “s.incl(5)” ได้ทันที ซึ่งก่อนหน้านี้ทำให้เกิดข้อผิดพลาด
  • ปรับปรุงข้อมูลข้อผิดพลาดสำหรับปัญหาที่เกี่ยวข้องกับตัวดำเนินการ "กรณี" และดัชนีอาร์เรย์อยู่นอกขอบเขต
  • ห้ามเปลี่ยนความยาวของตารางในระหว่างการวนซ้ำ

ที่มา: opennet.ru

เพิ่มความคิดเห็น