George Necula | |
---|---|
Nationality | Romanian |
Alma mater | Polytechnic University of Bucharest |
Known for | Proof-carrying code |
Scientific career | |
Fields | Computer Science |
Institutions | |
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]
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 (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).
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]
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 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 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 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 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 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 was a French computer scientist known for inventing abstract interpretation.
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 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.