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.
- ]]A. A diSessa and H. Abelson. Boxer: a reconstructible computational medium. Communications of the ACM, 29(9):859--868, 1986. Google Scholar
Digital Library
- ]]J. Armstrong.Making reliable distributed systems in the presence of sodware errors. PhD thesis, Royal Institute of Technology, Stockholm, Sweden, 2003.Google Scholar
- ]]H. G. Baker. The treadmill: Real-time garbage collection without motion sickness. ACM SIGPLAN Notices, 27:66--70, 1992. Google Scholar
Digital Library
- ]]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 Scholar
- ]]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 Scholar
Cross Ref
- ]]R. Beraldi and L. Nigro. Distributed simulation of timed petri nets. IEEE CONCURRENCY, 7(4):52--62, 1999. Google Scholar
Digital Library
- ]]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 Scholar
Digital Library
- ]]A. Burns and A. Wellings. Real-Time Systems and Programming Languages: ADA 95, Real-Time Java, and Real-Time POSIX. Addison Wesley, 2001. Google Scholar
Digital Library
- ]]D. Collinge. Moxie: A language for computer music performance. pages 217--220. International Computer Music Conference, ICMC, 1984.Google Scholar
- ]]N. Collins, A. McLean, J. Rohrhuber, and A. Ward. Live coding in laptop performance. Organised Sound, 8(03):321--330, 2004. Google Scholar
Digital Library
- ]]G. Cooper and S. Krishnamurthi. Frtime: Functional reactive programming in plt scheme.Computer science technical report. Brown University. CS-03-20, 2004.Google Scholar
- ]]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 Scholar
Digital Library
- ]]O. Dahl and K. Nygaard. Simula: an algol-based simulation language. Communications of the ACM, 9(9):678, 1966. Google Scholar
Digital Library
- ]]R. Dannenberg. The cmu midi toolkit. In Proceedings of the 1986 International Computer Music Conference, pages 53--56, 1986.Google Scholar
- ]]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 Scholar
Digital Library
- ]]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 Scholar
Digital Library
- ]]D. Gelernter.Generative communication in linda. ACM Transactions on Programming Languages and Systems (TOPLAS), 7(1):80--112, 1985. Google Scholar
Digital Library
- ]]D. Griffiths. Fluxus, 2010. URL http://www.pawfal.org/fluxus/.Google Scholar
- ]]C. Hancock. Real-time programming and the big ideas of computational literacy. PhD thesis, Citeseer, 2003. Google Scholar
Digital Library
- ]]C. Haynes and D. Friedman. Abstracting timed preemption with engines* 1. Computer Languages, 12(2):109--121, 1987. Google Scholar
Digital Library
- ]]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 Scholar
Digital Library
- ]]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 Scholar
Cross Ref
- ]]A. Kay. Smalltalk, a communication medium for children of all ages. Xerox Palo Alto Research Center, Palo Alto, CA, 1974.Google Scholar
- ]]E. Lee. Concurrent models of computation for embedded software. System-on-chip: next generation electronics, page 223, 2006.Google Scholar
- ]]E. Lee. Computing needs time. Communications of the ACM, 52(5):70--79, 2009. Google Scholar
Digital Library
- ]]I. Lee, S. Davidson, and V. Wolfe. Motivating time as a first class entity. Technical Reports (CIS), page 288, 1987.Google Scholar
- ]]T. Magnusson.Ixilang. URL http://www.ixi-audio.net/ixilang/.Google Scholar
- ]]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 Scholar
Digital Library
- ]]J. McCarthy. Recursive functions of symbolic expressions and their computation by machine, part i. Communications of the ACM, 3(4):195, 1960. Google Scholar
Digital Library
- ]]J. McCartney. Rethinking the computer music language: Supercollider. Computer Music Journal, 26(4):61--68, 2002. Google Scholar
Digital Library
- ]]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 Scholar
Digital Library
- ]]A. McLean. Hacking perl in nightclubs. at http://www.perl.com/pub/a/2004/08/31/livecode.html, 2004.Google Scholar
- ]]D. Mills. Rfc 1305-network time protocol (version 3) specification. Implementation and Analysis, 1992. Google Scholar
Digital Library
- ]]A. Moura and R. Ierusalimschy. Revisiting coroutines. ACM Transactions on Programming Languages and Systems (TOPLAS), 31(2):6, 2009. Google Scholar
Digital Library
- ]]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 Scholar
Digital Library
- ]]S. Papert. Mindstorms: Children, computers, and powerful ideas. Basic Books New York, 1980. Google Scholar
Digital Library
- ]]R. Potter. Just-in-time programming. Watch What I Do: Programming by Demonstration, MIT Press, Cambridge, MA, pages 513--526, 1993. Google Scholar
Digital Library
- ]]M. Puckette. Max at seventeen. Computer Music Journal, 26 (4):31--43, 2002. Google Scholar
Digital Library
- ]]R Project for Statistical Computing.http://www.r-project.org/.Google Scholar
- ]]C. Roads. Microsound. The MIT Press, 2004. Google Scholar
Digital Library
- ]]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 Scholar
- ]]E. Sandewall. Programming in an interactive environment: the "lisp" experience. ACM Computing Surveys (CSUR), 10(1): 35--71, 1978. Google Scholar
Digital Library
- ]]B. C. Smith. On the origin of objects / Brian Cantwell Smith. MIT Press, Cambridge, Mass.:, 1996. ISBN 0262193639 0262692090.Google Scholar
- ]]R. Smith and D. Ungar. Programming as an experience: The inspiration for self.Object-Oriented Programming, pages 303--330. Google Scholar
Digital Library
- ]]A. Sorensen. Impromptu: an interactive programming environment for composition and performance. Proceedings of the Australasian Computer Music Conference, 2005.Google Scholar
- ]]A. Sorensen.Oscillating rhythms, 200URL http://www.acid.net.au/index.php?option=com_content&task=view&id=99.Google Scholar
- ]]A. Sorensen. Livecoding screencasts, 20URL http://vimeo.com/impromptu/videos/sort:plays.Google Scholar
- ]]A. Sorensen. A distributed memory for networked livecoding performance. In International Computer Music Conference. ICMA, ICMA, June 2010.Google Scholar
- ]]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 Scholar
- ]]D. Souflis and J. Shapiro. Tinyscheme. URL http://tinyscheme.sourceforge.net.Google Scholar
- ]]TOPLAP. Toplap website. URL http://www.toplap.org.Google Scholar
- ]]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 Scholar
Digital Library
- ]]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 Scholar
Index Terms
Programming with time: cyber-physical programming with impromptu
Recommendations
Programming with time: cyber-physical programming with impromptu
OOPSLA '10: Proceedings of the ACM international conference on Object oriented programming systems languages and applicationsThe 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 ...







Comments