Compilers & Implementation
Translating human-readable code into efficient machine code.
Compilers & Implementation
This is the "systems" side of PL research—focusing on translating human-readable code into efficient machine code.
Static Analysis
Algorithms that analyze code without running it to find bugs, memory leaks, or security vulnerabilities (e.g., abstract interpretation, data flow analysis).
Optimization
Developing new algorithms to make code run faster or use less energy (e.g., loop unrolling, dead code elimination).
Runtime Systems & Virtual Machines
Research into JIT (Just-In-Time) compilers, garbage collection (memory management), and intermediate representations (like LLVM IR or WebAssembly).
Program Synthesis
"Compiling from specification"—using AI or logic to automatically generate code that meets a specific requirement (e.g., "write a function that sorts this list").