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-да ұсынылған өзгерістердің арасында:

  • «Емес» енді әрқашан біртұтас оператор болып табылады, яғни. «assert(a) емес» сияқты өрнектерге енді рұқсат етілмейді және тек «ассерт емес a» рұқсат етіледі;
  • Компиляция сатысында бүтін және нақты сандарды түрлендіруге қатаң тексерулер қосылды, яғни. "const b = uint16(-1)" өрнегі енді қатеге әкеледі, себебі -1 таңбасыз бүтін түрге түрлендіру мүмкін емес;
  • Тұрақтылар мен циклдік айнымалылар үшін кортеждерді орамнан шығару қарастырылған.
    Мысалы, енді ‘const (d, e) = (7, “сегіз”)’ және “f (x, y) үшін” сияқты тапсырмаларды пайдалануға болады;

  • Хэштер мен кестелерді әдепкі баптандыру қамтамасыз етілді. Мысалы, «var s: HashSet[int]» деп жариялағаннан кейін бұрын қатеге әкелген «s.incl(5)» дереу орындауға болады;
  • «Case» операторына және жиым индексіне қатысты мәселелерге қатысты жақсартылған қате ақпараты шектен тыс;
  • Итерация кезінде кесте ұзындығын өзгертуге тыйым салынады.

Ақпарат көзі: opennet.ru

пікір қалдыру