Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1297027.1297073acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
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
    • (2022)A Language Based on Two Relations between SymbolsProceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3563835.3567660(95-111)Online publication date: 29-Nov-2022
    • (2022)A Live Environment to Improve the Refactoring ExperienceCompanion Proceedings of the 6th International Conference on the Art, Science, and Engineering of Programming10.1145/3532512.3535222(30-37)Online publication date: 21-Mar-2022
    • (2021)Edit - Run Behavior in Programming and Debugging2021 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC51201.2021.9576170(1-10)Online publication date: 10-Oct-2021
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    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
    • 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
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 21 October 2007

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tag

    1. live programming

    Qualifiers

    • Article

    Conference

    OOPSLA07
    Sponsor:

    Acceptance Rates

    OOPSLA '07 Paper Acceptance Rate 33 of 156 submissions, 21%;
    Overall Acceptance Rate 268 of 1,244 submissions, 22%

    Upcoming Conference

    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
    • (2022)A Language Based on Two Relations between SymbolsProceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3563835.3567660(95-111)Online publication date: 29-Nov-2022
    • (2022)A Live Environment to Improve the Refactoring ExperienceCompanion Proceedings of the 6th International Conference on the Art, Science, and Engineering of Programming10.1145/3532512.3535222(30-37)Online publication date: 21-Mar-2022
    • (2021)Edit - Run Behavior in Programming and Debugging2021 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC51201.2021.9576170(1-10)Online publication date: 10-Oct-2021
    • (2020)How Domain Experts Create Conceptual Diagrams and Implications for Tool DesignProceedings of the 2020 CHI Conference on Human Factors in Computing Systems10.1145/3313831.3376253(1-14)Online publication date: 21-Apr-2020
    • (2020)Live modeling in the context of state machine models and code generationSoftware and Systems Modeling10.1007/s10270-020-00829-yOnline publication date: 2-Nov-2020
    • (2020)Opportunities in intelligent modeling assistanceSoftware and Systems Modeling10.1007/s10270-020-00814-5Online publication date: 17-Jul-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 functional programming with typed holesProceedings of the ACM on Programming Languages10.1145/32903273:POPL(1-32)Online publication date: 2-Jan-2019
    • (2019)Live-UMLRT: A Tool for Live Modeling of UML-RT Models2019 ACM/IEEE 22nd International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C)10.1109/MODELS-C.2019.00115(743-747)Online publication date: 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
    • 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