Verżjoni ġdida tal-lingwa ta 'programmar Nim 0.20

seħħet rilaxx tal-lingwa tal-ipprogrammar tas-sistema Nim 0.20.0. Il-lingwa tuża ittajpjar statiku u nħolqot b'moħħ Pascal, C++, Python u Lisp. Il-kodiċi tas-sors Nim huwa miġbur f'rappreżentazzjoni C, C++, jew JavaScript. Sussegwentement, il-kodiċi C/C++ li jirriżulta jiġi kkompilat f'fajl eżekutibbli bl-użu ta' kwalunkwe kompilatur disponibbli (clang, gcc, icc, Visual C++), li jippermettilek tikseb prestazzjoni qrib C, jekk ma tqisx l-ispejjeż tat-tħaddim. il-kollettur taż-żibel. Simili għal Python, Nim juża l-indentazzjoni bħala delimitaturi tal-blokki. Għodod u kapaċitajiet ta' metaprogrammazzjoni għall-ħolqien ta' lingwi speċifiċi għad-dominju (DSLs) huma appoġġjati. Kodiċi tal-proġett fornuti taħt il-liċenzja MIT.

Ir-rilaxx Nim 0.20 jista 'jitqies bħala kandidat għall-ewwel rilaxx stabbli 1.0, li jinkorpora diversi bidliet li jkissru l-interoperabilità meħtieġa biex jiffurmaw l-ewwel fergħa stabbli li tikkommetti l-istat tal-lingwa. Il-Verżjoni 1.0 hija promossa bħala rilaxx ta 'appoġġ stabbli u fit-tul li se jkun garantit li jżomm kompatibilità b'lura fil-parti stabbilizzata tal-lingwa. Separatament, il-kompilatur ikollu wkoll mod sperimentali disponibbli li fih se jiġu żviluppati karatteristiċi ġodda li jistgħu jkissru l-kompatibilità b'lura.

Fost il-bidliet proposti f'Nim 0.20 hemm:

  • "Le" issa hija dejjem operatur unarju, i.e. espressjonijiet bħal “tassert(mhux a)” issa mhumiex permessi u “tassert not a” hija permessa biss;
  • Ippermetta kontrolli stretti għall-konverżjoni ta 'numri interi u reali fl-istadju ta' kumpilazzjoni, i.e. l-espressjoni "const b = uint16(-1)" issa se tirriżulta fi żball, peress li -1 ma jistax jiġi kkonvertit għal tip ta' numru sħiħ mhux iffirmat;
  • Jiġi pprovdut l-ispakkjar tat-tuples għall-kostanti u l-varjabbli tal-linja.
    Pereżempju, issa tista' tuża assenjazzjonijiet bħal 'const (d, e) = (7, "tmienja")" u "għal (x, y) f'f";

  • Ipprovda inizjalizzazzjoni default ta 'hashes u tabelli. Pereżempju, wara li tiddikjara "var s: HashSet[int]" tista' immedjatament tesegwixxi "s.incl(5)", li qabel wassal għal żball;
  • Informazzjoni mtejba dwar l-iżball għal problemi relatati mal-operatur tal-"każ" u l-indiċi tal-firxa barra mill-limiti;
  • It-tibdil tat-tul tal-mejda waqt l-iterazzjoni huwa pprojbit.

Sors: opennet.ru

Żid kumment