George Ciprian Necula este un informatician originar din România, inginer software la Google și fost profesor la Universitatea Berkeley, California. Activitatea sa de cercetare se află în domeniul limbajelor de programare, al ingineriei software, al compilatoarelor, al analizei programelor, al verificării software și al metodelor formale. Este cunoscut pentru proof-carrying code, mecanism software descris în articolul său Proof-carrying Code, publicat în 1997 și distins în 2007 cu .
Biografie și carieră Necula este originar din Baia Mare. A absolvit informatica la Universitatea Politehnica din București în 1992, apoi a urmat studii la Universitatea Carnegie Mellon, unde a obținut un masterat în informatică în 1995 și doctoratul în informatică în 1998. Teza sa doctorală, Compiling with Proofs, a fost coordonată de Peter Lee.
Între 1998 și 2017 a activat la Universitatea Berkeley din California, unde a fost, pe rând, asistent universitar, conferențiar universitar și profesor universitar de informatică. În perioada 2013 - 2015 a fost vicepreședinte al Departamentului de Inginerie Electrică și Informatică. Din 2016 lucrează la YouTube/Google ca inginer software.
Cercetare Cercetările lui Necula au vizat folosirea metodelor din teoria și implementarea limbajelor de programare pentru securitatea software, teoria și implementarea limbajelor de programare, compilatoare, analiză și optimizare de programe, verificarea programelor, verificarea compilatoarelor și securitatea codului mobil.
Lucrarea Proof-carrying Code, publicată în 1997, a introdus o tehnică prin care codul provenit dintr-o sursă care nu este considerată de încredere poate fi însoțit de o demonstrație formală a respectării unor condiții de siguranță, verificabilă înainte de execuție. În 2007, articolul a primit premiul ACM SIGPLAN Most Influential POPL Paper Award pentru lucrarea POPL din 1997. Association for Computing Machinery i-a acordat lui Necula Grace Murray Hopper Award în 2001 pentru contribuțiile privind conceptul și implementarea proof-carrying code.
Lucrarea ''Safe Kernel Extensions Without Run-Time Checking'', scrisă împreună cu Peter Lee, a aplicat tehnica ''proof-carrying code'' la extensiile de nucleu, arătând cum acestea pot fi verificate înainte de execuție fără verificări suplimentare în timpul rulării. Articolul a primit în 2006 ACM SIGOPS Hall of Fame Award.
Necula a contribuit și la instrumente pentru analiza, verificarea și transformarea programelor C, inclusiv C Intermediate Language (CIL), CCured și Deputy.
C Intermediate Language C Intermediate Language (CIL) este o reprezentare intermediară pentru limbajul C și un set de instrumente pentru analiza și transformarea programelor C. CIL reduce anumite construcții complexe ale limbajului C la forme mai simple, pentru a ușura analiza și transformarea sursă-la-sursă a programelor.
Platforma , prescurtare de la Framework for Modular Analysis of C programs, este o platformă de analiză a codului sursă scris în limbajul C, care folosește o versiune modificată a CIL ca front-end pentru C, producând un arbore sintactic abstract C + ACSL folosit de analizoarele sale.
CCured este un sistem de transformare a programelor care adaugă garanții de siguranță a tipurilor pentru programe C existente, prin verificare statică și prin inserarea de verificări la rulare acolo unde verificarea statică nu este suficientă. Deputy este un sistem de tipuri dependente pentru C, conceput pentru descrierea unor idiomuri de programare C legate de pointeri și uniuni etichetate.
Publicații selectate O selecție a publicațiilor sale, listată în profilul său de la Universitatea Berkeley din California, include:
George C. Necula și Peter Lee, „Safe Kernel Extensions Without Run-Time Checking”, în Proceedings of the 2nd USENIX Symposium on Operating Systems Design and Implementation, 1996, pp. 229–244. George C. Necula, „Proof-carrying code”, în Conference Record of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 1997, pp. 106–119. George C. Necula și Peter Lee, „The Design and Implementation of a Certifying Compiler”, în Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation, 1998, pp. 333–344. George C. Necula, „Translation Validation for an Optimizing Compiler”, în Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation, 2000, pp. 83–94. George C. Necula, Jeremy Condit, Matthew Harren, Scott McPeak și Westley Weimer, „CCured: Type-Safe Retrofitting of Legacy Software”, ACM Transactions on Programming Languages and Systems, vol. 27, nr. 3, 2005, pp. 477–526.
Premii și distincții
2001 - ACM Grace Murray Hopper Award. 2006 - ACM SIGOPS Hall of Fame Award. 2007 - ACM SIGPLAN Most Influential POPL Paper Award.
CV-ul său menționează, de asemenea, NSF Faculty Early Career Development Award, Okawa Foundation Fellowship, Alfred P. Sloan Foundation Fellowship în informatică și includerea sa, în 2016, între ACM Distinguished Members.
Note
Legături externe Pagina lui George Necula la UC Berkeley CIL pe GitHub
Categorie:Informaticieni români Categorie:Absolvenți ai Universității Politehnica din București Categorie:Oameni din Baia Mare Categorie:Oameni în viață Categorie:Români expatriați în Statele Unite ale Americii