activity
20112023
most citedSketch-n-Sketch: Output-Directed Programming for SVG

86 citations · 347 across the 12 of their papers we have counts for

collaborators

14 papers

cs.HC2023

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…

cs.HC2023★ 1 cited

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…

cs.PL2022★ 2 cited

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…

cs.HC2021★ 38 cited

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…

cs.PL2019★ 42 cited

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…

cs.HC2019★ 86 cited

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…

cs.PL2018★ 39 cited

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…

cs.PL2018

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…

cs.SE2017★ 27 cited

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…

cs.HC2016★ 33 cited

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…

cs.SE2015★ 13 cited

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…

cs.PL2015★ 65 cited

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…

cs.PL2011

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…

cs.PL2011★ 1 cited

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…