Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Directness and liveness in the morphic user interface construction environment
Proceedings of the 8th annual ACM symposium on User interface and software technology
Bridging the gulf between code and behavior in programming
CHI '95 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Programming in an Interactive Environment: the ``Lisp'' Experience
ACM Computing Surveys (CSUR)
User Centered System Design; New Perspectives on Human-Computer Interaction
User Centered System Design; New Perspectives on Human-Computer Interaction
How to design a system in which modules can be changed on the fly
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Implementing Level 4 Liveness in Declarative Visual Programming Languages
VL '98 Proceedings of the IEEE Symposium on Visual Languages
The Scaling-up Problem for Visual Programming Languages
The Scaling-up Problem for Visual Programming Languages
Real-time programming and the big ideas of computational literacy
Real-time programming and the big ideas of computational literacy
Subtext: uncovering the simplicity of programming
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Living it up with a live programming language
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Self-adjusting computation: (an overview)
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Declaratively programming the mobile web with Mobl
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
TouchDevelop: programming cloud-connected mobile devices via touchscreen
Proceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software
Kitsune: efficient, general-purpose dynamic software updating for C
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
Conversational programming: exploring interactive program analysis
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
Lessons from a web-based IDE and runtime
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
Live programming allows programmers to edit the code of a running program and immediately see the effect of the code changes. This tightening of the traditional edit-compile-run cycle reduces the cognitive gap between program code and execution, improving the learning experience of beginning programmers while boosting the productivity of seasoned ones. Unfortunately, live programming is difficult to realize in practice as imperative languages lack well-defined abstraction boundaries that make live programming responsive or its feedback comprehensible. This paper enables live programming for user interface programming by cleanly separating the rendering and non-rendering aspects of a UI program, allowing the display to be refreshed on a code change without restarting the program. A type and effect system formalizes this separation and provides an evaluation model that incorporates the code update step. By putting live programming on a more formal footing, we hope to enable critical and technical discussion of live programming systems.