Research
Publications
Teaching
Mentoring
Services
Talks
Code
Quotes

Guannan Wei🔗


Email: guannan.wei@tufts.edu
Address:
  420 Joyce Cummings Center
  177 College Avenue
  Medford, MA 02155
Google Scholar | DBLP | Github
BlueSky | Twitter | Gallery | IG | Blog
Curriculum Vitae

Recent Teaching
CS150 Adv Prog Lang, Fall’25

Recent Papers/Talks
Dagstuhl Seminar 25241
Seminar @ LIPN/Paris 13
Wasm Research Day ’25
Wasm Workshop @ POPL’25
TFP ’25

Recent Service
• Org: Social Media Co-Chair, FSE ’26
• PC: PEPM ’26, TFPIE ’26, ICFP ’25, PLDI ’25, OOPSLA ’25, GeCoIn ’25, miniKanren ’25, Scala ’25, NEPLS ’25Sp, SETTA ’25, TFPIE ’25

last update: Aug 31, 2025

I am a tenure-track Assistant Professor in Computer Science at Tufts University, and a member of Tufts PL group (TuPL). Previously, I was a postdoctoral researcher in the ANTIQUE team at INRIA and École Normale Supérieure (Paris), working with Caterina Urban. I obtained my Ph.D. in Computer Science from Purdue University (advised by Tiark Rompf), and M.S. from the University of Utah (advised by Matt Might).

I study the scientific and engineering aspects of software systems and programming. Driven by a fascination with how programming languages allow people creating abstractions and communicating ideas, my research aims to develop novel notions and tools that empower people to build correct, safe, and efficient software.

I’m looking for PhD/MS/undergraduate students! If you are interested in type systems, program analysis, compilers/metaprogramming, or their applications in the wild, please reach out. If you’re already a student at Tufts, feel free to email me to set up a meeting.

Research🔗

I am interested in type systems, program analysis/verification/testing, interpreters and compilers, metaprogramming, as well as their applications.

Publications🔗

Recent Drafts
  • Escape with Your Self: Sound and Expressive Bidirectional Typing with Avoidance for Reachability Types
    Songlin Jia, Guannan Wei, Siyuan He, Yuyan Bao, Tiark Rompf
    Under submission
    [arxiv]

2025
  • Hallucination-Resilient LLM-Driven Sound and Tunable Static Analysis – A Case of Higher-Order Control-Flow Analysis (Position paper)
    Guannan Wei, Zhuo Zhang, Caterina Urban
    The 1st International Workshop on Language Models and Programming Languages (LMPL), co-located with SPLASH/ICFP 2025. Singapore

  • Programming Large Language Models with Algebraic Effect Handlers and the Selection Monad (Position paper)
    Shangyin Tan, Guannan Wei, Koushik Sen, Matei Zaharia
    The 1st International Workshop on Language Models and Programming Languages (LMPL), co-located with SPLASH/ICFP 2025. Singapore

  • Modeling Reachability Types with Logical Relations – Semantic Type Soundness, Termination, Effect Safety, and Equational Theory
    Yuyan Bao, Songlin Jia, Guannan Wei, Oliver Bračevac, Tiark Rompf
    Proceedings of the ACM on Programming Languages, Volume 9 (OOPSLA 2025). Singapore
    [arxiv]

  • Reconstructing Continuation-Passing Semantics for WebAssembly
    Guannan Wei, Alex Bai, Dinghong Zhong, Jiatai Zhang
    Proceedings of the 26th International Symposium on Trends in Functional Programming (TFP 2025). Oxford, UK
    [pdf] [artifact]

2024
  • Polymorphic Reachability Types: Tracking Freshness, Aliasing, and Separation in Higher-Order Generic Programs
    Guannan Wei, Oliver Bračevac, Songlin Jia, Yuyan Bao, Tiark Rompf
    Proceedings of the ACM on Programming Languages, Volume 8 (POPL 2024). London, United Kingdom
    [pdf] [appendix] [acm dl] [arxiv] [artifact]

  • Consolidating Smart Contracts with Behavioral Contracts
    Guannan Wei, Danning Xie, Wuqi Zhang, Yongwei Yuan, Zhuo Zhang* (* corresponding author)
    Proceedings of the ACM on Programming Languages, Volume 8 (PLDI 2024). Copenhagen, Denmark
    [pdf] [acm dl] [artifact]

  • ParDiff: Practical Static Differential Analysis of Network Protocol Parsers
    Mingwei Zheng, Qingkai Shi, Xuwei Liu, Xiangzhe Xu, Le Yu, Congyu Liu, Guannan Wei, Xiangyu Zhang
    Proceedings of the ACM on Programming Languages, Volume 8 (OOPSLA 2024). Pasadena, CA, USA
    [pdf] [acm dl] [artifact]

2023
  • Compiling Parallel Symbolic Execution with Continuations
    Guannan Wei, Songlin Jia, Ruiqi Gao, Haotian Deng, Shangyin Tan, Oliver Bračevac, Tiark Rompf
    The 45th International Conference on Software Engineering (ICSE 2023)
    [pdf] [ieee] [artifact]

  • Graph IRs for Impure Higher-Order Languages – Making Aggressive Optimizations Affordable with Precise Effect Dependencies
    Oliver Bračevac, Guannan Wei, Songlin Jia, Supun Abeysinghe, Yuxuan Jiang, Yuyan Bao, Tiark Rompf
    Proceedings of the ACM on Programming Languages, Volume 7 (OOPSLA 2023). Cascais, Portugal
    [pdf] [acm dl]

  • Metaprogramming Program Analyzers
    Guannan Wei
    PhD Dissertation. Purdue University. 2023
    [pdf]

2022
  • What If We Don’t Pop the Stack? The Return of Second-Class Values
    Anxhelo Xhebraj, Oliver Bračevac, Guannan Wei, Tiark Rompf
    Proceedings of the 36th European Conference on Object-Oriented Programming (ECOOP 2022). Berlin, Germany
    [pdf] [dagstuhl] [artifact]

  • Towards Partially Evaluating Symbolic Interpreters for All
    Shangyin Tan, Guannan Wei, Tiark Rompf
    ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM), co-located with POPL 2022. Philadelphia, PA, USA
    [pdf] [bib]

2021
  • Reachability Types: Tracking Aliasing and Separation in Higher-Order Functional Programs
    Yuyan Bao, Guannan Wei, Oliver Bračevac, Yuxuan Jiang, Qiyang He, Tiark Rompf
    Proceedings of the ACM on Programming Languages, Volume 5 (OOPSLA 2021). Online/Chicago, IL, USA
    [pdf] [acm dl] [artifact]

  • LLSC: A Parallel Symbolic Execution Compiler for LLVM IR (Tool Demonstration)
    Guannan Wei, Shangyin Tan, Oliver Bračevac, Tiark Rompf
    Proceedings of the 29th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2021)
    [pdf] [acm dl] [demo]

2020
  • Compiling Symbolic Execution with Staging and Algebraic Effects
    Guannan Wei, Oliver Bračevac, Shangyin Tan, Tiark Rompf
    Proceedings of the ACM on Programming Languages, Volume 4 (OOPSLA 2020). Online
    [pdf] [acm dl] [artifact]

2019
  • Staged Abstract Interpreters: Fast and Modular Whole-Program Analysis via Meta-Programming
    Guannan Wei, Yuxuan Chen, Tiark Rompf
    Proceedings of the ACM on Programming Languages, Volume 3 (OOPSLA 2019). Athens, Greece
    [pdf] [acm dl] [artifact]

  • Precise Reasoning with Structured Time, Structured Heaps, and Collective Operations
    Grégory Essertel, Guannan Wei, Tiark Rompf
    Proceedings of the ACM on Programming Languages, Volume 3 (OOPSLA 2019). Athens, Greece
    [pdf] [acm dl] [artifact]

  • BDA: Practical Dependence Analysis for Binary Executables by Unbiased Whole-program Path Sampling and Per-path Abstract Interpretation
    Zhuo Zhang, Wei You, Guanhong Tao, Guannan Wei, Yonghwi Kwon, Xiangyu Zhang
    Proceedings of the ACM on Programming Languages, Volume 3 (OOPSLA 2019). Athens, Greece
    [pdf] [acm dl] [artifact]

  • Towards Verified Binary Raising
    Joe Hendrix, Guannan Wei, Simon Winwood
    Workshop on Instruction Set Architecture Specification, co-located with ITP 2019. Portland, OR, USA
    [pdf] [bib]

  • Graph Neural Reasoning for 2-Quantified Boolean Formula Solvers
    Zhanfu Yang, Fei Wang, Ziliang Chen, Guannan Wei, Tiark Rompf
    Workshop on Learning and Reasoning with Graph-Structured Representations, co-located with ICML 2019. Long Beach, CA, USA
    [pdf] [bib]

  • Snek: Overloading Python Semantics via Virtualization
    James M. Decker, Dan Moldovan, Andrew A. Johnson, Guannan Wei, Fei Wang, Grégory Essertel, Alexander B. Wiltschko, Tiark Rompf
    [pdf]

2018
  • Refunctionalization of Abstract Abstract Machines (Functional Pearl)
    Guannan Wei, James M. Decker, Tiark Rompf
    Proceedings of the ACM on Programming Languages, Volume 2 (ICFP 2018). St. Louis, MO, USA
    [pdf] [acm dl] [artifact]

Teaching🔗

Tufts University

  • CS150 Advanced Programming Languages
    Instructor, Fall 2025

Purdue University
  • CS352 Compilers: Principles and Practice (undergraduate)
    Co-instructor, Spring 2024

  • CS352 Compilers: Principles and Practice (undergraduate)
    Lead Teaching Assistant, Spring 2020 [testimonials]

  • CS502 Compilers: Principles and Practice (graduate)
    Teaching Assistant, Fall 2019

  • CS252 System Programming (undergraduate)
    Lab Instructor, Fall 2017
    Lab Instructor, Spring 2018

Mentoring🔗

PhD Students

Undergraduate Students
  • Alex Bai, Tufts University, Fall 2024 - (Next step: PhD student, NYU)

  • Mikail Khan, Purdue University, Fall 2022 - Spring 2024 (Next step: PhD student, CMU)

  • Shangyin Tan, Purdue University, Summer 2020 - Fall 2021 (Next step: PhD student, UC Berkeley)

  • Yuxuan Chen, Purdue University, Fall 2018 (Next step: Software Engineer, Meta)

Services🔗

  • Organization: Social Media Co-Chair FSE 2026

  • Program Committee Member: PEPM 2026, TFPIE 2026, Generative Code Intelligence Workshop (GeCoIn) 2025, miniKanren Workshop 2025, Scala Workshop 2025, NEPLS 2025 Spring, SETTA 2025, ICFP 2025, TFPIE 2025, PLDI 2025, OOPSLA 2025, SETTA 2024 (Distinguished Reviewer Award), ICCQ 2024, ICCQ 2023, VMIL 2021, EuroSys Shadow 2021

  • Reviwer: JFP 2025, JSA 2025, TOPLAS 2025, TOSEM 2024, ICFP 2022, ISSTA 2021, ICLR 2019

  • Artifact Evaluation Committee Member: ISSTA 2024, OOPSLA 2024, POPL 2024, ICFP 2023, PLDI 2023, POPL 2023, PLDI 2022, PLDI 2021, ICFP 2021, ISSTA 2021, OOPSLA 2020, ICFP 2020, CAV 2020, ICFP 2019

  • Student Volunteer: POPL 2023, ICFP 2019, MWPLS & PurPL Fest 2019

  • Translator: Software Foundations (Chinese edition)

Talks🔗

  • Towards Performant Static Analysis of WebAssembly via Staging and Continuations
    Dagstuhl Seminar 25241: Utilising and Scaling the WebAssembly Semantics. Germany. Jun 2025 [slides]

  • Polymorphic Reachability Types and Effects: An Overview
    ANTIQUE Seminar. INRIA/ENS-PSL Paris. May 2025 
    LIPN (Laboratoire d’Informatique de Paris Nord), Univ. Sorbonne Paris Nord. Mar 2025 [slides]

  • Reconstructing Continuation-Passing Semantics for WebAssembly
    WebAssembly Research Day. Hosted by Fastly. Feb 2025 [slides]
    The WebAssembly Workshop (WAW), co-located with POPL. Denver, CO. Jan 2025 [slides]

  • Metaprogramming Program Analyzers
    ANTIQUE Seminar. INRIA/ENS-PSL Paris. Oct 2024 [slides]

  • Consolidating Smart Contracts with Behavioral Contracts
    PLDI 2024. Copenhagen, Denmark. June 2024 [slides]

  • Polymorphic Reachability Types: Tracking Freshness, Aliasing, and Separation in Higher-Order Generic Programs
    POPL 2024. London, UK. Jan 2024 [slides]
    Midwest Programming Languages Summit (MWPLS). Ann Arbor, MI. Oct 2023 [poster]

  • Compiling and Controlling Symbolic Execution
    Northeastern University Programming Languages Seminar. Boston, MA. Dec 2023 [slides]
    Midwest Programming Languages Summit (MWPLS). Ann Arbor, MI. Oct 2023 [slides]
    Purdue PL Seminar. West Lafayette, IN. Dec 2022 [slides]

  • Compiling Parallel Symbolic Execution with Continuations
    ICSE 2023. Remote. May 2023 [slides]

  • Reachability Types: Tracking Aliasing and Separation in Higher-Order Functional Programs
    OOPSLA 2021. Chicago, IL. Oct 2021 [poster]

  • LLSC: A Parallel Symbolic Execution Compiler for LLVM IR
    ESEC/FSE 2021. Online. Aug 2021 [slides]

  • Compiling Symbolic Execution with Staging and Algebraic Effects
    OOPSLA 2020. Online. Nov 2020 [slides]

  • Metaprogramming for Program Analyzers
    PurPL Retreat. Online. Aug 2020 [slides]

  • Staged Abstract Interpreters
    OOPSLA 2019. Athens, Greece. Oct 2019 [slides]

  • Refunctionalization of Abstract Abstract Machines (Functional Pearl)
    ICFP 2018. St. Louis, MO. Sep 2018 [slides][poster]

  • Precise Reasoning with Structured Heaps and Collective Operations à la Map/Reduce
    Purdue PL Seminar. West Lafayette, IN. Jan 2018 [slides]
    Midwest Programming Languages Summit (MWPLS). Bloomington, IN. Dec 2017 [slides]
    Huawei Research Summit. Urbana-Champaign, IL. Mar 2018 [slides]

Code🔗

  • GenSym: a compiler for parallel symbolic-execution of LLVM IR

  • Diamond language: a prototype language with the polymorphic reachability type system

  • Reachability types: mechanizations of various calculi in Coq

  • lms-clean: the Lightweight Modular Staging framework

Quotes🔗

Keep fun in computing — Alan Perlis

Page generated using Racket and Scribble.