skip to main content
research-article

Programming with time: cyber-physical programming with impromptu

Published:17 October 2010Publication History
Skip Abstract Section

Abstract

The act of computer programming is generally considered to be temporally removed from a computer program's execution. In this paper we discuss the idea of programming as an activity that takes place within the temporal bounds of a real-time computational process and its interactions with the physical world. We ground these ideas within the con- text of livecoding -- a live audiovisual performance practice. We then describe how the development of the programming environment "Impromptu" has addressed our ideas of programming with time and the notion of the programmer as an agent in a cyber-physical system.

References

  1. ]]A. A diSessa and H. Abelson. Boxer: a reconstructible computational medium. Communications of the ACM, 29(9):859--868, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. ]]J. Armstrong.Making reliable distributed systems in the presence of sodware errors. PhD thesis, Royal Institute of Technology, Stockholm, Sweden, 2003.Google ScholarGoogle Scholar
  3. ]]H. G. Baker. The treadmill: Real-time garbage collection without motion sickness. ACM SIGPLAN Notices, 27:66--70, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. ]]K. Beck, M. Beedle, A. van Bennekum, A. Cockburn, W. Cunningham, M. Fowler, J. Grenning, J. Highsmith, A. Hunt, R. Jeffries, et al. Manifesto for agile software development, 2001. Online: http://www.agilemanifesto.org, 2001.Google ScholarGoogle Scholar
  5. ]]A. Benveniste, P. Caspi, S. Edwards, N. Halbwachs, P. Le Guernic, and R. De Simone. The synchronous languages 12 years later. Proceedings of the IEEE, 91(1):64--83, 2003.Google ScholarGoogle ScholarCross RefCross Ref
  6. ]]R. Beraldi and L. Nigro. Distributed simulation of timed petri nets. IEEE CONCURRENCY, 7(4):52--62, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. ]]W. Beynon, R. Boyatt, and S. Russ. Rethinking programming. In Information Technology: New Generations, 2006. ITNG 2006. Third International Conference on, pages 149--154, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. ]]A. Burns and A. Wellings. Real-Time Systems and Programming Languages: ADA 95, Real-Time Java, and Real-Time POSIX. Addison Wesley, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. ]]D. Collinge. Moxie: A language for computer music performance. pages 217--220. International Computer Music Conference, ICMC, 1984.Google ScholarGoogle Scholar
  10. ]]N. Collins, A. McLean, J. Rohrhuber, and A. Ward. Live coding in laptop performance. Organised Sound, 8(03):321--330, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. ]]G. Cooper and S. Krishnamurthi. Frtime: Functional reactive programming in plt scheme.Computer science technical report. Brown University. CS-03-20, 2004.Google ScholarGoogle Scholar
  12. ]]A. Courtney, H. Nilsson, and J. Peterson. The yampa arcade. In Proceedings of the 2003 ACM SIGPLAN workshop on Haskell, page 18. ACM, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. ]]O. Dahl and K. Nygaard. Simula: an algol-based simulation language. Communications of the ACM, 9(9):678, 1966. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. ]]R. Dannenberg. The cmu midi toolkit. In Proceedings of the 1986 International Computer Music Conference, pages 53--56, 1986.Google ScholarGoogle Scholar
  15. ]]J. Edwards. Subtext: Uncovering the simplicity of programming. In In OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, pages 505--518. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. ]]C. Elliott and P. Hudak. Functional reactive animation. In Proceedings of the second ACM SIGPLAN international conference on Functional programming, pages 263--273. ACM, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. ]]D. Gelernter.Generative communication in linda. ACM Transactions on Programming Languages and Systems (TOPLAS), 7(1):80--112, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. ]]D. Griffiths. Fluxus, 2010. URL http://www.pawfal.org/fluxus/.Google ScholarGoogle Scholar
  19. ]]C. Hancock. Real-time programming and the big ideas of computational literacy. PhD thesis, Citeseer, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. ]]C. Haynes and D. Friedman. Abstracting timed preemption with engines* 1. Computer Languages, 12(2):109--121, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. ]]R. Hieb and R. Dybvig. Continuations and concurrency. In Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming, pages 128-- 136. ACM, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. ]]R. Karp and R. Miller. Properties of a model for parallel computations: Determinancy, termination, queueing. SIAM Journal on Applied Mathematics, pages 1390--1411, 1966.Google ScholarGoogle ScholarCross RefCross Ref
  23. ]]A. Kay. Smalltalk, a communication medium for children of all ages. Xerox Palo Alto Research Center, Palo Alto, CA, 1974.Google ScholarGoogle Scholar
  24. ]]E. Lee. Concurrent models of computation for embedded software. System-on-chip: next generation electronics, page 223, 2006.Google ScholarGoogle Scholar
  25. ]]E. Lee. Computing needs time. Communications of the ACM, 52(5):70--79, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. ]]I. Lee, S. Davidson, and V. Wolfe. Motivating time as a first class entity. Technical Reports (CIS), page 288, 1987.Google ScholarGoogle Scholar
  27. ]]T. Magnusson.Ixilang. URL http://www.ixi-audio.net/ixilang/.Google ScholarGoogle Scholar
  28. ]]J. Maloney, L. Burd, Y. Kafai, N. Rusk, B. Silverman, and M. Resnick. Scratch: a sneak preview {education}. In Creating, Connecting and Collaborating through Computing, 2004. Proceedings. Second International Conference on, pages 104--109, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. ]]J. McCarthy. Recursive functions of symbolic expressions and their computation by machine, part i. Communications of the ACM, 3(4):195, 1960. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. ]]J. McCartney. Rethinking the computer music language: Supercollider. Computer Music Journal, 26(4):61--68, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. ]]S. McDirmid. Living it up with a live programming language. In Proceedings of the 2007 OOPSLA conference, volume 42, pages 623--638. ACM New York, NY, USA, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. ]]A. McLean. Hacking perl in nightclubs. at http://www.perl.com/pub/a/2004/08/31/livecode.html, 2004.Google ScholarGoogle Scholar
  33. ]]D. Mills. Rfc 1305-network time protocol (version 3) specification. Implementation and Analysis, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. ]]A. Moura and R. Ierusalimschy. Revisiting coroutines. ACM Transactions on Programming Languages and Systems (TOPLAS), 31(2):6, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. ]]H. Nilsson, A. Courtney, and J. Peterson. Functional reactive programming, continued. In Proceedings of the 2002 ACM SIGPLAN workshop on Haskell, page 64. ACM, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. ]]S. Papert. Mindstorms: Children, computers, and powerful ideas. Basic Books New York, 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. ]]R. Potter. Just-in-time programming. Watch What I Do: Programming by Demonstration, MIT Press, Cambridge, MA, pages 513--526, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. ]]M. Puckette. Max at seventeen. Computer Music Journal, 26 (4):31--43, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. ]]R Project for Statistical Computing.http://www.r-project.org/.Google ScholarGoogle Scholar
  40. ]]C. Roads. Microsound. The MIT Press, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. ]]J. Rohrhuber, A. de Campo, and R. Wieser. Algorithms today notes on language design for just in time programming. In International Computer Music Conference, page 291. ICMA, 2005.Google ScholarGoogle Scholar
  42. ]]E. Sandewall. Programming in an interactive environment: the "lisp" experience. ACM Computing Surveys (CSUR), 10(1): 35--71, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. ]]B. C. Smith. On the origin of objects / Brian Cantwell Smith. MIT Press, Cambridge, Mass.:, 1996. ISBN 0262193639 0262692090.Google ScholarGoogle Scholar
  44. ]]R. Smith and D. Ungar. Programming as an experience: The inspiration for self.Object-Oriented Programming, pages 303--330. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. ]]A. Sorensen. Impromptu: an interactive programming environment for composition and performance. Proceedings of the Australasian Computer Music Conference, 2005.Google ScholarGoogle Scholar
  46. ]]A. Sorensen.Oscillating rhythms, 200URL http://www.acid.net.au/index.php?option=com_content&task=view&id=99.Google ScholarGoogle Scholar
  47. ]]A. Sorensen. Livecoding screencasts, 20URL http://vimeo.com/impromptu/videos/sort:plays.Google ScholarGoogle Scholar
  48. ]]A. Sorensen. A distributed memory for networked livecoding performance. In International Computer Music Conference. ICMA, ICMA, June 2010.Google ScholarGoogle Scholar
  49. ]]A. Sorensen and A. Brown. aa-cell in practice: An approach to musical live coding'. In Proceedings of the International Computer Music Conference, pages 292--299, 2007.Google ScholarGoogle Scholar
  50. ]]D. Souflis and J. Shapiro. Tinyscheme. URL http://tinyscheme.sourceforge.net.Google ScholarGoogle Scholar
  51. ]]TOPLAP. Toplap website. URL http://www.toplap.org.Google ScholarGoogle Scholar
  52. ]]Z. Wan and P. Hudak. Functional reactive programming from first principles. In Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implemen- tation, pages 242--252. ACM, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. ]]G. Wang, P. Cook, et al. Chuck: A concurrent, on-the-fly audio programming language. In Proceedings of International Computer Music Conference, pages 219--226. Citeseer, 2003.Google ScholarGoogle Scholar

Index Terms

  1. Programming with time: cyber-physical programming with impromptu

    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

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!