Nim proqramlaşdırma dilinin yeni versiyası 0.20

Baş verdi sistem proqramlaşdırma dili buraxılışı Nim 0.20.0. Dil statik yazmadan istifadə edir və Pascal, C++, Python və Lisp nəzərə alınmaqla qurulub. Nim mənbə kodu C, C++ və ya JavaScript təqdimatında tərtib edilmişdir. Sonradan, əldə edilən C/C++ kodu istənilən mövcud kompilyatordan (clang, gcc, icc, Visual C++) istifadə etməklə icra edilə bilən fayla yığılır, bu da sizə C-yə yaxın performansa nail olmağa imkan verir, əgər siz işləmək xərclərini nəzərə almasanız. zibil yığan. Python kimi, Nim blok ayırıcılar kimi girintidən istifadə edir. Metaproqramlaşdırma alətləri və domenə xas dillər (DSL) yaratmaq üçün imkanlar dəstəklənir. Layihə kodu təchiz olunmuşdur MIT lisenziyası altında.

Nim 0.20-nin buraxılışı ilk stabil 1.0 buraxılışı üçün buraxılış namizədi kimi görünə bilər, o cümlədən dilin vəziyyətini təmin edən ilk stabil filialı formalaşdırmaq üçün lazım olan bir neçə uyğunluğu pozan dəyişikliklər. Versiya 1.0 dilin sabitləşmiş hissəsində geriyə uyğunluğu qorumağa zəmanət veriləcək sabit, uzunmüddətli dəstək buraxılışı kimi təqdim olunur. Kompilyatorda ayrıca, geriyə uyğunluğu poza biləcək yeni funksiyaların işlənib hazırlanacağı eksperimental rejim də mövcud olacaq.

Nim 0.20-də təklif olunan dəyişikliklərdən aşağıdakıları qeyd edə bilərik:

  • "Yox" indi həmişə bir unar operatordur, yəni. "assert(not a)" kimi ifadələr indi etibarsızdır və yalnız "assert not a"ya icazə verilir;
  • Kompilyasiya zamanı tam ədədləri və həqiqi ədədləri çevirmək üçün sərt yoxlamalar aktivləşdirilir, yəni. "const b = uint16(-1)" ifadəsi indi xəta ilə nəticələnəcək, çünki -1 işarəsiz tam tipə çevrilə bilməz;
  • Sabitlər və döngə dəyişənləri üçün dəstlərin paketdən çıxarılması təmin edilir.
    Məsələn, 'const (d, e) = (7, "səkkiz")' və "for (x, y) in f" kimi tapşırıqlar indi istifadə edilə bilər;

  • Haşların və cədvəllərin standart işə salınması təmin edilmişdir. Məsələn, "var s: HashSet[int]" elan etdikdən sonra siz dərhal xətaya səbəb olan "s.incl(5)" icra edə bilərsiniz;
  • "Case" operatoru və massiv indeksi ilə bağlı problemlər üçün xətaların məlumat məzmunu təkmilləşdirildi;
  • İterasiya zamanı cədvəl uzunluğunu dəyişmək qadağandır.

Mənbə: opennet.ru

Добавить комментарий