I am Professor of Software Reliability in the Department of Computing at Imperial College London, where I lead the Software Reliability Group

My research interests span the areas of software engineering, computer systems and software security, with a focus on building practical techniques and tools for improving the reliability and security of software systems.

I have received the BCS Roger Needham Award in 2019, a SIGOPS Hall of Fame award in 2018, an ERC Consolidator Grant in 2018, the HVC Award in 2017, the ACM Computer and Communications Security (CCS) Test of Time Award in 2016, a BCS Fellowship in 2016, the Jochen Liedtke Young Researcher Award in 2015 and an EPSRC Early-Career Fellowship in 2013.

Previously, I received a Ph.D. in Computer Science from Stanford University, an M.Eng. in Computer Science from MIT, and a B.S. in Computer Science and one in Mathematics also from MIT.

Visit my webpage at http://www.doc.ic.ac.uk/~cristic/.

Recent Publications

  • Grammar Mutation for Testing Input Parsers (Registered Report)

    Bachir Bendrissou, Cristian Cadar, Alastair Donaldson

    International Fuzzing Workshop (FUZZING 2023)

  • GrayC: Greybox Fuzzing of Compilers and Analysers for C

    Karine Even-Mendoza, Arindam Sharma, Alastair Donaldson, Cristian Cadar

    ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2023)

  • KDAlloc: The KLEE Deterministic Allocator

    Daniel Schemmel, Julian Büning, Frank Busse, Martin Nowack, Cristian Cadar

    Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2023)

  • Patch Specifications via Product Programs

    Cristian Cadar, Daniel Schemmel, Arindam Sharma

    2023 International Conference on Formal Methods in Software Engineering (FormaliSE 2023)

  • Combining Static Analysis Error Traces with Dynamic Symbolic Execution (Experience Paper)

    Frank Busse, Pritam Gharat, Cristian Cadar, Alastair Donaldson

    ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2022)

  • SnapFuzz: High-Throughput Fuzzing of Network Applications

    Anastasios Andronidis, Cristian Cadar

    ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2022)

  • A Deterministic Memory Allocator for Dynamic Symbolic Execution

    Daniel Schemmel, Julian Büning, Frank Busse, Martin Nowack, Cristian Cadar

    36th European Conference on Object-Oriented Programming (ECOOP 2022)

  • CsmithEdge: More Effective Compiler Testing by Handling Undefined Behaviour Less Conservatively

    Karine Even-Mendoza, Cristian Cadar, Alastair Donaldson

    Empirical Software Engineering (EMSE 2022)

  • SaBRe: Load-time Selective Binary Rewriting

    Paul-Antoine Arras, Anastasios Andronidis, Luís Pina, Karolis Mituzas, Qianyi Shu, Daniel Grumberg, Cristian Cadar

    International Journal on Software Tools for Technology Transfer (STTT 2022)

  • Fuzzing: Challenges and Reflections

    Marcel Böhme, Cristian Cadar, Abhik Roychoudhury

    IEEE Software (2021)

  • Past-Sensitive Pointer Analysis for Symbolic Execution

    David Trabish, Timotej Kapus, Noam Rinetzky, Cristian Cadar

    European Software Engineering Conference / ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2020)

  • Closer to the Edge: Testing Compilers More Thoroughly by Being Less Conservative About Undefined Behaviour

    Karine Even-Mendoza, Cristian Cadar, Alastair Donaldson

    IEEE/ACM International Conference on Automated Software Engineering, New Ideas and Emerging Results Track (ASE-NIER 2020)

  • Pending Constraints in Symbolic Execution for Better Exploration and Seeding

    Timotej Kapus, Frank Busse, Cristian Cadar

    IEEE/ACM International Conference on Automated Software Engineering (ASE 2020)

  • Running Symbolic Execution Forever

    Frank Busse, Martin Nowack, Cristian Cadar

    ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2020)

  • KLEE Symbolic Execution Engine in 2019

    Cristian Cadar, Martin Nowack

    International Journal on Software Tools for Technology Transfer (2020)

  • Constraints in Dynamic Symbolic Execution: Bitvectors or Integers?

    Timotej Kapus, Martin Nowack, Cristian Cadar

    International Conference on Tests and Proofs (TAP 2019)

  • Compiler Fuzzing: How Much Does It Matter?

    Michael Marcozzi, Qiyi Tang, Alastair Donaldson, Cristian Cadar

    Proceedings of the ACM on Programming Languages (OOPSLA 2019)

  • Just Fuzz It: Solving Floating-point Constraints Using Coverage-guided Fuzzing

    Daniel Liew, Cristian Cadar, Alastair Donaldson, J. Ryan Stinnett

    European Software Engineering Conference / ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2019)

  • A Segmented Memory Model for Symbolic Execution

    Timotej Kapus, Cristian Cadar

    European Software Engineering Conference / ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2019)

  • Computing Summaries of String Loops in C for Better Testing and Refactoring

    Timotej Kapus, Oren Ish-Shalom, Shachar Itzhaky, Noam Rinetzky, Cristian Cadar

    ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2019)

  • Mvedsua: Higher Availability Dynamic Software Updates via Multi-Version Execution

    Luís Pina, Anastasios Andronidis, Michael Hicks, Cristian Cadar

    International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2019)

  • On the Correctness of Electronic Documents: Studying, Finding, and Localizing Inconsistency Bugs in PDF Readers and Files

    Tomasz Kuchta, Thibaud Lutellier, Edmund Wong, Lin Tan, Cristian Cadar

    Empirical Software Engineering (EMSE 2018)

  • PARTI: A Multi-interval Theory Solver for Symbolic Execution

    Oscar Soria Dustmann, Klaus Wehrle, Cristian Cadar

    IEEE/ACM International Conference on Automated Software Engineering (ASE 2018)

  • Shadow Symbolic Execution for Testing Software Patches

    Tomasz Kuchta, Hristina Palikareva, Cristian Cadar

    ACM Transactions on Software Engineering and Methodology (TOSEM 2018)

  • Chopped Symbolic Execution

    David Trabish, Andrea Mattavelli, Noam Rinetzky, Cristian Cadar

    International Conference on Software Engineering (ICSE 2018)

  • FreeDA: Deploying Incompatible Stock Dynamic Analyses in Production via Multi-Version Execution

    Luís Pina, Anastasios Andronidis, Cristian Cadar

    ACM International Conference on Computing Frontiers (CF 2018)

  • Floating-Point Symbolic Execution: A Case Study in N-version Programming

    Daniel Liew, Daniel Schemmel, Cristian Cadar, Alastair Donaldson, Rafael Zähl, Klaus Wehrle

    IEEE/ACM International Conference on Automated Software Engineering (ASE 2017)

  • Automatic Testing of Symbolic Execution Engines via Program Generation and Differential Testing

    Timotej Kapus, Cristian Cadar

    IEEE/ACM International Conference on Automated Software Engineering (ASE 2017)

  • Accelerating Array Constraints in Symbolic Execution

    David M. Perry, Andrea Mattavelli, Xiangyu Zhang, Cristian Cadar

    International Symposium on Software Testing and Analysis (ISSTA 2017)

  • A DSL Approach to Reconcile Equivalent Divergent Program Executions

    Luís Pina, Daniel Grumberg, Anastasios Andronidis, Cristian Cadar

    USENIX Annual Technical Conference (USENIX ATC 2017)

  • Analysing the Program Analyser

    Cristian Cadar, Alastair Donaldson

    International Conference on Software Engineering, Visions of 2025 and Beyond Track (ICSE V2025)

  • Shadow of a Doubt: Testing for Divergences Between Software Versions

    Hristina Palikareva, Tomasz Kuchta, Cristian Cadar

    International Conference on Software Engineering (ICSE 2016)

  • Symbooglix: A Symbolic Execution Engine for Boogie Programs

    Daniel Liew, Cristian Cadar, Alastair Donaldson

    IEEE International Conference on Software Testing, Verification, and Validation (ICST 2016)

  • Towards Deployment-Time Dynamic Analysis of Server Applications

    Luís Pina, Cristian Cadar

    International Workshop on Dynamic Analysis (WODA 2015)

  • Targeted Program Transformations for Symbolic Execution

    Cristian Cadar

    European Software Engineering Conference / Symposium on the Foundations of Software Engineering New Ideas Track (ESEC/FSE NI 2015)

  • Varan the Unbelievable: An Efficient N-version Execution Framework

    Petr Hosek, Cristian Cadar

    International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2015)

  • Docovery: Toward Generic Automatic Document Recovery

    Tomasz Kuchta, Cristian Cadar, Miguel Castro, Manuel Costa

    International Conference on Automated Software Engineering (ASE 2014)

  • Covrig: A Framework for the Analysis of Code, Test, and Coverage Evolution in Real Software

    Paul Dan Marinescu, Petr Hosek, Cristian Cadar

    International Symposium on Software Testing and Analysis (ISSTA 2014)

  • Symbolic Crosschecking of Data-Parallel Floating-Point Code

    Peter Collingbourne, Cristian Cadar, Paul H. J. Kelly

    IEEE Transactions on Software Engineering (TSE 2014)

  • SymbexNet: Testing Network Protocol Implementations with Symbolic Execution and Rule-Based Specifications

    JaeSeung Song, Cristian Cadar, Peter Pietzuch

    IEEE Transactions on Software Engineering (TSE 2014)

  • Shadow Symbolic Execution for Better Testing of Evolving Software

    Cristian Cadar, Hristina Palikareva

    International Conference on Software Engineering, New Ideas and Emerging Results (ICSE NIER 2014)

  • KATCH: High-Coverage Testing of Software Patches

    Paul Dan Marinescu, Cristian Cadar

    European Software Engineering Conference / ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2013)

  • Multi-solver Support in Symbolic Execution

    Hristina Palikareva, Cristian Cadar

    International Conference on Computer Aided Verification (CAV 2013)

  • Safe Software Updates via Multi-version Execution

    Petr Hosek, Cristian Cadar

    International Conference on Software Engineering (ICSE 2013)

  • Symbolic Execution for Software Testing: Three Decades Later

    Cristian Cadar, Koushik Sen

    Communications of the Association for Computing Machinery (CACM 2013)

  • High-Coverage Symbolic Patch Testing

    Paul Dan Marinescu, Cristian Cadar

    International SPIN Workshop on Model Checking of Software (SPIN 2012)

  • make test-zesti: A Symbolic Execution Solution for Improving Regression Testing

    Paul Dan Marinescu, Cristian Cadar

    International Conference on Software Engineering (ICSE 2012)

  • Multi-Version Software Updates

    Cristian Cadar, Petr Hosek

    Workshop on Hot Topics in Software Upgrades (HotSWUp 2012)

  • Efficient Argumentation for Medical Decision-Making

    Matthew Williams, Robert Craven, Francesca Toni, Cristian Cadar, Adrian Hadad

    International Conference on Principles of Knowledge Representation and Reasoning (KR 2012)

  • Safe Software Updates via Multi-version Execution

    Petr Hosek, Cristian Cadar

    Imperial College London

  • Rule-based Verification of Network Protocol Implementations using Symbolic Execution

    JaeSeung Song, Tiejun Ma, Cristian Cadar, Peter Pietzuch

    IEEE International Conference on Computer Communications and Networks (ICCCN 2011)

  • High Coverage Testing of Haskell Programs

    Tristan Allwood, Cristian Cadar, Susan Eisenbach

    International Symposium on Software Testing and Analysis (ISSTA 2011)

  • Symbolic Execution for Software Testing in Practice - Preliminary Assessment

    Cristian Cadar, Patrice Godefroid, Sarfraz Khurshid, Corina Pasareanu, Koushik Sen, Nikolai Tillmann, Willem Visser

    International Conference on Software Engineering, Impact Project (ICSE Impact 2011)

  • Symbolic Crosschecking of Floating-Point and SIMD Code

    Peter Collingbourne, Cristian Cadar, Paul H. J. Kelly

    European Conference on Computer Systems (EuroSys 2011)

  • Symbolic Testing of OpenCL Code

    Peter Collingbourne, Cristian Cadar, Paul H. J. Kelly

    Haifa Verification Conference (HVC 2011)

  • Multiplicity Computing: A Vision of Software Engineering for Next-Generation Computing Platform Applications

    Cristian Cadar, Peter Pietzuch, Alexander Wolf

    Workshop on Future of Software Engineering Research (FoSER 2010)

Other Publications

  • KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs

    Cristian Cadar, Daniel Dunbar, Dawson Engler

    USENIX Symposium on Operating Systems Design and Implementation (OSDI 2008)

  • Data Randomization

    Cristian Cadar, Periklis Akritidis, Manuel Costa, Jean-Phillipe Martin, Miguel Castro

    Microsoft Research TR-120-2008

  • Preventing Memory Error Exploits with WIT

    Periklis Akritidis, Cristian Cadar, Costin Raiciu, Manuel Costa, Miguel Castro

    IEEE Symposium on Security and Privacy (Oakland Security 2008)

  • RWset: Attacking Path Explosion in Constraint-Based Test Generation

    Peter Boonstoppel, Cristian Cadar, Dawson Engler

    ETAPS Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2008)

  • EXE: Automatically Generating Inputs of Death

    Cristian Cadar, Vijay Ganesh, Peter Pawlowski, David Dill, Dawson Engler

    ACM Transactions on Information and System Security (TISSEC 2008)

  • EXE: Automatically Generating Inputs of Death

    Cristian Cadar, Vijay Ganesh, Peter Pawlowski, David Dill, Dawson Engler

    ACM Conference on Computer and Communications Security (CCS 2006)

  • Automatically Generating Malicious Disks Using Symbolic Execution

    Junfeng Yang, Can Sar, Paul Twohey, Cristian Cadar, Dawson Engler

    IEEE Symposium on Security and Privacy (Oakland 2006)

  • Exploring the acceptability envelope

    Martin Rinard, Cristian Cadar, Huu Hai Nguyen

    Conference on Object-Oriented Programming Systems, Languages, and Applications Companion (OOPSLA Onward 2005)

  • Execution Generated Test Cases: How to Make Systems Code Crash Itself

    Cristian Cadar, Dawson Engler

    International SPIN Workshop on Model Checking of Software (SPIN 2005)

  • Enhancing Server Availability and Security Through Failure-Oblivious Computing

    Martin Rinard, Cristian Cadar, Daniel Dumitran, Daniel Roy, Tudor Leu, William Beebee Jr.

    USENIX Symposium on Operating Systems Design and Implementation (OSDI 2004)

  • A Dynamic Technique for Eliminating Buffer Overflow Vulnerabilities (and Other Memory Errors)

    Martin Rinard, Cristian Cadar, Daniel Dumitran, Daniel Roy, Tudor Leu

    Annual Computer Security Applications Conference (ACSAC 2004)