Conference Publications

2023
  1. Andrew McNutt and Ravi Chugh. Projectional Editors for JSON-Based DSLs. In Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Washington, DC, October 2023.

  2. Andrew McNutt, Anton Outkine, and Ravi Chugh. A Study of Editor Features in a Creative Coding Classroom. In Proceedings of the Conference on Human Factors in Computing Systems (CHI), Hamburg, Germany, April 2023.

2022
  1. Brian Hempel and Ravi Chugh. Maniposynth: Bimodal Tangible Functional Programming. In European Conference on Object-Oriented Programming (ECOOP), Berlin, Germany, June 2022.

2021
  1. Cyrus Omar, David Moon, Andrew Blinn, Ian Voysey, Nick Collins, and Ravi Chugh. Filling Typed Holes with Live GUIs. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), Online, June 2021.

  2. Andrew McNutt and Ravi Chugh. Integrated Visualization Editing via Parameterized Declarative Templates. In Proceedings of the Conference on Human Factors in Computing Systems (CHI), Online, May 2021.

2020
  1. Justin Lubin, Nick Collins, Cyrus Omar, and Ravi Chugh. Program Sketching with Live Bidirectional Evaluation. In Proceedings of the ACM on Programming Languages (PACMPL), Issue ICFP, Jersey City, NJ, Online, August 2020.

  2. Brian Hempel and Ravi Chugh. Tiny Structure Editors for Low, Low Prices! (Generating GUIs from toString Functions). In Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Dunedin, New Zealand, Online, August 2020.

2019
  1. Brian Hempel, Justin Lubin, and Ravi Chugh. Sketch-n-Sketch: Output-Directed Programming for SVG. In Proceedings of the ACM Symposium on User Interface Software and Technology (UIST), New Orleans, LA, October 2019.

  2. Cyrus Omar, Ian Voysey, Ravi Chugh, and Matthew A. Hammer. Live Functional Programming with Typed Holes. In Proceedings of the ACM on Programming Languages (PACMPL), Issue POPL, Lisbon, Portugal, January 2019.

2018
  1. Mikaël Mayer, Viktor Kunčak, and Ravi Chugh. Bidirectional Evaluation with Direct Manipulation. In Proceedings of the ACM on Programming Languages (PACMPL), Issue OOPSLA, Boston, MA, November 2018.

  2. Brian Hempel, Justin Lubin, Grace Lu, and Ravi Chugh. Deuce: A Lightweight User Interface for Structured Editing. In Proceedings of the IEEE/ACM International Conference on Software Engineering (ICSE), Gothenburg, Sweden, May 2018.

2016
  1. Brian Hempel and Ravi Chugh. Semi-Automated SVG Programming via Direct Manipulation. In Proceedings of the ACM Symposium on User Interface Software and Technology (UIST), Tokyo, Japan, October 2016.

  2. Ravi Chugh, Brian Hempel, Mitchell Spradlin, and Jacob Albers. Programmatic and Direct Manipulation, Together at Last. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), Santa Barbara, CA, June 2016.

  3. Ravi Chugh. Prodirect Manipulation: Bidirectional Programming for the Masses. In Proceedings of the IEEE/ACM International Conference on Software Engineering Companion (ICSE-C), Visions of 2025 and Beyond Track (V2025), Austin, TX, May 2016.

2015
  1. Ravi Chugh. IsoLate: A Type System for Self-Recursion. In Proceedings of the 24th European Symposium on Programming (ESOP), London, UK, April 2015.

2008 – 2013
  1. Ravi Chugh. Nested Refinement Types for JavaScript.
    Ph.D. Dissertation, University of California, San Diego, September 2013. [ slides ]

  2. Ravi Chugh, David Herman, and Ranjit Jhala. Dependent Types for JavaScript. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Tucson, AZ, October 2012.
    [ appendix | updated results (sep 2012) | github ]

  3. Ravi Chugh, Patrick M. Rondon, and Ranjit Jhala. Nested Refinements: A Logic for Duck Typing. In Proceedings of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), Philadelphia, PA, January 2012.
    [ tech report ]

  4. Juan Chen, Ravi Chugh, and Nikhil Swamy. Type-preserving Compilation for End-to-end Verification of Security Enforcement. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), Toronto, Canada, June 2010.

  5. Nikhil Swamy, Juan Chen, and Ravi Chugh. Enforcing Stateful Authorization and Information Flow Policies in Fine. In Proceedings of the 19th European Symposium on Programming (ESOP), Paphos, Cyprus, March 2010.
    [ tech report ]

  6. Ravi Chugh, Jeffrey A. Meister, Ranjit Jhala, and Sorin Lerner. Staged Information Flow for JavaScript. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), Dublin, Ireland, June 2009.

  7. Ravi Chugh, Jan W. Voung, Ranjit Jhala, and Sorin Lerner. Dataflow Analysis for Concurrent Programs using Datarace Detection. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), Tucson, AZ, June 2008.

Workshop Publications

2019
  1. Justin Lubin and Ravi Chugh. Type-Directed Program Transformations for the Working Functional Programmer. In Proceedings of the Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU), New Orleans, LA, October 2019.

  2. Mikaël Mayer and Ravi Chugh. A Bidirectional Krivine Evaluator. In Proceedings of the International Workshop on Bidirectional Transformations (Bx), Philadelphia, PA, June 2019.

Informal Workshop Papers and Manuscripts

2020
  1. Nick Collins, Ian Voysey, and Ravi Chugh. Delta Dictionaries: Total and Extensional Finite Maps in Proof Assistants. September 2020.

2019
  1. Cyrus Omar, Nick Collins, David Moon, Ian Voysey, and Ravi Chugh. Livelits: Filling Typed Holes with Live GUIs (Extended Abstract). In Workshop on Type-Driven Development (TyDe), Berlin, Germany, August 2019.

2018
  1. Bowen Wang, Brian Hempel, and Ravi Chugh. Predicting Haskell Type Signatures From Names. Manuscript, September 2018.

2017
  1. Ravi Chugh. Direct Manipulation Programming Systems (A Brief Introduction). White paper, ISAT/DARPA "Augmented Developers: Tools for Hybrid Man-Machine Software Engineering" Workshop, February 2017.

2013
  1. Ravi Chugh. A Fix for Dynamic Scope. In ACM SIGPLAN Workshop on ML (ML), Boston, Massachusetts, September 2013.

2012
  1. Ravi Chugh, David Herman, and Ranjit Jhala. Status Report: Dependent Types for JavaScript. In International Workshop on Script to Program Evolution (STOP), Beijing, China, June 2012.

2011
  1. Ravi Chugh, Ranjit Jhala, and Sorin Lerner. Type Inference with Run-time Logs. In International Workshop on Script to Program Evolution (STOP), Austin, TX, January 2011.