skip to main content
10.1145/3133850.3133858acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Systems level liveness with extempore

Published:25 October 2017Publication History

ABSTRACT

Live programs can be modified while the program is executing in order to provide a more reactive experience for the programmer. In demanding applications, such programs traditionally utilise pre-defined function calls to compiled libraries. We present a system that enables demanding live programs to be built where the supporting stack of libraries is, itself, live. In such situations, the top level code might be thought of as a simple ``live environment'' that can be created live and that encapsulates code that has ``bubbled-up'' from the supporting libraries. Our system enables this bubbling up to be achieved in an ad-hoc way and with minimal performance penalty. The deep, systems-level liveness that it exhibits is described and compared with other approaches to Live Coding and liveness generally.

The work described here has its origins in the artistic Live Coding of computer music and multimedia. We also discuss its wider uses including the development of interactive multimedia installations and the harnessing of scientific simulation.

References

  1. 2017. LLVM Website. http://llvm.org . (2017).Google ScholarGoogle Scholar
  2. 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. ACM, 35–46.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Harold Abelson and Gerald Jay Sussman. 1983. Structure and interpretation of computer programs. MIT Press.Google ScholarGoogle Scholar
  4. Andrei Alexandrescu. 2010. The D programming language. AddisonWesley Professional.Google ScholarGoogle Scholar
  5. Jean-Philippe Bernardy, Patrik Jansson, Marcin Zalewski, Sibylle Schupp, and Andreas Priesnitz. 2008. A comparison of C++ concepts and Haskell type classes. In Proceedings of the ACM SIGPLAN workshop on Generic programming. ACM, 37–48.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Hank Bromley, H Bromley, and Richard Lamson. 1987. LISP Lore: A Guide to Programming the LISP Machine Second Edition. Springer.Google ScholarGoogle Scholar
  7. Luke Church, Chris Nash, and Alan F Blackwell. 2010. Liveness in notation use: From music to programming. Proceedings of PPIG 2010 (2010), 2–11.Google ScholarGoogle Scholar
  8. Viktor K Decyk. 2017. Skeleton Codes Website UCLA. http: //picksc.idre.ucla.edu/software/skeleton-code/ . (2017).Google ScholarGoogle Scholar
  9. Jonathan Edwards. 2005. Subtext: uncovering the simplicity of programming. In ACM SIGPLAN Notices, Vol. 40. ACM, 505–518. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. D Griffiths. 2014. Fluxus. URL http://www.pawfal.org/fluxus (2014).Google ScholarGoogle Scholar
  11. Dan Ingalls, Ted Kaehler, John Maloney, Scott Wallace, and Alan Kay. 1997. Back to the future: the story of Squeak, a practical Smalltalk written in itself. In ACM SIGPLAN Notices, Vol. 32. ACM, 318–326. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Trevor Jim, Greg Morrisett, Dan Grossman, Michael Hicks, James Cheney, and Yanling Wang. 2002. Cyclone: A safe dialect of C. In USENIX Annual Technical Conference, Vol. 90.Google ScholarGoogle Scholar
  13. McCarthy John. 1996. The implementation of LISP. http: //www-formal.stanford.edu/jmc/history/lisp/node3.html . (1996).Google ScholarGoogle Scholar
  14. Stefan Kaes. 1988. Parametric overloading in polymorphic programming languages. In European Symposium on Programming. Springer, 131–144. Google ScholarGoogle ScholarCross RefCross Ref
  15. Glenn Krasner. 1983. Smalltalk-80: Bits of History. Words of Advice (1983).Google ScholarGoogle Scholar
  16. Chris Lattner and Vikram Adve. 2004. LLVM: A compilation framework for lifelong program analysis & transformation. In Code Generation and Optimization, 2004. CGO 2004. International Symposium on. IEEE, 75–86.Google ScholarGoogle ScholarCross RefCross Ref
  17. Nicholas D Matsakis and Felix S Klock II. 2014. The rust language. In ACM SIGAda Ada Letters, Vol. 34. ACM, 103–104.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Sean McDirmid. 2007. Living it up with a live programming language. In ACM SIGPLAN Notices, Vol. 42. ACM, 623–638.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Sean McDirmid. 2013. Usable live programming. In Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software. ACM, 53–62.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Floréal Morandat, Brandon Hill, Leo Osvald, and Jan Vitek. 2012. Evaluating the design of the R language. ECOOP 2012–Object-Oriented Programming (2012), 104–131.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Roland Perera. 2013. Interactive functional programming. Ph.D. Dissertation. University of Birmingham.Google ScholarGoogle Scholar
  22. Alan J. Perlis. 1982. Epigrams on programming. SIgPLAN Notices 17, 9 (1982), 7–13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Benjamin C Pierce and David N Turner. 2000. Local type inference. ACM Transactions on Programming Languages and Systems (TOPLAS) 22, 1 (2000), 1–44. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Brett Viktor presentation at CUSEC. 2012. Designing on Principle. https://vimeo.com/36579366 . (2012).Google ScholarGoogle Scholar
  25. Kuchera-Morin J Roberts C. 2012. Gibber: Live Coding Audio In The Browser. In In Proceedings of the International Computer Music Conference (ICMC) Ljubljana, Slovenia. ICMC.Google ScholarGoogle Scholar
  26. Erik Sandewall. 1978. Programming in an interactive environment: the LISP experience. Comput. Surveys 10, 1 (1978), 35–71. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. SciPy. 2017. SciPy. https://www.scipy.org/ . (2017).Google ScholarGoogle Scholar
  28. Jonathan Shapiro. 2006. Programming language challenges in systems codes: why systems programmers still use C, and what to do about it. In Proceedings of the 3rd workshop on Programming languages and operating systems: linguistic support for modern operating systems. ACM, 9.Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. A.C. Sorensen. 2005. Impromptu: An interactive programming environment for composition and performance. In Proceedings of the Australasian Computer Music Conference 2005. Australasian Computer Music Association.Google ScholarGoogle Scholar
  30. A. Sorensen and H. Gardner. 2010. Programming with time: cyberphysical programming with impromptu. In ACM SIGPLAN Notices, Vol. 45. ACM, 822–834. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Dimitrios Souflis. 2016. TinyScheme. (Apr 2016). http://tinyscheme. sourceforge.net/Google ScholarGoogle Scholar
  32. Ben Swift, Andrew Sorensen, Henry Gardner, Peter Davis, and Viktor K Decyk. 2016. Live Programming in Scientific Simulation. Supercomputing frontiers and innovations 2, 4 (2016), 4–15.Google ScholarGoogle Scholar
  33. Ben Swift, Andrew Sorensen, Henry Gardner, and John Hosking. 2013. Visual code annotations for cyberphysical programming. In Proceedings of the 1st International Workshop on Live Programming. IEEE Press, 27–30.Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Steven L Tanimoto. 1990. VIVA: A visual language for image processing. Journal of Visual Languages & Computing 1, 2 (1990), 127–139.Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Steven L Tanimoto. 2013. A perspective on the evolution of live programming. In Live Programming (LIVE), 2013 1st International Workshop on. IEEE, 31–34.Google ScholarGoogle ScholarCross RefCross Ref
  36. Mads Tofte and Jean-Pierre Talpin. 1997. Region-based memory management. Information and computation 132, 2 (1997), 109–176. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. G. Wakefield, W. Smith, and C. Roberts. 2010. LuaAV: Extensibility and Heterogeneity for Audiovisual Computing. In Proceedings of the Linux Audio Conference.Google ScholarGoogle Scholar
  38. Janet H Walker, David A Moon, Daniel L Weinreb, and Mike McMahon. 1987. The symbolics Genera programming environment. IEEE Software 4, 6 (1987), 36.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Systems level liveness with extempore

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          Onward! 2017: Proceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software
          October 2017
          261 pages
          ISBN:9781450355308
          DOI:10.1145/3133850

          Copyright © 2017 ACM

          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]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 25 October 2017

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate40of105submissions,38%

          Upcoming Conference

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader