George Necula

Last updated
George Necula
George Necula.jpg
George Necula in Berkeley in 2010.
Nationality Romanian
Alma mater Polytechnic University of Bucharest
Known for Proof-carrying code
Scientific career
Fields Computer Science
Institutions Google
Doctoral advisor Peter Lee

George Ciprian Necula is a Romanian computer scientist, engineer at Google, and former professor at the University of California, Berkeley who does research in the area of programming languages and software engineering, with a particular focus on software verification and formal methods. He is best known for his Ph.D. thesis work first describing proof-carrying code, [1] a work that received the 2007 SIGPLAN Most Influential POPL Paper Award. [2]

Contents

Life and work

Originally from Baia Mare, Romania, [3] Necula received a BS in Computer Science (1992) from the Polytechnic University of Bucharest. He then came to Carnegie Mellon University in the United States, completing his MS in Computer Science (1995) and PhD in Computer Science (1998) under programming-languages researcher Peter Lee. His PhD work introduced proof-carrying code, which was influential as a mechanism to allow untrusted machine code to run safely without performance overhead. He joined as faculty at the University of California, Berkeley in 1998.

More recently, Necula's work has focused on open-source analysis, verification, and transformation tools for C, including the C Intermediate Language (CIL), CCured , and Deputy .

C Intermediate Language

C Intermediate Language (CIL) is a simplified subset of the C programming language, as well as a set of tools for transforming C programs into that language. [4] [5] [6] Several other tools use CIL as a way to have access to a C abstract syntax tree. One of these programs is Frama-C (Framework to Analyze C programs).

Awards

Necula is a Fellow of the Okawa Foundation and the Alfred P. Sloan Foundation (see Sloan Fellowship). He received the Grace Murray Hopper Award in 2001, [7] the National Science Foundation CAREER Award in 1999, [8] and the ACM SIGOPS Hall of Fame Award in 2006. [9]

Related Research Articles

<span class="mw-page-title-main">Coq (software)</span> Proof assistant

Coq is an interactive theorem prover first released in 1989. It allows for expressing mathematical assertions, mechanically checks proofs of these assertions, helps find formal proofs, and extracts a certified program from the constructive proof of its formal specification. Coq works within the theory of the calculus of inductive constructions, a derivative of the calculus of constructions. Coq is not an automated theorem prover but includes automatic theorem proving tactics (procedures) and various decision procedures.

SIGPLAN is the Association for Computing Machinery's Special Interest Group on programming languages.

<span class="mw-page-title-main">Benjamin C. Pierce</span> American professor of computer science

Benjamin Crawford Pierce is the Henry Salvatori Professor of computer science at the University of Pennsylvania. Pierce joined Penn in 1998 from Indiana University and held research positions at the University of Cambridge and the University of Edinburgh. He received his Ph.D. from Carnegie Mellon University in 1991. His research includes work on programming languages, static type systems, distributed programming, mobile agents, process calculi, and differential privacy.

<span class="mw-page-title-main">Matthias Felleisen</span> German-American computer science professor and author

Matthias Felleisen is a German-American computer science professor and author. He grew up in Germany and immigrated to the US in his twenties. He received his PhD from Indiana University under the direction of Daniel P. Friedman.

<span class="mw-page-title-main">Robert Harper (computer scientist)</span> Computer scientist

Robert William "Bob" Harper, Jr. is a computer science professor at Carnegie Mellon University who works in programming language research. Prior to his position at Carnegie Mellon, Harper was a research fellow at the University of Edinburgh.

Proof-carrying code (PCC) is a software mechanism that allows a host system to verify properties about an application via a formal proof that accompanies the application's executable code. The host system can quickly verify the validity of the proof, and it can compare the conclusions of the proof to its own security policy to determine whether the application is safe to execute. This can be particularly useful in ensuring memory safety.

Matthew Flatt is an American computer scientist and professor at the University of Utah School of Computing in Salt Lake City. He is also the leader of the core development team for the Racket programming language.

Christopher Arthur Lattner is an American computer scientist and creator of LLVM, the Clang compiler, the Swift programming language and the MLIR compiler infrastructure.

In computer science, region-based memory management is a type of memory management in which each allocated object is assigned to a region. A region, also called a zone, arena, area, or memory context, is a collection of allocated objects that can be efficiently reallocated or deallocated all at once. Memory allocators using region-based managements are often called area allocators, and when they work by only "bumping" a single pointer, as bump allocators.

The International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS) is an annual interdisciplinary computer science conference organized by the Association for Computing Machinery (ACM).

Haskell is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research, and industrial applications, Haskell has pioneered a number of programming language features such as type classes, which enable type-safe operator overloading, and monadic input/output (IO). It is named after logician Haskell Curry. Haskell's main implementation is the Glasgow Haskell Compiler (GHC).

<span class="mw-page-title-main">F* (programming language)</span> Functional programming language inspired by ML and aimed at program verification

F* is a high-level, multi-paradigm, functional and object-oriented programming language inspired by the languages ML, Caml, and OCaml, and intended for program verification. It is a joint project of Microsoft Research, and the French Institute for Research in Computer Science and Automation (Inria). Its type system includes dependent types, monadic effects, and refinement types. This allows expressing precise specifications for programs, including functional correctness and security properties. The F* type-checker aims to prove that programs meet their specifications using a combination of satisfiability modulo theories (SMT) solving and manual proofs. For execution, programs written in F* can be translated to OCaml, F#, C, WebAssembly, or assembly language. Prior F* versions could also be translated to JavaScript.

<span class="mw-page-title-main">Kathryn S. McKinley</span> American computer scientist

Kathryn S. McKinley is an American computer scientist noted for her research on compilers, runtime systems, and computer architecture. She is also known for her leadership in broadening participation in computing. McKinley was co-chair of CRA-W from 2011 to 2014.

<span class="mw-page-title-main">Radhia Cousot</span> Inventor of abstract interpretation

Radhia Cousot was a French computer scientist known for inventing abstract interpretation.

<span class="mw-page-title-main">Kathleen Fisher</span> American computer scientist

Kathleen Shanahan Fisher is an American computer scientist who specializes in programming languages and their implementation.

<span class="mw-page-title-main">ACM SIGOPS</span> ACMs Special Interest Group on Operating Systems

ACM SIGOPS is the Association for Computing Machinery's Special Interest Group on Operating Systems, an international community of students, faculty, researchers, and practitioners associated with research and development related to operating systems. The organization sponsors international conferences related to computer systems, operating systems, computer architectures, distributed computing, and virtual environments. In addition, the organization offers multiple awards recognizing outstanding participants in the field, including the Dennis M. Ritchie Doctoral Dissertation Award, in honor of Dennis Ritchie, co-creator of the C programming language and Unix operating system.

<span class="mw-page-title-main">Yannis Smaragdakis</span> American computer scientist

Yannis Smaragdakis is a Greek-American software engineer, computer programmer, and researcher. He is a professor in the Department of Informatics and Telecommunications at the University of Athens. He is the author of more than 130 research articles on a variety of topics, including program analysis, declarative languages, program generators, language design, and concurrency. He is best known for work in program generation and program analysis and the Doop framework.

A sea of nodes is a graph representation of single-static assignment (SSA) representation of a program that combines data flow and control flow, and relaxes the control flow from a total order to a partial order, keeping only the orderings required by data flow. It is similar to a value dependency graph (VDG).

Julia Laetitia Lawall is a computer scientist specializing in programming languages. Educated in the US, she has worked in the US, Denmark, and France, where she is a director of research for Inria. She is one of the developers of Coccinelle, a tool for finding patterns and making systematic transformations of source code, and she has also done research on domain-specific languages for operating systems.

References

  1. George C. Necula. Compiling with Proofs . PhD thesis, School of Computer Science, Carnegie Mellon Univ., Sept. 1998.
  2. SIGPLAN (2010-01-24). "Most Influential POPL Paper Award". ACM. Archived from the original on 2009-08-02. Retrieved 2010-02-02.
  3. George Necula (Spring 2010). "George Necula's Home Page" . Retrieved 2010-02-03.
  4. George C. Necula; Scott McPeak; Shree Prakash Rahul; Westley Weimer (2002). CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs. Proc. 11th Int'l Conf. on Compiler Construction. Springer. pp. 213–228. ISBN   3-540-43369-4.
  5. "GitHub - cil-project/Cil: C Intermediate Language". GitHub .
  6. http://portal.acm.org/citation.cfm?id=727796 CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs Lecture Notes in Computer Science; Vol. 2304 Proceedings of the 11th International Conference on Compiler Construction Pages: 213 - 228. Year of Publication: 2002. ISBN   3-540-43369-4
  7. Association for Computing Machinery (2001). "ACM Award Citation / George Necula". Archived from the original on 2012-04-19. Retrieved 2010-02-02.
  8. National Science Foundation (2002-06-22). "Award Abstract #9875171 - CAREER: A Logic-Based Approach to Software System Integrity and Security" . Retrieved 2010-02-02.
  9. Association for Computing Machinery (2010). "SIGOPS - Hall of Fame Award" . Retrieved 2010-02-02.