C++ түзүүчүсү коопсуз программалоо тилдерин таңуулоону сынга алган

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

Stroustrup айтымында, NSA отчетунда айтылган коопсуз тилдер, чынында, анын көз карашы боюнча маанилүү тиркемелерде C ++ жогору эмес. Атап айтканда, акыркы жылдары иштелип чыккан C++ (C++ Core Guidelines) боюнча негизги сунуштар программалоонун коопсуз ыкмаларын камтыйт жана түрлөрү жана ресурстары менен коопсуз иштөөнү кепилдөөчү куралдарды колдонууну белгилейт. Бирок, мындай катуу коопсуздук кепилдиктерин талап кылбаган иштеп чыгуучулар эски иштеп чыгуу ыкмаларын колдонууну улантуу мүмкүнчүлүгүнө ээ болушат.

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

NSA отчету ошондой эле коопсуздукка жана ишенимдүүлүккө таасир этүүчү башка көптөгөн программалоо тил көйгөйлөрүн калтырып, эстутум көйгөйлөрүнө гана басым жасаганы үчүн сынга алынган. Stroustrup коопсуздукту кеңири түшүнүк катары карайт, анын ар кандай аспектилерине коддоо стилинин, китепканалардын жана статикалык анализаторлордун айкалышы аркылуу жетишүүгө болот. Түрлөр жана ресурстар менен иштөөнүн коопсуздугун камсыз кылган эрежелердин киргизилишин контролдоо үчүн коддордо жана компиляторлордун варианттарында аннотацияларды колдонуу сунушталат.

Коопсуздукка караганда аткаруу маанилүү болгон тиркемелерде бул ыкма коопсуздукту кепилдөөчү функцияларды керектүү жерде гана тандап колдонууга мүмкүндүк берет. Коопсуздук куралдары да бөлүк-бөлүктө колдонулушу мүмкүн, мисалы, диапазонду текшерүү жана инициализациялоо эрежелеринен баштап, андан кийин акырындык менен кодду катаал талаптарга ылайыкташтыруу.

Source: opennet.ru

Комментарий кошуу