Computer scientist · Singapore

Foo Yong Qi.

I study programming languages, and how to make them more expressive, efficient, and a little more elegant.

Instructor & PhD candidate in Computer Science
National University of Singapore

A small explorationFIG. 01
Keep applying a rule. Find what stays the same.
00 / Start with an empty set
The rule always includes a, adds b when a is present, and adds c when b is present. Each iteration keeps the elements already found. Starting from the empty set, the process reaches the fixed point containing a, b, and c.
A few things I think aboutProgramming languagesFixed-point programmingCompiler optimizations

01Ideas into papers

Selected research

All research & projects

02Along the way

Recently

I presented our work on "Class-Dictionary Specialization with Rank-2 Polymorphic Functions" at SPLASH/ISSTA 2026!
[NUS] IT5100E—Industry Readiness: Security Best Practices starts today. See you there!
[NUS] IT5000—Introduction to Computing Foundations starts today. I will be teaching the Discrete Structures portion (Day 1, 4 Aug). See you there!
I am a ACM SRC grand finals candidate. Didn't win though. My paper is here.
The news archive

03In the classroom

Making the abstract
make sense.

I teach programming, systems, and the mathematics behind them, connecting foundational ideas to the practice of building software.

IT5100ATyped Functional ProgrammingIT5100BStream ProcessingIT5100ESecurity Best PracticesTeaching & course materials

Recipient of the NUS Faculty Teaching Excellence Award, 2025.