Award Abstract # 2238744
CAREER: Live and Direct Programming Environments

NSF Org: CCF
Division of Computing and Communication Foundations
Recipient: REGENTS OF THE UNIVERSITY OF MICHIGAN
Initial Amendment Date: January 25, 2023
Latest Amendment Date: August 8, 2024
Award Number: 2238744
Award Instrument: Continuing Grant
Program Manager: Anindya Banerjee
abanerje@nsf.gov
 (703)292-7885
CCF
 Division of Computing and Communication Foundations
CSE
 Directorate for Computer and Information Science and Engineering
Start Date: May 1, 2023
End Date: April 30, 2028 (Estimated)
Total Intended Award Amount: $550,000.00
Total Awarded Amount to Date: $354,753.00
Funds Obligated to Date: FY 2023 = $225,022.00
FY 2024 = $129,731.00
History of Investigator:
  • Cyrus Omar (Principal Investigator)
    comar@umich.edu
Recipient Sponsored Research Office: Regents of the University of Michigan - Ann Arbor
1109 GEDDES AVE STE 3300
ANN ARBOR
MI  US  48109-1015
(734)763-6438
Sponsor Congressional District: 06
Primary Place of Performance: Regents of the University of Michigan - Ann Arbor
503 THOMPSON ST
ANN ARBOR
MI  US  48109-1340
Primary Place of Performance
Congressional District:
06
Unique Entity Identifier (UEI): GNJ7BBP73WE9
Parent UEI:
NSF Program(s): Software & Hardware Foundation
Primary Program Source: 01002425DB NSF RESEARCH & RELATED ACTIVIT
01002728DB NSF RESEARCH & RELATED ACTIVIT

01002324DB NSF RESEARCH & RELATED ACTIVIT

01002627DB NSF RESEARCH & RELATED ACTIVIT

01002526DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 1045, 7943, 9251
Program Element Code(s): 779800
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

Modern programming environments promise to make coding a less cognitively demanding activity by providing contextualized feedback, suggestions, and editing affordances. However, they can suffer from catastrophic gaps in service when the program being edited is incomplete, i.e., when there are missing pieces or errors. The programmer is left to simulate program behavior on their own in these situations -- a difficult and error-prone task even for professional programmers, and a major barrier to entry for novices. This project's novelties are that it develops a new generation of programming environments that achieve maximal liveness, i.e., that never suffer from these gaps in service. Maximal liveness is achieved by developing a novel direct manipulation code editing interface, tile-based editing, that automatically inserts program holes to maintain a sensible syntactic and semantic structure, even when the program is incomplete. The project's impacts are expected to be measurable decreases in the cognitive demand of educational, professional, and creative coding tasks, which will contribute to lowering the barriers to entry into computing.

The key mechanism, tile-based editing, fundamentally restructures code editing to allow for direct manipulation of the linearized projection of a program tree, while maintaining maximal liveness by automatically managing holes and delimiter matching obligations to continuously maintain a syntax tree internally. From there, this project scales up the language-theoretic foundations developed in recent work by the investigator, integrating liveness with modern language features like pattern matching (in languages like Haskell and Elm) and borrowing (in languages like Rust). These target languages feature in the investigator's programming languages courses and in educational resources targeting diverse creative communities, where the research is evaluated. In support of these educational efforts, the project develops novel live tutoring and authoring services that leverage the maximal liveness invariant to provide several novel forms of live, contextualized feedback, assistance, and direct manipulation editing affordances.

This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.

PUBLICATIONS PRODUCED AS A RESULT OF THIS RESEARCH

Note:  When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external site maintained by the publisher. Some full text articles may not yet be available without a charge during the embargo (administrative interval).

Some links on this page may take you to non-federal websites. Their policies may differ from this site.

Adams, Michael D and Griffis, Eric and Porter, Thomas J and Satish, Sundara Vishnu and Zhao, Eric and Omar, Cyrus "Grove: A Bidirectionally Typed Collaborative Structure Editor Calculus" Proceedings of the ACM on Programming Languages , v.9 , 2025 https://doi.org/10.1145/3704909 Citation Details
Blinn, Andrew and Li, Xiang and Kim, June Hyung and Omar, Cyrus "Statically Contextualizing Large Language Models with Typed Holes" Proceedings of the ACM on Programming Languages , v.8 , 2024 https://doi.org/10.1145/3689728 Citation Details
Yuan, Yongwei and Guest, Scott and Griffis, Eric and Potter, Hannah and Moon, David and Omar, Cyrus "Live Pattern Matching with Typed Holes" Proceedings of the ACM on Programming Languages , v.7 , 2023 https://doi.org/10.1145/3586048 Citation Details
Zhao, Eric and Maroof, Raef and Dukkipati, Anand and Blinn, Andrew and Pan, Zhiyi and Omar, Cyrus "Total Type Error Localization and Recovery with Holes" Proceedings of the ACM on Programming Languages , v.8 , 2024 https://doi.org/10.1145/3632910 Citation Details

Please report errors in award information by writing to: awardsearch@nsf.gov.

Print this page

Back to Top of page