Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Living it up with a live programming language

Published: 21 October 2007 Publication History
  • Get Citation Alerts
  • 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.
    [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.
    [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.
    [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.
    [5]
    P. Caspi, D. Pilaud, N. Halbwachs, and J. A. Plaice. LUSTRE: a declarative language for programming synchronous systems. In Proc. of POPL, 1987.
    [6]
    C. Chambers. Object-Oriented multi-methods in Cecil. In Proc. of ECOOP, pages 33--56, June 1992.
    [7]
    C. Chambers. Predicate classes. In Proc. of ECOOP, pages 268--296, July 1993.
    [8]
    G. H. Cooper and S. Krishnamurthi. Embedding dynamic dataflow in a call-by-value language. In Proc. of of ESOP, 2006.
    [9]
    J. Edwards. Subtext: Uncovering the simplicity of program. In Proc. of OOPSLA Onward, 2005.
    [10]
    C. Elliott and P. Hudak. Functional reactive animation. In Proc. of ICFP, volume 32 (8) of SIGPLAN Notices, pages 263--273. ACM, 1997.
    [11]
    R. W. Floyd. Syntactic analysis and operator precedence. In Journal of the ACM, volume 10 (3), pages 316--333, 1963.
    [12]
    A. Goldberg and D. Robson. SmallTalk-80: The Language and its Implementation. Addison Wesley, Boston, MA, USA, 1983.
    [13]
    C. M. Hancock. Real-time Programming and the Big Ideas of Computational Literacy. PhD thesis, Massachusetts Institute of Technology, Sept. 2003.
    [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.
    [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.
    [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.
    [17]
    P. O. Latour. Quartz Composer. Apple Computer, 2005. http://developer.apple.com/graphicsimaging/quartz/-quartzcomposer.html.
    [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.
    [19]
    Y. Matsumoto. Ruby: Programmers' Best Friend. http://www-.ruby-lang.org/en/.
    [20]
    S. McDirmid and W. C. Hsieh. SuperGlue: Component programming with Object-Oriented signals. In Proc. of ECOOP, June 2006.
    [21]
    National Instruments Corporation. LabVIEW User Manual, 1990.
    [22]
    M. Odersky and et. al. The Scala language specification. Technical report, EPFL, Lausanne, Switzerland, 2007. http://scala.epfl.ch.
    [23]
    M. Petre. Why looking isn't always seeing: Readership skills and graphical programming. Comm. of the ACM, pages 33--44, June 1995.
    [24]
    A. Repenning. AgentSheets: an interactive simulation environment with end-user programmable agents. In Proc. of Interaction, 2000.
    [25]
    E. Sandewall. Programming in an interactive environment: the lisp experience. Computing Surveys, 10(1), Mar. 1978.
    [26]
    O. Shivers. The semantics of Scheme control-flow analysis. In Proc. of PEMP, pages 190--198, June 1991.
    [27]
    I. B. Sutherland. SKETCHPAD, a man-machine graphical communication system. In Proc. of the Spring Joint Computer Conference, pages 329--346, 1963.
    [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.
    [29]
    D. Ungar and R. B. Smith. Self: the power of simplicity. In Proc. of OOPSLA, pages 227--242, Oct. 1987.
    [30]
    D. Ungar and R. B. Smith. Programming as an experience: the inspiration for Self. In Proc. of ECOOP, pages 227--242, Aug. 1995.
    [31]
    G. van Rossum and F. L. Drake. The Python Language Reference Manual, Sept. 2003.
    [32]
    W. W. Wadge and E. A. Ashcroft. Lucid, the Dataflow Programming Language. Academic Press, 1985.

    Cited By

    View all
    • (2024)Assessing Live Programming for Program ComprehensionProceedings of the 2024 on Innovation and Technology in Computer Science Education V. 110.1145/3649217.3653547(520-526)Online publication date: 3-Jul-2024
    • (2023)Live Programming for Finite Model Finders2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)10.1109/ASE56229.2023.00016(1747-1752)Online publication date: 11-Sep-2023
    • (2022)"Go to the Children": Rethinking Intelligent Agent Design and Programming in a Developmental Learning PerspectiveProceedings of the 21st International Conference on Autonomous Agents and Multiagent Systems10.5555/3535850.3536115(1809-1813)Online publication date: 9-May-2022
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    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
    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: 21 October 2007
    Published in SIGPLAN Volume 42, Issue 10

    Check for updates

    Author Tag

    1. live programming

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)22
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Assessing Live Programming for Program ComprehensionProceedings of the 2024 on Innovation and Technology in Computer Science Education V. 110.1145/3649217.3653547(520-526)Online publication date: 3-Jul-2024
    • (2023)Live Programming for Finite Model Finders2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)10.1109/ASE56229.2023.00016(1747-1752)Online publication date: 11-Sep-2023
    • (2022)"Go to the Children": Rethinking Intelligent Agent Design and Programming in a Developmental Learning PerspectiveProceedings of the 21st International Conference on Autonomous Agents and Multiagent Systems10.5555/3535850.3536115(1809-1813)Online publication date: 9-May-2022
    • (2022)Language impact on productivity for industrial end users: A case study from Programmable Logic ControllersJournal of Computer Languages10.1016/j.cola.2021.10108769(101087)Online publication date: Apr-2022
    • (2020)Preserving instance state during refactorings in live environmentsFuture Generation Computer Systems10.1016/j.future.2020.04.010110(1-17)Online publication date: Sep-2020
    • (2019)Programs in the Palm of your HandProceedings of the 18th ACM International Conference on Interaction Design and Children10.1145/3311927.3323138(227-236)Online publication date: 12-Jun-2019
    • (2019)Live-UMLRTProceedings of the 22nd International Conference on Model Driven Engineering Languages and Systems10.1109/MODELS-C.2019.00115(743-747)Online publication date: 15-Sep-2019
    • (2019)Live programming and software evolutionProceedings of the 27th International Conference on Program Comprehension10.1109/ICPC.2019.00017(30-41)Online publication date: 25-May-2019
    • (2018)WrattlerProceedings of the 10th USENIX Conference on Theory and Practice of Provenance10.5555/3319379.3319388(6-6)Online publication date: 11-Jul-2018
    • (2018)The road to live programmingProceedings of the 40th International Conference on Software Engineering10.1145/3180155.3180200(1090-1101)Online publication date: 27-May-2018
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media