Cyrus Omar applies mathematical principles to design better user interfaces for programming languages.

Education

CMU
PhD, Computer Science
UIUC
BS, Computer Science
BS, Molecular & Cellular Biology

Recent & Upcoming Talks

POPL 2019 paper talk in Lisbon
Jan, 2019 (upcoming)
FP Meetup + Reason Meetup joint talk on Relit in Chicago
Nov 19, 2018 (upcoming)
LIVE talk on Hazel at SPLASH in Boston
Nov 6, 2018
META talk on Relit at SPLASH in Boston
Nov 5, 2018
POP seminar on Hazel at CMU
Oct 31, 2018
Midwest PL Summit talk on Hazel at UW Madison
Oct 12, 2018
Strange Loop talk on Hazel in St. Louis
Sep 28, 2018
ICFP 2018 paper talk in St. Louis
Sep 24, 2018

Teaching

15-312: Principles of Programming Languages
Head TA w/ Robert Harper, Spring 2013
15-150: Functional Programming
Head TA w/ Dan Licata, Fall 2011
Alan J. Perlis Graduate Student Teaching Award

Service

2017
GPCE Publicity Chair · GPCE PC · META PC
2013
CMU CSD Graduate Admissions Committee

Fellowships

DOE Computational Science Graduate Fellowship
Practicum: Los Alamos National Lab
NSF Graduate Research Fellowship

Hazel: Type-Theoretic Foundations for Live Hole-Driven Development

I lead the Hazel project, which has developed a type-theoretic account of live programming with holes, which (1) stand for parts of the program that are not yet fully written, and (2) serve as membranes around type and binding errors.

POPL 2019
Cyrus Omar, Ian Voysey, Ravi Chugh and Matthew A. Hammer
POPL 2017
Cyrus Omar, Ian Voysey, Michael Hilton, Jonathan Aldrich and Matthew A. Hammer

These papers serve as the foundation for our ongoing research into the future of live programming environments.

The National Science Foundation recently selected our research proposal for three years of funding.
There has been a great deal of excitement around Hazel, e.g. at Strange Loop and on Twitter [1, 2, 3, 4, 5, 6, 7]!

Relit + Wyvern: Reasonably Programmable Literal Notation

My thesis research developed mechanisms that allow library providers to install 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, and 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] and Wyvern [1, 2, 3, 4, 5]!

Palettes: Type-Specific User Interfaces for Code Completion

Palettes allow library providers to install new graphical user interfaces that generate code of a specified type at edit-time. We empirically validated our design and gathered a large number of use cases by conducting a survey of 500 developers, then we implemented palettes for Java as an Eclipse extension called Graphite and performed a small pilot study.

ICSE 2012
Cyrus Omar, YoungSeok Yoon, Thomas D. LaToza and Brad A. Myers

We are now adding palettes with live holes to Hazel by combining this design with our ICFP 2018 and POPL 2019 work.

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
BCI Issue
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.
Other Projects

typy: Programmable Semantic Fragments

typy allows library providers to install new statically typed semantic fragments into Python, while leaving its syntax alone (this 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!