Phiên bản mới của ngôn ngữ lập trình Nim 0.20

diễn ra phát hành ngôn ngữ lập trình hệ thống Nim 0.20.0. Ngôn ngữ này sử dụng kiểu gõ tĩnh và được tạo ra với Pascal, C++, Python và Lisp. Mã nguồn Nim được biên dịch thành dạng biểu diễn C, C++ hoặc JavaScript. Sau đó, mã C/C++ kết quả được biên dịch thành tệp thực thi bằng cách sử dụng bất kỳ trình biên dịch có sẵn nào (clang, gcc, icc, Visual C++), cho phép bạn đạt được hiệu suất gần bằng C, nếu bạn không tính đến chi phí chạy người thu gom rác. Tương tự như Python, Nim sử dụng thụt lề làm dấu phân cách khối. Các công cụ siêu lập trình và khả năng tạo ngôn ngữ dành riêng cho miền (DSL) được hỗ trợ. Mã số dự án cung cấp theo giấy phép MIT.

Bản phát hành Nim 0.20 có thể được coi là ứng cử viên cho bản phát hành 1.0 ổn định đầu tiên, kết hợp một số thay đổi phá vỡ khả năng tương tác cần thiết để hình thành nhánh ổn định đầu tiên sẽ cam kết trạng thái của ngôn ngữ. Phiên bản 1.0 được quảng cáo là bản phát hành hỗ trợ lâu dài, ổn định và sẽ được đảm bảo duy trì khả năng tương thích ngược trong phần ổn định của ngôn ngữ. Riêng biệt, trình biên dịch cũng sẽ có sẵn một chế độ thử nghiệm trong đó các tính năng mới có thể phá vỡ khả năng tương thích ngược sẽ được phát triển.

Trong số những thay đổi được đề xuất trong Nim 0.20 là:

  • "Không" bây giờ luôn là toán tử đơn nhất, tức là các biểu thức như “khẳng định (không phải a)” hiện không được phép và chỉ cho phép “khẳng định không a”;
  • Đã bật kiểm tra nghiêm ngặt để chuyển đổi số nguyên và số thực ở giai đoạn biên dịch, tức là. biểu thức "const b = uint16(-1)" bây giờ sẽ gây ra lỗi, vì -1 không thể chuyển đổi thành kiểu số nguyên không dấu;
  • Việc giải nén các bộ dữ liệu cho các hằng số và biến vòng lặp được cung cấp.
    Ví dụ: bây giờ bạn có thể sử dụng các phép gán như 'const (d, e) = (7, "tám")" và "for (x, y) in f";

  • Cung cấp khởi tạo mặc định của hàm băm và bảng. Ví dụ: sau khi khai báo “var s: HashSet[int]”, bạn có thể thực thi ngay lập tức “s.incl(5)”, điều này trước đó đã dẫn đến lỗi;
  • Cải thiện thông tin lỗi cho các vấn đề liên quan đến toán tử “case” và chỉ mục mảng ngoài giới hạn;
  • Việc thay đổi độ dài bảng trong quá trình lặp bị cấm.

Nguồn: opennet.ru

Thêm một lời nhận xét