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.

Interactive Data Analysis with Lively Typed Tables

Alexander Bandukwala, and Cyrus Omar.

Journal paper in Proceedings of the ACM on Programming Languages (vol 10 issue OOPSLA2).

Programming systems tailored for working with tabular data (tabular programming systems), such as spreadsheets and computational notebooks, are essential tools in data science. However, widely adopted systems are limited by the absence of static typing, which restricts the editor support they can provide, particularly when code is organized into reusable functions. Statically typed alternatives are limited by the fact that many useful operations on tables produce results whose column schema is data-dependent, e.g. pivots, unstack operations, or one-hot encodings.

This paper introduces Hazel Lab, a new tabular programming system built as an extension of Hazel, a live gradually typed functional programming environment. It aims to combine the expressivity of dynamically typed systems with the editor support of static typing by incorporating several novel mechanisms into Hazel. Tables are manipulated as sequences of labeled tuples, and we add several useful gradually typed operations on labeled tuples to increase expressiveness, including operations that convert field names to and from strings. These operations support best-effort static typing and fall back to the unknown type when a schema cannot be statically determined. We evaluate the expressiveness of these core abstractions using the Brown Benchmark For Table Types (B2T2), finding that Hazel Lab is able to reasonably express every example.

In order to improve type-based feedback, including error localization, when the fallback to the unknown type is needed, we introduce live typing, which builds on the fact that Hazel is a maximally live programming environment, even when there are static errors in the code, to feed dynamically observed instantiations of statically unknown types back into the static type checker. This feedback is complementary to the dynamic feedback that Hazel already distinctively provides by way of its live probes. We introduce rich probes—an extension of live probes with domain-specific table views that allow users to edit their functional data pipelines through direct manipulation interactions.

We evaluate the usability of our overall design by conducting a lab study with 7 participants, asking them to perform a variety of data cleaning and analysis tasks. The study evaluates the usability and usefulness of the proposed features for users already familiar with statically typed functional programming, rather than to assess transfer to data science workflows by scientists without that training. We find that participants could effectively use the table operations for data cleaning and transformation tasks, and that live typing helped them both understand and debug existing analyses. Most participants responded positively to adopting the evaluated features in their own programming environments, with none responding negatively.

# 1st Oct 2026••hazel, journal

Loading recent items...