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

Masters and Undergraduates

There are 30+ masters and undergraduate reseachers in FP Lab — see the FP Lab webpage!

Former Advisees

FP Lab alum include 1 subsequent faculty member (Michael D. Adams), 15 subsequent PhD students, and 175+ students who went on to MS programs or industry!

Service

2026
PLDI PC
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.
Recent Projects & Publications

Hazel: Live Functional Programming with Typed Holes

Hazel is a new kind of live programming environment that can reason about and run incomplete programs, i.e. programs with holes of various forms. The following publications develop the semantic foundations for live hole-driven development.

OOPSLA 2025
To appear
Thomas J. Porter, Marisa Kirisame, Ivan Wei, Pavel Panchekha, Cyrus Omar
POPL 2024
Eric Zhao, Raef Maroof, Anand Dukkipati, Andrew Blinn, Zhiyi Pan, Cyrus Omar
Distinguished Paper Award
OOPSLA 2023
Yongwei Yuan, Scott Guest, Eric Griffis, Hannah Potter, David Moon, Cyrus Omar
Distinguished Paper Award
POPL 2019
Cyrus Omar, Ian Voysey, Ravi Chugh, Matthew A. Hammer
POPL 2017
Cyrus Omar, Ian Voysey, Michael Hilton, Jonathan Aldrich, Matthew A. Hammer

Grove: New Foundations for Collaborative Editing

We are developing a new semantics for collaborative editing that dispenses with diff-and-merge in favor of a commutative structure edit language. This resolves a number of problems, particularly related to relocation conflicts, and opens up new design avenues for a computational commons.

POPL 2025
Michael D. Adams, Eric Griffis, Thomas J. Porter, Sundara Vishnu Satish, Eric Zhao, Cyrus Omar

Tylr: Eliminating Parse Errors with Holes

Parse errors are a pain for beginners and experts alike. The Tylr project eliminates parse errors (!) by automatically tracking syntactic obligations and materializing them as holes and other affordances. This benefits both humans and downstream tooling.

VL/HCC 2023
David Moon, Andrew Blinn, Cyrus Omar

ChatLSP: Semantically Contextualizing AI Programming Assistants

We are integrating modern language implementations (i.e. language servers) with modern AI coding assistants. We are finding dramatic performance improvements when AI models are properly contextualized by programming language semantics (e.g. types, live run-time information, and structured/destructured task contexts)!

Preprint
Under Review
Gregory Croisdale, Emily Huang, John Joon Young Chung, Anhong Guo, Xu Wang, Austin Z. Henley, Cyrus Omar
OOPSLA 2024
Andrew Blinn, Xiang Li, June Hyung Kim, Cyrus Omar
VL/HCC 2022
ICFP 2020
Justin Lubin, Nicholas Collins, Cyrus Omar, Ravi Chugh

Livelits: Filling Typed Holes with Live GUIs

We are working on integrating graphical and programmatic modes of interaction by developing language mechanisms that allow you to define type-specific user interfaces that generate code underneath, i.e. they serve as interactive graphical literal notation.

PLDI 2021
Cyrus Omar, David Moon, Andrew Blinn, Ian Voysey, Nicholas Collins, Ravi Chugh
ICSE 2012
Cyrus Omar, YoungSeok Yoon, Thomas D. LaToza, Brad A. Myers

Hazel Tutor: Semantically Grounded Educational Technology

We are developing educational technology, including classroom proof assistants, grounded in the semantic foundations of typed hole-driven development.

Preprint
Under Review
Onward! 2022
Hannah Potter, Ardi Madadi, René Just, Cyrus Omar

RustViz: Interactively Visualizing Ownership and Borrowing

The Rust programming language achieves memory and thread safety using a static ownership and borrowing analysis. This has led to explosive adoption, but learning Rust remains challenging. We are developing RustViz, a system that makes learning Rust easier by visualizing the invisible static state changes that occur within Rust code.

VL/HCC 2022
Marcelo Almeida, Grant Cole, Ke Du, Gongming Luo, Shulin Pan, Yu Pan, Kai Qiu, Vishnu Reddy, Haochen Zhang, Yingying Zhu, Cyrus Omar

Read our RustViz-based quick introduction to Rust!

RustViz, which is developed by an all-undergraduate team, reached 2700+ stars on GitHub!

Bastion: Capability Safety for AI Safety

We argue for concise formal architectural policy descriptions which are responsible for specifying constraints and passing a minimal set of capabilities to downstream system component and AI agents working within these components. By constructing the operating system for AI agents atop a capability safe programming language, we will be able to provide formally provable bounds on AI capabilities, addressing a major problem in governing agentic AIs.

HOPE 2024
Cyrus Omar, Patrick Ferris, and Anil Madhavapeddy
IWACO 2014
Jonathan Aldrich, Cyrus Omar, Alex Potanin, and Du Li

Previous Projects & Publications

Relit: Reasonably Programmable Literal Notation

My thesis research developed mechanisms that allow library providers to express new type-specific literal notation (e.g. SQL literals) while ensuring that client programmers can still reason abstractly and compositionally about types and binding.

ICFP 2018
Cyrus Omar and Jonathan Aldrich
ECOOP 2014
Cyrus Omar, Darya Kurilova, Ligia Nistor, Benjamin Chung, Alex Potanin and Jonathan Aldrich
Distinguished Paper Award

Relit implements the mechanism from the ICFP 2018 paper into Reason, which is Facebook's new front-end for OCaml. The Wyvern programming language implements the mechanism from the ECOOP 2014 paper.

There has been a great deal of excitement around both Relit [1, 2, 3, 4, 5] and Wyvern [1, 2, 3, 4, 5]!

typy: Programmable Semantic Fragments

typy allows library providers to install new statically typed semantic fragments into Python, while leaving its syntax alone (which cleverly sidesteps the "expression problem"). We have applied typy to problems in web security and data science.

PSP 2014
Nathan Fulton, Cyrus Omar and Jonathan Aldrich
Best Paper Award

The typy implementation is quiet as I focus on my other projects, but if you want to take the lead, contact me!

SciUnit: Collaborative Infrastructure for Test-Driven Scientific Model Validation

One of the pillars of the scientific method is model validation: comparing a scientific model’s predictions against empirical data. The SciUnit project casts this as a form of collaborative software testing and develops useful infrastructure.

ICSE 2014
NIER Track
Cyrus Omar, Richard C. Gerkin and Jonathan Aldrich

My collaborators Rick Gerkin and Sharon Crook continue to develop and apply SciUnit as part of the SciDash project.

Neurobiological Circuit Dynamics

I entered grad school as a computational neurobiologist. I was interested in how biological circuits process information, so I developed a model of how the excitatory-inhibitory circuitry in the rodent whisker barrel cortex responds to stimulation.

J. Neurosci.
2012
Jason W. Middleton, Cyrus Omar, Brent Doiron and Daniel J. Simons

I still find brains fascinating, but I think we will need more powerful computational tools to make the next leap in understanding, so now I study programming languages and programming environments!

Information Theoretic Foundations for Brain-Computer Interfaces

We built a provably optimal EEG-based brain-computer interface by studying the information theoretic properties of noisy asymmetric channels and developing statistical models of user intent for various types of communication/control tasks.

IJHCI 2011
Cyrus Omar, Abdullah Akce, Miles Johnson, Timothy Bretl, Rui Ma, Edward Maclin, Michael McCormick and Todd Coleman

I remain very interested in building tools that help people with limited mobility and other disabilities express their intent. I also remain very interested in tastefully incorporating statistical models of user intent into programming environments.