Researcher interested in functional programming, formal methods, programming languages, and security.

Projects

A comprehensive list is available here.

Highlighted Projects

  • MATE: A suite of tools for interactive program analysis with a focus on hunting for bugs in C and C++ code using Code Property Graphs
  • cclyzer++: a precise and scalable global pointer analysis for LLVM code
  • Mogglo: Multi-language AST-based code search and rewriting tool that supports embedding Lua code in patterns
  • treereduce: A fast, parallel, syntax-aware test case reducer based on tree-sitter grammars
  • tree-splicer: Simple grammar-based test case generator (black-box fuzzer)

Datalog

  • cclyzer++: a precise and scalable global pointer analysis for LLVM code
  • dlsubst: Experimental bottom-up Datalog engine based on explicit substitutions
  • Duckalog: Datalog engine based on DuckDB
  • souffle-lint: A linter for Soufflé Datalog
  • treeedb: Generate Soufflé Datalog types, relations, and facts that represent ASTs from a variety of programming languages.
  • tree-sitter-souffle: A tree-sitter grammar for Soufflé Datalog

Fuzzing

  • radamsa-sys: Rust bindings for Radamsa
  • treereduce: A fast, parallel, syntax-aware test case reducer based on tree-sitter grammars
  • tree-crasher: Easy-to-use grammar-based black-box fuzzer
  • tree-splicer: Simple grammar-based test case generator

Tiny tools

  • Icemelter: Icemelter automates steps in debugging rustc internal compiler errors (ICEs)

Tiny libraries

  • fin-part-ord: Crate for representing finite partial orders
  • tree-sitter-edit: A crate for printing modified tree-sitter parse trees, intended for use in multi-language code refactoring, linting, or modification (codemod) tools

Other

Writing