A C++ Szövetség elnöke bejelentette, hogy dolgoznak egy specifikáción, amely biztonságos memóriakezelési bővítményekkel egészíti ki a C++ nyelvet, emlékeztetve a Rust nyelv által megvalósított lehetőségekre. A projekt keretében Sean Baxter, a Circle nevű kísérleti C++ fordító szerzője, aki a C++ kód biztonságának növelésére irányuló ötleteket fejleszti a fordítón keresztül, a munka mellé került. A projekt keretében Sean közzétett egy dokumentumot, amely elemzi a Rust nyelvben javasolt védelmi intézkedések alkalmazhatóságát, értékeli a C++-ban való megvalósításuk lehetőségét, és javaslatokat tesz a biztonságosabb kódot támogató bővítmények hozzáadására a C++ nyelvhez.
Megjegyzendő, hogy az kezdeményezés válaszként indult el a fejlesztők körében a biztonságos programozási módszerek iránti növekvő igényre, és célja a C++ nyelv új lehetőségeinek integrációja, amelyek lehetővé teszik a leggyakoribb hibák elleni védelmet, amelyek memóriakezelés közben fordulnak elő, mint például az már felszabadított memória elérése és a lefoglalt puffer határainak túllépése. A bővítmények optikáként fejlődnek, amelyek fokozatosan lehetővé teszik a projektek biztonságos módszerekre való átállítását, miközben megőrzik a már létező „nem biztonságos” kódokkal való kompatibilitást.
A memória biztonságát olyan mechanizmusok révén ajánlják garantálni, amelyeket a fordítási szakaszban valósítanak meg, és amelyek nem eredményeznek olyan többlet költségeket, amelyek a szemétgyűjtő nyelveket jellemzik. A biztonság garantálásának fő módszerei között említést nyer az objektumok birtoklásának nyomon követése, a változók kölcsönzésének ellenőrzése (borrow checker), a biztonságos kontextus (safe) használata, továbbá a std2::send és std2::sync interfészek létrehozása. A munka magában foglalja egy védett változatú standard könyvtár létrehozását is, amely olyan algoritmusok és adatszerkezetek megvalósítását kínálja, amelyek lehetővé teszik a biztonságos memóriahasználatot.
Forrás: opennet.ru
