Cyrus Omar designs intelligent user interfaces for modern programming languages.

Education

Carnegie Mellon University
PhD, Computer Science
UIUC
BS, Computer Science
BS, Molecular & Cellular Biology

Advising

PhD Students

Research Staff

Masters and Undergraduates

There are 10+ masters and undergraduate researchers in FP Lab — see the FP Lab webpage!

Former Advisees

FP Lab alum also include 200+ undergraduate and MS students, 15 of whom went on to PhD programs!

Service

2026
PLDI PC · PROPL Chair · VL/HCC PC · HATRA PC · LMPL PC · PLMW @ SPLASH Speaker · SPLASH SRC Judge · CSE Course Review Committee
2024
OOPSLA PC · VL/HCC PC · Onward! PC · LIVE PC · SPLASH-E PC · HATRA Publicity Chair · CSE DEI Committee
2023
PLDI PC · ECOOP PC · VL/HCC PC · MWPLS Co-chair · TyDe SC Chair · ECOOP Area Chair (Brave New Ideas and Pearls) · HATRA PC · IFL PC · SPLASH-E PC · SPLASH SRC · PLMW @ ICFP Panelist · CSE DEI Committee · CSE Hosting Committee

For older service roles, refer to my CV.

Awards and Honors

I lead the Future of Programming Lab (FP Lab), part of the vibrant MPLSE research community.
I am on sabbatical at the University of Cambridge for 2026–27, as a Visiting Fellow in the Energy and Environment Group in the Department of Computer Science and Technology and an Associate Scholar at Pembroke College.

Program Sketching with Live Bidirectional Evaluation

Justin Lubin, Nick Collins, Cyrus Omar, and Ravi Chugh.

Journal paper in Proceedings of the ACM on Programming Languages (vol 4 issue ICFP).

We present a system called Smyth for program sketching in a typed functional language whereby the concrete evaluation of ordinary assertions gives rise to input-output examples, which are then used to guide the search to complete the holes. The key innovation, called live bidirectional evaluation, propagates examples "backward" through partially evaluated sketches. Live bidirectional evaluation enables Smyth to (a) synthesize recursive functions without trace-complete sets of examples and (b) specify and solve interdependent synthesis goals. Eliminating the trace-completeness requirement resolves a significant limitation faced by prior synthesis techniques when given partial specifications in the form of input-output examples. To assess the practical implications of our techniques, we ran several experiments on benchmarks used to evaluate Myth, a state-of-the-art example-based synthesis tool. First, given expert examples (and no partial implementations), we find that Smyth requires on average 66% of the number of expert examples required by Myth. Second, we find that Smyth is robust to randomly-generated examples, synthesizing many tasks with relatively few more random examples than those provided by an expert. Third, we create a suite of small sketching tasks by systematically employing a simple sketching strategy to the Myth benchmarks; we find that user-provided sketches in Smyth often further reduce the total specification burden (i.e. the combination of partial implementations and examples). Lastly, we find that Leon and Synquid, two state-of-the-art logic-based synthesis tools, fail to complete several tasks on which Smyth succeeds.

# 1st Aug 2020•chatlsp, hazel, journal

Loading recent items...