Nová verze programovacího jazyka Nim 0.20

odehrál se vydání systémového programovacího jazyka Nim 0.20.0. Jazyk používá statické psaní a je vytvořen s ohledem na Pascal, C++, Python a Lisp. Zdrojový kód Nim je zkompilován do reprezentace C, C++ nebo JavaScript. Následně je výsledný kód C/C++ zkompilován do spustitelného souboru pomocí libovolného dostupného kompilátoru (clang, gcc, icc, Visual C++), což umožňuje dosáhnout výkonu blízkého C, pokud nepočítáte náklady na provoz popelář. Podobně jako v Pythonu používá Nim jako oddělovače bloků odsazení. Jsou podporovány metaprogramovací nástroje a možnosti pro vytváření doménově specifických jazyků (DSL). Kód projektu dodáváno pod licencí MIT.

Vydání Nim 0.20 lze považovat za kandidáta na vydání prvního stabilního vydání 1.0, včetně několika změn narušujících kompatibilitu, které jsou nutné k vytvoření první stabilní větve, která potvrdí stav jazyka. Verze 1.0 je nabízena jako stabilní vydání s dlouhodobou podporou, u kterého bude zaručeno zachování zpětné kompatibility ve stabilizované části jazyka. Samostatně bude v kompilátoru k dispozici také experimentální režim, ve kterém budou vyvíjeny nové funkce, které mohou narušit zpětnou kompatibilitu.

Ze změn navržených v Nim 0.20 můžeme zdůraznit:

  • "Ne" je nyní vždy unární operátor, tzn. výrazy jako "tvrdit (ne)" jsou nyní neplatné a je povoleno pouze "tvrdit ne";
  • Jsou povoleny tvrdé kontroly převodu celých a reálných čísel v době kompilace, tzn. výraz "const b = uint16(-1)" nyní povede k chybě, protože -1 nelze převést na typ celého čísla bez znaménka;
  • Je zajištěno rozbalení n-tic pro konstanty a proměnné smyčky.
    Nyní lze například použít přiřazení jako 'konst (d, e) = (7, "osm")' a "pro (x, y) v f";

  • Poskytuje výchozí inicializaci hashů a tabulek. Například po deklaraci "var s: HashSet[int]" můžete okamžitě spustit "s.incl(5)", což dříve vedlo k chybě;
  • Vylepšen informační obsah chyb pro problémy související s operátorem "case" a indexem pole mimo meze;
  • Během iterace je zakázáno měnit délku tabulky.

Zdroj: opennet.ru

Přidat komentář