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 attended the Polytechnic University of Bucharest before coming to Carnegie Mellon University in the United States to complete his Ph.D. under programming languages researcher Peter Lee. His Ph.D. thesis first describing proof-carrying code 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

Bjarne Stroustrup Danish computer scientist, creator of C++

Bjarne Stroustrup is a Danish computer scientist, most notable for the invention and development of the C++ programming language. He is a visiting professor at Columbia University, and works at Morgan Stanley as a managing director in New York.

Andrew D. Gordon is a British computer scientist employed by Microsoft Research. His research interests include programming language design, formal methods, concurrency, cryptography, and access control.

Coq 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.

IDL is a software interface description language created by William Wulf and John Nestor of Carnegie Mellon University and David Lamb of Queen's University, Canada.

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

Benjamin C. Pierce 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.

Philip Wadler American computer scientist

Philip Lee Wadler is an American computer scientist known for his contributions to programming language design and type theory. In particular, he has contributed to the theory behind functional programming and the use of monads in functional programming, the design of the purely functional language Haskell, and the XQuery declarative query language. In 1984, he created the Orwell programming language. Wadler was involved in adding generic types to Java 5.0. He is also author of the paper Theorems for free! that gave rise to much research on functional language optimization.

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.

Monica Sin-Ling Lam is an American computer scientist. She is a professor in the Computer Science Department at Stanford University.

In computer science, pointer analysis, or points-to analysis, is a static code analysis technique that establishes which pointers, or heap references, can point to which variables, or storage locations. It is often a component of more complex analyses such as escape analysis. A closely related technique is shape analysis.

The Geometry of Interaction (GoI) was introduced by Jean-Yves Girard shortly after his work on linear logic. In linear logic, proofs can be seen as various kinds of networks as opposed to the flat tree structures of sequent calculus. To distinguish the real proof nets from all the possible networks, Girard devised a criterion involving trips in the network. Trips can in fact be seen as some kind of operator acting on the proof. Drawing from this observation, Girard described directly this operator from the proof and has given a formula, the so-called execution formula, encoding the process of cut elimination at the level of operators.

Chris Lattner is an American software engineer best known as the main author of LLVM and related projects such as the Clang compiler and the Swift programming language. As of January 21, 2022, he is the CEO at Modular AI, a artificial intelligence company he co-founded. Before founding Modular AI, he was working at SiFive as Senior Vice President of Platform Engineering, after two years at Google Brain. Prior to that, he briefly served as Vice President of Autopilot Software at Tesla, Inc. and worked at Apple Inc. as Senior Director of the Developer Tools department, leading the Xcode, Instruments, and compiler teams.

Mads Tofte Danish computer scientist

Mads Tofte is a Danish computer scientist who has contributed in particular to functional programming and the Standard ML programming language.

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. Like stack allocation, regions facilitate allocation and deallocation of memory with low overhead; but they are more flexible, allowing objects to live longer than the stack frame in which they were allocated. In typical implementations, all objects in a region are allocated in a single contiguous range of memory addresses, similarly to how stack frames are typically allocated.

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

Device driver synthesis and verification

Device drivers are programs which allow software or higher-level computer programs to interact with a hardware device. These software components act as a link between the devices and the operating systems, communicating with each of these systems and executing commands. They provide an abstraction layer for the software above and also mediate the communication between the operating system kernel and the devices below.

Radhia Cousot Inventor of abstract interpretation

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

Kathleen Fisher American computer scientist

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

David Bacon is an American computer programmer.

Grigore Roșu Computer science professor

Grigore Roșu is a computer science professor at the University of Illinois at Urbana-Champaign and a researcher in the Information Trust Institute. He is known for his contributions in runtime verification, K framework, matching logic, and automated coinduction.

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".
  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" . 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.