Bagong bersyon ng Nim 0.20 programming language

naganap release ng system programming language Nim 0.20.0. Gumagamit ang wika ng static na pag-type at nilikha gamit ang Pascal, C++, Python at Lisp sa isip. Ang source code ng Nim ay pinagsama-sama sa isang representasyong C, C++, o JavaScript. Kasunod nito, ang resultang C/C++ code ay pinagsama-sama sa isang executable na file gamit ang anumang available na compiler (clang, gcc, icc, Visual C++), na nagbibigay-daan sa iyong makamit ang pagganap na malapit sa C, kung hindi mo isasaalang-alang ang mga gastos sa pagpapatakbo. ang basurero. Katulad ng Python, ginagamit ni Nim ang indentation bilang block delimiters. Sinusuportahan ang mga tool at kakayahan ng metaprogramming para sa paglikha ng mga wikang partikular sa domain (DSL). Code ng proyekto naibigay sa ilalim ng lisensya ng MIT.

Ang Nim 0.20 release ay maaaring ituring na isang kandidato para sa unang stable 1.0 release, na nagsasama ng ilang interoperability-breaking na pagbabago na kailangan upang mabuo ang unang stable na sangay na gagawa ng estado ng wika. Ang Bersyon 1.0 ay tinuturing bilang isang matatag, pangmatagalang release ng suporta na magagarantiyahan upang mapanatili ang pabalik na compatibility sa stabilized na bahagi ng wika. Hiwalay, ang compiler ay magkakaroon din ng isang pang-eksperimentong mode na magagamit, kung saan ang mga bagong tampok ay bubuo na maaaring lumabag sa pabalik na pagkakatugma.

Kabilang sa mga pagbabagong iminungkahi sa Nim 0.20 ay:

  • Ang "Hindi" ay palaging isang unary operator, i.e. ang mga expression tulad ng "iginiit (hindi a)" ay hindi na pinapayagan at tanging "iginiit na hindi a" ang pinapayagan;
  • Pinagana ang mahigpit na pagsusuri para sa conversion ng mga integer at totoong numero sa yugto ng pagsasama-sama, ibig sabihin. ang expression na "const b = uint16(-1)" ay magreresulta na ngayon sa isang error, dahil ang -1 ay hindi mako-convert sa isang unsigned integer type;
  • Ang pag-unpack ng mga tuple para sa mga constant at loop variable ay ibinigay.
    Halimbawa, maaari ka na ngayong gumamit ng mga takdang-aralin tulad ng 'const (d, e) = (7, "eight")" at "para sa (x, y) sa f";

  • Ibinigay ang default na pagsisimula ng mga hash at talahanayan. Halimbawa, pagkatapos ideklara ang "var s: HashSet[int]" maaari mong agad na isagawa ang "s.incl(5)", na dati nang humantong sa isang error;
  • Pinahusay na impormasyon ng error para sa mga problemang nauugnay sa operator ng "case" at array index na wala sa hangganan;
  • Ang pagpapalit ng haba ng talahanayan sa panahon ng pag-ulit ay ipinagbabawal.

Pinagmulan: opennet.ru

Magdagdag ng komento