skip to main content
10.1145/2986012.2986022acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Gramada: immediacy in programming language development

Published: 20 October 2016 Publication History

Abstract

Domain-specific languages (DSLs) improve software maintainability and programmer productivity by making domain concepts more explicit in the code. However, developing syntax and semantics of DSLs is often challenging and as a result developers seldom take advantage of the benefits of DSLs. One way to lower the entry barrier to DSL development is to give developers immediate and continuous feedback on modifications to a language. We propose Gramada, an environment for developing DSLs in Squeak/Smalltalk which is designed to provide such a live programming experience. It is based on a language development framework with additional support for incremental compilation to improve system response times and a set of tools which creates a steady frame and allows programmers to quickly explore changes to the syntax of a language. Our benchmarks and discussion illustrate how Gramada can give visual feedback on most changes to the language in a way that supports live programming. We conclude that Gramada’s feedback is fast and consistent enough to make exploring the effects of changes a lively and productive activity during the interactive development of DSLs.

References

[1]
R. E. Barber and J. Lucas, Henry C. System response time operator productivity, and job satisfaction. CACM, 26(11): 972–986, 1983.
[2]
J. Bovet and T. Parr. ANTLRWorks: An ANTLR grammar development environment. Software: Practice and Experience, 38(12):1305–1332, 2008.
[3]
J. Dabrowski and E. V. Munson. 40 years of searching for the best computer system response time. Interacting with Computers, 23(5):555–564, 2011.
[4]
P. Dubroy, S. Kasibatla, M. Li, M. Röder, and A. Warth. Language hacking in a live programming environment. In Proceedings of the LIVE Workshop co-located with ECOOP 2016, 2016.
[5]
S. Erdweg, T. v. d. Storm, M. Völter, M. Boersma, R. Bosman, W. R. Cook, A. Gerritsen, A. Hulshout, S. Kelly, A. Loh, G. D. P. Konat, P. J. Molina, M. Palatnik, R. Pohjonen, E. Schindler, K. Schindler, R. Solmi, V. A. Vergu, E. Visser, K. v. d. Vlist, G. H. Wachsmuth, and J. v. d. Woning. The state of the art in language workbenches. In Proceedings of SLE 2013, pages 197–217. Springer, 2013.
[6]
M. Eysholdt and H. Behrens. Xtext: Implement your language faster than the quick and dirty way. In Proceedings of OOPSLA 2010, pages 307–309. ACM, 2010.
[7]
M. Fowler. Domain-Specific Languages. Pearson Education, 2010.
[8]
A. Goldberg and D. Robson. Smalltalk-80: The Language and Its Implementation. Addison-Wesley Longman Publishing Co., Inc., Boston, Massachusetts, USA, 1983.
[9]
C. M. Hancock. Real-Time Programming and the Big Ideas of Computational Literacy. PhD thesis, Massachusetts Institute of Technology, Sept. 2003.
[10]
C. D. Hundhausen and J. L. Brown. What you see is what you code: A live algorithm development and visualization environment for novice learners. Journal of Visual Languages & Computing, 18(1):22 – 47, 2007.
[11]
D. Ingalls, T. Kaehler, J. Maloney, S. Wallace, and A. Kay. Back to the future: The story of Squeak, a practical Smalltalk written in itself. In ACM SIGPLAN Notices, volume 32, pages 318–326. ACM, 1997.
[12]
J. Johnson. Designing with the Mind in Mind. Morgan Kaufmann, San Francisco, CA, USA, 2nd edition, 2014.
[13]
L. C. Kats and E. Visser. The Spoofax language workbench: Rules for declarative specification of languages and IDEs. In Proceedings of OOPSLA 2010, number 10, pages 444–463. ACM, 2010.
[14]
L. C. L. Kats, R. Vermaas, and E. Visser. Integrated language definition testing: Enabling test-driven language development. In Proceedings of OOPSLA 2011, pages 139–154. ACM, 2011.
[15]
P. Klint, T. van der Storm, and J. Vinju. EASY Meta-Programming With Rascal. In Proceedings of the Summer School on Generative and Transformational Techniques in Software Engineering 2009, volume 6491 of Lecture Notes in Computer Science, pages 222 – 289. Springer, 2011.
[16]
G. N. Lambert. A comparative study of system response time on program developer productivity. IBM Systems Journal, 23 (1):36–43, 1984.
[17]
H. Lieberman and C. Fry. Bridging the gulf between code and behavior in programming. In Proceedings of SIGCHI 1995, pages 480–486, New York, New York, USA, 1995. ACM Press/Addison-Wesley Publishing Co.
[18]
J. McCarthy. LISP 1.5 Programmer’s Manual. MIT Press, 1965.
[19]
S. McDirmid. Usable live programming. In Proceedings of the Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward!) 2013, Onward! 2013, pages 53–62, New York, NY, USA, 2013. ACM.
[20]
M. Mernik, J. Heering, and A. M. Sloane. When and how to develop domain-specific languages. ACM Computing Surveys, 37(4):316–344, 2005.
[21]
D. A. Norman and S. W. Draper. User Centered System Design. Lawrence Erlbaum Associates, Inc., Publishers, 1986.
[22]
L. Renggli, S. Ducasse, T. Gˆırba, and O. Nierstrasz. Practical dynamic grammars for dynamic languages. In Proceedings of DYLA 2010. Springer, 2010.
[23]
M. Sassa and T. Ookubo. Systematic debugging method for attribute grammar description. Information Processing Letters, 62(6):305 – 313, 1997.
[24]
W. Scacchi. Understanding software productivity: Towards a knowledge-based approach. Journal of Software Engineering and Knowledge Engineering, 1(3):293–321, 1991.
[25]
B. Shneiderman, C. Plaisant, M. Cohen, and S. Jacobs. Designing the User Interface: Strategies for Effective Human-Computer Interaction. Pearson, Upper Saddle River, New Jersey, USA, international edition of 5th revised edition, 2009.
[26]
Software Architecture Group, Hasso Plattner Institute. Squeak AutoTDD {Computer Software}. Retrieved from https: //github.com/HPI-SWA-Teaching/AutoTDD. visited September 28, 2016.
[27]
Squeak Foundation. Squeak/Smalltalk version 4.6 {Computer Software}. Retrieved from https://www.squeak.org. visited September 28, 2016.
[28]
M. Taeumel. Vivide {Computer Software}. Retrieved from https://github.com/hpi-swa/Vivide. visited September 28, 2016.
[29]
M. Taeumel, M. Perscheid, B. Steinert, J. Lincke, and R. Hirschfeld. Interleaving of modification and use in datadriven tool development. In Proceedings of Onward! 2014, pages 185–200. ACM, 2014.
[30]
S. L. Tanimoto. A perspective on the evolution of live programming. In Proceedings of the 1st International Workshop on Live Programming (LIVE) 2013, pages 31–34. IEEE, 2013.
[31]
A. J. Thadhani. Factors affecting programmer productivity during application development. IBM Systems Journal, 23(1): 19–35, 1984.
[32]
D. Ungar and R. B. Smith. Self: The power of simplicity. In Proceedings of OOPSLA 1987, pages 227–242, New York, New York, USA, 1987. ACM.
[33]
A. Warth and P. Dubroy. Ohm version 0.85 {Computer Software}. Retrieved from https://github.com/cdglabs/ ohm. visited September 28, 2016.
[34]
A. Warth, J. R. Douglass, and T. Millstein. Packrat parsers can support left recursion. In Proceedings of PEPM 2008, pages 103–110, New York, New York, USA, 2008. ACM.
[35]
A. Warth, P. Dubroy, and T. Garnock-Jones. Modular semantic actions. In Proceedings of DLS 2016, New York, New York, USA, November 2016. ACM.
[36]
E. M. Wilcox, J. W. Atwood, M. M. Burnett, J. J. Cadiz, and C. R. Cook. Does continuous visual feedback aid debugging in direct-manipulation programming systems? In Proceedings of CHI 1997, pages 258–265, New York, NY, USA, 1997. ACM.

Cited By

View all
  • (2020)Systematic mapping study on domain-specific language development toolsEmpirical Software Engineering10.1007/s10664-020-09872-1Online publication date: 28-Aug-2020
  • (2017)Designing a live development experience for web-componentsProceedings of the 3rd ACM SIGPLAN International Workshop on Programming Experience10.1145/3167109(28-35)Online publication date: 22-Oct-2017
  • (2016)Modular semantic actionsACM SIGPLAN Notices10.1145/3093334.298923152:2(108-119)Online publication date: 1-Nov-2016
  • Show More Cited By

Index Terms

  1. Gramada: immediacy in programming language development

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    Onward! 2016: Proceedings of the 2016 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software
    October 2016
    268 pages
    ISBN:9781450340762
    DOI:10.1145/2986012
    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 the author(s) 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

    In-Cooperation

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 20 October 2016

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. domain-specific languages
    2. immediate feedback
    3. incremental compilation
    4. language development
    5. tools

    Qualifiers

    • Research-article

    Conference

    SPLASH '16
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 40 of 105 submissions, 38%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)4
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 14 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2020)Systematic mapping study on domain-specific language development toolsEmpirical Software Engineering10.1007/s10664-020-09872-1Online publication date: 28-Aug-2020
    • (2017)Designing a live development experience for web-componentsProceedings of the 3rd ACM SIGPLAN International Workshop on Programming Experience10.1145/3167109(28-35)Online publication date: 22-Oct-2017
    • (2016)Modular semantic actionsACM SIGPLAN Notices10.1145/3093334.298923152:2(108-119)Online publication date: 1-Nov-2016
    • (2016)Modular semantic actionsProceedings of the 12th Symposium on Dynamic Languages10.1145/2989225.2989231(108-119)Online publication date: 1-Nov-2016
    • (2016)Transaction LayersProceedings of the 8th International Workshop on Context-Oriented Programming10.1145/2951965.2951969(1-6)Online publication date: 17-Jul-2016

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media