skip to main content
10.1145/3079368.3079400acmotherconferencesArticle/Chapter ViewAbstractPublication PagesprogrammingConference Proceedingsconference-collections
research-article

Live Data Structure Programming

Published: 03 April 2017 Publication History

Abstract

When we write a program that manipulates data structures, we often draw and manipulate a visual image of the structures in our mind. In order to immediately connect those mental images with the data objects created by the program, we propose a live programming environment, called Kanon, specialized for data structure programming. It automatically executes a program being edited, and draws objects and their mutual references as a node-link diagram. In order to visualize information relevant to the programmer's concern, it offers two visualization modes based on the cursor position in the editor. It also offers two interactive mechanisms that relate elements in the program to elements on the diagram, and vice versa. The implementation includes a novel technique for mental map preservation of visual diagrams.

References

[1]
Samuel Aaron and Alan F. Blackwell. 2013. From Sonic Pi to Overtone: Creative Musical Experiences with Domain-specific and Functional Languages. In Proceedings of the First ACM SIGPLAN Workshop on Functional Art, Music, Modeling & Design (FARM '13). 35--46.
[2]
Kent Beck. 2003. Test-Driven Development: by Example. Addison-Wesley Professional.
[3]
Apple Computer. Swift Playgrounds. http://www.apple.com/swift/playgrounds/. Accessed Ferburary 2017.
[4]
Jonathan Edwards. 2004. Example Centric Programming. In Proceedings of Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'04), 84--91.
[5]
Chris Granger. 2012. Light Table. http://www.chris-granger.com/lightable/. (2012). Accessed February 2017.
[6]
Philip J Guo. 2013. Online Python Tutor: Embeddable Web-based Program Visualization for CS Education. In Proceeding of the 44th ACM Technical Symposium on Computer Science Education. 579--584.
[7]
Christopher Michael Hancock. 2003. Real-time Programming and the Big Ideas of Computational Literacy. Ph.D. Dissertation. Massachusetts Institute of Technology, Cambridge, MA, USA.
[8]
T. Dean Hendrix, James H. Cross, II, and Larry A. Barowski. 2004. An Extensible Framework for Providing Dynamic Data Structure Visualizations in a Lightweight IDE. SIGCSE Bull. 36, 1 (March 2004), 387--391.
[9]
Tomoki Imai, Hidehiko Masuhara, and Tomoyuki Aotani. 2015. Making Live Programming Practical by Bridging the Gap Between Trial-and-error Development and Unit Testing. In Companion Proceedings of the 2015 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity (2015-10-25), 11--12.
[10]
Jun Kato, Sean McDirmid, and Xiang Cao. 2012. DejaVu: Integrated Support for Developing Interactive Camera-based Programs. In Proceedings of the 25th annual ACM symposium on User Interface Software and Technology (UIST'12). 189--196.
[11]
Khan Academy. Intro to JS: Drawing & Animation. https://www.khanacademy.org/computing/computer-programming/programming. Accessed Ferburary 2017.
[12]
Bil Lewis. 2003. Debugging Backwards in Time. In Proceedings of the Fifth International Workshop on Automated Debugging (AADEBUG 2003). arXiv:cs.SE/0310016 http://arxiv.org/abs/cs.SE/0310016
[13]
Henry Lieberman and Christopher Fry. 1995. Bridging the Gulf Between Code and Behavior in Programming. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '95). ACM Press/Addison-Wesley Publishing Co., 480--486.
[14]
Sean McDirmid. 2007. Living it Up with a Live Programming Language. In In Proceedings of Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!). 623--638.
[15]
David Ungar and Randall B. Smith. 1987. Self: The Power of Simplicity. In Proceedings of Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'87) (ACM SIGPLAN Notices), Vol. 22(12). 227--242.
[16]
Bret Victor. 2012. Inventing on Principle. Keynote Talk at the Canadian University Software Engineering Conference (CUSEC). (Jan. 2012).
[17]
Thomas Zimmermann and Andreas Zeller. 2002. Visualizing Memory Graphs. In Software Visualization. Springer, 191--204.

Cited By

View all
  • (2024)P-Inti: Interactive Visual Representation of Programming Concepts for Learning and Instruction2024 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC60511.2024.00030(199-210)Online publication date: 2-Sep-2024
  • (2022)ODEN: Live Programming for Neural Network Architecture EditingProceedings of the 27th International Conference on Intelligent User Interfaces10.1145/3490099.3511120(392-404)Online publication date: 22-Mar-2022
  • (2022)Barriers in Front-End Web Development2022 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC53370.2022.9833127(1-11)Online publication date: 12-Sep-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
Programming '17: Companion Proceedings of the 1st International Conference on the Art, Science, and Engineering of Programming
April 2017
193 pages
ISBN:9781450348362
DOI:10.1145/3079368
Permission to make digital or hard copies of all or part 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 components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

In-Cooperation

  • AOSA: Aspect-Oriented Software Association

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 April 2017

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Live programming
  2. data structures
  3. object graph

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

Programming '17

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)0
Reflects downloads up to 07 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)P-Inti: Interactive Visual Representation of Programming Concepts for Learning and Instruction2024 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC60511.2024.00030(199-210)Online publication date: 2-Sep-2024
  • (2022)ODEN: Live Programming for Neural Network Architecture EditingProceedings of the 27th International Conference on Intelligent User Interfaces10.1145/3490099.3511120(392-404)Online publication date: 22-Mar-2022
  • (2022)Barriers in Front-End Web Development2022 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC53370.2022.9833127(1-11)Online publication date: 12-Sep-2022
  • (2019)Draw this objectCompanion Proceedings of the 3rd International Conference on the Art, Science, and Engineering of Programming10.1145/3328433.3328454(1-11)Online publication date: 1-Apr-2019
  • (2018)Live, synchronized, and mental map preserving visualization for data structure programmingProceedings of the 2018 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3276954.3276962(72-87)Online publication date: 24-Oct-2018

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media