Nim ծրագրավորման լեզվի նոր տարբերակը 0.20

տեղի ունեցավ համակարգի ծրագրավորման լեզվի թողարկում Nim 0.20.0. Լեզուն օգտագործում է ստատիկ մուտքագրում և ստեղծվել է՝ հաշվի առնելով Pascal-ը, C++-ը, Python-ը և Lisp-ը: Nim-ի սկզբնական կոդը կազմվում է C, C++ կամ JavaScript ներկայացման մեջ: Այնուհետև, ստացված C/C++ կոդը կազմվում է գործարկվող ֆայլում՝ օգտագործելով ցանկացած հասանելի կոմպիլյատոր (clang, gcc, icc, Visual C++), ինչը թույլ է տալիս հասնել C-ին մոտ կատարողականություն, եթե հաշվի չեք առնում գործարկման ծախսերը: աղբահանը. Python-ի նման, Nim-ը օգտագործում է նահանջը որպես բլոկի սահմանազատիչներ: Աջակցվում են մետածրագրավորման գործիքներ և հնարավորություններ՝ տիրույթին հատուկ լեզուներ (DSL) ստեղծելու համար: Ծրագրի կոդը մատակարարված MIT լիցենզիայի ներքո:

Nim 0.20 թողարկումը կարելի է համարել առաջին կայուն 1.0 թողարկման թեկնածու, որը ներառում է փոխգործունակությունը խախտող մի քանի փոփոխություններ, որոնք անհրաժեշտ են առաջին կայուն մասնաճյուղը ձևավորելու համար, որը կապահովի լեզվի վիճակը: 1.0 տարբերակը գովազդվում է որպես կայուն, երկարաժամկետ աջակցության թողարկում, որը երաշխավորված կլինի պահպանել հետընթաց համատեղելիությունը լեզվի կայունացված մասում: Առանձին-առանձին, կոմպիլյատորը կունենա նաև փորձնական ռեժիմ, որտեղ կմշակվեն նոր գործառույթներ, որոնք կարող են խախտել հետընթաց համատեղելիությունը:

Nim 0.20-ում առաջարկվող փոփոխություններից են.

  • «Ոչ»-ն այժմ միշտ միատարր օպերատոր է, այսինքն. «պնդել (ոչ ա)» արտահայտություններն այժմ անթույլատրելի են, և թույլատրվում է միայն «պնդել ոչ ա»;
  • Միացված է ամբողջ թվերի և իրական թվերի փոխակերպման խիստ ստուգումներ կոմպիլյացիայի փուլում, այսինքն. «const b = uint16(-1)» արտահայտությունն այժմ կհանգեցնի սխալի, քանի որ -1-ը չի կարող փոխարկվել անստորագիր ամբողջ թվի տեսակի.
  • Տրամադրվում է բազմակի բացում հաստատունների և հանգույցի փոփոխականների համար:
    Օրինակ, այժմ կարող եք օգտագործել առաջադրանքներ, ինչպիսիք են 'const (d, e) = (7, "ութ")" և "for (x, y) f-ում";

  • Տրամադրվում է հեշերի և աղյուսակների լռելյայն սկզբնավորում: Օրինակ՝ «var s: HashSet[int]» հայտարարելուց հետո կարող եք անմիջապես գործարկել «s.incl(5)»-ը, որը նախկինում հանգեցրել է սխալի.
  • Բարելավված սխալի մասին տեղեկատվություն «case» օպերատորի և զանգվածի ինդեքսի հետ կապված խնդիրների համար՝ սահմաններից դուրս;
  • Սեղանի երկարությունը կրկնելու ընթացքում փոխելն արգելվում է:

Source: opennet.ru

Добавить комментарий