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

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!

Aug 03

Martin Mirchev joins as a PhD student and Sung Yong Kim joins as part of the French Double Degree program (FDDP). Welcome Martin and Sung to Secure Software group!

Seminars

Get in touch with Manuel Rigger or Umang Mathur if you want to give a talk, and drop a line to Ilya Sergey to be included into the mailing list with the seminar announcements.

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
Kuldeep S. Meel
Kuldeep S. Meel
Manuel Rigger
Manuel Rigger
Abhik Roychoudhury
Abhik Roychoudhury
Ilya Sergey
Ilya Sergey
Roland Yap
Roland Yap

Visitors

Matthew Flatt
Matthew Flatt

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
Yannic Noller
Yannic Noller
Ridwan Shariffdeen
Ridwan Shariffdeen
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
Bishwamittra Ghosh
Bishwamittra Ghosh
Vladimir Gladstein
Vladimir Gladstein
Priyanka Golia
Priyanka Golia
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
Yahui Song
Yahui Song
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
Karolina Grzeszkiewicz
Karolina Grzeszkiewicz
Zhenxin Huang
Zhenxin Huang
Mayank Keoliya
Mayank Keoliya
Koon Wen Lee
Koon Wen Lee
Theodore Leebrant
Theodore Leebrant
Eris Jacey Masagaca
Eris Jacey Masagaca
Ethan Noah Rozario
Ethan Noah Rozario
Wong Kok Rui
Wong Kok Rui
Sewen Thy
Sewen Thy
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 (ICSE 2016)
Concolic Program Repair tool (PLDI 2021)
Verified hash-based approximate membership structures.
Worst-case Execution Time (WCET) Analysis for C programs
A set of benchmarks containing realistic regression errors, as opposed to seeded errors
Mechanised Separation Logic for Compositional Verification of Distributed Protocols.
Automated repair of Linux code (ISSTA 2021)
A checker for Spectre vulnerabilities in programs using symbolic execution
A tool to automatically detect Logic Bugs in DBMS.
A functional language for safe smart contracts.
First semantic program repair tool (ICSE 2013)
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 (AsiaCCS 2021)
ego
An OCaml library that provides generic equality saturation using EGraphs.
oo7
A checker for Spectre vulnerabilities in programs using taint analysis

Groups