skip to main content
10.1145/2951965.2951969acmotherconferencesArticle/Chapter ViewAbstractPublication PagesecoopConference Proceedingsconference-collections
research-article

Transaction Layers: Controlling Granularity of Change in Live Programming Environments

Published: 17 July 2016 Publication History

Abstract

Modifying source code in a live programming environment changes the behavior of currently running programs immediately. When complex changes affect multiple locations in the code before reaching a consistent state, running programs are in danger of "de-railing" when their control flow reaches the yet incomplete "construction site".
Context-oriented Programming provides layers, which encapsulate code that would otherwise be scattered over many modules and can be activated to jointly adapt program behavior at run-time.
We propose to transparently collect and group changes to the code in a COP layer and defer its activation until the programmer deems its change to be completed. Additionally, layer deactivation serves as immediate undo operation on the group of changes.
We present and discuss a Squeak/Smalltalk prototype consisting of a code editor, which provides control over when and where such a group of changes is active, and an extension of Squeak's COP implementation ContextS/2 required for representing most code changes in a layer.

References

[1]
M. Denker, T. Grba, A. Lienhard, O. Nierstrasz, L. Renggli, and P. Zumkehr. Encapsulating and Exploiting Change with Changeboxes. In Proceedings of the 2007 International Conference on Dynamic Languages: In Conjunction with the 15th International Smalltalk Joint Conference 2007, ICDL '07, pages 25--49. ACM, 2007.
[2]
B. Freudenberg, Y. Ohshima, and S. Wallace. Etoys for one laptop per child. In Creating, Connecting and Collaborating through Computing (C5) 2009, pages 57--64. IEEE, 2009.
[3]
A. Goldberg and D. Robson. Smalltalk-80: The Language and Its Implementation. Addison-Wesley Longman Publishing Co., Inc., Boston, Massachusetts, USA, 1983.
[4]
S. Gonzlez, M. Denker, and K. Mens. Transactional Contexts: Harnessing the Power of Context-oriented Reflection. In International Workshop on Context-Oriented Programming, COP '09, pages 3:1--3:6. ACM, 2009.
[5]
R. Hirschfeld, P. Costanza, and O. Nierstrasz. Context-Oriented Programming. Journal of Object Technology, March-April 2008, 7(3):125--151, 2008.
[6]
R. Hirschfeld, H. Masuhara, A. Igarashi, and T. Felgentreff. Visibility of context-oriented behavior and state in L. Journal of the Japan Society for Software Science and Technology (JSSST) on Computer Software, 32(3):149--158, 2015.
[7]
D. Ingalls, T. Kaehler, J. Maloney, S. Wallace, and A. Kay. Back to the future: The story of Squeak, a practical Smalltalk written in itself. In ACM SIGPLAN Notices, volume 32, pages 318--326. ACM, 1997.
[8]
D. Ingalls, K. Palacz, S. Uhler, A. Taivalsaari, and T. Mikkonen. The Lively Kernel: A self-supporting system on a web page. In Proceedings of the Workshop on Self-Sustaining Systems (S3) 2008, pages 31--50. Springer, 2008.
[9]
J. Lincke and R. Hirschfeld. Scoping Changes in Self-supporting Development Environments Using Context-oriented Programming. In Proceedings of the International Workshop on Context-Oriented Programming, COP '12, pages 2:1--2:6. ACM, 2012.
[10]
P. Rein, M. Taeumel, and R. Hirschfeld. Gramada: Immediacy in Programming Language Development. Submitted for Review to ACM Symposium for New Ideas, New Paradigms, and Reflections on Everything to do with Programming and Software (Onward!) 2016.
[11]
M. Resnick, J. Maloney, A. Monroy-Hernndez, N. Rusk, E. Eastmond, K. Brennan, A. Millner, E. Rosenbaum, J. Silver, B. Silverman, and Y. Kafai. Scratch: Programming for All. Communications of the ACM, 52(11):60--67, 2009.
[12]
B. Steinert, D. Cassou, and R. Hirschfeld. CoExist: Overcoming Aversion to Change. In Proceedings of the 8th Symposium on Dynamic Languages, DLS '12, pages 107--118. ACM, 2012.
[13]
M. Taeumel, T. Felgentreff, and R. Hirschfeld. Applying Data-driven Tool Development to Context-oriented Languages. In Proceedings of 6th International Workshop on Context-Oriented Programming, COP'14, pages 1:1--1:7. ACM, 2014.
[14]
S. L. Tanimoto. A Perspective on the Evolution of Live Programming. In Proceedings of the 1st International Workshop on Live Programming, LIVE '13, pages 31--34. IEEE Press, 2013.
[15]
P. Zumkehr. Changeboxes -- modeling change as a first-class entity. Master's thesis, University of Bern, 2007.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
COP '16: Proceedings of the 8th ACM International Workshop on Context-Oriented Programming
July 2016
39 pages
ISBN:9781450344401
DOI:10.1145/2951965
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 the author(s) 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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 July 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. COP
  2. Granularity of Change
  3. Smalltalk
  4. Transaction Layer

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

ECOOP '16

Acceptance Rates

Overall Acceptance Rate 17 of 25 submissions, 68%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 75
    Total Downloads
  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 14 Feb 2025

Other Metrics

Citations

Cited By

View all

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