About

PLSE@NUS is the Programming Languages and Software Engineering lab at School of Computing, National University of Singapore. We’re steadfast to the mission of creating trustworthy systems by advancing the state of the art in key research areas such as analysis and bug detection, formal verification, program synthesis, specification inference, automated program repair, software testing, concurrency and distributed systems.

News

Jun 08

Four papers from the PLSE lab [ 1, 2, 3, 4 ] will be presented at PLDI'23 in Orlando, FL on June 17-21, 2023.

Jan 12

Abhik Roychoudhury 's paper titled "SemFix: Program Repair via Semantic Analysis" published in ICSE 2013 received ICSE 2023 Most Influential Paper Award .

Jan 10

Qiyuan Zhao joins NUS as a PhD Student. Welcome Qiyuan!

Jan 08

Ali El Husseini from Ecole Normale Superieure de Paris joins as PhD Student in Abhik's team. Welcome Ali!

Aug 10

Zhendong Ang joins NUS as a PhD Student. Welcome Zhendong!

Seminars

Get in touch with Manuel Rigger or Umang Mathur if you want to give a talk.

May 12

Addressing the Saturation Effect in Compiler Testing

Apr 28

ICSE 2023 Dry Runs

Apr 21

Synthesising Recursive Functions for First-Order Model Counting

People

Faculty

Michael Adams
Michael Adams
Wei Ngan Chin
Wei Ngan Chin
Olivier Danvy
Olivier Danvy
Jin Song Dong
Jin Song Dong
Martin Henz
Martin Henz
Joxan Jaffar
Joxan Jaffar
Siau Cheng Khoo
Siau Cheng Khoo
Umang Mathur
Umang Mathur
Manuel Rigger
Manuel Rigger
Abhik Roychoudhury
Abhik Roychoudhury
Ilya Sergey
Ilya Sergey
Roland Yap
Roland Yap

Visiting and Adjunct Faculty

Matthew Flatt
Matthew Flatt
Kuldeep S. Meel
Kuldeep S. Meel

Research Staff

Tim van Bremen
Tim van Bremen
Andreea Costea
Andreea Costea
Paulius Dilkas
Paulius Dilkas
Gregory J. Duck
Gregory J. Duck
Gunjan Kumar
Gunjan Kumar
Anna Latour
Anna Latour
Ridwan Shariffdeen
Ridwan Shariffdeen
Yahui Song
Yahui Song
Yan Xiao
Yan Xiao

Graduate Students

Zhendong Ang
Zhendong Ang
Jinsheng Ba
Jinsheng Ba
Teodora Baluta
Teodora Baluta
Zhiyu Fan
Zhiyu Fan
Darius Foo
Darius Foo
Vladimir Gladstein
Vladimir Gladstein
Kiran Gopinathan
Kiran Gopinathan
Rajdeep Singh Hundal
Rajdeep Singh Hundal
Ali El Husseini
Ali El Husseini
Mohimenul Kabir
Mohimenul Kabir
Yunjeong Lee
Yunjeong Lee
Yuxi Ling
Yuxi Ling
Ruijie Meng
Ruijie Meng
Martin Mirchev
Martin Mirchev
Zhanzhong Pang
Zhanzhong Pang
Yash Pote
Yash Pote
George Pîrlea
George Pîrlea
Haifeng Ruan
Haifeng Ruan
Liu Ruofan
Liu Ruofan
Arijit Shaw
Arijit Shaw
Changsheng Sun
Changsheng Sun
Dylan Wolff
Dylan Wolff
Xianglin Yang
Xianglin Yang
Ziyi Yang
Ziyi Yang
Suwei Yang
Suwei Yang
Jiong Yang
Jiong Yang
Liu Yu
Liu Yu
Yuntong Zhang
Yuntong Zhang
Qiyuan Zhao
Qiyuan Zhao
Liu Zhaoyu
Liu Zhaoyu
Shi Zheng
Shi Zheng
Suyang Zhong
Suyang Zhong

Undergraduates

Christopher Goh Zhen Fung
Christopher Goh Zhen Fung
Zhenxin Huang
Zhenxin Huang
Theodore Leebrant
Theodore Leebrant
Eris Jacey Masagaca
Eris Jacey Masagaca
Ethan Noah Rozario
Ethan Noah Rozario
Wong Kok Rui
Wong Kok Rui
Pan Yudai
Pan Yudai

Past Members

Projects

An improved Greybox Fuzz testing tool built on AFL
A directed Greybox Fuzz testing tool built on AFL
A greybox fuzzer for network protocols
Input-structure aware greybox fuzzing
Semantic Program Repair tool
Concolic Program Repair tool
Verified hash-based approximate membership structures
Worst-case Execution Time (WCET) Analysis for C programs
A set of benchmarks containing realistic regression errors
A framework for verification of distributed protocols in Coq
Automated repair of Linux code
A checker for Spectre vulnerabilities in programs using symbolic execution
Synthesis of Rust programs from types and lightweight specifications
A tool to automatically detect Logic Bugs in DBMS
A functional language for safe smart contracts
First semantic program repair tool
Mostly automated proof repair for verified OCaml functions
Synthesis of Heap-Manipulating Programs from Separation Logic specifications
Android app fuzz testing tool
A Coq implementation of a minimalistic blockchain-based consensus protocol
Vulnerability Localization in program binaries using fuzz testing
ego
An OCaml library that provides generic equality saturation using EGraphs
oo7
A checker for Spectre vulnerabilities in programs using taint analysis

Groups