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.
Looking for motivated PhD students! Do reach out if you're interested in discussing research opportunities at TU Delft. Admission details here.
News
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. |
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) 2025
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
Towards a Session Logic for
Communication Protocols [PDF]
Florin Craciun, Tibor Kiss, Andreea Costea.
ICECCS 2015: 140-149
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
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 - 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
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
- Sigmund Chianasta (intern: May-Aug 2020): IntelliJ plugin for Infer and Data Race Repair
- 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
- 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