Nim programlama dilinin yeni versiyonu 0.20

gerçekleşti sistem programlama dili sürümü Nim 0.20.0. Dil statik yazmayı kullanır ve Pascal, C++, Python ve Lisp düşünülerek oluşturulmuştur. Nim kaynak kodu bir C, C++ veya JavaScript temsilinde derlenir. Daha sonra, ortaya çıkan C/C++ kodu, mevcut herhangi bir derleyici (clang, gcc, icc, Visual C++) kullanılarak yürütülebilir bir dosya halinde derlenir; bu, çalıştırma maliyetlerini hesaba katmazsanız, C'ye yakın bir performans elde etmenizi sağlar. çöp toplayıcı. Python'a benzer şekilde Nim, blok sınırlayıcı olarak girintiyi kullanır. Etki alanına özgü diller (DSL'ler) oluşturmaya yönelik metaprogramlama araçları ve yetenekleri desteklenir. Proje kodu sağlanan MIT lisansı altında.

Nim 0.20 sürümü, dilin durumunu kaydedecek ilk kararlı dalı oluşturmak için gereken birlikte çalışabilirliği bozan çeşitli değişiklikleri içeren ilk kararlı 1.0 sürümü için aday olarak değerlendirilebilir. Sürüm 1.0, dilin kararlı kısmında geriye dönük uyumluluğu korumayı garanti edecek kararlı, uzun vadeli bir destek sürümü olarak lanse ediliyor. Ayrı olarak derleyicide geriye dönük uyumluluğu bozabilecek yeni özelliklerin geliştirilebileceği deneysel bir mod da bulunacaktır.

Nim 0.20'de önerilen değişiklikler arasında şunlar yer almaktadır:

  • "Değil" artık her zaman tekli bir operatördür, yani. "iddia(değil a)" gibi ifadelere artık izin verilmiyor ve yalnızca "iddia değil a"ya izin veriliyor;
  • Derleme aşamasında tam sayıların ve gerçek sayıların dönüşümü için sıkı kontroller etkinleştirildi; "const b = uint16(-1)" ifadesi artık bir hatayla sonuçlanacaktır, çünkü -1 işaretsiz bir tamsayı türüne dönüştürülemez;
  • Sabitler ve döngü değişkenleri için demetlerin açılması sağlanır.
    Örneğin, artık 'const (d, e) = (7, "sekiz")" ve "for (x, y) in f" gibi atamaları kullanabilirsiniz;

  • Karmaların ve tabloların varsayılan başlatılması sağlandı. Örneğin, “var s: HashSet[int]” komutunu bildirdikten sonra, daha önce hataya yol açan “s.incl(5)” komutunu hemen çalıştırabilirsiniz;
  • "Durum" operatörü ve sınırların dışındaki dizi dizini ile ilgili sorunlar için iyileştirilmiş hata bilgileri;
  • Yineleme sırasında tablo uzunluğunun değiştirilmesi yasaktır.

Kaynak: opennet.ru

Yorum ekle