C++ Alliance propaguje v C++ mechanismy bezpečné práce s pamětí, vyzkoušené v Rustu

Prezident organizace C++ Alliance oznámil práci na specifikaci, která do jazyka C++ přidává rozšíření pro bezpečné zacházení s pamětí, připomínající funkce implementované v jazyce Rust. Na realizaci projektu byl přizván Sean Baxter, autor experimentálního C++ kompilátoru Circle, který rozvíjí myšlenky na zvýšení bezpečnosti kódu C++, realizované na straně kompilátoru bez použití garbage collection. V rámci projektu Sean zveřejnil dokument s analýzou použitelnosti různých ochranných opatření navržených v jazyce Rust a hodnocením možnosti jejich implementace pro C++, spolu s návrhy na přidání rozšíření do jazyka C++, které zvýší bezpečnost kódu.

Je uvedeno, že iniciativa byla spuštěna v reakci na rostoucí potřebu mezi vývojáři po bezpečných metodách programování, a má za cíl integrovat do jazyka C++ nové možnosti, které umožní ochranu před běžnými chybami při práci s pamětí, jako je přístup k již uvolněné paměti a přetečení vyčleněných bufferů. Tyto doplňky jsou vyvíjeny jako volby, které postupně umožní migraci projektů na bezpečné metody, přičemž se zachová kompatibilita s již existujícím 'nebezpečným' kódem.

Bezpečnost práce s pamětí by měla být zajištěna mechanismy, které jsou realizovány na úrovni kompilace a nezpůsobují dodatečné náklady typické pro jazyky využívající garbage collectory. Mezi hlavní navrhované metody pro zajištění bezpečnosti patří sledování vlastnictví objektů, kontrola přebírání proměnných (borrow checker), použití bezpečného kontextu (safe), a vytváření rozhraní std2::send a std2::sync. Práce také zahrnuje vytvoření chráněné verze standardní knihovny, která nabízí implementace algoritmů a datových struktur umožňujících bezpečné zacházení s pamětí.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster