Andreea Costea
Assistant Professor
Programming Languages Group
EEMCS, TU Delft
Research Interests
My primary research interests revolve around the programming languages design and implementation. I am particularly interested in the area of software verification for critical code, program synthesis and automated program repair.
I completed my PhD at the School of Computing, NUS, in the CS Department, where I later worked in the Programming Languages and Software Engineering lab. During this time, I was affiliated with and collaborated closely with the Automated Program Repair team, the Trustworthy and Secure Software and the VERSE lab.
News
| Apr 2025. | First time attending and presenting at ICT.Open. Seeing the many ways formal methods are benefiting industry is a powerful reminder of their real-world relevance — and why it's so important to stay closely connected with the industry. |
| Feb 2025. | Thoroughly enjoyed the provocative discussions at the IFIP Software Implementation Technology WG 2.4 meeting 70 in Singapore. |
| Feb 2025. | Welcome to MSc student Arjan Seijs. Arjan will be working on a static analysis tool for bug detection in unsafe Rust code. |
| Feb 2025. | Welcome to MSc student Jim van Vliet. Jim tries to ease Rust code debugging for bugs detected via Property Based Testing. |
| Feb 2025. | Welcome to MSc student Timen Zandbergen. Co-advised by Mara Bos and Jana Dönszelmann, Timen is trying to understand what safety properties can (or cannot) be maintained when linking separately compiled Rust code. |
| Dec 2024. | Welcome to MSc student Matteo Bertorotta. Co-advised by Sebastijan Dumancic, Matteo is looking at program synthesis with e-graphs. |
| Dec 2024. | Welcome to MSc student Julius de Jeu. Co-advised by Jonathan Dönszelmann, Julius is investigating what can go wrong with FFIs in Rust programs. |
| Dec 2024. | Welcome to MSc student Arthur de Groot. Co-advised by Aron Zwaan and Jonathan Dönszelmann, Arthur is designig a new algorithm for name resolution using scope graphs. |
| Oct 2024. | Attending the Automated Programming and Program Repair seminar at Dagstuhl. |
| Oct 2024. | Thrilled to be joining EEMCS at TU Delft this October! |
| Feb 2024. | Join our APR workshop during the recess week. |
| Nov 2023. | Celebrating a 1 year of progress in the APR project with an engaging lineup of talks! |
| Oct 2023. | Looking forward to connect at SPLASH in Lisbon. Come check out our Rust refactoring talk. |
| Mar 2023. | It was exciting participating in the Dagstuhl Seminar on Unifying Formal Methods for Trustworthy Distributed Systems ! |
| Feb 2022. | Exciting news: our APR team has been awarded a Ministry of Education Tier 3 grant in order to pursue its vision for the programming experience of tomorrow. Get in touch if we share similar pursuits, if you're a Rustacean wanting to enahnce the Rust ecosystem, or if APR is your cup of tea. Join us! |
| Jan 2022. | Had an inspiring conversation about how to tackle some of the challenges a computer scientist faces at different career stages PLMW @ POPL2022. |
| Jan 2022. | Glad to announce that I have officialy joined the Sofware Engineering group in NUS, working with Abhik Roychoudhury and other enthusiastic researchers on program repair. |
Team
Master Students
- Glenn Weeland: Parametric Miri.
- Matei Mirică: Incorectness Separation Logic with a Model for Borrows.
- Arjan Seijs: Finding Memory Errors in Unsafe Rust.
- Jim van Vliet: Property-Based Testing in Rust Made "Easy" (co-advised with Sára Juhošová).
Alumni
- Ahmet Taha Kahya, BSc intern, Jul-Sept 2025: working on a Rust frontend for Pulse.
- Arthur de Groot, MSc 2024/2025: Memoisation in Scope-Graph Query-Resolution - an Evaluation Study (co-advised with Aron Zwaan and Jana Dönszelmann).
- Julius de Jeu, MSc 2024/2025: Detecting Undefined Behavior Across Foreign Function Boundaries in Rust Programs (co-advised with Jana Dönszelmann).
- Matteo Bertorotta, MSc 2024/2025: Improving Program Synthesis with E-Graphs (co-advised with Sebastijan Dumančić).
Selected Publications and Drafts
EffFix: Efficient and Effective Repair of Pointer Manipulating Programs
[PDF, GitHub, Artifact]
Yuntong Zhang, Andreea Costea, Ridwan Shariffdeen, Davin McCall, Abhik Roychoudhury. ACM Trans. Softw. Eng. Methodol. (TOSEM) 2024
Adventure of a Lifetime: Extract Method Refactoring for Rust
[PDF, Code]
Sewen Thy, Andreea Costea, Kiran Gopinathan, Ilya Sergey. OOPSLA 2023
Protocol Conformance with Choreographic PlusCal
[PDF, GitHub]
Darius Foo, Andreea Costea, Chin Wei-Ngan. TASE 2023
Hippodrome: Data Race Repair using Static Analysis Summaries
[PDF, GitHub , Artifact ,
slides]
Andreea Costea, Abhishek Tiwari, Sigmund Chianasta, Kishore R, Abhik Roychoudhury, and Ilya Sergey. ACM Trans. Softw. Eng. Methodol. (TOSEM) 2022
Automated Modular Verification for Race-Free Channels with Implicit and Explicit Synchronization
[draft PDF]
Andreea Costea, Florin Craciu,
Shengchao Qin, Wei-Ngan
Chin.
Concise Read-Only Specifications for Better Synthesis of Programs with Pointers
[PDF, GitHub ,
slides ,
video]
Andreea Costea, Amy Zhu, Nadia Polikarpova, and Ilya Sergey. ESOP 2020: 141-168
Automated Modular Verification for Relaxed Communication Protocols [PDF,
slides
TOOL ]
Andreea Costea, Wei-Ngan
Chin, Shengchao Qin, Florin Craciun. APLAS 2018: 284-305
Selected Talks
Assured Automatic Programming via LLMs, Automated Programming and Program Repair seminar at Dagstuhl, October 2024 [SLIDES]
Automated Modular Verification for Relaxed Communication Protocols, APLAS 2018, Victoria University, New Zealand December 2018 [SLIDES]
A Session Logic for Relaxed Communication Protocols, Thesis Defence, National University of Singapore, December 2017 [SLIDES]
A Session Logic for Multiparty Protocols with Explicit Synchronization, National Institute of Informatics, Tokyo, Japan, March 2017 [SLIDES]
Towards a Session Logic for Multiparty Protocols, 2nd Workshop on New and Emerging Results in Programming Languages and Systems, HaLong Bay, Vietnam, Nov 2016 [SLIDES]
A Session Logic for Communication Protocols, Oracle Labs, Safety and Security Analysis team, Brisbane, Australia, Dec 2015 [SLIDES]
Selected Projects
HIPPODROME |
An automated program repair tool for data races in Java Programs. It automatically generates and applies patches validated by Infer to be correct. |
ROBoSuSLik |
A framework for the synthesis of heap-manipulating programs, where the synthesis is guided by Separation Logic specs enhanced with the logical mechanism of read-only borrows. |
Mercurius |
The implementation of a logic for multiparty session protocols, which offers support for communication specification and verification. |
HIP/SLEEK |
Automatic verification framework for heap manipulating programs. HIP is a Hoare-style forward verifier for imperative language, able to modularly check functional correctness and safety properties. SLEEK is an automatic prover for separation logic with frame inferring capability. |
TeachHIP |
A platform where students can see HIP/SLEEK in action, or in other words a platform to formally specify and verify C programs. |
Teaching Experience
TU Delft
CS4555 - Compiler Construction - 2025/26 Q2
CESE4000 - Software Fundamentals - 2025/26 Q1
CS4715 - Programming Languages Research Seminar - 2024/25 Q4
CS4555 - Compiler Construction - 2024/25 Q2
National University of Singapore
CS3234 - Logic and Formal Systems - Guest Lecture and Tutorial, Spring 2018
CS3234 - Logic and Formal Systems - Guest Lecture and Tutorial, Spring 2017
CS3234 - Logic and Formal Systems - Guest Lecture and Tutorial, Spring 2016
CS3234 - Logic and Formal Systems - Guest Tutorial, Spring 2015
CS4215 - Programming Language Implementation - Teaching Assistant, Spring 2015
Science Mentorship Programme NUS-SMP Highschool - Co-Mentor, 2011
Service
Chair: Publicity @ SPLASH 2023, Publicity @ SPLASH 2022, Artefact Evaluation @ ESOP2022, Poster and SRC @ APLAS'19
PC: ICSE'25, ICSE'24, ICFP'23, TASE'23, SRC @ ICFP'21, APLAS'21, APLAS'20
Regular Journal Reviewer: CACM, TOSEM, TSE
Panel discussions: PLMW @ POPL'22, PLDI'21, PLMW @ PLDI'21, POPL'21
Reviewer for: TOSEM'24, TSE'24, TOSEM'23, POPL'22, TOSEM'21, POPL'20, TOSEM'19, CAV'19, CAV'18, VMCAI'18, CAV'17, VMCAI'17, OOPSLA'16, APLAS'14, FM'14, ICFEM'13, SAS'13, CPP'12, VMCAI'12, FM'10
Research Mentees:
- Zhengqun Koo (FYP: AY2020/2021): Towards Bug-Free Distributed Go Programs. Thesis
- Sigmund Chianasta (intern: May-Aug 2020): IntelliJ plugin for Infer and Data Race Repair. Docker
- Zhengqun Koo (intern: May - Jul 2020): A decision procedure for reasoning about arrays using Separation Logic
- Fadi Faris (intern: May - Jul 2020): Web Platform for Teaching Verification with HIP/SLEEK,
- Ng Jie Wu (intern: May - Jul 2020)
- Yinfang Chen (Master: AY2019/2020): WaitGroup and CountDownLatch Reasoning
- Zhengqun Koo (UROP: AY2018/2019): ecce: A Visualizer and Simulator for Session Protocols Report
- Xu Jun (FYP: AY 2018/2019): Investigation of Design and Implementation of Domain-Specific Languages
- Andreea Stoican (Master: 2017): Local Reasoning for Communication-Centered Programs
- Low Zheng Heng Henry (FYP): Safety for Consensus-Based Systems in Rust
- Valentina Manea (Master: 2016): Session Logic for Multiparty Sessions