ABSTRACT
We present object versioning as a generic approach to preserve access to previous development and application states. Version-aware references can manage the modifications made to the target object and record versions as desired. Such references can be provided without modifications to the virtual machine. We used proxies to implement the proposed concepts and demonstrate the Lively Kernel running on top of this object versioning layer. This enables Lively users to undo the effects of direct manipulation and other programming actions.
- T. Cutsem and M. S. Miller. Trustworthy Proxies: Virtualizing Objects with Invariants. In Proceedings of the 27th European Conference on Object-Oriented Programming, ECOOP '13, pages 154--178. Springer, July 2013. Google ScholarDigital Library
- M. Denker, T. Gırba, 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, ICDL '07, pages 25--49. ACM, August 2007. Google ScholarDigital Library
- D. Ingalls, S. Wallace, Y.-Y. Chow, F. Ludolph, and K. Doyle. Fabrik: A Visual Programming Environment. In Conference Proceedings on Object-oriented Programming Systems, Languages and Applications, OOPSLA '88, pages 176--190. ACM, January 1988. Google ScholarDigital Library
- 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 Proceedings of the 12th ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages and Applications, OOPSLA '97, pages 318--326. ACM, October 1997. Google ScholarDigital Library
- D. Ingalls, K. Palacz, S. Uhler, A. Taivalsaari, and T. Mikkonen. The Lively Kernel--A Self-supporting System on a Web Page. In Self-Sustaining Systems, S3, pages 31--50. Springer, May 2008. Google ScholarDigital Library
- A. Kay. Squeak Etoys Authoring and Media. Technical report, Viewpoints Research Institute, February 2005. URL http://www.vpri.org/pdf/rn2005002_authoring.pdf. Published February 2005. Available at http://www.vpri.org/pdf/rn2005002_authoring.pdf. Accessed March 7, 2014.Google Scholar
- B. Lewis. Debugging Backwards in Time. In Proceedings of the Fifth International Workshop on Automated Debugging, AADEBUG'03, pages 225--235. Springer, September 2003.Google Scholar
- a, and Nierstrasz}Lienhard2008POBA. Lienhard, T. Gırba, and O. Nierstrasz. Practical Object-Oriented Back-in-Time Debugging. In Proceedings of the 22Nd European Conference on Object-Oriented Programming, ECOOP '08, pages 592--615. Springer, July 2008. Google ScholarDigital Library
- r, and Hirschfeld}Lincke2012LPCJ. Lincke, R. Krahn, D. Ingalls, M. Röder, and R. Hirschfeld. The Lively PartsBin--A Cloud-Based Repository for Collaborative Development of Active Web Content. In Proceedings of the 2012 45th Hawaii International Conference on System Sciences, HICSS '12, pages 693--701. IEEE, January 2012. Google ScholarDigital Library
- J. Maloney, M. Resnick, N. Rusk, B. Silverman, and E. Eastmond. The Scratch Programming Language and Environment. Transactions on Computing Education, 10 (4): 16:1--16:15, November 2010. Google ScholarDigital Library
- J. H. Maloney and R. B. Smith. Directness and Liveness in the Morphic User Interface Construction Environment. In Proceedings of the 8th Annual ACM Symposium on User Interface and Software Technology, UIST '95, pages 21--28. ACM, December 1995. Google ScholarDigital Library
- F. Pluquet, S. Langerman, and R. Wuyts. Executing Code in the Past: Efficient In-memory Object Graph Versioning. In Proceedings of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA '09, pages 391--408. ACM, October 2009. Google ScholarDigital Library
- N. Shavit and D. Touitou. Software Transactional Memory. In Proceedings of the Fourteenth Annual ACM Symposium on Principles of Distributed Computing, PODC '95, pages 204--213. ACM, June 1995. Google ScholarDigital Library
- 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, January 2012. Google ScholarDigital Library
- T. Van Cutsem and M. S. Miller. Proxies: Design Principles for Robust Object-oriented Intercession APIs. SIGPLAN Notices, 45 (12): 59--72, October 2010. Google ScholarDigital Library
- A. Warth, Y. Ohshima, T. Kaehler, and A. Kay. Worlds: Controlling the Scope of Side Effects. In Proceedings of the 25th European Conference on Object-oriented Programming, ECOOP'11, pages 179--203. Springer, July 2011. Google ScholarDigital Library
- E. Wernli, O. Nierstrasz, C. Teruel, and S. Ducasse. Delegation proxies: the power of propagation. In Proceedings of the of the 13th international conference on Modularity, pages 1--12. ACM, 2014. 10.1145/2577080.2577081. Google ScholarDigital Library
Index Terms
- Object versioning to support recovery needs: using proxies to preserve previous development states in lively
Recommendations
Object versioning to support recovery needs: using proxies to preserve previous development states in lively
DLS '14We present object versioning as a generic approach to preserve access to previous development and application states. Version-aware references can manage the modifications made to the target object and record versions as desired. Such references can be ...
Lively groups: shared behavior in a world of objects without classes or prototypes
FPW 2015: Proceedings of the Workshop on Future ProgrammingDevelopment environments which aim to provide short feedback loops to developers must strike a balance between immediacy and the ability to abstract and reuse behavioral modules. The Lively Kernel, a self-supporting, browser-based environment for ...
Executing code in the past: efficient in-memory object graph versioning
OOPSLA '09Object versioning refers to how an application can have access to previous states of its objects. Implementing this mechanism is hard because it needs to be efficient in space and time, and well integrated with the programming language. This paper ...
Comments