C ++-ի ստեղծողը քննադատել է անվտանգ ծրագրավորման լեզուների պարտադրումը

C++ լեզվի ստեղծող Բյարնե Ստրուստրուփը առարկություններ է հրապարակել NSA զեկույցի եզրակացությունների վերաբերյալ, որոնք խորհուրդ են տալիս կազմակերպություններին հեռանալ ծրագրավորման լեզուներից, ինչպիսիք են C և C++, որոնք թողնում են հիշողության կառավարումը մշակողին՝ հօգուտ լեզուների: ինչպիսիք են C#, Go, Java, Ruby, Rust և Swift, որոնք ապահովում են հիշողության ավտոմատ կառավարում կամ կատարում են հիշողության անվտանգության ստուգումներ կոմպիլյացիայի ժամանակ:

Ըստ Stroustrup-ի, NSA-ի զեկույցում նշված անվտանգ լեզուներն իրականում չեն գերազանցում C++-ին այն հավելվածներում, որոնք կարևոր են իր տեսանկյունից։ Մասնավորապես, վերջին տարիներին մշակված C++-ի օգտագործման հիմնական առաջարկությունները (C++ Core Guidelines) ներառում են անվտանգ ծրագրավորման մեթոդներ և նախատեսում են գործիքների օգտագործում, որոնք երաշխավորում են անվտանգ աշխատանք տեսակների և ռեսուրսների հետ: Սա հնարավորություն է տալիս ծրագրավորողներին, ովքեր չեն պահանջում անվտանգության նման խիստ երաշխիքներ, շարունակեն օգտագործել մշակման հին մեթոդները:

Stroustrup-ը կարծում է, որ լավ ստատիկ անալիզատորը, որը հետևում է C++ Core ուղեցույցներին, կարող է ապահովել C++ կոդի անվտանգության համար անհրաժեշտ երաշխիքները զգալիորեն ցածր գնով, քան նոր անվտանգ ծրագրավորման լեզուներ տեղափոխելը: Օրինակ, Հիմնական ուղեցույցների մեծ մասն արդեն ներդրված է ստատիկ անալիզատորում և հիշողության անվտանգության պրոֆիլում, որը ներառված է Microsoft Visual Studio-ում: Որոշ առաջարկություններ նույնպես հաշվի են առնվել Clang կոկիկ ստատիկ անալիզատորում:

NSA-ի զեկույցը քննադատվեց նաև այն բանի համար, որ նա կենտրոնանում է միայն հիշողության խնդիրների վրա՝ բաց թողնելով ծրագրավորման լեզվի բազմաթիվ այլ խնդիրներ, որոնք ազդում են անվտանգության և հուսալիության վրա: Stroustrup-ը դիտարկում է անվտանգությունը որպես ավելի լայն հասկացություն, որի տարբեր կողմերը կարելի է ձեռք բերել կոդավորման ոճի, գրադարանների և ստատիկ անալիզատորների համադրությամբ: Տեսակների և ռեսուրսների հետ աշխատելու անվտանգությունն ապահովող կանոնների ներառումը վերահսկելու համար առաջարկվում է օգտագործել ծանոթագրություններ կոդի և կոմպիլյատորի տարբերակներում։

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

Source: opennet.ru

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