C++ тілін жасаушы қауіпсіз бағдарламалау тілдерін енгізуді сынға алды

Bjarne Stroustrup, C++ тілін жасаушы, NSA есебінің қорытындыларына қарсылықтарын жариялады, онда ұйымдарға жадты басқаруды әзірлеушіге қалдыратын C және C++ сияқты бағдарламалау тілдерінен тілдер пайдасына көшуді ұсынды. жадты автоматты басқаруды қамтамасыз ететін немесе компиляция уақытындағы жад қауіпсіздігін тексеруді жүзеге асыратын C#, Go, Java, Ruby, Rust және Swift сияқты.

Строуструптың айтуынша, NSA есебінде айтылған қауіпсіз тілдер оның көзқарасы бойынша маңызды қосымшаларда C++ тілінен артық емес. Атап айтқанда, соңғы жылдары әзірленген C++ (C++ Core Guidelines) пайдалану бойынша негізгі ұсыныстар қауіпсіз бағдарламалау әдістерін қамтиды және түрлермен және ресурстармен қауіпсіз жұмыс істеуге кепілдік беретін құралдарды пайдалануды белгілейді. Бұл осындай қатаң қауіпсіздік кепілдіктерін қажет етпейтін әзірлеушілерге ескі әзірлеу әдістерін пайдалануды жалғастыру мүмкіндігін қалдырады.

Stroustrup C++ негізгі нұсқауларын орындайтын жақсы статикалық анализатор жаңа қауіпсіз бағдарламалау тілдеріне көшкеннен әлдеқайда төмен бағамен C++ кодының қауіпсіздігіне қажетті кепілдіктерді бере алады деп санайды. Мысалы, негізгі нұсқаулардың көпшілігі Microsoft Visual Studio бағдарламасына енгізілген статикалық анализатор мен жад қауіпсіздігі профилінде әлдеқашан енгізілген. Кейбір ұсыныстар Clang tidy статикалық анализаторында да ескеріледі.

NSA есебінде қауіпсіздік пен сенімділікке әсер ететін көптеген басқа бағдарламалау тілінің мәселелерін қалдырып, тек жад мәселелеріне назар аударғаны үшін сынға алынды. Stroustrup қауіпсіздікті кеңірек ұғым ретінде қарастырады, оның әртүрлі қырларына кодтау стилі, кітапханалар және статикалық анализаторлар комбинациясы арқылы қол жеткізуге болады. Түрлермен және ресурстармен жұмыс істеу қауіпсіздігін қамтамасыз ететін ережелерді енгізуді бақылау үшін код пен компилятор опцияларында аннотацияларды пайдалану ұсынылады.

Қауіпсіздіктен гөрі өнімділік маңыздырақ болатын қолданбаларда бұл тәсіл қауіпсіздікті қамтамасыз ететін мүмкіндіктерді қажет болған жерде ғана таңдап қолдануға мүмкіндік береді. Қауіпсіздік құралдарын диапазонды тексеру және инициализациялау ережелерінен бастап, содан кейін кодты неғұрлым қатаң талаптарға біртіндеп бейімдеу сияқты бөлшектеп қолдануға болады.

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

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