Președintele organizației C++ Alliance a anunțat inițierea lucrărilor la o specificație care adaugă în limbajul C++ extensii pentru o gestionare sigură a memoriei, asemănătoare cu funcționalitățile implementate în limbajul Rust. Pentru realizarea proiectului a fost implicat Sean Baxter, autorul compilatorului experimental C++ Circle, care dezvoltă idei pentru creșterea siguranței codului C++, implementate la nivelul compilatorului fără utilizarea colectării de gunoi. În cadrul proiectului, Sean a publicat un document cu analiza aplicabilității diferitelor măsuri de protecție propuse în Rust, evaluând posibilitatea implementării acestora pentru C++ și propunând extensii pentru limbajul C++ care să îmbunătățească siguranța codului.
Se menționează că inițiativa a fost lansată ca răspuns la nevoia tot mai mare din partea dezvoltatorilor de metode de programare sigure și are ca scop integrarea unor noi funcționalități în C++, care să ajute la protejarea împotriva erorilor frecvente ce apar în gestionarea memoriei, precum accesarea memoriei deja eliberate și depășirea limitelor bufferelor alocate. Extensiile sunt dezvoltate sub formă de opțiuni care vor permite o tranziție graduală a proiectelor către metode sigure, păstrând în același timp compatibilitatea cu codul existent „nesigur”.
Siguranța gestionării memoriei este propusă să fie asigurată prin mecanisme implementate în etapa de compilare, fără a genera costuri suplimentare, caracteristice limbajelor care utilizează colectoare de gunoi. Printre metodele principale propuse pentru asigurarea securității se numără urmărirea proprietății obiectelor, verificarea împrumutului variabilelor (borrow checker), utilizarea unui context sigur (safe) și crearea de interfețe std2::send și std2::sync. De asemenea, se lucrează la crearea unei variante securizate a bibliotecii standard, care oferă implementări ale algoritmilor și structurilor de date ce permit gestionarea sigură a memoriei.
Sursa: opennet.ro
