86 citations · 347 across the 12 of their papers we have counts for
14 papers
Projectional Editors for JSON-Based DSLs
Andrew McNutt, Ravi Chugh
Augmenting text-based programming with rich structured interactions has been explored in many ways. Among these, projectional editors offer an enticing combination of structure edi…
A Study of Editor Features in a Creative Coding Classroom
Andrew McNutt, Anton Outkine, Ravi Chugh
Creative coding is a rapidly expanding domain for both artistic expression and computational education. Numerous libraries and IDEs support creative coding, however there has been…
Maniposynth: Bimodal Tangible Functional Programming
Brian Hempel, Ravi Chugh
Traditionally, writing code is a non-graphical, abstract, and linear process. Not everyone is comfortable with this way of thinking at all times. Can programming be transformed int…
Integrated Visualization Editing via Parameterized Declarative Templates
Andrew McNutt, Ravi Chugh
Interfaces for creating visualizations typically embrace one of several common forms. Textual specification enables fine-grained control, shelf building facilitates rapid explorati…
Program Sketching with Live Bidirectional Evaluation
Justin Lubin, Nick Collins, Cyrus Omar +1
We present a system called Smyth for program sketching in a typed functional language whereby the concrete evaluation of ordinary assertions gives rise to input-output examples, wh…
Sketch-n-Sketch: Output-Directed Programming for SVG
Brian Hempel, Justin Lubin, Ravi Chugh
For creative tasks, programmers face a choice: Use a GUI and sacrifice flexibility, or write code and sacrifice ergonomics? To obtain both flexibility and ease of use, a number of…
Bidirectional Evaluation with Direct Manipulation
Mikaël Mayer, Viktor Kunčak, Ravi Chugh
We present an evaluation update (or simply, update) algorithm for a full-featured functional programming language, which synthesizes program changes based on output changes. Intuit…
Live Functional Programming with Typed Holes
Cyrus Omar, Ian Voysey, Ravi Chugh +1
This paper develops a dynamic semantics for incomplete functional programs, starting from the static semantics developed in recent work on Hazelnut. We model incomplete functional…
Deuce: A Lightweight User Interface for Structured Editing
Brian Hempel, Justin Lubin, Grace Lu +1
We present a structure-aware code editor, called Deuce, that is equipped with direct manipulation capabilities for invoking automated program transformations. Compared to tradition…
Semi-Automated SVG Programming via Direct Manipulation
Brian Hempel, Ravi Chugh
Direct manipulation interfaces provide intuitive and interactive features to a broad range of users, but they often exhibit two limitations: the built-in features cannot possibly c…
Prodirect Manipulation: Bidirectional Programming for the Masses
Ravi Chugh
Software interfaces today generally fall at either end of a spectrum. On one end are programmable systems, which allow expert users (i.e. programmers) to write software artifacts t…
Programmatic and Direct Manipulation, Together at Last
Ravi Chugh, Brian Hempel, Mitchell Spradlin +1
Direct manipulation interfaces and programmatic systems have distinct and complementary strengths. The former provide intuitive, immediate visual feedback and enable rapid prototyp…
Dependent Types for JavaScript
Ravi Chugh, David Herman, Ranjit Jhala
We present Dependent JavaScript (DJS), a statically-typed dialect of the imperative, object-oriented, dynamic language. DJS supports the particularly challenging features such as r…
Nested Refinements for Dynamic Languages
Ravi Chugh, Patrick M. Rondon, Ranjit Jhala
Programs written in dynamic languages make heavy use of features --- run-time type tests, value-indexed dictionaries, polymorphism, and higher-order functions --- that are beyond t…