新版本 Nim 0.20 程式語言

發生 系統程式語言發布 尼姆0.20.0。 該語言使用靜態類型,在創建時考慮了 Pascal、C++、Python 和 Lisp。 Nim 原始碼被編譯為 C、C++ 或 JavaScript 表示形式。 隨後,使用任何可用的編譯器(clang、gcc、icc、Visual C++)將生成的 C/C++ 程式碼編譯為可執行文件,如果不考慮運行成本,這可以讓您實現接近 C 的效能垃圾收集器。 與 Python 類似,Nim 使用縮排作為區塊分隔符號。 支援用於建立特定領域語言(DSL)的元程式設計工具和功能。 專案程式碼 提供 在麻省理工學院的許可下。

Nim 0.20 版本可以被視為第一個穩定 1.0 版本的候選版本,它包含了形成第一個提交語言狀態的第一個穩定分支所需的幾個破壞互通性的變更。 1.0 版被認為是一個穩定的、長期支援的版本,將保證在該語言的穩定部分保持向後相容性。 另外,編譯器還將提供實驗模式,其中將開發可能違反向後相容性的新功能。

Nim 0.20 中提出的變更包括:

  • “Not”現在總是一元運算符,即現在不允許使用「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)”,這之前會導致錯誤;
  • 改進了與“case”運算符和數組索引越界相關問題的錯誤訊息;
  • 禁止在迭代期間更改表長度。

來源: opennet.ru

添加評論