[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3290607.3313266acmconferencesArticle/Chapter ViewAbstractPublication PageschiConference Proceedingsconference-collections
demonstration
Public Access

Live Programming By Example

Published: 02 May 2019 Publication History

Abstract

Live programming is a novel approach for programming practice. Programmers are given real-time feedback when writing code, traditionally via a graphical user interface. Despite live programming's practical values, such as providing an easier overview of code and better understanding of its structure, it is not yet widely used. In this work, we extend live programming to general purpose code editors, which allows for live programming to be used by programmers, and provides new interfaces for understanding and changing the functionality of code. To achieve this we extended a fully-featured IDE with the ability to show input/output examples of code execution, as the programmer is writing code. Furthermore, we integrate programming by example (PBE) synthesis into our tool by allowing the user to change the shown output, and have the code update automatically. Our goal is to use live programming to give novice programmers a new way to interact and understand programming, as well as being a useful development tool for more advanced programmers.

Supplementary Material

JPG File (int020.jpg)
Video figure captions
MP4 File (int020.mp4)
Supplemental video

References

[1]
Rajeev Alur, Dana Fisman, Rishabh Singh, and Armando Solar-Lezama. 2017. SyGuS-Comp 2017: Results and Analysis. arXiv preprint arXiv:1711.11438 (2017).
[2]
Andrew R Brown and Andrew Sorensen. 2009. Interacting with generative music through live coding. Contemporary Music Review 28, 1 (2009), 17--29.
[3]
Ravi Chugh, Brian Hempel, Mitchell Spradlin, and Jacob Albers. 2016. Programmatic and direct manipulation, together at last. ACM SIGPLAN Notices 51, 6 (2016), 341--354.
[4]
Thomas A Corbi. 1989. Program understanding: Challenge for the 1990s. IBM Systems Journal 28, 2 (1989), 294--306.
[5]
Allen Cypher. 1991. EAGER: programming repetitive tasks by example. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. ACM, 33--39.
[6]
A. Cypher and D.C. Halbert. 1993. Watch what I Do: Programming by Demonstration. MIT Press.
[7]
GitHub. 2018. Atom - The hackable text editor. https://github.com/atom/atom.
[8]
Sumit Gulwani. 2011. Automating string processing in spreadsheets using input-output examples. In POPL. 317--330.
[9]
Sumit Gulwani. 2012. Synthesis from Examples: Interaction Models and Algorithms. 14th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (2012). Invited talk paper.
[10]
Thomas D LaToza, Gina Venolia, and Robert DeLine. 2006. Maintaining mental models: a study of developer work habits. In Proceedings of the 28th international conference on Software engineering. ACM, 492--501.
[11]
H. Lieberman. 2001. Your Wish Is My Command: Programming by Example. Morgan Kaufmann Publishers.
[12]
Mikaël Mayer, Viktor Kuncak, and Ravi Chugh. 2018. Bidirectional Evaluation with Direct Manipulation. Proc. ACM Program. Lang. 2, OOPSLA, Article 127 (Oct. 2018), 28 pages.
[13]
Cyrus Omar, Ian Voysey, Ravi Chugh, and Matthew A Hammer. 2018. Live Functional Programming with Typed Holes. arXiv preprint arXiv:1805.00155 (2018).
[14]
Andrew Reynolds and Cesare Tinelli. 2017. SyGuS Techniques in the Core of an SMT Solver. arXiv preprint arXiv:1711.10641 (2017).
[15]
Ryo Suzuki, Gustavo Soares, Elena Glassman, Andrew Head, Loris D'Antoni, and Björn Hartmann. 2017. Exploring the Design Space of Automatically Synthesized Hints for Introductory Programming Assignments. In Proceedings of the 2017 CHI Conference Extended Abstracts on Human Factors in Computing Systems (CHI EA '17). ACM, New York, NY, USA, 2951--2958.
[16]
Bret Victor. 2012. Learnable Programming : designing a programming system for understanding programs. (2012). Available at http://worrydream.com/LearnableProgramming/.

Cited By

View all
  • (2023)A Need-Finding Study with Users of Geospatial DataProceedings of the 2023 CHI Conference on Human Factors in Computing Systems10.1145/3544548.3581370(1-16)Online publication date: 19-Apr-2023
  • (2023)Programming-by-Example with Nested Examples2023 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL-HCC57772.2023.00053(280-282)Online publication date: 3-Oct-2023
  • (2022)WebRobot: web robotic process automation using interactive programming-by-demonstrationProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3519939.3523711(152-167)Online publication date: 9-Jun-2022
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
CHI EA '19: Extended Abstracts of the 2019 CHI Conference on Human Factors in Computing Systems
May 2019
3673 pages
ISBN:9781450359719
DOI:10.1145/3290607
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 02 May 2019

Check for updates

Author Tags

  1. ides
  2. live programming
  3. program synthesis

Qualifiers

  • Demonstration

Funding Sources

Conference

CHI '19
Sponsor:

Acceptance Rates

Overall Acceptance Rate 6,164 of 23,696 submissions, 26%

Upcoming Conference

CHI 2025
ACM CHI Conference on Human Factors in Computing Systems
April 26 - May 1, 2025
Yokohama , Japan

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)299
  • Downloads (Last 6 weeks)61
Reflects downloads up to 14 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2023)A Need-Finding Study with Users of Geospatial DataProceedings of the 2023 CHI Conference on Human Factors in Computing Systems10.1145/3544548.3581370(1-16)Online publication date: 19-Apr-2023
  • (2023)Programming-by-Example with Nested Examples2023 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL-HCC57772.2023.00053(280-282)Online publication date: 3-Oct-2023
  • (2022)WebRobot: web robotic process automation using interactive programming-by-demonstrationProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3519939.3523711(152-167)Online publication date: 9-Jun-2022
  • (2021)Edit - Run Behavior in Programming and Debugging2021 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC51201.2021.9576170(1-10)Online publication date: 10-Oct-2021
  • (2021)AUTOMAT[R]IX: learning simple matrix pipelinesMachine Learning10.1007/s10994-021-05950-7Online publication date: 13-Apr-2021
  • (2021)Program Synthesis for Musicians: A Usability Testbed for Temporal Logic SpecificationsProgramming Languages and Systems10.1007/978-3-030-89051-3_4(47-61)Online publication date: 12-Oct-2021
  • (2020)The Effects of Compilation Mechanisms and Error Message Presentation on Novice Programmer BehaviorProceedings of the 51st ACM Technical Symposium on Computer Science Education10.1145/3328778.3366882(759-765)Online publication date: 26-Feb-2020
  • (2020)Automating Common Data Science Matrix TransformationsMachine Learning and Knowledge Discovery in Databases10.1007/978-3-030-43823-4_2(17-27)Online publication date: 28-Mar-2020

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media