Nová verzia programovacieho jazyka Nim 0.20

uskutočnilo sa vydanie systémového programovacieho jazyka Nim 0.20.0. Jazyk používa statické písanie a bol vytvorený s ohľadom na Pascal, C++, Python a Lisp. Zdrojový kód Nim je skompilovaný do reprezentácie C, C++ alebo JavaScript. Následne je výsledný kód C/C++ skompilovaný do spustiteľného súboru pomocou akéhokoľvek dostupného kompilátora (clang, gcc, icc, Visual C++), čo umožňuje dosiahnuť výkon blízky C, ak neberiete do úvahy náklady na prevádzku smetiar. Podobne ako v Pythone, Nim používa odsadenie ako oddeľovače blokov. Podporované sú metaprogramovacie nástroje a možnosti na vytváranie doménovo špecifických jazykov (DSL). Kód projektu dodávané pod licenciou MIT.

Vydanie Nim 0.20 možno považovať za kandidáta na prvé stabilné vydanie 1.0, ktoré obsahuje niekoľko zmien narúšajúcich interoperabilitu, ktoré sú potrebné na vytvorenie prvej stabilnej vetvy, ktorá zaviaže stav jazyka. Verzia 1.0 je ponúkaná ako stabilné vydanie dlhodobej podpory, ktoré bude zaručene udržiavať spätnú kompatibilitu v stabilizovanej časti jazyka. Samostatne bude mať kompilátor k dispozícii aj experimentálny režim, v ktorom sa budú vyvíjať nové funkcie, ktoré môžu narušiť spätnú kompatibilitu.

Medzi zmeny navrhované v Nim 0.20 patria:

  • "Nie" je teraz vždy unárny operátor, t.j. výrazy ako „tvrdiť (ne)“ teraz nie sú povolené a povolené je len „tvrdiť, nie“;
  • Povolené prísne kontroly prevodu celých a reálnych čísel vo fáze kompilácie, t.j. výraz "const b = uint16(-1)" teraz povedie k chybe, pretože -1 nemožno konvertovať na typ celého čísla bez znamienka;
  • Poskytuje sa rozbalenie n-tic pre konštanty a premenné slučky.
    Napríklad teraz môžete použiť priradenia ako „konšt. (d, e) = (7, „osem“)“ a „pre (x, y) v f“;

  • Poskytnutá predvolená inicializácia hashov a tabuliek. Napríklad po vyhlásení „var s: HashSet[int]“ môžete okamžite spustiť „s.incl(5)“, čo predtým viedlo k chybe;
  • Vylepšené informácie o chybách pre problémy súvisiace s operátorom „case“ a indexom poľa mimo hraníc;
  • Zmena dĺžky tabuľky počas iterácie je zakázaná.

Zdroj: opennet.ru

Pridať komentár