З'явіўся новы дыялект, у якім вырашаецца галоўная «болька» С і С++
Стартап Trasec прыступіў да распрацоўкі новай мовы праграмавання TrapC, якая ёсць эвалюцыйнай формай С і С++, паведамляе The Register. Ейная галоўная асаблівасць у бяспечнай працы з памяццю, якая закрые хакерам прастор для творчасці.
Аўтары TrapC прапанавалі свой метад абароны ад памылак пры працы з памяццю, выхад па-за межы буфера і спробу працы з ужо вызваленай памяццю. Ідэя палягае ў пераглядзе алгарытмаў працы з паказальнікамі памяці і стварэнні новага механізму перахопу памылак.
Гэты механізм яны прапаноўваюць грунтаваць на так званым «апрацоўшчыку выключэнняў» (trap), што адлюстравана ў назве мовы. Таксама вядзецца праца над кампілятарам для яго, код якога аўтары ў будучыні хочуць зрабіць адкрытым. Па плане гэта мае адбыцца ў наступным годзе, але дакладнай даты пакуль няма.
Усе новыя алгарытмы і механізмы абароны будуць рэалізаваныя непасрэдна ў кампілятары. Яны будуць строга сачыць за межамі выдзеленых буфераў памяці і за тым, што паказальнікі спасылаюцца толькі на звязаныя з імі вобласці памяці. Акрамя гэтага, кампілятар будзе сачыць за ўжываннем тыпаў і «лаяцца» на небяспечнае, паводле яго ацэнкі, іх выкарыстанне.
Распрацоўшчыкі TrapC імкнуцца зрабіць мову прасцейшай за С або С++. У прыватнасці, у ім няма канструктара malloc — выкарыстоўваецца канструктар new. Таксама былі выключаныя выклікі free і delete, а кампілятару сярод іншага даручана адказваць за вызваленне памяці. Такі падыход дадаткова павышае абарону ад уцечак памяці. У TrapC нашмат менш ключавых слоў, чым у С і С++. Так, у ім адсутнічае ключавое слова union, якое ўжываецца для вызначэння аб’яднанняў. Адначасова гэтая мова распрацаваная для сумяшчальнасці з C, паколькі яна выкарыстоўвае той жа двайковы інтэрфейс праграмы.
Ля вытокаў стартапа Trasec, як і мовы TrapC, стаіць былы прафесар камп’ютарных навук і былы сябра шматлікіх камітэтаў па развіцці стандартаў С і С++ Робін Роу. Ён таксама вядомы як суаўтар знакамітага оўпэнсорснага графічнага рэдактара Cinepaint, які выкарыстоўваўся пры стварэнні графікі прыкладна для 20 вядомых фільмаў, у тым ліку «Двайнога фарсажу», «Планеты малпаў», «Чалавека-павука» і ўсіх фільмаў пра Гары Потэра. Акрамя гэтага, Роу распрацоўваў POSIX-бібліятэку libunistd для Windows. У Trasec ён выконвае ролю гендырэктара. Цяпер стартап займаецца пошукам інвестараў і зборам сродкаў.
За праблемы з памяццю С і С++ у апошнія гады адкрыта і ўсё гучней лаюць праграмісты і чыноўнікі. Спецыялісты заклікаюць пазбавіцца ад абедзвюх моў і перайсці на іх бяспечных для памяці канкурэнтаў, а таксама перапісаць усе праекты на іх. Часцей за ўсё ў якасці бяспечнай альтэрнатывы С і С++ згадваецца Rust. Яго ўжо прапанавана выкарыстоўваць для ядра Linux, а Microsoft задумваецца аб перапісванні на ім часткі сваіх прадуктаў. Зрэшты, сярод праграмістаў пакуль яшчэ шмат тых, хто не збіраецца адмаўляцца ад С і С++ на карысць Rust.
Читать на dev.by