Версияи нави забони барномасозии Nim 0.20

сурат гирифт нашри забони барномасозии система Ним 0.20.0. Забон чопкунии статикиро истифода мебарад ва бо назардошти Pascal, C++, Python ва Lisp сохта шудааст. Рамзи сарчашмаи Nim ба намояндагии C, C++ ё JavaScript тартиб дода мешавад. Баъдан, рамзи C/C++ дар натиҷа бо истифода аз ҳама гуна компилятори дастрас (clang, gcc, icc, Visual C++) ба файли иҷрошаванда тартиб дода мешавад, ки ба шумо имкон медиҳад, ки ба нишондиҳандаҳои наздик ба C ноил шавед, агар шумо хароҷоти иҷрошударо ба назар нагиред. чамъкунандаи ахлот. Ба монанди Python, Nim абзорро ҳамчун ҷудокунандаи блок истифода мебарад. Воситаҳои метабарномасозӣ ва қобилиятҳо барои эҷоди забонҳои мушаххаси домен (DSLs) дастгирӣ карда мешаванд. Рамзи лоиҳа таъмин карда мешавад таҳти иҷозатномаи MIT.

Нашри Nim 0.20-ро метавон номзади версияи аввалини устувори 1.0 ҳисоб кард, ки якчанд тағйироти вайронкунандаи ҳамоҳангсозиро дар бар мегирад, ки барои ташаккули аввалин шохаи устувор, ки ҳолати забонро анҷом медиҳад, лозим аст. Версияи 1.0 ҳамчун як нашри устувор ва дарозмуддати дастгирӣ тавсиф карда мешавад, ки кафолат дода мешавад, ки мутобиқати ақиб дар қисми устуворшудаи забон нигоҳ дошта шавад. Алоҳида, компилятор инчунин режими таҷрибавӣ дорад, ки дар он хусусиятҳои наве, ки метавонанд мутобиқати ақибро вайрон кунанд, таҳия карда мешаванд.

Дар байни тағиротҳои дар Nim 0.20 пешниҳодшуда инҳоянд:

  • "Не" ҳоло ҳамеша оператори унарӣ аст, яъне. ибораҳои мисли "тасдиқ (на а)" ҳоло иҷозат дода намешавад ва танҳо "таъкид не a" иҷозат дода мешавад;
  • Санҷишҳои қатъии табдили ададҳо ва рақамҳои воқеӣ дар марҳилаи тартибдиҳӣ фаъол карда шудаанд, яъне. ифодаи "const b = uint16(-1)" акнун ба хатогӣ оварда мерасонад, зеро -1 наметавонад ба навъи бутуни беимзо табдил дода шавад;
  • Кушодани корбарҳо барои константаҳо ва тағирёбандаҳои даврӣ пешбинӣ шудааст.
    Масалан, акнун шумо метавонед супоришҳоро ба мисли 'const (d, e) = (7, "ҳашт")' ва "for (x, y) дар f" истифода баред;

  • Таъмини ибтидоии пешфарзии хэшҳо ва ҷадвалҳо. Масалан, пас аз эълони "var s: HashSet[int]" шумо метавонед фавран "s.incl(5)" -ро иҷро кунед, ки қаблан ба хатогӣ оварда расонд;
  • Маълумоти такмилёфта оид ба хатогиҳо барои мушкилоти марбут ба оператори "касе" ва индекси массив берун аз ҳудуди;
  • Тағир додани дарозии ҷадвал ҳангоми такрорӣ манъ аст.

Манбаъ: opennet.ru

Илова Эзоҳ