skip to main content
10.1145/1593105.1593181acmotherconferencesArticle/Chapter ViewAbstractPublication Pagesacm-seConference Proceedingsconference-collections
research-article

A little language for surveys: constructing an internal DSL in Ruby

Published: 28 March 2008 Publication History

Abstract

Using a problem domain motivated by Bentley's "Little Languages" column [1], this paper explores the use of the Ruby programming language's flexible syntax, dynamic nature, and reflexive metaprogramming facilities to implement an internal domain-specific language (DSL) for surveys.

References

[1]
J. Bentley. Programming pearls: Little languages. Communications of the ACM, 29(8):711--721, August 1986.
[2]
J. Buck. Writing domain specific languages. http://weblog.jamisbuck.org, April 2006.
[3]
L. Carlson and L. Richardson. Ruby Cookbook. O'Reilly, 2006.
[4]
J. Coplien, D. Hoffman, and D. Weiss. Commonality and variability in software engineering. IEEE Software, 15(6):37--45, November 1998.
[5]
M. Fowler. Using the rake build language. http://martinfowler.com/articles/rake.html, August 2005.
[6]
M. Fowler. Domain specific languages. http://martinfowler.com/dslwip/, Work in progress 2007.
[7]
S. Freeman and N. Pryce. Evolving an embedded domain-specific language in Java. In Companion to the Conference on Object-Oriented Programming Languages, Systems, and Applications, pages 855--865. ACM SIGPLAN, October 2006.
[8]
J. Freeze. Creating DSLs with Ruby. Artima Developer: Ruby Code and Style, March 2006. http://www.artima.com/rubycs/articles/ruby_as_dsl.html.
[9]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
[10]
P. Hudak. Modular domain specific languages and tools. In P. Devanbu and J. Poulin, editors, Proceeding of the 5th International Conference on Software Reuse (ICSR'98), pages 134--142. IEEE, 1998.
[11]
M. Mernik, J. Heering, and A. M. Sloane. When and how to develop domain specific languages. ACM Computing Surveys, 37(4):316--344, December 2005.
[12]
T. Parr. The Definitive ANTLR Reference: Building Domain-Specific Languages. Pragmatic Bookshelf, 2007.
[13]
S. Thibault, R. Marlet, and C. Consel. Domain-specific languages: From design to implementation---Application to video device drivers generation. IEEE Transactions on Software Engineering, 25(3):363--377, May/June 1999.
[14]
D. Thomas, C. Fowler, and A. Hunt. Programming Ruby: The Pragmatic Programmers' Guide. Pragmatic Bookshelf, second edition, 2005.
[15]
D. Thomas and D. Heinemeier Hansson. Agile Development with Rails. Pragmatic Bookshelf, second edition, 2006.
[16]
A. van Deursen, P. Klint, and J. Visser. Domain specific languages: An annotated bibliography. SIGPLAN Notices, 35(6):26--36, June 2000.
[17]
Wikipedia, The Free Encyclopedia. Metaprogramming. http://en.wikipedia.org/wiki/Metaprogramming, Accessed 22 February 2008.

Cited By

View all
  • (2019)A service platform for streamlining the production of cyber–physical interactive performance artService Oriented Computing and Applications10.1007/s11761-019-00268-813:3(221-236)Online publication date: 1-Sep-2019
  • (2017)Customizing host IDE for non-programming users of pure embedded DSLsComputer Languages, Systems and Structures10.1016/j.cl.2017.04.00349:C(101-118)Online publication date: 1-Sep-2017
  • (2016)A Functional Reactive DSL Service Facility for Mixed-Reality Interactive Performance Art2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA)10.1109/SOCA.2016.8(24-31)Online publication date: Nov-2016
  • Show More Cited By

Index Terms

  1. A little language for surveys: constructing an internal DSL in Ruby

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    ACMSE '08: Proceedings of the 46th annual ACM Southeast Conference
    March 2008
    548 pages
    ISBN:9781605581057
    DOI:10.1145/1593105
    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: 28 March 2008

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Ruby
    2. domain specific language
    3. reflexive metaprogramming

    Qualifiers

    • Research-article

    Conference

    ACM SE08
    ACM SE08: ACM Southeast Regional Conference
    March 28 - 29, 2008
    Alabama, Auburn

    Acceptance Rates

    Overall Acceptance Rate 502 of 1,023 submissions, 49%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)8
    • Downloads (Last 6 weeks)2
    Reflects downloads up to 16 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2019)A service platform for streamlining the production of cyber–physical interactive performance artService Oriented Computing and Applications10.1007/s11761-019-00268-813:3(221-236)Online publication date: 1-Sep-2019
    • (2017)Customizing host IDE for non-programming users of pure embedded DSLsComputer Languages, Systems and Structures10.1016/j.cl.2017.04.00349:C(101-118)Online publication date: 1-Sep-2017
    • (2016)A Functional Reactive DSL Service Facility for Mixed-Reality Interactive Performance Art2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA)10.1109/SOCA.2016.8(24-31)Online publication date: Nov-2016
    • (2015)A Model-Driven Approach to Generate External DSLs from Object-Oriented APIsSOFSEM 2015: Theory and Practice of Computer Science10.1007/978-3-662-46078-8_35(423-435)Online publication date: 2015
    • (2015)Implementing an embedded compiler using program transformation rulesSoftware—Practice & Experience10.1002/spe.222545:2(177-196)Online publication date: 1-Feb-2015
    • (2014)Design Patterns and Design Principles for Internal Domain-Specific LanguagesComputational Linguistics10.4018/978-1-4666-6042-7.ch017(352-410)Online publication date: 2014
    • (2014)An Evaluation of Domain-Specific Language Technologies for Code GenerationProceedings of the 2014 14th International Conference on Computational Science and Its Applications10.1109/ICCSA.2014.16(18-26)Online publication date: 30-Jun-2014
    • (2014)Language Design and Implementation via the Combination of Embedding and ParsingSoftware Technologies10.1007/978-3-662-44920-2_9(131-147)Online publication date: 1-Oct-2014
    • (2013)Design Patterns and Design Principles for Internal Domain-Specific LanguagesFormal and Practical Aspects of Domain-Specific Languages10.4018/978-1-4666-2092-6.ch007(156-214)Online publication date: 2013
    • (2013)Iterative and Pattern-Based Development of Internal Domain-Specific LanguagesFormal and Practical Aspects of Domain-Specific Languages10.4018/978-1-4666-2092-6.ch006(132-155)Online publication date: 2013
    • Show More Cited By

    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