skip to main content
article

Living it up with a live programming language

Published:21 October 2007Publication History
Skip Abstract Section

Abstract

A dynamic language promotes ease of use through flexible typing, a focus on high-level programming, and by streamlining the edit-compile-debug cycle. Live languages go beyond dynamic languages with more ease of use features. A live language supports live programming that provides programmers with responsive and continuous feedback about how their edits affect program execution. A live language is also based on high-level constructs such as declarative rules so that programmers can write less code. A live language could also provide programmers with responsive semantic feedback to enable time-saving services such as code completion. This paper describes the design of a textual live language that is based on reactive data-flow values known as signals and dynamic inheritance. Our language, SuperGlue, supports live programming with responsive semantic feedback, which we demonstrate with a working prototype.

References

  1. J. L. Armstrong and R. Virding. An experimental telephony switching language. In Proc. of Interantation Switching Symposium, May 1991.Google ScholarGoogle Scholar
  2. A. Benveniste, P. L. Geurnic, and C. Jacquemot. Synchronous programming with events and relations: the Signal language and its semantics. In Science of Computer Programming, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. Burnett, J. Atwood, R. Walpole, H. Gottfried, J. Reichwein, and S. Yang. Forms/3: A first-order visual language to explore the boundaries of the spreadsheet paradigm. In Journal of Functional Programming, pages 155--206, Mar. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. M. Burnett, M. J. Baker, C. Bohus, P. Carlson, S. Yang, and P. van Zee. Scaling up visual programming languages. In IEEE Computer, pages 45--54, Mar. 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. P. Caspi, D. Pilaud, N. Halbwachs, and J. A. Plaice. LUSTRE: a declarative language for programming synchronous systems. In Proc. of POPL, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. C. Chambers. Object-Oriented multi-methods in Cecil. In Proc. of ECOOP, pages 33--56, June 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. C. Chambers. Predicate classes. In Proc. of ECOOP, pages 268--296, July 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. G. H. Cooper and S. Krishnamurthi. Embedding dynamic dataflow in a call-by-value language. In Proc. of of ESOP, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. Edwards. Subtext: Uncovering the simplicity of program. In Proc. of OOPSLA Onward, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. C. Elliott and P. Hudak. Functional reactive animation. In Proc. of ICFP, volume 32 (8) of SIGPLAN Notices, pages 263--273. ACM, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. W. Floyd. Syntactic analysis and operator precedence. In Journal of the ACM, volume 10 (3), pages 316--333, 1963. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. A. Goldberg and D. Robson. SmallTalk-80: The Language and its Implementation. Addison Wesley, Boston, MA, USA, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. C. M. Hancock. Real-time Programming and the Big Ideas of Computational Literacy. PhD thesis, Massachusetts Institute of Technology, Sept. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. P. Hudak, A. Courtney, H. Nilsson, and J. Peterson. Arrows, robots, and functional reactive programming. In Advanced Functional Programming, volume 2638 of Lecture Notes in Computer Science, pages 159--187. Springer, 2002.Google ScholarGoogle Scholar
  15. D. Ingalls, S. Wallace, Y.-Y. Chow, F. Ludolph, and K. Doyle. Fabrik, a visual programming environment. In Proc. of OOPSLA, pages 176--190, Nov. 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R. M. Karp and R. E. Miller. Properties of a model for parallel computations: Determinacy, termination queueing. SIAM Journal for Applied Mathemetics, 14(6):1390--1410, Nov. 1966.Google ScholarGoogle ScholarCross RefCross Ref
  17. P. O. Latour. Quartz Composer. Apple Computer, 2005. http://developer.apple.com/graphicsimaging/quartz/-quartzcomposer.html.Google ScholarGoogle Scholar
  18. J. H. Maloney and R. B. Smith. Directness and liveness in the Morphic user interface construction environment. In ACM Symposium on User Interface Software and Technology, pages 21--28. ACM, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Y. Matsumoto. Ruby: Programmers' Best Friend. http://www-.ruby-lang.org/en/.Google ScholarGoogle Scholar
  20. S. McDirmid and W. C. Hsieh. SuperGlue: Component programming with Object-Oriented signals. In Proc. of ECOOP, June 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. National Instruments Corporation. LabVIEW User Manual, 1990.Google ScholarGoogle Scholar
  22. M. Odersky and et. al. The Scala language specification. Technical report, EPFL, Lausanne, Switzerland, 2007. http://scala.epfl.ch.Google ScholarGoogle Scholar
  23. M. Petre. Why looking isn't always seeing: Readership skills and graphical programming. Comm. of the ACM, pages 33--44, June 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. A. Repenning. AgentSheets: an interactive simulation environment with end-user programmable agents. In Proc. of Interaction, 2000.Google ScholarGoogle Scholar
  25. E. Sandewall. Programming in an interactive environment: the lisp experience. Computing Surveys, 10(1), Mar. 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. O. Shivers. The semantics of Scheme control-flow analysis. In Proc. of PEMP, pages 190--198, June 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. I. B. Sutherland. SKETCHPAD, a man-machine graphical communication system. In Proc. of the Spring Joint Computer Conference, pages 329--346, 1963.Google ScholarGoogle Scholar
  28. T. Teitelbaum and T. W. Reps. The Cornell program synthesizer: A syntax-directed programming environment. Communications of the ACM, 24(9):563--573, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. D. Ungar and R. B. Smith. Self: the power of simplicity. In Proc. of OOPSLA, pages 227--242, Oct. 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. D. Ungar and R. B. Smith. Programming as an experience: the inspiration for Self. In Proc. of ECOOP, pages 227--242, Aug. 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. G. van Rossum and F. L. Drake. The Python Language Reference Manual, Sept. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. W. W. Wadge and E. A. Ashcroft. Lucid, the Dataflow Programming Language. Academic Press, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Living it up with a live programming language

    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

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 42, Issue 10
      Proceedings of the 2007 OOPSLA conference
      October 2007
      686 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1297105
      Issue’s Table of Contents
      • cover image ACM Conferences
        OOPSLA '07: Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applications
        October 2007
        728 pages
        ISBN:9781595937865
        DOI:10.1145/1297027

      Copyright © 2007 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 21 October 2007

      Check for updates

      Author Tags

      Qualifiers

      • article

    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!