Versioni i ri i gjuhës programuese Nim 0.20

Ndodhi lëshimi i gjuhës programuese të sistemit Nim 0.20.0. Gjuha përdor shtypjen statike dhe është krijuar duke pasur parasysh Pascal, C++, Python dhe Lisp. Kodi burimor Nim përpilohet në një përfaqësim C, C++ ose JavaScript. Më pas, kodi C/C++ që rezulton përpilohet në një skedar të ekzekutueshëm duke përdorur çdo përpilues të disponueshëm (clang, gcc, icc, Visual C++), i cili ju lejon të arrini performancë afër C, nëse nuk merrni parasysh kostot e ekzekutimit grumbulluesi i plehrave. Ngjashëm me Python, Nim përdor dhëmbëzimin si ndarës të bllokut. Mbështeten mjetet dhe aftësitë e metaprogramimit për krijimin e gjuhëve specifike të domenit (DSL). Kodi i projektit furnizuar nën licencën MIT.

Lëshimi i Nim 0.20 mund të konsiderohet si një kandidat për lëshimin e parë të qëndrueshëm 1.0, duke përfshirë disa ndryshime ndërvepruese të nevojshme për të formuar degën e parë të qëndrueshme që do të angazhojë gjendjen e gjuhës. Versioni 1.0 shpallet si një version i qëndrueshëm, afatgjatë i mbështetjes që do të garantohet të ruajë përputhshmërinë e prapambetur në pjesën e stabilizuar të gjuhës. Më vete, përpiluesi do të ketë gjithashtu një modalitet eksperimental të disponueshëm në të cilin do të zhvillohen veçori të reja që mund të prishin përputhshmërinë e prapambetur.

Ndër ndryshimet e propozuara në Nim 0.20 janë:

  • "Jo" tani është gjithmonë një operator unar, d.m.th. shprehjet si "pohoj (jo a)" tani nuk lejohen dhe lejohet vetëm "pohoj jo a";
  • Aktivizoi kontrolle strikte për konvertimin e numrave të plotë dhe realë në fazën e kompilimit, d.m.th. shprehja "const b = uint16(-1)" tani do të rezultojë në një gabim, pasi -1 nuk mund të konvertohet në një tip numër të plotë të panënshkruar;
  • Ofrohet shpaketimi i tuples për konstantet dhe variablat e lakut.
    Për shembull, tani mund të përdorni detyra si 'const (d, e) = (7, "tetë")" dhe "for (x, y) në f";

  • Ofrohet inicializimi i paracaktuar i hasheve dhe tabelave. Për shembull, pasi të deklaroni "var s: HashSet[int]", mund të ekzekutoni menjëherë "s.incl(5)", i cili më parë çoi në një gabim;
  • Informacion i përmirësuar i gabimeve për problemet që lidhen me operatorin "rast" dhe indeksin e grupit jashtë kufijve;
  • Ndryshimi i gjatësisë së tabelës gjatë përsëritjes është i ndaluar.

Burimi: opennet.ru

Shto një koment