scispace - formally typeset
G

George C. Necula

Researcher at University of California, Berkeley

Publications -  108
Citations -  10503

George C. Necula is an academic researcher from University of California, Berkeley. The author has contributed to research in topics: Proof-carrying code & Source code. The author has an hindex of 38, co-authored 106 publications receiving 10223 citations. Previous affiliations of George C. Necula include NTT DoCoMo & University of California.

Papers
More filters
Proceedings ArticleDOI

Proof-carrying code

TL;DR: It is shown in this paper how proof-carrying code might be used to develop safe assembly-language extensions of ML programs and the adequacy of concrete representations for the safety policy, the safety proofs, and the proof validation is proved.
Book ChapterDOI

CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs

TL;DR: The structure of CIL is described, with a focus on how it disambiguates those features of C that were found to be most confusing for program analysis and transformation, allowing a complete project to be viewed as a single compilation unit.
Journal ArticleDOI

CCured: type-safe retrofitting of legacy code

TL;DR: The CCured type system is described, which extends that of C by separating pointer types according to their usage, and allows both pointers whose usage can be verified statically to be type safe, and pointers whose safety must be checked at run time.
Proceedings ArticleDOI

Safe kernel extensions without run-time checking

TL;DR: PCC binaries can be executed with no run-time over-head, beyond a one-time cost of 1 to 3 milliseconds for validating the enclosed proofs, and are formally guaranteed to be safe and are faster than packet filters created using Berkeley Packet Filters, Software Fault Isolation, or safe languages such as Modula-3.
Proceedings ArticleDOI

Translation validation for an optimizing compiler

TL;DR: A practical translation validation infrastructure, able to check the correctness of many of the transformations performed by a realistic compiler, can be implemented with about the effort typically required to implement one compiler pass.