Cyrus Omar

comar@cs.cmu.edu
Education
Carnegie Mellon University
PhD, Computer Science
Advisor:

University of Illinois at Urbana-Champaign
BS, Computer Science
BS, Molecular & Cellular Biology
Research Interests I design programmable front-ends for typed functional programming languages. My goal is to take the tedium out of writing clean, compositional code.
 
Thesis
Reasonably Programmable Syntax
PhD Thesis (May 2017)
Thesis Committee: J. Aldrich, R. Harper, K. Crary and E. Van Wyk
My thesis introduces typed literal macros (TLMs). TLMs allow library providers to define new type-specific literal forms (think list literals, set literals, HTML literals, regex literals, SQL literals and so on.) These literal forms come equipped with powerful abstract reasoning principles -- clients can reason about program text directly, rather than about the underlying literal expansion, and they need not worry about syntactic conflicts.
Full Papers
Hazelnut: A Bidirectionally Typed Structure Editor Calculus
C. Omar, I. Voysey, M. Hilton, J. Aldrich and M. Hammer
44th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2017)
Tedium-reducing editor services frequently encounter, and balk at, incomplete programs: programs with holes and type inconsistencies. This paper starts from type-theoretic first principles to develop a type system for incomplete programs. It then defines a calculus of type-aware structured edit actions, and proves, using the Agda proof assistant, several powerful theorems about this calculus.
 
This work lays the foundation for Hazel, the typed lab notebook environment that we are building. Our vision for Hazel is described in the SNAPL 2017 paper below.

Programmable Semantic Fragments: The Design and Implementation of typy
C. Omar and J. Aldrich
15th International Conference on Generative Programming: Concepts & Experience (GPCE 2016)
Sometimes, reducing tedium requires defining a new semantic fragment. Consider, for example, adding functional record update to ML, or defining a typed FFI to a different language, like OpenCL. This paper develops a simple system for modularly defining new semantic fragments like these and shows that this system can be embedded into Python as a library, typy.

Safely Composable Type-Specific Languages
C. Omar, D. Kurilova, L. Nistor, B. Chung, A. Potanin and J. Aldrich
28th European Conference on Object-Oriented Programming (ECOOP 2014)
Distinguished Paper Award
This paper describes a simplified variant of my thesis work, and gathers some data to show that "stringly-typed programming" is common in practice.

Active Code Completion
C. Omar, Y. Yoon, T. D. LaToza and B. A. Myers
34th International Conference on Software Engineering (ICSE 2012)
In this paper, we describe and empirically evaluate an editor service that allows library providers to associate code generation UIs with type definitions. Clients invoke these UIs via the type-directed code completion menu (our implementation is in Eclipse.)

Neural correlation is stimulus modulated by feedforward inhibitory circuitry
J. W. Middleton, C. Omar, B. Doiron and D. J. Simons
Journal of Neuroscience 32(2):506-18 (2012)
I used to be a computational neurobiologist. This paper reports some initially surprising correlations in data recorded from excitatory and inhibitory cells in the rodent sensory cortex, and develops an elegant non-linear model that explains these correlations.

A Feedback Information-Theoretic Approach to the Design of Brain-Computer Interfaces
C. Omar, A. Akce, M. Johnson, T. Bretl, R. Ma, E. Maclin, M. McCormick and T. Coleman
International Journal of Human-Computer Interaction (Special Issue: Current Trends in Brain-Computer Interface (BCI) Research and Development), 27: 1, 5-23 (2011)
As an undergraduate, I studied and built brain-computer interfaces (BCIs). This paper shows how to design an information-theoretically optimal brain-computer interface, and reports the results of some of our experiments with an EEG-based BCI.

Short Papers
Toward Semantic Foundations for Program Editors
C. Omar, I. Voysey, M. Hilton, J. Sunshine, C. Le Goues, J. Aldrich and M. Hammer
2nd Summit on Advances in Programming Languages (SNAPL 2017)
This "vision paper" proposes Hazel, a typed lab notebook environment that offers a number of advanced editor services. Each of these will have a formal semantics.

Statically Typed String Sanitation Inside a Python
N. Fulton, C. Omar and J. Aldrich
International Workshop on Privacy and Security in Programming (PSP 2014)
Best Paper Award
This paper introduces regular string types, which classify strings known statically to be in a given regular language. We implemented this type system as a semantic fragment using the system described in our GPCE 2016 paper.

Collaborative Infrastructure for Test-Driven Scientific Model Validation
C. Omar, J. Aldrich and R. Gerkin
NIER Track, 36th International Conference on Software Engineering (ICSE 2014)
This paper compares scientific model validation to unit testing, and suggests that scientists might benefit from cyberinfrastructure that generates tables that summarize the extent to which known models fit known datasets. My collaborator, Rick Gerkin, continues to push this idea forward in the domain of neuroscience.

Full list...

In Progress
Reasonably Programmable Syntax
C. Omar and J. Aldrich
A paper based on my dissertation is in preparation

Hazelnut Live: Type-Theoretic Foundations for Running Incomplete Programs
C. Omar, I. Voysey, M. Hilton and M. Hammer
We are investigating the possibility of running incomplete programs, as produced by Hazelnut (POPL 2017). This would support a powerful form of live programming.

Deriving the Statistical Likelihood of a Typed Editor Suggestion
C. Omar, S. Joshi, F. Cruz and C. Le Goues
Editor services often generate multiple possible code suggestions. We are developing a model that uses both the semantic structure of the current program and statistics gathered from a code corpus to assign a statistical likelihood to every valid suggestion.

A Modularly Programmable Bidirectionally Typed Translation Semantics
C. Omar and J. Aldrich
This paper formalizes the semantic fragment mechanism introduced in our GPCE 2016 paper and establishes a stronger modularity result.

Misc.
Okasaki: A Web-Based Purely Functional Text Editor
Presentation, SIGBOVIK 2013

How do people naturally think about computation?
05-899D Lecture, Spring 2011

Teaching

Head TA, Fall 2011 with

Alan J. Perlis Graduate Student Teaching Award (2013)

Service
  • Publicity Chair, GPCE 2017
  • Program Committee, GPCE 2017
  • Program Committee, META 2017
  • Program Committee, DSLDI 2015
  • Artifact Evaluation Committee, ECOOP 2015
  • CSD Graduate Admissions Committee, 2013
Honors
  • DOE Computational Science Graduate Fellowship
  • NSF Graduate Research Fellowship
  • Duncan H. Lawrie Leadership Award
  • University of Illinois Bronze Tablet
  • Franz Hohn and John P. Nash Scholarship