Fersiwn newydd o iaith raglennu Nim 0.20

cymryd lle rhyddhau iaith rhaglennu system Dim 0.20.0. Mae'r iaith yn defnyddio teipio statig ac fe'i crëwyd gyda Pascal, C++, Python a Lisp mewn golwg. Mae cod ffynhonnell Nim yn cael ei gasglu'n gynrychiolaeth C, C++, neu JavaScript. Yn dilyn hynny, mae'r cod C / C ++ sy'n deillio o hyn yn cael ei lunio mewn ffeil gweithredadwy gan ddefnyddio unrhyw gasglwr sydd ar gael (clang, gcc, icc, Visual C ++), sy'n eich galluogi i gyflawni perfformiad yn agos at C, os na fyddwch yn ystyried costau rhedeg y casglwr sbwriel. Yn debyg i Python, mae Nim yn defnyddio mewnoliad fel amffinyddion bloc. Cefnogir offer a galluoedd metaraglennu ar gyfer creu ieithoedd parth-benodol (DSLs). Cod prosiect cyflenwi dan drwydded MIT.

Gellir ystyried datganiad Nim 0.20 yn ymgeisydd ar gyfer y datganiad sefydlog 1.0 cyntaf, gan ymgorffori nifer o newidiadau rhyngweithredu-dorri sydd eu hangen i ffurfio'r gangen sefydlog gyntaf a fydd yn ymrwymo cyflwr yr iaith. Mae fersiwn 1.0 yn cael ei chyffwrdd fel datganiad cymorth sefydlog, hirdymor a fydd yn sicr o gynnal cydnawsedd yn ôl yn y rhan sefydlog o'r iaith. Ar wahân, bydd gan y casglwr hefyd fodd arbrofol ar gael lle bydd nodweddion newydd a allai dorri'n ôl ar gydnawsedd yn cael eu datblygu.

Ymhlith y newidiadau a gynigir yn Nim 0.20 mae:

  • Mae "Nid" bellach bob amser yn weithredwr unary, h.y. bellach ni chaniateir ymadroddion fel “sert(not a)” a dim ond “sert not a” a ganiateir;
  • Galluogi gwiriadau llym ar gyfer trosi cyfanrifau a rhifau real ar y cam llunio, h.y. bydd yr ymadrodd "const b = uint16(-1)" bellach yn arwain at wall, gan na ellir trosi -1 i fath cyfanrif heb ei lofnodi;
  • Darperir dadbacio tuples ar gyfer cysonion a newidynnau dolen.
    Er enghraifft, nawr gallwch chi ddefnyddio aseiniadau fel 'const (d, e) = (7, "wyth")" ac "ar gyfer (x, y) yn f";

  • Wedi darparu cychwyniad diofyn o hashes a thablau. Er enghraifft, ar ôl datgan “var s: HashSet[int]” gallwch weithredu “s.incl(5)” ar unwaith, a arweiniodd at wall yn flaenorol;
  • Gwell gwybodaeth am gamgymeriadau ar gyfer problemau sy'n ymwneud â'r gweithredwr “achos” a'r mynegai arae tu allan i ffiniau;
  • Gwaherddir newid hyd y bwrdd yn ystod iteriad.

Ffynhonnell: opennet.ru

Ychwanegu sylw